19 declare(strict_types=1);
    57         if (empty($elements)) {
    64         $tag = $this->dictionary->tagForElement($elements[0]);
    65         if ($tag?->hasRepresentation()) {
    67                 $tag->representation(),
    71                 $name = implode(self::SEPARATOR, [$name, $values]);
    79         if (empty($elements)) {
    82         $tag = $this->dictionary->tagForElement($elements[0]);
    83         if (!$tag?->hasPreview()) {
    93         return $this->elements->name($element, $plural);
   100         bool $never_skip_initial = 
false   103         $skip_arr = [Type::VOCAB_VALUE, 
Type::DURATION, Type::DATETIME, Type::STRING];
   105             !$never_skip_initial &&
   106             !$this->dictionary->tagForElement($element)?->isLabelImportant() &&
   109         return $this->elements->nameWithParents(
   122         foreach ($elements as $element) {
   123             $navigator = $this->navigator_factory->navigator(
   127             foreach ($navigator->elementsAtFinalStep() as $el) {
   129                     ($data = $el->getData())->type() !== Type::NULL &&
   130                     $data->value() !== 
''   132                     $values[] = $this->data->dataValue($data);
   136         return implode(self::DELIMITER, $values);