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) {
31 return $format->label();
38 public function getSettableValues(AccountInterface $account = NULL) {
39 return array_keys($this->getSettableOptions($account));
45 public function getSettableOptions(AccountInterface $account = NULL) {
46 // @todo: Avoid calling functions but move to injected dependencies.
47 return array_map(function ($format) {
48 return $format->label();
49 }, filter_formats($account));