{{!
    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_form/element-passwordunmask

    Moodle passwordunmask form element template.

    The purpose of this template is to render a passwordunmask form element.

    Classes required for JS:
    * none

    Data attributes required for JS:
    * none

    Context variables required for this template:
    * element
        * id
        * name
        * value
        * size

    Example context (json):
    {
        "element": {
            "id": "example_password_unmask",
            "name": "example",
            "value": "Password1!",
            "size": 40
        }
    }

}}
{{< core_form/element-template }}
    {{$ element }}
        <span data-passwordunmask="wrapper" data-passwordunmaskid="{{ element.id }}">
            <span data-passwordunmask="editor">
                <input  type="password"
                        {{# element.frozen }}readonly{{/ element.frozen }}
                        {{^ element.hardfrozen}} name="{{ element.name }}"{{/ element.hardfrozen }}
                        id="{{ element.id }}"
                        value="{{ element.value }}"
                        class="form-control d-none {{# error }}is-invalid{{/ error }}"
                        data-size="{{ element.size }}"
                        {{# error }}
                            autofocus aria-describedby="{{ element.iderror }}"
                        {{/ error }}
                        {{{ element.attributes }}}
                        >
            </span>
            {{^ element.frozen }}
            <a href="#" class="form-control" data-passwordunmask="edit" title="{{ edithint }}">
            {{/ element.frozen }}
                <span data-passwordunmask="displayvalue">{{> core_form/element-passwordunmask-fill }}</span>
            {{^ element.frozen }}
                {{# pix }} t/passwordunmask-edit, core, {{# str }} passwordunmaskedithint, form {{/ str }}{{/ pix }}
            </a>
            {{/ element.frozen }}
            <a href="#" data-passwordunmask="unmask" title="{{ unmaskhint }}">
                {{# pix }} t/passwordunmask-reveal, core, {{# str }} passwordunmaskrevealhint, form {{/ str }}{{/ pix }}
            </a>
            <span data-passwordunmask="instructions" class="form-text text-muted" style="display: none;">
                {{^ element.frozen }}
                {{# str }} passwordunmaskinstructions, form {{/ str }}
                {{/ element.frozen }}
            </span>
        </span>
    {{/ element }}
{{/ core_form/element-template }}
{{#js}}
require(['core_form/passwordunmask'], function(PasswordUnmask) {
    new PasswordUnmask("{{ element.id }}");
});
{{/ js }}
