{{define "formtabler_generator"}}
{{if .Title}}

{{.Title}}

{{end}}
{{if .SuccessMessage}} {{end}} {{if .FieldsetTitle}}
{{.FieldsetTitle}} {{if .FieldsetDescription}}

{{.FieldsetDescription}}

{{end}} {{end}} {{if gt .Columns 1}}
{{end}} {{$cols := .Columns}} {{$layout := .Layout}} {{range $i, $field := .Fields}} {{if and (gt $cols 1) (eq $layout "horizontal")}}
{{else if gt $cols 1}} {{if eq $cols 2}}
{{else}}
{{end}} {{end}} {{if eq $field.Type "hidden"}} {{else if or (eq $field.Type "select") (eq $field.Type "multiselect")}}
{{if $field.HelpText}}{{$field.HelpText}}{{end}} {{if $field.ErrorText}}
{{$field.ErrorText}}
{{end}}
{{else if eq $field.Type "textarea"}}
{{if $field.HelpText}}{{$field.HelpText}}{{end}} {{if $field.ErrorText}}
{{$field.ErrorText}}
{{end}}
{{else if eq $field.Type "checkbox"}}
{{$field.Label}}{{if $field.Required}} *{{end}}
{{if $field.Options}} {{range $field.Options}} {{end}} {{else}} {{end}} {{if $field.HelpText}}{{$field.HelpText}}{{end}}
{{else if eq $field.Type "radio"}}
{{$field.Label}}{{if $field.Required}} *{{end}}
{{range $field.Options}} {{end}} {{if $field.HelpText}}{{$field.HelpText}}{{end}}
{{else if eq $field.Type "toggle"}}
{{if $field.HelpText}}{{$field.HelpText}}{{end}}
{{else if eq $field.Type "file"}}
{{if $field.HelpText}}{{$field.HelpText}}{{end}} {{if $field.ErrorText}}
{{$field.ErrorText}}
{{end}}
{{else if eq $field.Type "color"}}
{{if $field.HelpText}}{{$field.HelpText}}{{end}}
{{else if eq $field.Type "range"}}
{{if $field.HelpText}}{{$field.HelpText}}{{end}}
{{else if eq $field.Type "phone"}}
{{if $field.HelpText}}{{$field.HelpText}}{{end}} {{if $field.ErrorText}}
{{$field.ErrorText}}
{{end}}
{{else}} {{/* Default: text, email, number, url, date, datetime-local, password, and any unknown type */}}
{{if $field.HelpText}}{{$field.HelpText}}{{end}} {{if $field.ErrorText}}
{{$field.ErrorText}}
{{end}}
{{end}} {{if and (gt $cols 1) (eq $layout "horizontal")}}
{{else if gt $cols 1}}
{{end}} {{end}} {{if gt .Columns 1}}
{{end}} {{if .FieldsetTitle}}
{{end}}
{{if .ShowReset}} {{end}}
{{end}}