checkbox = $checkbox; $this->column = $column; $this->columns = $columns; $this->date = $date; $this->divider = $divider; $this->html = $html; $this->radio = $radio; $this->segment = $segment; $this->select = $select; $this->submit = $submit; $this->text = $text; $this->textarea = $textarea; $this->heading = $heading; } public function renderBlock(array $block = [], array $formSettings): string { $html = ''; switch ($block['type']) { case 'html': $html .= $this->html->render($block, $formSettings); break; case 'heading': $html .= $this->heading->render($block); break; case 'divider': $html .= $this->divider->render($block); break; case 'checkbox': $html .= $this->checkbox->render($block, $formSettings); break; case 'radio': $html .= $this->radio->render($block, $formSettings); break; case 'segment': $html .= $this->segment->render($block, $formSettings); break; case 'date': $html .= $this->date->render($block, $formSettings); break; case 'select': $html .= $this->select->render($block, $formSettings); break; case 'text': $html .= $this->text->render($block, $formSettings); break; case 'textarea': $html .= $this->textarea->render($block, $formSettings); break; case 'submit': $html .= $this->submit->render($block); break; } return $html; } public function renderContainerBlock(array $block, string $content) { $html = ''; switch ($block['type']) { case 'columns': $html .= $this->columns->render($block, $content); break; case 'column': $html .= $this->column->render($block, $content); break; } return $html; } }