// API source form visibility helpers. (function () { var form = document.getElementById('api-source-form'); if (!form) { return; } var methodSelect = form.querySelector('[data-api-source-auth-method]'); var authDetailsSection = form.querySelector('[data-api-source-auth-details-section]'); var panels = Array.prototype.slice.call(form.querySelectorAll('[data-api-source-auth-panel]')); var bearerTokenInput = form.querySelector('[data-api-source-bearer-token-input]'); var bearerTokenToggle = form.querySelector('[data-api-source-bearer-token-toggle]'); var requestMethodSelect = form.querySelector('[data-api-source-request-method]'); var requestSection = form.querySelector('[data-api-source-request-section]'); var requestBodyInput = form.querySelector('[data-api-source-request-body]'); function updateBearerTokenToggle() { if (!bearerTokenInput || !bearerTokenToggle) { return; } var isVisible = bearerTokenInput.type === 'text'; bearerTokenToggle.setAttribute('aria-pressed', String(isVisible)); bearerTokenToggle.setAttribute('aria-label', isVisible ? 'Hide bearer token' : 'Show bearer token'); bearerTokenToggle.innerHTML = ''; } function toggleBearerTokenVisibility() { if (!bearerTokenInput) { return; } bearerTokenInput.type = bearerTokenInput.type === 'password' ? 'text' : 'password'; updateBearerTokenToggle(); bearerTokenInput.focus(); } function updatePanels() { var method = String(methodSelect && methodSelect.value || 'none').trim(); var hasAuth = method !== 'none'; if (authDetailsSection) { authDetailsSection.hidden = !hasAuth; } panels.forEach(function (panel) { var panelMethod = String(panel.getAttribute('data-api-source-auth-panel') || '').trim(); panel.hidden = !hasAuth || panelMethod !== method; }); } function updateRequestBodyVisibility() { if (!requestMethodSelect || !requestSection || !requestBodyInput) { return; } var isPost = String(requestMethodSelect.value || 'GET').toUpperCase() === 'POST'; requestSection.hidden = !isPost; } if (methodSelect) { methodSelect.addEventListener('change', updatePanels); } if (requestMethodSelect) { requestMethodSelect.addEventListener('change', updateRequestBodyVisibility); } if (bearerTokenToggle && bearerTokenInput) { bearerTokenToggle.addEventListener('click', toggleBearerTokenVisibility); updateBearerTokenToggle(); } updatePanels(); updateRequestBodyVisibility(); }());