PluginProbe
Elementor Website Builder – more than just a page builder / 4.2.1
Elementor Website Builder – more than just a page builder v4.2.1
4.3.2 4.3.1 4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 All 455 releases
← All changes | modules/atomic-widgets/css-converter/value-parsers/background-image-value-parser.php +9 -36 4.3.0 → 4.2.1 View file →
@@ -211,24 +211,24 @@
211 211 if ( empty( $tokens ) ) {
212 212 return null;
213 213 }
214 214
215 - $parsed = [];
215 + $stops = [];
216 216
217 217 foreach ( $tokens as $token ) {
218 - $parts = self::parse_color_stop_parts( trim( $token ) );
218 + $stop = self::parse_color_stop( trim( $token ) );
219 219
220 - if ( null === $parts ) {
220 + if ( null === $stop ) {
221 221 return null;
222 222 }
223 223
224 - $parsed[] = $parts;
224 + $stops[] = $stop;
225 225 }
226 226
227 - return self::build_color_stops_with_defaults( $parsed );
227 + return $stops;
228 228 }
229 229
230 - private static function parse_color_stop_parts( string $token ): ?array {
230 + private static function parse_color_stop( string $token ): ?array {
231 231 $parts = Css_Token_Splitter::split_by_whitespace( $token );
232 232
233 233 if ( empty( $parts ) || count( $parts ) > 2 ) {
234 234 return null;
@@ -233,9 +233,9 @@
233 233 if ( empty( $parts ) || count( $parts ) > 2 ) {
234 234 return null;
235 235 }
236 236
237 - $offset = null;
237 + $stop_value = [ 'color' => Color_Prop_Type::generate( $parts[0] ) ];
238 238
239 239 if ( isset( $parts[1] ) ) {
240 240 if ( ! preg_match( '/^(-?\d+(?:\.\d+)?)%$/', $parts[1], $m ) ) {
241 241 return null;
@@ -240,37 +240,10 @@
240 240 if ( ! preg_match( '/^(-?\d+(?:\.\d+)?)%$/', $parts[1], $m ) ) {
241 241 return null;
242 242 }
243 243
244 - $offset = (float) $m[1];
244 + $stop_value['offset'] = Number_Prop_Type::generate( (float) $m[1] );
245 245 }
246 246
247 - return [
248 - 'color' => $parts[0],
249 - 'offset' => $offset,
250 - ];
251 - }
252 -
253 - private static function build_color_stops_with_defaults( array $parsed ): array {
254 - $count = count( $parsed );
255 - $stops = [];
256 -
257 - foreach ( $parsed as $index => $part ) {
258 - $offset = $part['offset'] ?? self::default_offset_for_index( $index, $count );
259 -
260 - $stops[] = Color_Stop_Prop_Type::generate( [
261 - 'color' => Color_Prop_Type::generate( $part['color'] ),
262 - 'offset' => Number_Prop_Type::generate( $offset ),
263 - ] );
264 - }
265 -
266 - return $stops;
267 - }
268 -
269 - private static function default_offset_for_index( int $index, int $count ): float {
270 - if ( $count <= 1 ) {
271 - return 0.0;
272 - }
273 -
274 - return ( $index / ( $count - 1 ) ) * 100;
247 + return Color_Stop_Prop_Type::generate( $stop_value );
275 248 }
276 249 }