(function () { 'use strict'; var fabEl = null; function resolveFeedbackUrl(feedback, config) { if (feedback && feedback.url) { return feedback.url; } var meta = (config && config.meta) || {}; var eventId = meta.eventId; var formId = feedback && feedback.formId; var webBase = meta.webBaseUrl || 'https://web.eventbuzz.live'; if (eventId && formId) { return String(webBase).replace(/\/$/, '') + '/event/' + eventId + '/form/' + formId; } return ''; } function openFeedback(feedback, config) { var url = resolveFeedbackUrl(feedback, config); if (!url) { console.warn('[feedback-fab] No feedback form URL configured.'); return; } var target = (feedback && feedback.target) || '_blank'; if (target === 'modal' && window.EventUpRegistrationModal && window.EventUpRegistrationModal.open) { window.EventUpRegistrationModal.open(url, (feedback && feedback.title) || 'Feedback'); return; } window.open(url, '_blank', 'noopener,noreferrer'); } function init(feedback, config) { if (!feedback || feedback.show === false) { if (fabEl) { fabEl.style.display = 'none'; } return; } if (!fabEl) { fabEl = document.createElement('button'); fabEl.type = 'button'; fabEl.className = 'eventup-feedback-fab'; fabEl.setAttribute('data-feedback-fab', 'true'); fabEl.innerHTML = 'Feedback'; document.body.appendChild(fabEl); } fabEl.style.display = ''; fabEl.setAttribute('aria-label', feedback.label || feedback.title || 'Feedback'); var label = fabEl.querySelector('.eventup-feedback-fab__text'); if (label) { label.textContent = feedback.label || 'Feedback'; } if (fabEl.getAttribute('data-feedback-bound') === 'true') { return; } fabEl.setAttribute('data-feedback-bound', 'true'); fabEl.addEventListener('click', function (event) { event.preventDefault(); openFeedback(feedback, config); }); } window.EventUpFeedbackFab = { init: init, open: openFeedback, resolveUrl: resolveFeedbackUrl }; })();