uiComponentFactory = $uiComponentFactory; parent::__construct($context, $components, $data); } /** * Get component name * * @return string */ public function getComponentName() { return static::NAME; } /** * Prepare component configuration * * @return void */ public function prepare() { $size = abs((int) $this->getData('config/size')); $validation = [$this->getData('config/validation')]; while ($size--) { $identifier = $this->getName() . '_' . $size; $arguments = [ 'data' => [ 'name' => $identifier, 'config' => [ 'dataScope' => $size, 'dataType' => static::DATA_TYPE, 'formElement' => static::FORM_ELEMENT, 'sortOrder' => $size, ] ] ]; if (!empty($validation[$size])) { $arguments['data']['config']['validation'] = $validation[$size]; } $component = $this->uiComponentFactory->create($identifier, Field::NAME, $arguments); $component->prepare(); $this->components[$identifier] = $component; } parent::prepare(); } }