registerArgument('renderable', RootRenderableInterface::class, 'A RenderableInterface instance', true); } public function render(): string { /** @var FormRuntime $formRuntime */ $formRuntime = $this->renderingContext ->getViewHelperVariableContainer() ->get(self::class, 'formRuntime'); $renderable = $this->arguments['renderable']; $this->eventDispatcher->dispatch(new BeforeRenderableIsRenderedEvent($renderable, $formRuntime)); $content = ''; if ($renderable instanceof FormRuntime || ($renderable instanceof RenderableInterface && $renderable->isEnabled())) { $content = $this->renderChildren(); } // Wrap every renderable with a span with an identifier path data attribute if previewMode is active if (!empty($content)) { $renderingOptions = $formRuntime->getRenderingOptions(); if (isset($renderingOptions['previewMode']) && $renderingOptions['previewMode'] === true) { $path = $renderable->getIdentifier(); if ($renderable instanceof RenderableInterface) { while ($renderable = $renderable->getParentRenderable()) { $path = $renderable->getIdentifier() . '/' . $path; } } $content = '' . $content . ''; } } return $content; } }