{% set htmlId = _args.htmlId|default('toggler-' ~ token()) %}
{% set text = _args.text %}
{% set enable = _args.enable %}
{% set disable = (_args.disable is defined) ? _args.disable : [] %}
{% set checked = _args.checked|default(false) %}
<div class="checkbox">
<input class="checkbox__input" id="{{ htmlId }}" type="checkbox"{% if checked %} checked{% endif %} />
<label class="checkbox__label" for="{{ htmlId }}">{{ text }}</label>
{%- if helpText|default('') -%}
<span
class="icon icon--tip icon-solid-help"
data-toggle='tooltip'
data-trigger='click'
data-original-title="{{ helpText }}"
>
</span>
{%- endif -%}
</div>
{% inline_script %}
<script>
$(function () {
$('#{{ htmlId }}')
.on('change', function (e) {
var $target = $(e.currentTarget),
checked = $target.prop('checked'),
$enable = $('{% for enbl in enable %}#{{ enbl.vars.id }}{% if not loop.last %},{% endif %}{% endfor %}'),
$disable = $('{% for dsbl in disable %}#{{ dsbl.vars.id }}{% if not loop.last %},{% endif %}{% endfor %}');
function show($elements) {
$elements.each(function (index, elem) {
var $elem = $(elem);
if ($elem.is('[data-name]')) {
$elem
.attr('name', $elem.attr('data-name'))
.removeAttr('data-name')
;
}
$elem.closest('.form-group').removeClass('hidden');
});
}
function hide($elements) {
$elements.each(function (index, elem) {
var $elem = $(elem);
$elem
.attr('data-name', $elem.attr('name'))
.removeAttr('name');
$elem.closest('.form-group').addClass('hidden');
});
}
show((checked) ? $enable : $disable);
hide((checked) ? $disable : $enable);
})
.trigger('change');
});
</script>
{% endinline %}