'object-meta-info']; /** @var Service */ protected $service; public function __construct(Service $service) { $this->service = $service; } protected function assemble() { $this->addHtml( new VerticalKeyValue('service.name', $this->service->name), new VerticalKeyValue( 'last_state_change', DateFormatter::formatDateTime($this->service->state->last_state_change->getTimestamp()) ) ); $collapsible = new HtmlElement('div', Attributes::create([ 'class' => 'collapsible', 'id' => 'object-meta-info', 'data-toggle-element' => '.object-meta-info-control', 'data-visible-height' => 0 ])); $renderHelper = new HtmlDocument(); $renderHelper->addHtml( $this, new HtmlElement( 'button', Attributes::create(['class' => 'object-meta-info-control']), new Icon('angle-double-up', ['class' => 'collapse-icon']), new Icon('angle-double-down', ['class' => 'expand-icon']) ) ); $this->addWrapper($collapsible); $this->addWrapper($renderHelper); } }