3 namespace Drupal\filter\Plugin\DataType;
5 use Drupal\Core\Session\AccountInterface;
6 use Drupal\Core\TypedData\OptionsProviderInterface;
7 use Drupal\Core\TypedData\Plugin\DataType\StringData;
10 * The filter format data type.
13 * id = "filter_format",
14 * label = @Translation("Filter format")
17 class FilterFormat extends StringData implements OptionsProviderInterface {
22 public function getPossibleValues(AccountInterface $account = NULL) {
23 return array_keys($this->getPossibleOptions($account));
29 public function getPossibleOptions(AccountInterface $account = NULL) {
30 return array_map(function ($format) { return $format->label(); }, filter_formats());
36 public function getSettableValues(AccountInterface $account = NULL) {
37 return array_keys($this->getSettableOptions($account));
43 public function getSettableOptions(AccountInterface $account = NULL) {
44 // @todo: Avoid calling functions but move to injected dependencies.
45 return array_map(function ($format) { return $format->label(); }, filter_formats($account));