/* Espe | Ein schlichtes Werkzeug zur Mitglieder-Verwaltung | Frontend Copyright (C) 2024 Christian Fraß This program 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. This program 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 this program. If not, see . */ namespace _zackeneule.widget.password_policy { /** */ export class class_password_policy implements lib_plankton.zoo_widget.interface_widget { /** */ private data : lib_plankton.password.type_policy; /** */ private title : (null | string); /** */ public constructor( data : lib_plankton.password.type_policy, { "title": title = lib_plankton.translate.get("widget.password_policy.title"), } : { title ?: (null | string); } = { } ) { this.data = data; this.title = title; } /** */ public load( target_element : Element ) : Promise { const entries : Array = ( [] // minimum_length .concat( (this.data.minimum_length === null) ? [] : lib_plankton.translate.get( "widget.password_policy.minimum_length", { "minimum_length": this.data.minimum_length.toFixed(0), } ) ) // maximum_length .concat( (this.data.minimum_length === null) ? [] : lib_plankton.translate.get( "widget.password_policy.maximum_length", { "maximum_length": this.data.maximum_length.toFixed(0), } ) ) // must_contain_letter .concat( (! this.data.must_contain_letter) ? [] : lib_plankton.translate.get( "widget.password_policy.must_contain_letter", { } ) ) // must_contain_number .concat( (! this.data.must_contain_number) ? [] : lib_plankton.translate.get( "widget.password_policy.must_contain_number", { } ) ) // must_contain_special_character .concat( (! this.data.must_contain_special_character) ? [] : lib_plankton.translate.get( "widget.password_policy.must_contain_special_character", { } ) ) ); target_element.appendChild(_zackeneule.helpers.template_request("widget-password_policy")); target_element.querySelector(".widget-password_policy").classList.toggle( "widget-password_policy-without_title", (this.title === null) ); target_element.querySelector(".widget-password_policy-title").textContent = (this.title ?? ""); const element_ul : HTMLElement = target_element.querySelector(".widget-password_policy-entries"); entries.forEach( entry => { const element_li : HTMLElement = document.createElement("li"); element_li.textContent = entry; element_ul.appendChild(element_li); } ); return Promise.resolve(undefined); } } }