$is_remove_button =
end($triggering_element['#parents'
]) === 'remove_button';
$length =
$is_remove_button ? -3 : -1;
if (count($triggering_element['#array_parents'
]) <
abs($length)) { throw new \
LogicException('The element that triggered the widget update was at an unexpected depth. Triggering element parents were: ' .
implode(',',
$triggering_element['#array_parents'
]));
} $parents =
array_slice($triggering_element['#array_parents'
], 0,
$length);
$element = NestedArray::
getValue($form,
$parents);
// Always clear the textfield selection to prevent duplicate additions.
$element['media_library_selection'
]['#value'
] = '';
$field_state =
static::
getFieldState($element,
$form_state);
// Announce the updated content to screen readers.
if ($is_remove_button) { $media_item = Media::
load($field_state['removed_item_id'
]);
$announcement =
$media_item->
access('view label'
) ?
new TranslatableMarkup('@label has been removed.',
['@label' =>
$media_item->
label()]) :
new TranslatableMarkup('Media has been removed.'
);
} else { $new_items =
count(static::
getNewMediaItems($element,
$form_state));
$announcement = \Drupal::
translation()->
formatPlural($new_items, 'Added one media item.', 'Added @count media items.'
);
}