diff --git a/core/config/schema/core.data_types.schema.yml b/core/config/schema/core.data_types.schema.yml index b28eb75..3e2d785 100644 --- a/core/config/schema/core.data_types.schema.yml +++ b/core/config/schema/core.data_types.schema.yml @@ -378,12 +378,16 @@ field_config_base: type: boolean label: 'Translatable' default_value: - type: field.[%parent.field_type].value + type: sequence + label: 'Default values' + sequence: + - type: field.value.[%parent.%parent.field_type] + label: 'Default value' default_value_callback: type: string label: 'Default value callback' settings: - type: field.[%parent.field_type].field_settings + type: field.field_settings.[%parent.field_type] third_party_settings: type: sequence label: 'Third party settings' @@ -417,9 +421,23 @@ core.date_format.*: type: string label: 'Default language' +# Generic field settings schemas. + +field.storage_settings.*: + type: mapping + label: 'Settings' + +field.field_settings.*: + type: mapping + label: 'Settings' + +field.value.*: + type: mapping + label: 'Default value' + # Schema for the configuration of the String field type. -field.string.storage_settings: +field.storage_settings.string: type: mapping label: 'String settings' mapping: @@ -427,45 +445,39 @@ field.string.storage_settings: type: integer label: 'Maximum length' -field.string.field_settings: - type: sequence +field.field_settings.string: + type: mapping label: 'String settings' -field.string.value: - type: sequence +field.value.string: + type: mapping label: 'Default value' - sequence: - - type: mapping - label: 'Default' - mapping: - value: - type: string - label: 'Value' + mapping: + value: + type: string + label: 'Value' # Schema for the configuration of the String (long) field type. -field.string_long.storage_settings: - type: field.string.storage_settings +field.storage_settings.string_long: + type: field.storage_settings.string label: 'String (long) settings' -field.string_long.field_settings: - type: field.string.field_settings +field.field_settings.string_long: + type: field.field_settings.string label: 'String (long) settings' -field.string_long.value: - type: sequence +field.value.string_long: + type: mapping label: 'Default value' - sequence: - - type: mapping - label: 'Default' - mapping: - value: - type: text - label: 'Value' + mapping: + value: + type: text + label: 'Value' # Schema for the configuration of the URI field type. -field.uri.storage_settings: +field.storage_settings.uri: type: mapping label: 'URI settings' mapping: @@ -473,66 +485,57 @@ field.uri.storage_settings: type: integer label: 'Maximum length' -field.uri.field_settings: - type: sequence +field.field_settings.uri: + type: mapping label: 'URI settings' -field.uri.value: - type: sequence +field.value.uri: + type: mapping label: 'Default value' - sequence: - - type: mapping - label: 'Default' - mapping: - value: - type: string - label: 'Value' + mapping: + value: + type: string + label: 'Value' # Schema for the configuration of the Created field type. -field.created.storage_settings: - type: sequence +field.storage_settings.created: + type: mapping label: 'Created timestamp settings' -field.created.field_settings: - type: sequence +field.field_settings.created: + type: mapping label: 'Created timestamp settings' -field.created.value: - type: sequence +field.value.created: + type: mapping label: 'Default value' - sequence: - - type: mapping - label: 'Default' - mapping: - value: - type: integer - label: 'Value' + mapping: + value: + type: integer + label: 'Value' # Schema for the configuration of the Changed field type. -field.changed.storage_settings: - type: sequence +field.storage_settings.changed: + type: mapping label: 'Changed timestamp settings' -field.changed.field_settings: - type: sequence +field.field_settings.changed: + type: mapping label: 'Changed timestamp settings' -field.changed.value: - type: sequence +field.value.changed: + type: mapping label: 'Default value' - sequence: - - type: mapping - label: 'Default' - mapping: - value: - type: integer - label: 'Value' + mapping: + value: + type: integer + label: 'Value' # Schema for the configuration of the Entity reference field type. -field.entity_reference.storage_settings: +field.storage_settings.entity_reference: type: mapping label: 'Entity reference settings' mapping: @@ -540,7 +543,7 @@ field.entity_reference.storage_settings: type: string label: 'Type of item to reference' -field.entity_reference.field_settings: +field.field_settings.entity_reference: type: mapping label: 'Entity reference settings' mapping: @@ -551,23 +554,20 @@ field.entity_reference.field_settings: type: entity_reference.[%parent.handler].handler_settings label: 'Reference method settings' -field.entity_reference.value: - type: sequence +field.value.entity_reference: + type: mapping label: 'Default value' - sequence: - - type: mapping - label: 'Default' - mapping: - target_id: - type: string - label: 'Value' - target_uuid: - type: string - label: 'Target UUID' + mapping: + target_id: + type: string + label: 'Value' + target_uuid: + type: string + label: 'Target UUID' # Schema for the configuration of the Boolean field type. -field.boolean.storage_settings: +field.storage_settings.boolean: type: mapping label: 'Boolean settings' mapping: @@ -578,50 +578,41 @@ field.boolean.storage_settings: type: string label: 'Off label' -field.boolean.field_settings: +field.field_settings.boolean: label: 'Boolean settings' - type: sequence + type: mapping -field.boolean.value: - type: sequence - label: 'Default value' - sequence: - - type: mapping - label: 'Default' - mapping: - value: - type: integer - label: 'Value' +field.value.boolean: + type: mapping + mapping: + value: + type: integer + label: 'Value' # Schema for the configuration of the Email field type. -field.email.storage_settings: - type: sequence +field.storage_settings.email: + type: mapping label: 'Email settings' - sequence: - - type: string -field.email.field_settings: - type: sequence +field.field_settings.email: + type: mapping label: 'Email settings' sequence: - type: string label: 'Setting' -field.email.value: - type: sequence +field.value.email: + type: mapping label: 'Default value' - sequence: - - type: mapping - label: 'Default' - mapping: - value: - type: email - label: 'Value' + mapping: + value: + type: email + label: 'Value' # Schema for the configuration of the Integer field type. -field.integer.storage_settings: +field.storage_settings.integer: type: mapping label: 'Integer settings' mapping: @@ -632,7 +623,7 @@ field.integer.storage_settings: type: string label: 'Database storage size' -field.integer.field_settings: +field.field_settings.integer: type: mapping label: 'Integer' mapping: @@ -649,20 +640,17 @@ field.integer.field_settings: type: string label: 'Suffix' -field.integer.value: - type: sequence +field.value.integer: + type: mapping label: 'Default value' - sequence: - - type: mapping - label: 'Default value' - mapping: - value: - type: integer - label: 'Value' + mapping: + value: + type: integer + label: 'Value' # Schema for the configuration of the Decimal field type. -field.decimal.storage_settings: +field.storage_settings.decimal: type: mapping label: 'Decimal settings' mapping: @@ -673,9 +661,9 @@ field.decimal.storage_settings: type: integer label: 'Scale' -field.decimal.field_settings: +field.field_settings.decimal: type: mapping - label: 'Decimal' + label: 'Decimal settings' mapping: min: type: float @@ -690,29 +678,23 @@ field.decimal.field_settings: type: string label: 'Suffix' -field.decimal.value: - type: sequence +field.value.decimal: + type: mapping label: 'Default value' - sequence: - - type: mapping - label: 'Default value' - mapping: - value: - type: float - label: 'Value' + mapping: + value: + type: float + label: 'Value' # Schema for the configuration of the Float field type. -field.float.storage_settings: - type: sequence +field.storage_settings.float: + type: mapping label: 'Float settings' - sequence: - - type: string - label: 'setting' -field.float.field_settings: +field.field_settings.float: type: mapping - label: 'Float' + label: 'Float settings' mapping: min: type: float @@ -727,13 +709,10 @@ field.float.field_settings: type: string label: 'Suffix' -field.float.value: - type: sequence +field.value.float: + type: mapping label: 'Default value' - sequence: - - type: mapping - label: 'Default value' - mapping: - value: - type: float - label: 'Value' + mapping: + value: + type: float + label: 'Value' diff --git a/core/lib/Drupal/Core/Field/Entity/BaseFieldOverride.php b/core/lib/Drupal/Core/Field/Entity/BaseFieldOverride.php index 9fbe75c..b6b2a3c 100644 --- a/core/lib/Drupal/Core/Field/Entity/BaseFieldOverride.php +++ b/core/lib/Drupal/Core/Field/Entity/BaseFieldOverride.php @@ -154,8 +154,12 @@ protected function getBaseFieldDefinition() { * BaseFieldOverride::allowBundleRename() has not been called. */ public function preSave(EntityStorageInterface $storage) { - // Set the default instance settings. - $this->settings += \Drupal::service('plugin.manager.field.field_type')->getDefaultFieldSettings($this->getType()); + // Filter out unknown settings and make sure all settings are present, so + // that a complete field definition is passed to the various hooks and + // written to config. + $field_type_manager = \Drupal::service('plugin.manager.field.field_type'); + $default_settings = $field_type_manager->getDefaultFieldSettings($this->getType()); + $this->settings = array_intersect_key($this->settings, $default_settings) + $default_settings; // Call the parent's presave method to perform validate and calculate // dependencies. diff --git a/core/modules/comment/config/schema/comment.schema.yml b/core/modules/comment/config/schema/comment.schema.yml index 8b8c6a3..ee16820 100644 --- a/core/modules/comment/config/schema/comment.schema.yml +++ b/core/modules/comment/config/schema/comment.schema.yml @@ -56,40 +56,38 @@ comment.type.*: type: text label: 'Description' -field.comment.storage_settings: - type: sequence - label: 'Settings' - sequence: - - type: string - label: 'Setting' +field.storage_settings.comment: + type: mapping + label: 'Comment settings' + mapping: + comment_type: + label: 'Comment type' + type: string -field.comment.value: - type: sequence - label: 'Settings' - sequence: - - type: mapping - label: 'Settings' - mapping: - status: - type: integer - label: 'Status' - cid: - type: integer - label: 'Status' - last_comment_timestamp: - type: integer - label: 'Last comment timestamp' - last_comment_name: - type: integer - label: 'Name' - last_comment_uid: - type: integer - label: 'UID' - comment_count: - type: integer - label: 'Count' +field.value.comment: + type: mapping + label: 'Default value' + mapping: + status: + type: integer + label: 'Comment status' + cid: + type: integer + label: 'Last comment ID' + last_comment_timestamp: + type: integer + label: 'Last comment timestamp' + last_comment_name: + type: integer + label: 'Last comment name' + last_comment_uid: + type: integer + label: 'Last comment user ID' + comment_count: + type: integer + label: 'Number of comments' -field.comment.field_settings: +field.field_settings.comment: type: mapping label: 'Comment settings' mapping: diff --git a/core/modules/datetime/config/schema/datetime.schema.yml b/core/modules/datetime/config/schema/datetime.schema.yml index 3086164..8e76e48 100644 --- a/core/modules/datetime/config/schema/datetime.schema.yml +++ b/core/modules/datetime/config/schema/datetime.schema.yml @@ -1,6 +1,6 @@ # Schema for the configuration files of the Datetime module. -field.datetime.storage_settings: +field.storage_settings.datetime: type: mapping label: 'Datetime settings' mapping: @@ -8,23 +8,20 @@ field.datetime.storage_settings: type: string label: 'Date type' -field.datetime.field_settings: - type: sequence - label: 'Settings' - sequence: - - type: string +field.field_settings.datetime: + type: mapping + label: 'Datetime settings' -field.datetime.value: - type: sequence +field.value.datetime: + type: mapping label: 'Default value' - sequence: - - type: sequence - label: 'Default value' - sequence: - - type: string - label: 'Type' - - type: string - label: 'Value' + mapping: + default_date_type: + type: string + label: 'Default date type' + default_date: + type: string + label: 'Default date value' entity_view_display.field.datetime_default: type: entity_field_view_display_base diff --git a/core/modules/field/config/schema/field.schema.yml b/core/modules/field/config/schema/field.schema.yml index 184dc2f..429c929 100644 --- a/core/modules/field/config/schema/field.schema.yml +++ b/core/modules/field/config/schema/field.schema.yml @@ -25,7 +25,7 @@ field.storage.*.*: type: string label: 'Type' settings: - type: field.[%parent.type].storage_settings + type: field.storage_settings.[%parent.type] module: type: string label: 'Module' diff --git a/core/modules/field/src/Entity/FieldConfig.php b/core/modules/field/src/Entity/FieldConfig.php index 87f4400..a8d9c0a 100644 --- a/core/modules/field/src/Entity/FieldConfig.php +++ b/core/modules/field/src/Entity/FieldConfig.php @@ -138,9 +138,13 @@ public function preSave(EntityStorageInterface $storage) { $storage_definition = $this->getFieldStorageDefinition(); + // Filter out unknown settings and make sure all settings are present, so + // that a complete field definition is passed to the various hooks and + // written to config. + $default_settings = $field_type_manager->getDefaultFieldSettings($storage_definition->type); + $this->settings = array_intersect_key($this->settings, $default_settings) + $default_settings; + if ($this->isNew()) { - // Set the default field settings. - $this->settings += $field_type_manager->getDefaultFieldSettings($storage_definition->type); // Notify the entity storage. $entity_manager->getStorage($this->entity_type)->onFieldDefinitionCreate($this); } @@ -155,8 +159,6 @@ public function preSave(EntityStorageInterface $storage) { if ($storage_definition->uuid() != $this->original->getFieldStorageDefinition()->uuid()) { throw new FieldException("Cannot change an existing field's storage."); } - // Set the default field settings. - $this->settings += $field_type_manager->getDefaultFieldSettings($storage_definition->type); // Notify the entity storage. $entity_manager->getStorage($this->entity_type)->onFieldDefinitionUpdate($this, $this->original); } diff --git a/core/modules/field/src/Entity/FieldStorageConfig.php b/core/modules/field/src/Entity/FieldStorageConfig.php index 6b89e38..9ae0fc4 100644 --- a/core/modules/field/src/Entity/FieldStorageConfig.php +++ b/core/modules/field/src/Entity/FieldStorageConfig.php @@ -253,6 +253,13 @@ public function preSave(EntityStorageInterface $storage) { // Clear the derived data about the field. unset($this->schema); + // Filter out unknown settings and make sure all settings are present, so + // that a complete field definition is passed to the various hooks and + // written to config. + $field_type_manager = \Drupal::service('plugin.manager.field.field_type'); + $default_settings = $field_type_manager->getDefaultStorageSettings($this->type); + $this->settings = array_intersect_key($this->settings, $default_settings) + $default_settings; + if ($this->isNew()) { $this->preSaveNew($storage); } @@ -303,10 +310,6 @@ protected function preSaveNew(EntityStorageInterface $storage) { } $this->module = $field_type['provider']; - // Make sure all settings are present, so that a complete field - // definition is passed to the various hooks and written to config. - $this->settings += $field_type_manager->getDefaultStorageSettings($this->type); - // Notify the entity manager. $entity_manager->onFieldStorageDefinitionCreate($this); } @@ -333,7 +336,6 @@ public function calculateDependencies() { protected function preSaveUpdated(EntityStorageInterface $storage) { $module_handler = \Drupal::moduleHandler(); $entity_manager = \Drupal::entityManager(); - $field_type_manager = \Drupal::service('plugin.manager.field.field_type'); // Some updates are always disallowed. if ($this->type != $this->original->type) { @@ -343,10 +345,6 @@ protected function preSaveUpdated(EntityStorageInterface $storage) { throw new FieldException("Cannot change the entity type for an existing field storage."); } - // Make sure all settings are present, so that a complete field - // definition is passed to the various hooks and written to config. - $this->settings += $field_type_manager->getDefaultStorageSettings($this->type); - // See if any module forbids the update by throwing an exception. This // invokes hook_field_storage_config_update_forbid(). $module_handler->invokeAll('field_storage_config_update_forbid', array($this, $this->original)); diff --git a/core/modules/file/config/schema/file.schema.yml b/core/modules/file/config/schema/file.schema.yml index 0babe38..7a007c5 100644 --- a/core/modules/file/config/schema/file.schema.yml +++ b/core/modules/file/config/schema/file.schema.yml @@ -22,7 +22,7 @@ file.settings: type: path label: 'Directory' -field.file.storage_settings: +field.storage_settings.file: type: base_entity_reference_field_settings label: 'File settings' mapping: @@ -36,12 +36,9 @@ field.file.storage_settings: type: string label: 'Upload destination' -field.file.value: - type: sequence +field.value.file: + type: mapping label: 'Default value' - sequence: - - type: string - label: 'Value' base_file_field_field_settings: type: mapping @@ -59,7 +56,7 @@ base_file_field_field_settings: type: string label: 'Maximum upload size' -field.file.field_settings: +field.field_settings.file: type: base_file_field_field_settings label: 'File settings' mapping: diff --git a/core/modules/image/config/schema/image.schema.yml b/core/modules/image/config/schema/image.schema.yml index ef03075..0b09fcf 100644 --- a/core/modules/image/config/schema/image.schema.yml +++ b/core/modules/image/config/schema/image.schema.yml @@ -83,15 +83,15 @@ image.settings: type: boolean label: 'Suppress the itok query string for image derivatives' -field.image.storage_settings: - type: field.file.storage_settings +field.storage_settings.image: + type: field.storage_settings.file label: 'Image settings' mapping: default_image: type: field_default_image label: 'Default value' -field.image.field_settings: +field.field_settings.image: type: base_file_field_field_settings label: 'Image settings' mapping: @@ -117,28 +117,9 @@ field.image.field_settings: type: field_default_image label: 'Default value' -field.image.value: - type: sequence +field.value.image: + type: field_default_image label: 'Default value' - sequence: - - type: mapping - label: 'Default image' - mapping: - fid: - type: integer - label: 'File ID' - alt: - type: string - label: 'Alternative text' - title: - type: string - label: 'Title text' - width: - type: integer - label: 'Width' - height: - type: integer - label: 'Height' entity_view_display.field.image: type: entity_field_view_display_base diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/process/d6/FieldSettings.php b/core/modules/migrate_drupal/src/Plugin/migrate/process/d6/FieldSettings.php index 58fc6ea..9b76cb2 100644 --- a/core/modules/migrate_drupal/src/Plugin/migrate/process/d6/FieldSettings.php +++ b/core/modules/migrate_drupal/src/Plugin/migrate/process/d6/FieldSettings.php @@ -44,8 +44,6 @@ public function transform($value, MigrateExecutable $migrate_executable, Row $ro * A valid array of settings. */ public function getSettings($field_type, $global_settings, $widget_settings) { - $image_label = isset($widget_settings['alt']) ? $widget_settings['alt'] : ''; - $title_label = isset($widget_settings['title']) ? $widget_settings['title'] : ''; $max_length = isset($global_settings['max_length']) ? $global_settings['max_length'] : ''; $max_length = empty($max_length) ? 255 : $max_length; if (isset($global_settings['allowed_values'])) { @@ -74,12 +72,6 @@ public function getSettings($field_type, $global_settings, $widget_settings) { 'text' => array( 'max_length' => $max_length, ), - 'image' => array( - 'column_groups' => array( - 'alt' => array('label' => $image_label), - 'title' => array('label' => $title_label), - ), - ), 'datetime' => array('datetime_type' => 'datetime'), 'list_string' => array( 'allowed_values' => $allowed_values, diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldTest.php index f889acc..2f1c179 100644 --- a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldTest.php +++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldTest.php @@ -70,8 +70,6 @@ public function testFields() { $field_storage = entity_load('field_storage_config', 'node.field_test_imagefield'); $this->assertEqual($field_storage->type, "image", t('Field type is @fieldtype. It should be image.', array('@fieldtype' => $field_storage->type))); $settings = $field_storage->getSettings(); - $this->assertEqual($settings['column_groups']['alt']['label'], 'Test alt'); - $this->assertEqual($settings['column_groups']['title']['label'], 'Test title'); $this->assertEqual($settings['target_type'], 'file'); $this->assertEqual($settings['uri_scheme'], 'public'); $this->assertEqual($settings['default_image']['fid'], ''); diff --git a/core/modules/options/config/schema/options.schema.yml b/core/modules/options/config/schema/options.schema.yml index f0d444a..903dccc 100644 --- a/core/modules/options/config/schema/options.schema.yml +++ b/core/modules/options/config/schema/options.schema.yml @@ -1,6 +1,6 @@ # Schema for the configuration files of the Options module. -field.list_integer.storage_settings: +field.storage_settings.list_integer: type: mapping label: 'List (integer) settings' mapping: @@ -21,23 +21,19 @@ field.list_integer.storage_settings: type: string label: 'Allowed values function' -field.list_integer.field_settings: - label: 'List (integer)' +field.field_settings.list_integer: + label: 'List (integer) settings' type: mapping - mapping: { } -field.list_integer.value: - type: sequence +field.value.list_integer: + type: mapping label: 'Default value' - sequence: - - type: mapping - label: 'Default' - mapping: - value: - type: integer - label: 'Value' + mapping: + value: + type: integer + label: 'Value' -field.list_float.storage_settings: +field.storage_settings.list_float: type: mapping label: 'List (float) settings' mapping: @@ -58,23 +54,19 @@ field.list_float.storage_settings: type: string label: 'Allowed values function' -field.list_float.field_settings: - label: 'List (float)' +field.field_settings.list_float: + label: 'List (float) settings' type: mapping - mapping: { } -field.list_float.value: - type: sequence +field.value.list_float: + type: mapping label: 'Default value' - sequence: - - type: mapping - label: 'Default' - mapping: - value: - type: string - label: 'Value' + mapping: + value: + type: string + label: 'Value' -field.list_string.storage_settings: +field.storage_settings.list_string: type: mapping label: 'List (text) settings' mapping: @@ -95,21 +87,17 @@ field.list_string.storage_settings: type: string label: 'Allowed values function' -field.list_string.field_settings: - label: 'List (float)' +field.field_settings.list_string: + label: 'List (text) settings' type: mapping - mapping: { } -field.list_string.value: - type: sequence +field.value.list_string: + type: mapping label: 'Default value' - sequence: - - type: mapping - label: 'Default' - mapping: - value: - type: string - label: 'Value' + mapping: + value: + type: string + label: 'Value' entity_view_display.field.list_default: type: entity_field_view_display_base diff --git a/core/modules/taxonomy/config/schema/taxonomy.schema.yml b/core/modules/taxonomy/config/schema/taxonomy.schema.yml index e9aed2b..c1a1f6b 100644 --- a/core/modules/taxonomy/config/schema/taxonomy.schema.yml +++ b/core/modules/taxonomy/config/schema/taxonomy.schema.yml @@ -39,7 +39,7 @@ taxonomy.vocabulary.*: sequence: - type: taxonomy.vocabulary.third_party.[%key] -field.taxonomy_term_reference.storage_settings: +field.storage_settings.taxonomy_term_reference: type: base_entity_reference_field_settings label: 'Taxonomy term reference settings' mapping: @@ -60,7 +60,7 @@ field.taxonomy_term_reference.storage_settings: type: integer value: 'Parent' -field.taxonomy_term_reference.field_settings: +field.field_settings.taxonomy_term_reference: type: mapping label: 'Taxonomy term reference settings' mapping: @@ -68,16 +68,13 @@ field.taxonomy_term_reference.field_settings: type: string label: 'Reference method' -field.taxonomy_term_reference.value: - type: sequence - label: 'Default values' - sequence: - - type: mapping - label: 'Default value' - mapping: - target_id: - type: integer - label: 'Term ID' +field.value.taxonomy_term_reference: + type: mapping + label: 'Default value' + mapping: + target_id: + type: integer + label: 'Term ID' entity_view_display.field.entity_reference_rss_category: type: entity_field_view_display_base diff --git a/core/modules/text/config/schema/text.schema.yml b/core/modules/text/config/schema/text.schema.yml index f211cbf..b1b5f45 100644 --- a/core/modules/text/config/schema/text.schema.yml +++ b/core/modules/text/config/schema/text.schema.yml @@ -8,7 +8,7 @@ text.settings: type: integer label: 'Default summary length' -field.text.storage_settings: +field.storage_settings.text: type: mapping label: 'Text (formatted) settings' mapping: @@ -16,56 +16,45 @@ field.text.storage_settings: type: integer label: 'Maximum length' -field.text.field_settings: +field.field_settings.text: type: mapping label: 'Text (formatted) settings' - sequence: - - type: string -field.text.value: - type: sequence +field.value.text: + type: mapping label: 'Default value' - sequence: - - type: mapping - label: 'Default' - mapping: - value: - type: label - label: 'Value' - format: - type: string - label: 'Text format' - -field.text_long.storage_settings: + mapping: + value: + type: label + label: 'Value' + format: + type: string + label: 'Text format' + +field.storage_settings.text_long: label: 'Text (formatted, long) settings' type: mapping - mapping: { } -field.text_long.field_settings: +field.field_settings.text_long: label: 'Text (formatted, long) settings' type: mapping - mapping: { } -field.text_long.value: - type: sequence +field.value.text_long: + type: mapping label: 'Default value' - sequence: - - type: mapping - label: 'Default' - mapping: - value: - type: text - label: 'Value' - format: - type: string - label: 'Text format' - -field.text_with_summary.storage_settings: + mapping: + value: + type: text + label: 'Value' + format: + type: string + label: 'Text format' + +field.storage_settings.text_with_summary: label: 'Text (formatted, long, with summary) settings' type: mapping - mapping: { } -field.text_with_summary.field_settings: +field.field_settings.text_with_summary: type: mapping label: 'Text (formatted, long, with summary) settings' mapping: @@ -73,22 +62,19 @@ field.text_with_summary.field_settings: type: boolean label: 'Summary input' -field.text_with_summary.value: - type: sequence +field.value.text_with_summary: + type: mapping label: 'Default value' - sequence: - - type: mapping - label: 'Default' - mapping: - value: - type: text - label: 'Body' - summary: - type: string - label: 'Summary' - format: - type: string - label: 'Text format' + mapping: + value: + type: text + label: 'Body' + summary: + type: string + label: 'Summary' + format: + type: string + label: 'Text format' entity_view_display.field.text_default: type: entity_field_view_display_base