function pinMeBB( elID, data = { limit: 5, minChar: 5, show: 0, } ) { if ((data.minChar || data.limit) > data.limit) data.limit = data.minChar; var el = document.getElementById(elID); el.insertAdjacentHTML( "beforeend", `




` ); const input_value = document.getElementById("password"); const display_value = document.getElementById("displayPass"); const eventEnter = new CustomEvent("onEnter", { bubbles: true, detail: { password: () => input_value.value }, }); const eventMaxed = new CustomEvent("onMaxChar",{ detail: { password: () => input_value.value }, }); const eventEmpty = new CustomEvent("onEmpty",{ detail: { password: () => input_value.value }, }); function field(value) { if (input_value.value.length >= data.limit) { el.dispatchEvent(eventMaxed); } else { input_value.value = input_value.value + value; // TODO if show == 1 display_value.value = display_value.value + value; display_value.value += data.show === 1 ? value : "*"; } } document .getElementById("enter") .addEventListener("click", (e) => el.dispatchEvent( input_value.value.length < (data.minChar || data.limit) ? eventEmpty : eventEnter ) ); document.getElementById("clear").addEventListener("click", (e) => { input_value.value = ""; display_value.value = ""; }); var pads = document.getElementsByClassName("calc"); for (var i = 0; i < pads.length; i++) { pads[i].addEventListener("click", (e) => { field(e.target.value); }); pads[i].addEventListener("keydown", (e) => { if (e.keyCode === 13) { e.preventDefault(); } }); } return el; }