geofield_map.settings:
  type: config_object
  label: 'Geofield Map settings'
  mapping:
    gmap_api_key:
      type: string
      label: 'Google Maps API Key'
    gmap_api_localization:
      type: string
      label: 'Gmap Api Localization Index'
    theming:
      type: mapping
      label: 'Geofield Map Theming Settings'
      mapping:
        markers_location:
          type: mapping
          label: 'Markers Icons Storage location Info'
          mapping:
            security:
              type: string
              label: 'File Storage Security Method'
            rel_path:
              type: string
              label: 'Relative Path'
        additional_markers_location:
          type: string
          label: 'Additional Markers Location'
        markers_extensions:
          type: string
          label: 'Markers Allowed file extensions'
        markers_filesize:
          type: string
          label: 'Maximum file size'
    geocoder:
      type: mapping
      label: 'Geocoder Settings'
      mapping:
        caching:
          type: mapping
          label: 'Cache Settings'
          mapping:
            clientside:
              type: string
              label: 'Type of Client Side Storage (None, Local or Session Storage)'

geofield_map.map_dimensions:
  type: mapping
  label: Map Dimensions
  mapping:
    width:
      type: string
      label: Width
    height:
      type: string
      label: Height

geofield_map.map_geocoder:
  type: mapping
  label: Geocoder map integration
  mapping:
    control:
      type: integer
      label: Geocoder map control
    settings:
      type: mapping
      label: Gecoder settings
      mapping:
        providers:
          type: sequence
          label: Providers
          sequence:
            type: mapping
            label: Provider
            mapping:
              weight:
                type: integer
                label: Weight
              checked:
                type: boolean
                label: Checked
        min_terms:
          type: integer
          label: Minimum terms
        delay:
          type: integer
          label: Delay
        options:
          type: string
          label: Options
        zoom:
          type: integer
          label: Zoom
        infowindow:
          type: boolean
          label: Infowindow
        position:
          type: string
          label: Position
        input_size:
          type: integer
          label: Input size

field.widget.settings.geofield_map:
  type: field.widget.settings.geofield_latlon
  label: Geofield Map widget settings
  mapping:
    default_value:
      type: mapping
      label: Default value
      mapping:
        lat:
          type: float
          label: Latitude
        lon:
          type: float
          label: Longitude
    map_library:
      type: string
      label: Map library
    map_google_api_key:
      type: string
      label: Gmap Api Key
    map_google_places:
      type: mapping
      label: Google Places settings
      mapping:
        places_control:
          type: boolean
          label: Enable Address Geocoding
        places_additional_options:
          type: string
          label: Additional Options
    map_dimensions:
      type: geofield_map.map_dimensions
    map_type_google:
      type: string
      label: Google Map Type
    map_type_leaflet:
      type: string
      label: Leaflet Map Type
    map_type_selector:
      type: boolean
      label: Provide a Map type Selector on the Map
    zoom_level:
      type: integer
      label: Zoom Level
    zoom:
      type: mapping
      label: Zoom Settings
      mapping:
        start:
          type: integer
          label: Start Zoom Level
        focus:
          type: integer
          label: Focus Zoom Level
        min:
          type: integer
          label: Min Zoom Level
        max:
          type: integer
          label: Max Zoom Level
    click_to_find_marker:
      type: boolean
      label: Click to Find Marker
    click_to_place_marker:
      type: boolean
      label: Click to Place Marker
    click_to_remove_marker:
      type: boolean
      label: Click to Remove Marker
    hide_geocode_address:
      type: boolean
      label: Hide Geocode Address Input
    hide_coordinates:
      type: boolean
      label: Hide Lat/Lon Coordinates Input
    geoaddress_field:
      type: mapping
      label: Geoaddressed Field Settings
      mapping:
        field:
          type: string
          label: Field Name
        hidden:
          type: boolean
          label: Hide the Field in Content Edit Form
        disabled:
          type: boolean
          label: Disable the Field in Content Edit Form
    map_geocoder:
      type: geofield_map.map_geocoder

field.formatter.settings.geofield_google_map:
  type: mapping
  label: 'Geofield Google Map'
  mapping:
    map_dimensions:
      type: geofield_map.map_dimensions
    map_empty:
      type: mapping
      label: Map empty
      mapping:
        empty_behaviour:
          type: string
          label: Empty behaviour
        empty_message:
          type: string
          label: Empty Map Message
    map_center:
      type: mapping
      label: Map center
      mapping:
        lat:
          type: float
          label: Lat
        lon:
          type: float
          label: Lon
        center_force:
          type: boolean
          label: Center force
        geocode:
          type: string
          label: Geocode
    map_zoom_and_pan:
      type: mapping
      label: Map zoom and pan
      mapping:
        zoom:
          type: mapping
          label: Zoom
          mapping:
            initial:
              type: integer
              label: Initial
            force:
              type: boolean
              label: Force
            min:
              type: integer
              label: Min
            max:
              type: integer
              label: Max
            finer:
              type: integer
              label: Finer
        gestureHandling:
          type: string
          label: Gesture handling
        scrollwheel:
          type: boolean
          label: Scroll wheel
        draggable:
          type: boolean
          label: Draggable
        map_reset_position:
          type: string
          label: Map reset position
        map_reset:
          type: boolean
          label: Map reset
    map_controls:
      type: mapping
      label: Map controls
      mapping:
        zoom_control:
          type: boolean
          label: Zoom control
        map_type_id:
          type: string
          label: Map type id
        map_type_control:
          type: boolean
          label: Map type control
        map_type_control_options_type_ids:
          type: mapping
          label: Map type control options
          mapping:
            roadmap:
              type: string
              label: Roadmap
            satellite:
              type: string
              label: Satellite
            hybrid:
              type: string
              label: Hybrid
            terrain:
              type: string
              label: Terrain
        scale_control:
          type: boolean
          label: Scale control
        street_view_control:
          type: boolean
          label: Street view control
        fullscreen_control:
          type: boolean
          label: Fullscreen control
        disable_default_ui:
          type: boolean
          label: Disable default ui
    map_marker_and_infowindow:
      type: mapping
      label: Map marker and infowindow
      mapping:
        icon_image_mode:
          type: string
          label: Icon image mode
        icon_file_wrapper:
          type: mapping
          label: Icon file wrapper
          mapping:
            icon_file:
              type: mapping
              label: Icon file
              mapping:
                fids:
                  type: string
                  label: Fids
                upload_button:
                  type: string
                  label: Upload button
                remove_button:
                  type: string
                  label: Remove button
                upload:
                  type: string
                  label: Upload
                is_svg:
                  type: boolean
                  label: Is svg
            image_style:
              type: string
              label: Image style
        icon_image_path:
          type: string
          label: Icon image path
        infowindow_field:
          type: string
          label: Infowindow field
        view_mode:
          type: string
          label: View mode
        tooltip_field:
          type: string
          label: Tooltip field
        multivalue_split:
          type: boolean
          label: Multivalue split
        force_open:
          type: boolean
          label: Force open
    map_oms:
      type: mapping
      label: Map oms
      mapping:
        map_oms_control:
          type: boolean
          label: Map oms control
        map_oms_options:
          type: string
          label: Map oms options
    map_additional_options:
      type: string
      label: Map additional options
    map_geometries_options:
      type: string
      label: Map geometries options
    custom_style_map:
      type: mapping
      label: Custom style map
      mapping:
        custom_style_name:
          type: string
          label: Custom style name
        custom_style_options:
          type: string
          label: Custom style options
        custom_style_control:
          type: boolean
          label: Custom style control
        custom_style_default:
          type: boolean
          label: Custom style default
    map_markercluster:
      type: mapping
      label: Map markercluster
      mapping:
        markercluster_additional_options:
          type: string
          label: Markercluster additional options
        markercluster_control:
          type: boolean
          label: Markercluster control
    map_geocoder:
      type: geofield_map.map_geocoder
    map_additional_libraries:
      type: mapping
      label: Map additional libraries
      mapping:
        places:
          type: boolean
          label: Places
        drawing:
          type: boolean
          label: Drawing
        geometry:
          type: boolean
          label: Geometry
        visualization:
          type: boolean
          label: Visualization
    map_lazy_load:
      type: mapping
      label: Map lazy load
      mapping:
        lazy_load:
          type: boolean
          label: Lazy load
    gmap_api_key:
      type: string
      label: Gmap api key
