31 lines
877 B
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');
|
|
}
|
|
|
|
}
|