picea-ui/src/Component/UiPopup.php

31 lines
877 B
PHP

<?php
namespace Picea\Ui\Component;
use Picea\Ui\Common\UiElement;
use Picea\Extension\Extension;
use Picea\Extension\ExtensionTrait;
class UiPopup extends UiElement implements Extension {
use ExtensionTrait;
public string $token = "ui:popup";
public string $tag = "div";
public array $attributes = [
'class' => 'ui-popup',
];
public function parse(\Picea\Compiler\Context &$context, ?string $arguments, string $token) : string
{
return "<?php echo 'ui-popup=\"' . ( new \\" . static::class . "() )->buildAttributes($arguments) . '\"' ?>";
}
public function buildAttributes(string $name, array $variables = [], array $options = []) : string
{
return htmlentities(json_encode([ "name" => $name, "vars" => $variables, "options" => $options ], JSON_HEX_APOS | JSON_HEX_QUOT), \ENT_QUOTES, 'UTF-8');
}
}