span { width: 5px; height: 5px; background-color: #5b5b5b; } EOL; /** @var FeaturesController */ private $features_controller; /** * @param FeaturesController $features_controller */ function __construct( FeaturesController $features_controller = null ) { if ($features_controller === null) { $features_controller = ContainerWrapper::getInstance()->get(FeaturesController::class); } $this->features_controller = $features_controller; } function getDefaultStyles() { if ($this->features_controller->isSupported(FeaturesController::NEW_FORM_EDITOR)) { $text_input_width = 'width: 100%;'; } else { $text_input_width = 'width: 200px;'; } return str_replace('[TEXT_INPUTS_WIDTH_RULE]', $text_input_width, $this->default_styles); } function render($stylesheet, $prefix = '') { if (!$stylesheet) return; $styles = new CSSParser($stylesheet); $styles = $styles->parse(); $formatted_styles = []; foreach ($styles->getAllDeclarationBlocks() as $style_declaration) { $selectors = array_map(function($selector) use ($prefix) { return sprintf('%s %s', $prefix, $selector->__toString()); }, $style_declaration->getSelectors()); $selectors = implode(', ', $selectors); $rules = array_map(function($rule) { return $rule->__toString(); }, $style_declaration->getRules()); $rules = sprintf('{ %s }', implode(' ', $rules)); $formatted_styles[] = sprintf('%s %s', $selectors, $rules); } return implode(PHP_EOL, $formatted_styles); } }