{
  "version": 3,
  "sources": ["/cdn/shop/t/9/assets/toa-withdrawal.js?toa_v=20260619_no_captcha_email_fallback"],
  "sourcesContent": ["(function () {\n  \"use strict\";\n\n  function text(value) {\n    return (value || \"\").toString().trim();\n  }\n\n  function setHidden(element, hidden) {\n    if (element) element.hidden = hidden;\n  }\n\n  function escapeText(value) {\n    return text(value).replace(/[&<>\"']/g, function (char) {\n      return {\n        \"&\": \"&amp;\",\n        \"<\": \"&lt;\",\n        \">\": \"&gt;\",\n        '\"': \"&quot;\",\n        \"'\": \"&#39;\"\n      }[char];\n    });\n  }\n\n  function validEmail(value) {\n    return /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(text(value));\n  }\n\n  function collect(form) {\n    return {\n      name: text(form.elements.name && form.elements.name.value),\n      email: text(form.elements.email && form.elements.email.value),\n      orderNumber: text(form.elements.orderNumber && form.elements.orderNumber.value),\n      message: text(form.elements.message && form.elements.message.value),\n      company: text(form.elements.company && form.elements.company.value),\n      confirmIntent: Boolean(form.elements.confirmIntent && form.elements.confirmIntent.checked),\n      pageUrl: window.location.href,\n      clientSubmittedAt: new Date().toISOString()\n    };\n  }\n\n  function validate(data) {\n    if (data.company) return \"Die Anfrage konnte nicht verarbeitet werden.\";\n    if (data.name.length < 2) return \"Bitte gib deinen Namen ein.\";\n    if (!validEmail(data.email)) return \"Bitte gib eine gueltige E-Mail-Adresse ein.\";\n    if (data.orderNumber.length < 2) return \"Bitte gib deine Bestellnummer ein.\";\n    if (!data.confirmIntent) return \"Bitte bestaetige, dass du den Widerruf erklaeren moechtest.\";\n    return \"\";\n  }\n\n  function showError(box, message) {\n    if (!box) return;\n    box.textContent = message;\n    setHidden(box, !message);\n  }\n\n  function renderSummary(form, data) {\n    var box = form.querySelector(\"[data-toa-summary]\");\n    if (!box) return;\n    var message = data.message || \"Keine Nachricht angegeben\";\n    box.innerHTML = [\n      [\"Name\", data.name],\n      [\"E-Mail\", data.email],\n      [\"Bestellnummer\", data.orderNumber],\n      [\"Nachricht\", message]\n    ].map(function (entry) {\n      return \"<dt>\" + escapeText(entry[0]) + \"</dt><dd>\" + escapeText(entry[1]) + \"</dd>\";\n    }).join(\"\");\n  }\n\n  function setStep(form, step) {\n    var stepOne = form.querySelector('[data-toa-step=\"1\"]');\n    var stepTwo = form.querySelector('[data-toa-step=\"2\"]');\n    var firstIndicator = form.querySelector('[data-toa-step-indicator=\"1\"]');\n    var secondIndicator = form.querySelector('[data-toa-step-indicator=\"2\"]');\n    setHidden(stepOne, step !== 1);\n    setHidden(stepTwo, step !== 2);\n    if (firstIndicator) firstIndicator.classList.toggle(\"is-active\", step === 1);\n    if (secondIndicator) secondIndicator.classList.toggle(\"is-active\", step === 2);\n  }\n\n  function showResult(form, data) {\n    var result = form.querySelector(\"[data-toa-result]\");\n    var stepOne = form.querySelector('[data-toa-step=\"1\"]');\n    var stepTwo = form.querySelector('[data-toa-step=\"2\"]');\n    var mailStatus = data.emailCustomerStatus || \"\";\n    var detail = mailStatus === \"sent\"\n      ? \"<p>Eine Bestaetigungsmail wurde an deine E-Mail-Adresse gesendet.</p>\"\n      : mailStatus\n        ? \"<p>Der Widerruf ist eingegangen. Falls keine Bestaetigungsmail ankommt, bewahre bitte diese Eingangsnummer auf.</p>\"\n        : \"<p>Wir senden dir eine Bestaetigung per E-Mail und bearbeiten die Anfrage.</p>\";\n    setHidden(stepOne, true);\n    setHidden(stepTwo, true);\n    if (!result) return;\n    result.innerHTML =\n      \"<strong>Widerruf eingegangen</strong>\" +\n      \"<p>Dein Widerruf wurde erfasst. Die Eingangsnummer lautet <b>\" + escapeText(data.reference || \"-\") + \"</b>.</p>\" +\n      detail;\n    setHidden(result, false);\n    result.focus();\n  }\n\n  function withdrawalFallbackMessage() {\n    return \"Der Widerruf wurde noch nicht automatisch uebermittelt, weil die technische Widerrufsannahme gerade nicht erreichbar ist. Bitte sende den Widerruf direkt per E-Mail an onlineshop@toa-kn.com.\";\n  }\n\n  function buildFallbackMailto(data) {\n    var subject = \"Widerruf Bestellung \" + (data.orderNumber || \"\");\n    return \"mailto:onlineshop@toa-kn.com?subject=\" + encodeURIComponent(subject) + \"&body=\" + encodeURIComponent(buildFallbackBody(data, \"\"));\n  }\n\n  function buildFallbackBody(data, reference) {\n    var lines = [\n      \"Ich moechte den Widerruf fuer folgende Bestellung erklaeren:\",\n      \"\"\n    ];\n    if (reference) {\n      lines.push(\"Eingangsnummer: \" + reference, \"\");\n    }\n    lines.push(\n      \"Name: \" + (data.name || \"\"),\n      \"E-Mail: \" + (data.email || \"\"),\n      \"Bestellnummer: \" + (data.orderNumber || \"\")\n    );\n    if (data.message) {\n      lines.push(\"\", \"Nachricht / Grund:\", data.message);\n    }\n    lines.push(\"\", \"Ich bestaetige, dass ich den Widerruf fuer die angegebene Bestellung erklaeren moechte.\");\n    return lines.join(\"\\n\");\n  }\n\n  function showSubmitFallback(box, data) {\n    if (!box) return;\n    box.innerHTML = \"\";\n    var text = document.createElement(\"span\");\n    text.textContent = withdrawalFallbackMessage() + \" \";\n    var link = document.createElement(\"a\");\n    link.href = buildFallbackMailto(data);\n    link.textContent = \"Widerruf per E-Mail senden\";\n    box.appendChild(text);\n    box.appendChild(link);\n    setHidden(box, false);\n  }\n\n  function parseSubmitResponse(response) {\n    return response.text().then(function (raw) {\n      if (!raw) {\n        return {\n          response: response,\n          body: { ok: false, error: withdrawalFallbackMessage() }\n        };\n      }\n      try {\n        return { response: response, body: JSON.parse(raw) };\n      } catch (error) {\n        return {\n          response: response,\n          body: { ok: false, error: withdrawalFallbackMessage() }\n        };\n      }\n    });\n  }\n\n  function submitFinal(form, data) {\n    var button = form.querySelector(\"[data-toa-submit]\");\n    var errorBox = form.querySelector(\"[data-toa-final-error]\");\n    var endpoint = form.getAttribute(\"data-endpoint\") || \"/apps/widerruf/submit\";\n    if (button && button.disabled) return;\n    if (button) {\n      button.disabled = true;\n      button.textContent = \"Widerruf wird gesendet...\";\n    }\n    showError(errorBox, \"\");\n    return fetch(endpoint, {\n      method: \"POST\",\n      credentials: \"same-origin\",\n      headers: {\n        \"Content-Type\": \"application/json\",\n        \"Accept\": \"application/json\"\n      },\n      body: JSON.stringify(Object.assign({}, data, { confirmed: true }))\n    }).then(parseSubmitResponse).then(function (result) {\n      var response = result.response;\n      var body = result.body || {};\n      if (!response.ok || !body.ok) {\n        throw new Error(body.error || withdrawalFallbackMessage());\n      }\n      showResult(form, body);\n    }).catch(function (error) {\n      showSubmitFallback(errorBox, data);\n      if (button) {\n        button.disabled = false;\n        button.textContent = \"Widerruf jetzt verbindlich absenden\";\n      }\n    });\n  }\n\n  function initForm(form) {\n    var reviewButton = form.querySelector(\"[data-toa-review]\");\n    var backButton = form.querySelector(\"[data-toa-back]\");\n    var errorBox = form.querySelector(\"[data-toa-error]\");\n    var currentData = null;\n\n    if (reviewButton) {\n      reviewButton.addEventListener(\"click\", function () {\n        var data = collect(form);\n        var error = validate(data);\n        showError(errorBox, error);\n        if (error) return;\n        currentData = data;\n        renderSummary(form, data);\n        setStep(form, 2);\n      });\n    }\n\n    if (backButton) {\n      backButton.addEventListener(\"click\", function () {\n        setStep(form, 1);\n      });\n    }\n\n    form.addEventListener(\"submit\", function (event) {\n      event.preventDefault();\n      var data = currentData || collect(form);\n      var error = validate(data);\n      if (error) {\n        showError(form.querySelector(\"[data-toa-final-error]\"), error);\n        return;\n      }\n      submitFinal(form, data);\n    });\n  }\n\n  function init() {\n    document.querySelectorAll(\"[data-toa-withdrawal-form]\").forEach(initForm);\n  }\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", init);\n  } else {\n    init();\n  }\n})();"],
  "mappings": "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",
  "names": ["text"]
}
