{{!
    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_admin/setting_configpasswordunmask

    Admin password unmask setting template.

    Context variables required for this template:
    * name - form element name
    * size - form element size
    * value - form element value
    * id - element id
    * readonly - has value been defined in config.php

    Example context (json):
    {
        "name": "test",
        "id": "test0",
        "size": "8",
        "value": "secret",
        "readonly": false
    }
}}
{{#readonly}}
    <div class="form-password">
        <input type="text"
               name="{{{name}}}"
               id="{{{id}}}"
               value="********"
               size="{{{size}}}"
               class="form-control"
               disabled>
    </div>
{{/readonly}}
{{^readonly}}
    <div id="form-password-eye-{{{uniqid}}}">
        <div class="d-flex align-items-center">
            <input type="password"
                   name="{{{name}}}"
                   id="{{{id}}}"
                   value="{{{value}}}"
                   size="{{{size}}}"
                   class="form-control"
                   placeholder="**********">
            <button type="button"
                    id="form-password-eye-{{{uniqid}}}"
                    class="btn btn-outline-secondary toggle-password h-100 ms-2"
                    tabindex="-1"
                    aria-label="{{#str}} passwordunmaskrevealhint, form {{/str}}">
                <i class="fa fa-eye"></i>
            </button>
        </div>
    </div>
    <script>
        document.getElementById("form-password-eye-{{{uniqid}}}").addEventListener("click", function (e) {
            if (e.target.closest(".toggle-password")) {
                const btn = e.target.closest(".toggle-password");
                const input = btn.parentElement.querySelector("input");
                const icon = btn.querySelector("i");

                if (input.type === "password") {
                    input.type = "text";
                    icon.classList.remove("fa-eye");
                    icon.classList.remove("fa-eye");
                    icon.classList.add("fa-eye-slash");
                    btn.classList.remove("btn-outline-secondary")
                    btn.classList.add("btn-secondary");
                    btn.setAttribute("aria-label", "{{#str}} hide {{/str}}");
                } else {
                    input.type = "password";
                    icon.classList.remove("fa-eye-slash");
                    icon.classList.add("fa-eye");
                    btn.classList.remove("btn-secondary");
                    btn.classList.add("btn-outline-secondary")
                    btn.setAttribute("aria-label", "{{#str}} passwordunmaskrevealhint, form {{/str}}");
                }
            }
        });
    </script>
{{/readonly}}
