12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Ui\Component\Form\Element;
- use Magento\Ui\Component\Form\Field;
- use Magento\Framework\View\Element\UiComponentFactory;
- use Magento\Framework\View\Element\UiComponentInterface;
- use Magento\Framework\View\Element\UiComponent\ContextInterface;
- /**
- * @api
- * @since 100.0.2
- */
- class Multiline extends AbstractElement
- {
- const NAME = 'multiline';
- const FORM_ELEMENT = 'input';
- const DATA_TYPE = 'text';
- /**
- * UI component factory
- *
- * @var UiComponentFactory
- */
- protected $uiComponentFactory;
- /**
- * Constructor
- *
- * @param ContextInterface $context
- * @param UiComponentFactory $uiComponentFactory
- * @param UiComponentInterface[] $components
- * @param array $data
- */
- public function __construct(
- ContextInterface $context,
- UiComponentFactory $uiComponentFactory,
- array $components = [],
- array $data = []
- ) {
- $this->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();
- }
- }
|