--- /dev/null
+<?php
+
+/**
+ * @file
+ * Test module.
+ */
+
+use Drupal\Core\Field\FieldDefinitionInterface;
+use Drupal\Core\Field\FormatterInterface;
+use Drupal\Core\Field\WidgetInterface;
+use Drupal\Core\Form\FormStateInterface;
+
+/**
+ * Implements hook_field_widget_third_party_settings_form().
+ */
+function field_third_party_test_field_widget_third_party_settings_form(WidgetInterface $plugin, FieldDefinitionInterface $field_definition, $form_mode, $form, FormStateInterface $form_state) {
+ $element['field_test_widget_third_party_settings_form'] = [
+ '#type' => 'textfield',
+ '#title' => t('3rd party widget settings form'),
+ '#default_value' => $plugin->getThirdPartySetting('field_third_party_test', 'field_test_widget_third_party_settings_form'),
+ ];
+ return $element;
+}
+
+/**
+ * Implements hook_field_widget_settings_summary_alter().
+ */
+function field_third_party_test_field_widget_settings_summary_alter(&$summary, $context) {
+ $summary[] = 'field_test_field_widget_settings_summary_alter';
+ return $summary;
+}
+
+/**
+ * Implements hook_field_formatter_third_party_settings_form().
+ */
+function field_third_party_test_field_formatter_third_party_settings_form(FormatterInterface $plugin, FieldDefinitionInterface $field_definition, $view_mode, $form, FormStateInterface $form_state) {
+ $element['field_test_field_formatter_third_party_settings_form'] = [
+ '#type' => 'textfield',
+ '#title' => t('3rd party formatter settings form'),
+ '#default_value' => $plugin->getThirdPartySetting('field_third_party_test', 'field_test_field_formatter_third_party_settings_form'),
+ ];
+ return $element;
+}
+
+/**
+ * Implements hook_field_formatter_settings_summary_alter().
+ */
+function field_third_party_test_field_formatter_settings_summary_alter(&$summary, $context) {
+ $summary[] = 'field_test_field_formatter_settings_summary_alter';
+ return $summary;
+}