19 declare(strict_types=1);
85 $conditional_elements = [];
87 foreach ($this->data_finder->getDataCarryingElements($element) as $data_carrier) {
88 $conditional_element = null;
94 $data_carrier->getDefinition()->dataType() !== Type::VOCAB_SOURCE &&
97 $conditional_element = $data_carrier;
100 $path_string = $this->path_factory->toElement($data_carrier,
true)
102 $input_elements[$path_string] = $data_carrier;
103 if (isset($conditional_element)) {
104 $conditional_elements[$path_string][] = $conditional_element;
109 $exclude_required = [];
110 foreach ($input_elements as $path_string => $input_element) {
111 $data_type = $input_element->getDefinition()->dataType();
112 if (isset($conditional_elements[$path_string])) {
113 $input = $this->types->conditionFactory($data_type)->getConditionInput(
116 ...$conditional_elements[$path_string]
119 $input = $this->types->factory($data_type)->getInput(
124 $inputs[$path_string] = $input;
130 if (is_null($this->db_dictionary->tagForElement($input_element))) {
131 $exclude_required[] = $path_string;
136 $fields = $this->ui_factory->section(
138 $this->presenter->elements()->nameWithParents($context_element)
141 $fields = $this->ui_factory->group(
$inputs);
156 return $this->navigator_factory->navigator(
$path, $element)
157 ->lastElementAtFinalStep();
167 $this->
refinery->custom()->transformation(
function ($vs) {
168 foreach ($vs as
$key => $value) {
169 if (is_array($value)) {
170 $vs[
$key] = $value[0];
171 foreach ($value[1] as $k => $v) {
189 string ...$excluded_input_keys
191 $db_tag = $this->db_dictionary->tagForElement($context_element);
192 if (!is_null($db_tag) && !$db_tag->hasData()) {
196 $this->
refinery->custom()->constraint(
197 function ($vs) use ($excluded_input_keys) {
198 foreach ($vs as $p => $v) {
199 if (in_array($p, $excluded_input_keys)) {
202 if ($v !==
'' && $v !== null) {
208 $this->presenter->utilities()->txt(
'meta_error_empty_input')