{{!
    This file is part of Moodle - http://moodle.org/

    Moodle is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    Moodle is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
}}
{{!
    @template core/checkbox-toggleall-master

    Template for a master checkbox in a toggle group. The master checkbox toggles the checked states of the slave checkboxes.

    Data attributes required for JS:
    * data-action
    * data-toggle
    * data-togglegroup

    Example context (json):
    {
        "id": "select-all",
        "name": "select-all",
        "togglegroup": "toggle-group",
        "label": "Select everything!",
        "checked": true,
        "classes": "p-1",
        "selectall": "Select all",
        "deselectall": "Deselect all",
        "labelclasses": "badge badge-info"
    }
}}
<input id="{{id}}" name="{{name}}" type="checkbox" {{#classes}}class="{{.}}"{{/classes}} value="{{value}}"
       data-action="toggle"
       data-toggle="master"
       data-togglegroup="{{togglegroup}}"
       data-toggle-selectall="{{selectall}}"
       data-toggle-deselectall="{{deselectall}}"
       {{#checked}}checked="checked"{{/checked}}
/>
{{#label}}
    <label for="{{id}}" class="{{labelclasses}}">{{.}}</label>
{{/label}}

{{#js}}
    require(['core/checkbox-toggleall'], function(ToggleAll) {
        ToggleAll.init();
    });
{{/js}}
