{{!
    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 }}
        <div data-passwordunmask="wrapper" data-passwordunmaskid="{{ element.id }}">
            <div class="d-flex align-items-center">
                <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 }}
                            {{#required}}
                                aria-required="true"
                            {{/required}}
                            {{{ 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="#" class="btn btn-link icon-no-margin p-1 ms-1" data-passwordunmask="unmask" title="{{ unmaskhint }}">
                    {{# pix }} t/passwordunmask-reveal, core, {{# str }} passwordunmaskrevealhint, form {{/ str }}{{/ pix }}
                </a>
            </div>
            <span data-passwordunmask="instructions" class="form-text text-muted" style="display: none;">
                {{^ element.frozen }}
                {{# str }} passwordunmaskinstructions, form {{/ str }}
                {{/ element.frozen }}
            </span>
        </div>
    {{/ element }}
{{/ core_form/element-template }}
{{#js}}
require(['core_form/passwordunmask'], function(PasswordUnmask) {
    new PasswordUnmask("{{ element.id }}");
});
{{/ js }}
