document.querySelectorAll('.email-input').forEach(input => { input.addEventListener('input', function () { if (/^\S+@\S+\.\S+$/.test(this.value)) { this.classList.remove('is-invalid'); } else { this.classList.add('is-invalid'); } }); }); document.addEventListener('DOMContentLoaded', function () { var dropdownItems = document.querySelectorAll('.culture-dropdown-item'); dropdownItems.forEach(function (item) { item.addEventListener('click', async function(event) { event.preventDefault(); var language = this.getAttribute('data-language'); var flagCode = this.getAttribute('data-flag'); document.getElementById('selectedFlag').className = 'fi ' + flagCode + ' me-2'; await setLanguage(language); }); }); }); const bsNotify = (message, options) => alertify.notify( ``, 'custom', options?.delay ?? 5); class Comp { static ActPanel = class { static __Root; static get Root() { Comp.ActPanel.__Root ??= document.getElementById("flex-action-panel") return Comp.ActPanel.__Root } static get Elements() { return [...Comp.ActPanel.Root.children] } static get IsHided() { return Comp.ActPanel.Root.style.display == 'none'; } /** * @param {string} value */ static set Display(value) { Comp.ActPanel.Root.style.display = value Comp.ActPanel.Elements.forEach(e => e.style.display = value); } static Toggle() { Comp.ActPanel.Display = Comp.ActPanel.IsHided ? '' : 'none' } } static SignatureProgress = class { static __SignatureCount; static get SignatureCount() { this.__SignatureCount = parseInt(document.getElementById("signature-count").innerText); return this.__SignatureCount; } static __SignedCountSpan; static get SignedCountSpan() { this.__SignedCountSpan ??= document.getElementById("signed-count"); return Comp.SignatureProgress.__SignedCountSpan; } static __signedCount = 0; static get SignedCount() { return this.__signedCount; } static set SignedCount(value) { this.__signedCount = value; const width = (value / this.SignatureCount) * 100; this.SignedCountBar.style.setProperty('--progress-width', width + '%'); this.SignedCountSpan.innerText = value.toString(); } static __SignedCountBar; static get SignedCountBar() { this.__SignedCountBar ??= document.getElementById("signed-count-bar"); return this.__SignedCountBar; } } static __ShareBackdrop; static get ShareBackdrop() { Comp.__ShareBackdrop ??= new bootstrap.Modal(document.getElementById('shareBackdrop')); return this.__ShareBackdrop; } }