OwlCyberSecurity - MANAGER
Edit File: Css.php
<?php namespace LottaFramework\Async; use LottaFramework\Utils; class Css { /** * Generate dynamic css script * * @param $id * @param $css * * @return string */ public function dynamic( $id, $css ) { return "LottaCss.addDynamicStyle('$id', LottaCss.parse($css))"; } /** * Generate value mapper script */ public function valueMapper( $maps, $selector = 'value' ) { $maps = wp_json_encode( $maps ); return "LottaCss.valueMapper($selector,$maps)"; } /** * @param $script * * @return string */ public function unescape( $script ) { return '!!!' . $script; } /** * Encode async css * * @param $css * * @return mixed|string */ public function encode( $css ) { if ( is_array( $css ) ) { $css_obj = []; foreach ( $css as $property => $value ) { if ( is_string( $value ) && Utils::str_starts_with( $value, '!!!' ) ) { $value = substr( $value, 3 ); } else if ( $value !== 'value' ) { if ( is_array( $value ) ) { $value = $this->encode( $value ); } else { $value = wp_json_encode( $value ); } } $css_obj[] = "\"$property\":$value"; } $css = '{' . implode( ',', $css_obj ) . '}'; } return $css; } /** * @param string $selector * * @return string */ public function dimensions( $selector = 'margin' ) { return "LottaCss.dimensions(value,'$selector')"; } /** * @return string */ public function background() { return "LottaCss.background(value)"; } /** * @param string $selector * * @return string */ public function border( $selector = 'border' ) { return "LottaCss.border(value, '$selector')"; } /** * @param string $selector * * @return string */ public function shadow( $selector = 'box-shadow' ) { return "LottaCss.shadow(value, '$selector')"; } /** * @return string */ public function filters() { return "LottaCss.filters(value)"; } /** * @return string */ public function typography() { return "LottaCss.typography(value)"; } /** * @param $maps * @param array $css * * @return string */ public function colors( $maps, $css = [] ) { $maps = wp_json_encode( $maps ); $css = wp_json_encode( $css ); return "LottaCss.colors(value,$maps,$css)"; } }