2023-07-27 14:14:55 +00:00
{{- $page := .page }}
{{- if and (not $page) .context }}
{{- $page = .context }}
2023-11-20 23:53:33 +00:00
{{- warnf "%q: DEPRECATED parameter 'context' for shortcode 'tabs' found, use 'page' instead; see https://mcshelby.github.io/hugo-theme-relearn/basics/migration#5180" $page.File.Filename }}
2023-07-27 14:14:55 +00:00
{{- end }}
2023-09-30 19:45:39 +00:00
{{- $groupid := .groupid | default (partial "make-random-md5.hugo" $page) | plainify | anchorize }}
2023-10-02 23:28:24 +00:00
{{- $color := .color }}
2023-06-05 21:18:12 +00:00
{{- $style := .style }}
{{- $title := .title }}
{{- $icon := .icon }}
{{- $tabs := slice }}
{{- range $tab := (.content | default slice) }}
{{- if and (not $tab.title) $tab.name }}
2023-11-20 23:53:33 +00:00
{{- warnf "%q: DEPRECATED parameter 'name' for shortcode 'tab' found, use 'title' instead; see https://mcshelby.github.io/hugo-theme-relearn/basics/migration#5160" $page.File.Filename }}
2023-06-05 21:18:12 +00:00
{{- $tab = merge $tab (dict "title" .name) }}
{{- end }}
{{- with $tab }}
2023-06-07 19:04:47 +00:00
{{- $color := .color | default $color | default "" }}
2024-09-05 18:02:38 +00:00
{{- $content := trim .content "\n\r\t " }}
{{- $hasContent := ne (strings.TrimLeft "< p > " $content) "" }}
{{- if not (hasPrefix $content "< ") }}
{{- $content = printf "< p > \n%s" $content }}
{{- end }}
2023-06-07 19:04:47 +00:00
{{- $style := .style | default $style | default (cond (ne $color "") "filled" "initial") }}
2024-09-12 05:55:24 +00:00
{{- $boxStyle := partial "_relearn/boxStyle.gotmpl" (dict "style" $style "title" .title "icon" .icon) }}
{{- $title := trim ($boxStyle.title) " " }}
{{- $icon := trim ($boxStyle.icon) " " }}
2023-06-05 21:18:12 +00:00
{{- if and $icon (not (findRE ".*?\\bfa-\\w.*?" $icon)) }}
{{- $icon = printf "fa-fw fas fa-%s" $icon }}
{{- end }}
2024-09-05 18:02:38 +00:00
{{- if $hasContent }}
{{- $tabs = $tabs | append (dict
"color" $color
"content" $content
"icon" $icon
"itemid" (printf "%s%s" ($title | $page.RenderString | plainify | anchorize) ($icon | plainify | anchorize))
"style" $style
"title" $title
) }}
{{- end }}
2023-06-05 21:18:12 +00:00
{{- end }}
{{- end }}
{{- $color = .color | default "" }}
2023-06-07 19:04:47 +00:00
{{- $style = .style | default (cond (ne $color "") "filled" "initial") }}
2024-09-12 05:55:24 +00:00
{{- $boxStyle := partial "_relearn/boxStyle.gotmpl" (dict "style" $style "title" .title "icon" .icon) }}
{{- $title := trim ($boxStyle.title) " " }}
{{- $icon := trim ($boxStyle.icon) " " }}
2023-06-05 21:18:12 +00:00
{{- if and $icon (not (findRE ".*?\\bfa-\\w.*?" $icon)) }}
{{- $icon = printf "fa-fw fas fa-%s" $icon }}
{{- end }}
2023-07-27 14:14:55 +00:00
{{- with $page }}
2024-09-05 18:02:38 +00:00
{{- if len $tabs -}}
2023-06-05 16:31:55 +00:00
< div class = "tab-panel" data-tab-group = "{{ $groupid }}" >
2022-06-22 18:32:18 +00:00
< div class = "tab-nav" >
2023-07-27 14:14:55 +00:00
< div class = "tab-nav-title" > {{ if $icon }}< i class = "{{ $icon }}" > < / i > {{ end }}{{ if and $icon $title }} {{ end }}{{ $title | $page.RenderString }}{{ if (not $title) }}​ {{ end }}< / div >
2024-09-05 18:02:38 +00:00
{{- range $idx, $tab := $tabs }}
2022-06-22 18:32:18 +00:00
< button
2023-06-05 21:18:12 +00:00
data-tab-item="{{ .itemid }}"
2023-11-18 23:55:23 +00:00
class="tab-nav-button tab-panel-style cstyle {{ .style }}{{ cond (eq $idx 0) " active" ""}}"{{ if .color }} style="--VARIABLE-BOX-color: {{ .color }};"{{ end }}{{ if eq $idx 0 }} tabindex="-1"{{ end }}
2023-06-05 21:18:12 +00:00
onclick="switchTab('{{ $groupid }}','{{ .itemid }}')"
2023-01-29 15:45:42 +00:00
>
2023-10-01 19:06:39 +00:00
< span class = "tab-nav-text" > {{ if .icon }}< i class = "{{ .icon }}" > < / i > {{ end }}{{ if and .icon .title }} {{ end }}{{ .title | $page.RenderString }}{{ if (not .title) }}​ {{ end }}< / span >
2023-06-04 22:27:51 +00:00
< / button >
2024-09-05 18:02:38 +00:00
{{- end }}
2022-06-22 18:32:18 +00:00
< / div >
2023-06-05 16:31:55 +00:00
< div class = "tab-content-container" >
2024-09-05 18:02:38 +00:00
{{- range $idx, $tab := $tabs }}
2023-01-29 15:45:42 +00:00
< div
2023-06-05 21:18:12 +00:00
data-tab-item="{{ .itemid }}"
class="tab-content tab-panel-style cstyle {{ .style }}{{ cond (eq $idx 0) " active" ""}}"{{ if .color }} style="--VARIABLE-BOX-color: {{ .color }};"{{ end }}>
2023-06-05 16:31:55 +00:00
< div class = "tab-content-text" >
2024-09-05 18:02:38 +00:00
{{ .content | safeHTML }}
< / div >
2023-06-05 16:31:55 +00:00
< / div >
2024-09-05 18:02:38 +00:00
{{- end }}
2022-06-22 18:32:18 +00:00
< / div >
< / div >
2024-09-05 18:02:38 +00:00
{{- end }}
2022-06-22 18:32:18 +00:00
{{- end }}