diff --git a/modules/core/map/src/Plugin/Field/FieldWidget/GeofieldWidget.php b/modules/core/map/src/Plugin/Field/FieldWidget/GeofieldWidget.php
index 13849d72a..49b101d2e 100644
--- a/modules/core/map/src/Plugin/Field/FieldWidget/GeofieldWidget.php
+++ b/modules/core/map/src/Plugin/Field/FieldWidget/GeofieldWidget.php
@@ -133,12 +133,12 @@ class GeofieldWidget extends GeofieldBaseWidget {
*/
public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) {
- // Wrap the map in a collapsible details element.
+ // Use the farm_map_wkt form element.
+ $element['#type'] = 'farm_map_wkt';
+
+ // Wrap the map with a unique id for populating from files.
$field_name = $this->fieldDefinition->getName();
$field_wrapper_id = Html::getUniqueId($field_name . '_wrapper');
- $element['#type'] = 'details';
- $element['#title'] = $this->t('Geometry');
- $element['#open'] = TRUE;
$element['#prefix'] = '
';
$element['#suffix'] = '
';
@@ -146,32 +146,11 @@ class GeofieldWidget extends GeofieldBaseWidget {
$form_value = $form_state->getValue([$field_name, $delta, 'value']);
$field_value = $items[$delta]->value;
$current_value = $form_value ?? $field_value;
+ $element['#default_value'] = $current_value;
- // Define the map render array.
- $element['map'] = [
- '#type' => 'farm_map',
- '#map_type' => 'geofield_widget',
- '#map_settings' => [
- 'wkt' => $current_value,
- 'behaviors' => [
- 'wkt' => [
- 'edit' => TRUE,
- 'zoom' => TRUE,
- ],
- ],
- ],
- ];
-
- // Add a textarea for the WKT value.
+ // Configure to display raw geometry.
$display_raw_geometry = $this->getSetting('display_raw_geometry');
- $element['value'] = [
- '#type' => $display_raw_geometry ? 'textarea' : 'hidden',
- '#title' => $this->t('Geometry'),
- '#default_value' => $current_value,
- '#attributes' => [
- 'data-map-geometry-field' => TRUE,
- ],
- ];
+ $element['#display_raw_geometry'] = $display_raw_geometry;
// Add an option to populate geometry using files field.
// The "populate_file_field" field setting must be configured and the
@@ -192,6 +171,7 @@ class GeofieldWidget extends GeofieldBaseWidget {
':input[name="' . $populate_file_field . '[0][fids]"]' => ['empty' => TRUE],
],
],
+ '#weight' => 10,
];
}