{% import _self as option_control_macros %}

{% if option.type is same as('checkbox') %}
	<div class="form-check form-switch">
		<span class="shield-option-switch-state {{ ( option.value is same as('Y') ) ? 'on' : '' }}">
			{{ ( option.value is same as('Y') ) ? 'Enabled' : 'Disabled' }}
		</span>
		<input type="checkbox"
			   class="form-check-input"
			   id="Opt-{{ option.key }}"
			   name="{{ option.key }}"
			   role="switch"
			   {% if option.disabled %}disabled="disabled"{% endif %}
			   aria-labelledby="Label-{{ option.key }}"
			   value="Y"
				{{ ( option.value is same as('Y') ) ? 'checked="checked"' : '' }}
		/>
	</div>

{% elseif option.type is same as('text') %}

	<input type="text" name="{{ option.key }}"
		   id="Opt-{{ option.key }}"
		   aria-labelledby="Label-{{ option.key }}"
		   value="{{ option.value|raw }}"
		   placeholder="{{ option.value }}"
			{% if option.disabled %}
				disabled="disabled"
			{% endif %}
		   class="form-control" />

{% elseif option.type is same as('password') %}
	{{ option_control_macros.password_control( option, strings ) }}

{% elseif option.type is same as('email') %}

	<input type="text" name="{{ option.key }}"
		   id="Opt-{{ option.key }}"
		   aria-labelledby="Label-{{ option.key }}"
		   value="{{ option.value|raw }}"
		   placeholder="{{ option.value }}"
		   {% if option.disabled %}disabled="disabled"{% endif %}
		   class="form-control" />

{% elseif option.type is same as('select') %}

	<select name="{{ option.key }}"
			class="form-select"
			id="Opt-{{ option.key }}"
			{% if option.disabled %}disabled="disabled"{% endif %}
			aria-label="Select for: {{ option.name }}">
		{% for option_value, option_value_settings in option.value_options %}
			<option
					value="{{ option_value }}"
					{% if not option_value_settings.is_available %}disabled="disabled"{% endif %}
					{% if option.value matches "'^"~option_value~"$'" %}selected{% endif %}
			>{{ option_value_settings.name|raw }}</option>
		{% endfor %}
	</select>

{% elseif option.type is same as('multiple_select') %}
	{{ option_control_macros.multiple_select_control( option, strings ) }}

{% elseif option.type is same as('array') %}

	<textarea name="{{ option.key }}"
			  id="Opt-{{ option.key }}"
			  aria-labelledby="Label-{{ option.key }}"
			  placeholder="{{ option.value|raw }}"
			  rows="{{ option.rows }}"
			  {% if option.disabled %}disabled="disabled"{% endif %}
			  class="form-control">{{ option.value|raw }}</textarea>

{% elseif option.type is same as('comma_separated_lists') %}

	<textarea name="{{ option.key }}"
			  id="Opt-{{ option.key }}"
			  aria-labelledby="Label-{{ option.key }}"
			  placeholder="{{ option.value }}"
			  rows="{{ option.rows }}"
			  {% if option.disabled %}disabled="disabled"{% endif %}
			  class="form-control">{{ option.value }}</textarea>

{% elseif option.type is same as('noneditable_text') %}

	<input name="{{ option.key }}" id="Opt-{{ option.key }}"
		   aria-labelledby="Label-{{ option.key }}"
		   type="text" readonly
		   class="form-control"
		   value="{{ option.value }}" />

{% elseif option.type is same as('integer') %}

	<input type="text" name="{{ option.key }}"
		   id="Opt-{{ option.key }}"
		   aria-labelledby="Label-{{ option.key }}"
		   value="{{ option.value }}"
		   placeholder="{{ option.value }}"
		   {% if option.disabled %}disabled="disabled"{% endif %}
		   class="form-control" />

{% else %}
	ERROR: Should never reach this point.
{% endif %}

{% macro password_control(option, strings) %}
	<div class="shield-option-stacked-control">
		<input type="password" name="{{ option.key }}"
			   id="Opt-{{ option.key }}"
			   value="{{ option.value|raw }}"
			   placeholder="{{ strings.supply_password }}"
			   autocomplete="new-password"
			   {% if option.disabled %}disabled="disabled"{% endif %}
			   class="form-control" />

		<input type="password" name="{{ option.key }}_confirm"
			   id="Opt-{{ option.key }}_confirm"
			   value="{{ option.value|raw }}"
			   placeholder="{{ strings.confirm_password }}"
			   autocomplete="new-password"
			   {% if option.disabled %}disabled="disabled"{% endif %}
			   class="form-control" />
	</div>
{% endmacro %}

{% macro multiple_select_control(option, strings) %}
	<div class="shield-option-multiple-list">
		{% for option_value, option_value_settings in option.value_options %}
			<div class="form-check shield-option-multiple-item">
				<input type="checkbox"
					   class="form-check-input"
					   id="Opt-{{ option.key }}_{{ option_value }}"
					   name="{{ option.key }}[]"
					   value="{{ option_value }}"
					   {% if not option_value_settings.is_available %}disabled="disabled"{% endif %}
						{% if option_value in option.value %}
							checked="checked"
						{% endif %}
						{% if option.disabled %}disabled="disabled"{% endif %}
				/>
				<label class="form-check-label"
					   for="Opt-{{ option.key }}_{{ option_value }}"
					   {% if not option_value_settings.is_available %}title="Available with {{ strings.plugin_name }}"{% endif %}
				>
					{% if option_value in option.value %}
						<strong>{{ option_value_settings.name|raw }}</strong>
					{% else %}
						{{ option_value_settings.name|raw }}
					{% endif %}
				</label>
			</div>
		{% endfor %}
	</div>
{% endmacro %}
