assets/js/imports.min.js

(()=>{const t=new Set(["matomo_api","matomo_db"]);function e(t){return{error:t?.dataset.error??"Unable to import data.",importing:t?.dataset.importing??"Importing data...",modeApi:t?.dataset.modeApi??"API",modeDatabase:t?.dataset.modeDatabase??"Database",networkError:t?.dataset.networkError??"Network error.",providerUnavailable:t?.dataset.providerUnavailable??"This platform is not available yet.",testing:t?.dataset.testing??"Testing connection..."}}function o(t){const e=new FormData(t),o={};for(const[t,a]of e.entries())o[t]=a;return t.querySelectorAll('input[type="checkbox"]').forEach(t=>{o[t.name]=t.checked}),o}function a(t,e){t.querySelectorAll("[data-import-action-button]").forEach(t=>{t.disabled=e})}function r(t,e,o=""){t&&(t.className=o,t.textContent=e||"")}function i(o,a=document.getElementById("import-form")){if(!a)return;const i=o||"matomo_api",n=a.querySelector('input[name="provider"]'),d=a.closest("dialog")?.querySelector("[data-import-provider-label]"),s=a.querySelector("#import-message"),l=e(s),c=function(t){const o=e(t);return{adobe_analytics:"Adobe Analytics",google_analytics:"Google Analytics",matomo_api:`Matomo ${o.modeApi}`,matomo_db:`Matomo ${o.modeDatabase}`,plausible:"Plausible",umami:"Umami"}}(s),m=t.has(i);n&&(n.value=i),d&&(d.textContent=c[i]??i),a.querySelectorAll("[data-import-provider-panel]").forEach(t=>{t.hidden=t.dataset.importProviderPanel!==i}),a.querySelectorAll("[data-import-shared-panel]").forEach(t=>{t.hidden=!m}),a.querySelectorAll("[data-import-action-button]").forEach(t=>{t.hidden=!m}),function(t,e){t.querySelectorAll("[data-import-provider-input]").forEach(t=>{t.disabled=t.dataset.importProviderInput!==e})}(a,i),r(s,m?"":l.providerUnavailable,m?"":"info")}window.brivaciaSetImportProvider=i;const n=document.getElementById("import-modal");n?.dataset.importProvider&&i(n.dataset.importProvider),document.addEventListener("change",t=>{const e=t.target.closest("[data-import-domain-toggle]");if(!e)return;const o=e.closest("[data-import-provider-panel]"),a=o?.querySelector("[data-import-domain-field]");a&&(a.hidden=!e.checked)}),document.addEventListener("click",t=>{const e=t.target.closest('#import-form button[value="cancel"]');e&&e.closest("dialog")?.close()}),document.addEventListener("click",t=>{const e=t.target.closest("[data-token-toggle]");if(!e)return;const o=e.previousElementSibling;o instanceof HTMLInputElement&&(o.type="password"===o.type?"text":"password")}),document.addEventListener("submit",async i=>{const n=i.target.closest("#import-form");if(!n)return;i.preventDefault();const d=n.querySelector('input[name="provider"]')?.value||"",s=n.querySelector("#import-message"),l=e(s);if(!t.has(d))return void r(s,l.providerUnavailable,"info");const c=i.submitter,m="test"===c?.value?"test":"import";r(s,"test"===m?l.testing:l.importing),a(n,!0);try{const t=await fetch(`/api/import.php?action=${m}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o(n))}),e=await t.json();if(!t.ok||!e.ok)return void r(s,e.error||l.error,"danger");r(s,e.message||"","success"),"import"===m&&setTimeout(()=>{n.closest("dialog")?.close(),window.location.reload()},1200)}catch{r(s,l.networkError,"danger")}finally{a(n,!1)}})})();