{{- $mapbox := (.Page.Scratch.Get "params").mapbox | default dict -}}

{{- $lng := cond .IsNamedParams (.Get "lng") (.Get 0) -}}
{{- $lat := cond .IsNamedParams (.Get "lat") (.Get 1) -}}
{{- $zoom := cond .IsNamedParams (.Get "zoom") (.Get 2) | default 10 -}}
{{- $marked := cond .IsNamedParams (.Get "marked") (.Get 3) | ne false -}}
{{- $lightStyle := $mapbox.lightStyle -}}
{{- $darkStyle := $mapbox.darkStyle -}}
{{- $navigation := $mapbox.navigation -}}
{{- $geolocate := $mapbox.geolocate -}}
{{- $scale := $mapbox.scale -}}
{{- $fullscreen := $mapbox.fullscreen -}}
{{- $width := "100%" -}}
{{- $height := "20rem" -}}

{{- if .IsNamedParams -}}
    {{- $lightStyle = .Get "light-style" | default $lightStyle -}}
    {{- $darkStyle = .Get "dark-style" | default $darkStyle -}}
    {{- $navigation = .Get "navigation" | ne false | and $navigation -}}
    {{- $geolocate = .Get "geolocate" | ne false | and $geolocate -}}
    {{- $scale = .Get "scale" | ne false | and $scale -}}
    {{- $fullscreen = .Get "fullscreen" | ne false | and $fullscreen -}}
    {{- $width = .Get "width" | default $width -}}
    {{- $height = .Get "height" | default $height -}}
{{- else -}}
    {{- $lightStyle = .Get 4 | default $lightStyle -}}
    {{- $darkStyle = .Get 5 | default $darkStyle -}}
{{- end -}}
{{- $darkStyle = $darkStyle | default $lightStyle -}}
{{- $options := dict "lng" $lng "lat" $lat "zoom" $zoom "marked" $marked "lightStyle" $lightStyle "darkStyle" $darkStyle "geolocate" $geolocate "navigation" $navigation "scale" $scale "fullscreen" $fullscreen -}}
{{- $id := dict "Content" $options "Scratch" .Page.Scratch | partial "function/id.html" -}}
<div class="mapbox" id="{{ $id }}" style="width: {{ $width }}; height: {{ $height }};"></div>
{{- .Page.Scratch.SetInMap "this" "mapbox" true -}}
