PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.34.2
MailPoet – Newsletters, Email Marketing, and Automation v5.34.2
5.35.0 5.34.3 5.34.2 5.34.1 5.34.0 5.33.1 5.33.0 5.32.0 5.31.0 5.30.0 5.29.0 5.28.1 5.28.0 5.27.0 5.26.0 5.26.1 5.25.0 5.24.0 4.43.0 4.43.1 4.44.0 4.44.1 4.45.0 4.46.0 4.47.0 4.48.0 4.48.1 4.48.2 4.49.0 4.49.1 4.5.0 4.5.1 4.5.2 4.50.0 4.50.1 4.51.0 4.51.1 4.51.2 4.52.0 4.53.0 4.54.0 4.55.0 4.56.0 4.57.0 4.58.0 4.58.1 4.58.2 4.6.0 4.6.1 4.6.2 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 5.0.0 5.0.1 5.0.2 5.1.0 5.1.1 5.10.0 5.10.1 5.11.0 5.12.0 5.12.1 5.12.10 5.12.11 5.12.12 5.12.13 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.13.0 5.13.1 5.13.2 5.14.0 5.14.1 5.14.2 5.14.3 5.15.0 5.15.1 5.16.0 5.16.1 5.16.2 5.16.3 5.16.4 5.17.0 5.17.1 5.17.2 5.17.3 5.17.4 5.17.5 5.17.6 5.18.0 5.19.0 5.2.0 5.2.1 5.2.2 5.2.3 5.20.0 5.21.0 5.21.1 5.21.2 5.21.3 5.22.0 5.22.1 5.22.2 5.22.3 5.22.4 5.23.0 5.23.1 5.23.2 5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7 5.4.0 5.4.1 5.4.2 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.6.3 5.6.4 5.7.0 5.7.1 5.8.0 5.8.1 5.9.0 3.0.0-beta.15 3.7.1 3.0.0-beta.16 3.7.2 3.0.0-beta.17 3.7.3 3.0.0-beta.18 3.7.4 3.0.0-beta.19 3.7.5 3.0.0-beta.2 3.7.6 3.0.0-beta.20 3.7.8 3.0.0-beta.21 3.70.0 3.0.0-beta.22 3.71.0 3.0.0-beta.23 3.71.1 3.0.0-beta.23.1 3.71.2 3.0.0-beta.23.2 3.71.3 3.0.0-beta.24 3.72.0 3.0.0-beta.25 3.73.0 3.0.0-beta.26 3.73.1 3.0.0-beta.27 3.73.2 3.0.0-beta.28 3.74.0 3.0.0-beta.29 3.74.1 3.0.0-beta.3 3.74.2 3.0.0-beta.30 3.74.3 3.0.0-beta.31 3.75.0 3.0.0-beta.32 3.75.1 3.0.0-beta.33 3.76.0 3.0.0-beta.33.1 3.77.0 3.0.0-beta.34.0.0 3.77.1 3.0.0-beta.36.0.0 3.78.0 3.0.0-beta.36.0.1 3.79.0 3.0.0-beta.36.2.0 3.8 3.0.0-beta.36.3.0 3.8.1 3.0.0-beta.36.3.1 3.8.2 3.0.0-beta.37.0.0 3.8.3 3.0.0-beta.4 3.8.4 3.0.0-beta.5 3.8.5 3.0.0-beta.6 3.8.6 3.0.0-beta.7 3.80.0 3.0.0-beta.7.1 3.81.0 3.0.0-beta.8 3.82.0 3.0.0-beta.9 3.83.0 3.0.0-rc.1.0.0 3.84.0 3.0.0-rc.1.0.1 3.84.1 3.0.0-rc.1.0.2 3.85.0 3.0.0-rc.1.0.3 3.85.1 3.0.0-rc.1.0.4 3.86.0 3.0.0-rc.2.0.0 3.87.0 3.0.0-rc.2.0.1 3.87.1 3.0.0-rc.2.0.2 3.87.2 3.0.0-rc.2.0.3 3.88.0 3.0.1 3.88.1 3.0.2 3.88.2 3.0.3 3.89.0 3.0.4 3.89.1 3.0.5 3.89.2 3.0.6 3.89.3 3.0.7 3.89.4 3.0.8 3.9.0 3.0.9 3.9.1 3.1.0 3.90.0 3.10 3.90.1 3.10.1 3.90.2 3.100.0 3.91.0 3.100.1 3.91.1 3.100.2 3.92.0 3.101.0 3.92.1 3.101.1 3.93.0 3.102.0 3.93.1 3.102.1 3.94.0 3.103.0 3.95.0 3.103.1 3.95.1 3.11.0 3.96.0 3.11.1 3.96.1 3.11.2 3.97.0 3.11.3 3.98.0 3.11.4 3.98.1 3.11.5 3.99.0 3.12.0 3.99.1 3.12.1 4.0.0 3.13.0 4.0.1 3.14.0 4.1.0 3.14.1 4.1.1 3.15.0 4.10.0 3.16.0 4.11.0 3.16.1 4.11.1 3.16.2 4.12.0 3.16.3 4.12.1 3.17.0 4.12.2 3.17.1 4.13.0 3.17.2 4.14.0 3.18.0 4.15.0 3.18.1 4.16.0 3.18.2 4.17.0 3.19.0 4.17.1 3.19.1 4.18.0 3.19.2 4.18.1 3.19.3 4.19.0 3.2.0 4.2.0 3.2.1 4.20.0 3.2.2 4.20.1 3.2.3 4.20.2 3.2.4 4.21.0 3.2.5 4.22.0 3.20.0 4.22.1 3.21.0 4.22.2 3.21.1 4.23.0 3.22.0 4.24.0 3.23.0 4.25.0 3.23.1 4.26.0 3.23.2 4.26.1 3.24.0 4.27.0 3.25.0 4.28.0 3.25.1 4.29.0 3.26.0 4.3.0 3.26.1 4.3.1 3.27.0 4.30.0 3.28.0 4.31.0 3.29.0 4.31.1 3.3.0 4.32.0 3.3.1 4.33.0 3.3.2 4.34.0 3.3.3 4.35.0 3.3.4 4.35.1 3.3.5 4.36.0 3.3.6 4.37.0 3.30.0 4.38.0 3.31.0 4.39.0 3.31.1 4.4.0 3.32.0 4.40.0 3.32.1 4.41.0 3.32.2 4.41.1 3.33.0 4.41.2 3.34.0 4.41.3 3.34.1 4.42.0 3.34.2 4.42.1 3.34.3 3.34.4 3.35.0 3.35.1 3.35.3 3.35.4 3.36.0 3.37.0 3.37.1 3.37.2 3.37.3 3.38.0 3.38.1 3.39.0 3.39.1 3.39.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.40.0 3.40.1 3.41.0 3.41.1 3.41.2 3.42.0 3.42.1 3.42.2 3.42.3 3.43.0 3.43.1 3.44.0 3.45.0 3.45.1 3.46.0 3.46.1 3.46.10 3.46.11 3.46.12 3.46.13 3.46.14 3.46.2 3.46.3 3.46.4 3.46.5 3.46.6 3.46.7 3.46.8 3.46.9 3.47.0 3.47.1 3.47.10 3.47.11 3.47.2 3.47.3 3.47.5 3.47.6 3.47.7 3.47.9 3.48.0 3.48.1 3.49.0 3.49.1 3.5.0 3.5.1 3.50.0 3.51.0 3.51.1 3.51.2 3.52.0 3.53.0 3.54.0 3.54.1 3.54.2 3.54.3 3.55.0 3.55.1 3.56.0 3.56.1 3.56.2 3.57.0 3.57.1 3.58.0 3.59.0 3.59.1 3.59.2 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.60.0 3.60.1 3.60.10 3.60.11 3.60.12 3.60.2 3.60.3 3.60.4 3.60.6 3.60.7 3.60.8 3.60.9 3.61.0 3.62.0 3.62.1 3.63.0 3.64.0 3.64.1 3.64.2 3.64.3 3.65.0 trunk 3.65.1 3.0.0 3.66.0 3.0.0-beta.1 3.67.0 3.0.0-beta.10 3.67.1 3.0.0-beta.11 3.68.0 3.0.0-beta.12 3.69.0 3.0.0-beta.13 3.69.1 3.0.0-beta.14 3.7.0
mailpoet / vendor-prefixed / sabberworm / php-css-parser / src / Value / Value.php
mailpoet / vendor-prefixed / sabberworm / php-css-parser / src / Value Last commit date
CSSFunction.php 2 years ago CSSString.php 4 years ago CalcFunction.php 2 years ago CalcRuleValueList.php 4 years ago Color.php 2 years ago LineName.php 4 years ago PrimitiveValue.php 4 years ago RuleValueList.php 4 years ago Size.php 2 years ago URL.php 2 years ago Value.php 2 years ago ValueList.php 4 years ago index.php 3 years ago
Value.php
130 lines
1 <?php
2 namespace MailPoetVendor\Sabberworm\CSS\Value;
3 if (!defined('ABSPATH')) exit;
4 use MailPoetVendor\Sabberworm\CSS\Parsing\ParserState;
5 use MailPoetVendor\Sabberworm\CSS\Parsing\SourceException;
6 use MailPoetVendor\Sabberworm\CSS\Parsing\UnexpectedEOFException;
7 use MailPoetVendor\Sabberworm\CSS\Parsing\UnexpectedTokenException;
8 use MailPoetVendor\Sabberworm\CSS\Renderable;
9 abstract class Value implements Renderable
10 {
11 protected $iLineNo;
12 public function __construct($iLineNo = 0)
13 {
14 $this->iLineNo = $iLineNo;
15 }
16 public static function parseValue(ParserState $oParserState, array $aListDelimiters = [])
17 {
18 $aStack = [];
19 $oParserState->consumeWhiteSpace();
20 //Build a list of delimiters and parsed values
21 while (!($oParserState->comes('}') || $oParserState->comes(';') || $oParserState->comes('!') || $oParserState->comes(')') || $oParserState->comes('\\') || $oParserState->isEnd())) {
22 if (\count($aStack) > 0) {
23 $bFoundDelimiter = \false;
24 foreach ($aListDelimiters as $sDelimiter) {
25 if ($oParserState->comes($sDelimiter)) {
26 \array_push($aStack, $oParserState->consume($sDelimiter));
27 $oParserState->consumeWhiteSpace();
28 $bFoundDelimiter = \true;
29 break;
30 }
31 }
32 if (!$bFoundDelimiter) {
33 //Whitespace was the list delimiter
34 \array_push($aStack, ' ');
35 }
36 }
37 \array_push($aStack, self::parsePrimitiveValue($oParserState));
38 $oParserState->consumeWhiteSpace();
39 }
40 // Convert the list to list objects
41 foreach ($aListDelimiters as $sDelimiter) {
42 if (\count($aStack) === 1) {
43 return $aStack[0];
44 }
45 $iStartPosition = null;
46 while (($iStartPosition = \array_search($sDelimiter, $aStack, \true)) !== \false) {
47 $iLength = 2;
48 //Number of elements to be joined
49 for ($i = $iStartPosition + 2; $i < \count($aStack); $i += 2, ++$iLength) {
50 if ($sDelimiter !== $aStack[$i]) {
51 break;
52 }
53 }
54 $oList = new RuleValueList($sDelimiter, $oParserState->currentLine());
55 for ($i = $iStartPosition - 1; $i - $iStartPosition + 1 < $iLength * 2; $i += 2) {
56 $oList->addListComponent($aStack[$i]);
57 }
58 \array_splice($aStack, $iStartPosition - 1, $iLength * 2 - 1, [$oList]);
59 }
60 }
61 if (!isset($aStack[0])) {
62 throw new UnexpectedTokenException(" {$oParserState->peek()} ", $oParserState->peek(1, -1) . $oParserState->peek(2), 'literal', $oParserState->currentLine());
63 }
64 return $aStack[0];
65 }
66 public static function parseIdentifierOrFunction(ParserState $oParserState, $bIgnoreCase = \false)
67 {
68 $oAnchor = $oParserState->anchor();
69 $mResult = $oParserState->parseIdentifier($bIgnoreCase);
70 if ($oParserState->comes('(')) {
71 $oAnchor->backtrack();
72 if ($oParserState->streql('url', $mResult)) {
73 $mResult = URL::parse($oParserState);
74 } elseif ($oParserState->streql('calc', $mResult) || $oParserState->streql('-webkit-calc', $mResult) || $oParserState->streql('-moz-calc', $mResult)) {
75 $mResult = CalcFunction::parse($oParserState);
76 } else {
77 $mResult = CSSFunction::parse($oParserState, $bIgnoreCase);
78 }
79 }
80 return $mResult;
81 }
82 public static function parsePrimitiveValue(ParserState $oParserState)
83 {
84 $oValue = null;
85 $oParserState->consumeWhiteSpace();
86 if (\is_numeric($oParserState->peek()) || $oParserState->comes('-.') && \is_numeric($oParserState->peek(1, 2)) || ($oParserState->comes('-') || $oParserState->comes('.')) && \is_numeric($oParserState->peek(1, 1))) {
87 $oValue = Size::parse($oParserState);
88 } elseif ($oParserState->comes('#') || $oParserState->comes('rgb', \true) || $oParserState->comes('hsl', \true)) {
89 $oValue = Color::parse($oParserState);
90 } elseif ($oParserState->comes("'") || $oParserState->comes('"')) {
91 $oValue = CSSString::parse($oParserState);
92 } elseif ($oParserState->comes("progid:") && $oParserState->getSettings()->bLenientParsing) {
93 $oValue = self::parseMicrosoftFilter($oParserState);
94 } elseif ($oParserState->comes("[")) {
95 $oValue = LineName::parse($oParserState);
96 } elseif ($oParserState->comes("U+")) {
97 $oValue = self::parseUnicodeRangeValue($oParserState);
98 } else {
99 $oValue = self::parseIdentifierOrFunction($oParserState);
100 }
101 $oParserState->consumeWhiteSpace();
102 return $oValue;
103 }
104 private static function parseMicrosoftFilter(ParserState $oParserState)
105 {
106 $sFunction = $oParserState->consumeUntil('(', \false, \true);
107 $aArguments = Value::parseValue($oParserState, [',', '=']);
108 return new CSSFunction($sFunction, $aArguments, ',', $oParserState->currentLine());
109 }
110 private static function parseUnicodeRangeValue(ParserState $oParserState)
111 {
112 $iCodepointMaxLength = 6;
113 // Code points outside BMP can use up to six digits
114 $sRange = "";
115 $oParserState->consume("U+");
116 do {
117 if ($oParserState->comes('-')) {
118 $iCodepointMaxLength = 13;
119 // Max length is 2 six digit code points + the dash(-) between them
120 }
121 $sRange .= $oParserState->consume(1);
122 } while (\strlen($sRange) < $iCodepointMaxLength && \preg_match("/[A-Fa-f0-9\\?-]/", $oParserState->peek()));
123 return "U+{$sRange}";
124 }
125 public function getLineNo()
126 {
127 return $this->iLineNo;
128 }
129 }
130