{
  "version": 3,
  "sources": ["/cdn/shop/t/5/assets/gc-edit.js?x=1794351789416"],
  "sourcesContent": ["/* GRADUATION CLUB \u2013 Motiv-Editor auf der Produktseite\n   - Motiv auf der Vorschau verschieben (alle Motive, auch eigene Uploads)\n   - Galerie-Motive (SVG): Farben und Texte \u00E4ndern -> druckfertige PNG wird als Druckdatei angeh\u00E4ngt */\n(() => {\n'use strict';\nconst d = document, root = d.querySelector('[data-ak-pdp]'), form = d.querySelector('[data-ak-form]');\nif (!root || !form) return;\nconst logo = d.querySelector('[data-ak-logo]');\nconst CFG = (() => { try { return JSON.parse(d.getElementById('gce-cfg').textContent); } catch (e) { return { fonts: {} }; } })();\nconst esc = s => String(s).replace(/[&<>\"]/g, c => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' }[c]));\n\n/* 1. Verschieben/Gr\u00F6\u00DFe \u00FCbernimmt jetzt gc-product.js (Auswahlrahmen) */\nconst hint={isConnected:false},bar={isConnected:false};const showHint=()=>{};\n\n/* ---------- 2. SVG-Editor f\u00FCr Galerie-Motive ---------- */\nlet m = null; try { m = JSON.parse(localStorage.getItem('gcMotiv') || 'null'); } catch (e) { }\nif (!m || m.foto || !m.id || !m.pr) return;\nlet raster = false;\nconst SWATCH = ['#FFFFFF', '#F3E9D2', '#F2C14E', '#C9A227', '#E36414', '#D61F5F', '#C8102E', '#7A1F2B', '#F48FB1', '#7CB518', '#1F6B3A', '#0F4C5C', '#22D3EE', '#2F5D8A', '#1E2A4A', '#6B4E9B', '#8B5A2B', '#7A7A7A', '#1A1A1A'];\nlet svg = null, vb0 = null, colors = [], map = {}, texts = [], dirty = false, fontCache = {}, X = [], xg = null, bb0 = null, xfont = 'Archivo Black';\nconst XFONTS = ['Archivo Black', 'Anton', 'Bebas Neue', 'Oswald', 'Playfair Display', 'DM Serif Display', 'Dancing Script', 'Great Vibes', 'Pacifico', 'Permanent Marker', 'Luckiest Guy', 'Fredoka', 'Bangers', 'Graduate', 'Press Start 2P'];\nconst holder = d.createElement('div'); holder.style.cssText = 'position:absolute;left:-9999px;top:0;width:800px;height:800px;overflow:hidden;visibility:hidden'; d.body.appendChild(holder);\nconst norm = c => { if (!c) return null; c = c.trim(); if (/^#[0-9a-f]{3}$/i.test(c)) c = '#' + [...c.slice(1)].map(x => x + x).join(''); return /^#[0-9a-f]{6}$/i.test(c) ? c.toUpperCase() : null; };\nconst ATTR = ['fill', 'stroke', 'stop-color', 'flood-color'];\n\nasync function init() {\n  let txt = null; const V2 = new Set([\"hs-b2-abc-schuetze\", \"hs-b2-alte-herren\", \"hs-b2-angelpapa\", \"hs-b2-beste-schwester\", \"hs-b2-darts-legende\", \"hs-b2-erster-schultag\", \"hs-b2-grillchef\", \"hs-b2-grosse-schwester-2027\", \"hs-b2-hallo-baby-2027\", \"hs-b2-jetzt-schulkind\", \"hs-b2-jga-crew-2027\", \"hs-b2-kleine-schwester\", \"hs-b2-kreisliga-mama\", \"hs-b2-kreisliga-papa\", \"hs-b2-neu-hier\", \"hs-b2-oma-legende\", \"hs-b2-tschuess-kita\", \"hs-b2-wanderopa\", \"hs-b3-capybara-2\", \"hs-b3-katze-2\", \"hs-b3-kita-2\", \"hs-b3-paar-2\", \"hs-b3-pflege-2\", \"hs-b3-ringe-2\", \"hs-b3-ski-2\", \"hs-b3-stricken-2\", \"hs-b5-beagle-2\", \"hs-b5-border-2\", \"hs-b5-dackel-mama\", \"hs-b5-frenchie-2\", \"hs-b5-golden-2\", \"hs-b5-hundlinie-2\", \"hs-b5-katzekarton-2\", \"hs-b5-katzelinie-2\", \"hs-b5-labrador-2\", \"hs-b5-mops-2\", \"hs-b5-pfotenherz-2\", \"hs-b5-schaefer-2\", \"hs-b6-doener-2\", \"hs-b6-kochen-2\", \"hs-b6-sekt-2\", \"hs-b6-wein-2\", \"hs-b7-baum-2\", \"hs-b7-herz-2\", \"hs-b7-mama-2\", \"hs-b7-mama-koenigin\", \"hs-b7-muttertag\", \"hs-b7-opa-werkstatt\", \"hs-b7-papa-2\", \"hs-b7-pate-2\", \"hs-b7-tante-2\", \"hs-b7-vatertag\", \"hs-s10-01\", \"hs-s10-02\", \"hs-s10-03\", \"hs-s10-04\", \"hs-s10-05\", \"hs-s11-01\", \"hs-s11-02\", \"hs-s11-03\", \"hs-s11-04\", \"hs-s11-05\", \"hs-s16-01\", \"hs-s16-02\", \"hs-s16-03\", \"hs-s16-04\", \"hs-s16-05\", \"hs-s23-01\", \"hs-s23-02\", \"hs-s23-03\", \"hs-s23-04\", \"hs-s23-05\"]); try { const r = await fetch(`/cdn/shop/files/gcsvg-${m.id}${V2.has(m.id) ? '-v2' : ''}.svg`); if (r.ok) txt = await r.text(); } catch (e) { }\n  if (!txt || !/<svg/i.test(txt)) { txt = await rasterSvg(); if (!txt) return; raster = true; }\n  holder.innerHTML = txt; svg = holder.querySelector('svg'); if (!svg) return;\n  vb0 = svg.getAttribute('viewBox').split(/[\\s,]+/).map(Number);\n  const cnt = {};\n  svg.querySelectorAll('*').forEach(el => ATTR.forEach(a => { const c = norm(el.getAttribute(a)); if (c) { el.dataset['o' + a.replace('-', '')] = c; cnt[c] = (cnt[c] || 0) + 1; } }));\n  colors = Object.keys(cnt).sort((a, b) => cnt[b] - cnt[a]).slice(0, 6); colors.forEach(c => map[c] = c);\n  const tl = [...svg.querySelectorAll('text')].map(t => t.querySelector('textPath') || t).filter(t => !t.querySelector('tspan') && t.textContent.trim());\n  const grp = {}; tl.forEach(t => { const k = t.textContent; (grp[k] = grp[k] || []).push(t); });\n  texts = Object.entries(grp).map(([k, els]) => ({ orig: k, els, get textContent() { return els[0].textContent; }, set textContent(v) { els.forEach(e => e.textContent = v); }, dataset: {} }));\n  // Schriften laden (f\u00FCr Vorschau und PNG)\n  const fams = new Set([...svg.querySelectorAll('[font-family]')].map(e => e.getAttribute('font-family').replace(/['\"]/g, '').trim()));\n  await Promise.all([...fams].map(loadFont));\n  try { bb0 = svg.getBBox(); } catch (e) { bb0 = { x: vb0[0], y: vb0[1], width: vb0[2], height: vb0[3] }; }\n  fitTexts();\n  xg = d.createElementNS('http://www.w3.org/2000/svg', 'g'); xg.setAttribute('id', 'gce-extra'); svg.appendChild(xg);\n  const ff = [...fams].find(f => CFG.fonts[f]); if (ff) xfont = ff; else xfont = XFONTS.find(f => CFG.fonts[f]) || 'Archivo Black';\n  panel();\n}\nasync function rasterSvg() {\n  try {\n    const b = await (await fetch(m.pr)).blob();\n    const du = await new Promise(r => { const fr = new FileReader(); fr.onload = () => r(fr.result); fr.readAsDataURL(b); });\n    const im = await new Promise((res, rej) => { const i = new Image(); i.onload = () => res(i); i.onerror = rej; i.src = du; });\n    const W = im.naturalWidth, H = im.naturalHeight; if (!W || !H) return null;\n    return `<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 ${W} ${H}\"><image href=\"${du}\" x=\"0\" y=\"0\" width=\"${W}\" height=\"${H}\"/></svg>`;\n  } catch (e) { return null; }\n}\nasync function loadFont(f) {\n  if (fontCache[f] !== undefined || !CFG.fonts[f]) return;\n  try {\n    const buf = await (await fetch(CFG.fonts[f])).arrayBuffer(); const ff = new FontFace(f, buf); await ff.load(); d.fonts.add(ff);\n    let b = ''; const u = new Uint8Array(buf); for (let i = 0; i < u.length; i += 0x8000) b += String.fromCharCode.apply(null, u.subarray(i, i + 0x8000));\n    fontCache[f] = 'data:font/woff2;base64,' + btoa(b);\n  } catch (e) { fontCache[f] = null; }\n}\nfunction panel() {\n  const card = d.querySelector('.gc-mv--pdp'); const host = card || form.querySelector('fieldset') || form;\n  const p = d.createElement('details'); p.className = 'gce'; p.open = false;\n  p.innerHTML = `<summary><span class=\"gce-ico\" aria-hidden=\"true\">\u270E</span><span class=\"gce-st\"><b>Motiv anpassen</b><small>${texts.length ? 'Farben &amp; Texte \u00E4ndern, eigenen Text erg\u00E4nzen' : 'Farben \u00E4ndern, eigenen Text erg\u00E4nzen'}</small></span><span class=\"gce-chev\" aria-hidden=\"true\"></span></summary>\n   ${colors.length ? '' : '<!--'}<div class=\"gce-sec\"><strong>Farben</strong><div class=\"gce-cg\">${colors.map((c, i) => `<div class=\"gce-crow\" data-i=\"${i}\"><button type=\"button\" class=\"gce-cur\" data-tog style=\"background:${c}\" aria-label=\"Farbe ${i + 1} \u00E4ndern\"></button><button type=\"button\" class=\"gce-lbl\" data-tog>Farbe ${i + 1}</button><div class=\"gce-sw\">${SWATCH.map(s => `<button type=\"button\" style=\"background:${s}\" data-s=\"${s}\" aria-label=\"Farbe ${s}\"></button>`).join('')}<label class=\"gce-own\" title=\"Eigene Farbe\"><input type=\"color\" value=\"${c.toLowerCase()}\" data-own></label></div></div>`).join('')}</div></div>${colors.length ? '' : '-->'}\n   ${texts.length ? `<div class=\"gce-sec\"><strong>Texte</strong>${texts.map((t, i) => `<input type=\"text\" class=\"gce-t\" data-t=\"${i}\" value=\"${esc(t.textContent)}\" maxlength=\"${Math.max(12, t.textContent.length + 12)}\">`).join('')}</div>` : ''}\n   <div class=\"gce-sec gce-x\"><strong>Eigener Text</strong>${texts.length ? '' : '<p class=\"gce-fix\">Der Schriftzug ist bei diesem Motiv fester Teil der Grafik. Du kannst hier eine eigene Textzeile erg\u00E4nzen, z. B. Namen oder Jahreszahl. Bei Motiven ohne \u201EIllustriert\u201C im Namen ist jeder Text direkt \u00E4nderbar.</p>'}<div class=\"gce-xl\"></div><button type=\"button\" class=\"gce-add\" data-x-add>+ Textzeile hinzuf\u00FCgen</button></div>\n   <p class=\"gce-note\">\u00C4nderungen erscheinen sofort in der Vorschau. Wir drucken genau diese Datei.</p>\n   <button type=\"button\" class=\"gce-link\" data-gce-reset>Original wiederherstellen</button>`;\n  const mock = logo && logo.parentElement; showHint();\n  const fine = d.querySelector('[data-ak-fine]'), how = d.querySelector('.gc-howprint');\n  if (fine) fine.insertAdjacentElement('afterend', p); else if (how) how.insertAdjacentElement('beforebegin', p); else if (card) card.insertAdjacentElement('afterend', p); else host.prepend(p);\n  p.classList.add('gce--under');\n  const eb = d.querySelector('[data-ak-sel-edit]');\n  const syncEb = () => { if (!eb) return; const up = d.querySelector('[data-ak-file]'); const own = up && up.files && up.files.length && up.dataset.gce !== '1' && !window.GC_EDIT && !/angepasst\\.png$/.test((up.files[0] || {}).name || ''); eb.hidden = !!own || logo.hidden; };\n  if (eb) { syncEb(); eb.addEventListener('click', e => { e.preventDefault(); e.stopPropagation(); p.open = true; p.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }); new MutationObserver(syncEb).observe(logo, { attributes: true, attributeFilter: ['hidden', 'src'] }); d.addEventListener('change', e => { if (e.target.matches('[data-ak-file]')) setTimeout(syncEb, 50); }); }\n  if (card) card.querySelectorAll('p,small,span').forEach(el => { if (/oben unter dem Artikelbild/.test(el.textContent)) el.innerHTML = el.innerHTML.replace('oben unter dem Artikelbild', 'direkt unter der Vorschau'); });\n  p.addEventListener('click', e => {\n    const tg = e.target.closest('[data-tog]'); if (tg) { const r = tg.closest('.gce-crow'), on = !r.classList.contains('on'); p.querySelectorAll('.gce-crow.on').forEach(x => x.classList.remove('on')); r.classList.toggle('on', on); return; }\n    const b = e.target.closest('[data-s]'); if (b) { const i = +b.closest('.gce-crow').dataset.i; setColor(i, b.dataset.s); }\n    if (e.target.closest('[data-x-add]')) { xAdd(p); return; }\n    const xd = e.target.closest('[data-x-del]'); if (xd) { const i = +xd.closest('.gce-xr').dataset.x; X[i].el.remove(); X.splice(i, 1); xList(p); schedule(); return; }\n    const xc = e.target.closest('[data-xc]'); if (xc) { const i = +xc.closest('.gce-xr').dataset.x; X[i].color = xc.dataset.xc; xList(p); schedule(); return; }\n    if (e.target.closest('[data-gce-reset]')) { X.forEach(x => x.el.remove()); X = []; xList(p); colors.forEach(c => map[c] = c); texts.forEach(t => t.textContent = t.orig); p.querySelectorAll('.gce-t').forEach((el, i) => el.value = texts[i].textContent); p.querySelectorAll('.gce-crow').forEach((r, i) => r.querySelector('.gce-cur').style.background = colors[i]); apply(); dirty = false; restoreOriginal(); }\n  });\n  p.addEventListener('input', e => {\n    if (e.target.matches('[data-own]')) setColor(+e.target.closest('.gce-crow').dataset.i, e.target.value.toUpperCase());\n    if (e.target.matches('.gce-xt')) { X[+e.target.closest('.gce-xr').dataset.x].text = e.target.value; schedule(); }\n    if (e.target.matches('.gce-xf')) { const x = X[+e.target.closest('.gce-xr').dataset.x]; x.font = e.target.value; loadFont(x.font).then(schedule); }\n    if (e.target.matches('.gce-xp')) { X[+e.target.closest('.gce-xr').dataset.x].pos = e.target.value; schedule(); }\n    if (e.target.matches('.gce-t')) { const t = texts[+e.target.dataset.t]; t.textContent = e.target.value; schedule(); }\n  });\n}\nfunction lum(c) { const n = parseInt(c.slice(1), 16); return ((n >> 16) * .299 + ((n >> 8) & 255) * .587 + (n & 255) * .114); }\nfunction xAdd(p) {\n  if (X.length >= 2) return;\n  const el = d.createElementNS('http://www.w3.org/2000/svg', 'text'); xg.appendChild(el);\n  const sat = c => { const n = parseInt(c.slice(1), 16), r = n >> 16, g = (n >> 8) & 255, bl = n & 255; return Math.max(r, g, bl) - Math.min(r, g, bl); };\n  const col = colors.length ? colors.slice().sort((a, b) => sat(b) - sat(a))[0] : '#C8102E';\n  X.push({ text: '', font: xfont, color: col, pos: 'u', el }); xList(p); loadFont(xfont).then(() => { if (X.some(x => x.text)) schedule(); });\n  const inp = p.querySelectorAll('.gce-xt'); if (inp.length) inp[inp.length - 1].focus();\n}\nfunction xList(p) {\n  const fonts = XFONTS.filter(f => CFG.fonts[f]);\n  p.querySelector('.gce-xl').innerHTML = X.map((x, i) => `<div class=\"gce-xr\" data-x=\"${i}\"><div class=\"gce-xh\"><input type=\"text\" class=\"gce-xt\" maxlength=\"30\" placeholder=\"z. B. Familie M\u00FCller 2026\" value=\"${esc(x.text)}\"><button type=\"button\" class=\"gce-xdel\" data-x-del aria-label=\"Zeile entfernen\">\u2715</button></div>\n    <div class=\"gce-xo\"><select class=\"gce-xf\" aria-label=\"Schrift\">${fonts.map(f => `<option${f === x.font ? ' selected' : ''}>${f}</option>`).join('')}</select><select class=\"gce-xp\" aria-label=\"Position\"><option value=\"u\"${x.pos === 'u' ? ' selected' : ''}>unter dem Motiv</option><option value=\"o\"${x.pos === 'o' ? ' selected' : ''}>\u00FCber dem Motiv</option></select></div>\n    <div class=\"gce-xc\">${SWATCH.map(s => `<button type=\"button\" data-xc=\"${s}\" style=\"background:${s}\"${s === x.color ? ' class=\"on\"' : ''} aria-label=\"Textfarbe ${s}\"></button>`).join('')}</div></div>`).join('');\n  const add = p.querySelector('[data-x-add]'); if (add) add.hidden = X.length >= 2;\n}\nfunction xLayout() {\n  if (!xg || !bb0) return;\n  const W = bb0.width, cx = bb0.x + W / 2, base = Math.max(W, bb0.height) * .16, gap = base * .3;\n  const fit = x => { const el = x.el; el.setAttribute('font-family', `'${x.font}'`); el.setAttribute('font-size', base.toFixed(1)); el.setAttribute('text-anchor', 'middle'); el.setAttribute('fill', x.color); el.textContent = x.text; let w = 0; try { w = x.text ? el.getComputedTextLength() : 0; } catch (e) { } x.fs = w > W * 1.1 ? base * W * 1.1 / w : base; el.setAttribute('font-size', x.fs.toFixed(1)); el.setAttribute('x', cx.toFixed(1)); };\n  let y = bb0.y + bb0.height + gap;\n  X.filter(x => x.pos === 'u').forEach(x => { fit(x); y += x.fs * .75; x.el.setAttribute('y', y.toFixed(1)); y += x.fs * .3 + gap * .3; });\n  y = bb0.y - gap;\n  X.filter(x => x.pos === 'o').reverse().forEach(x => { fit(x); y -= x.fs * .22; x.el.setAttribute('y', y.toFixed(1)); y -= x.fs * .75 + gap * .3; });\n}\nfunction setColor(i, c) { map[colors[i]] = c; d.querySelectorAll('.gce-crow')[i].querySelector('.gce-cur').style.background = c; schedule(); }\nfunction fitTexts() {\n  texts.forEach(t => t.els.forEach(el => {\n    const tx = el.closest('text') || el; if (tx.dataset.ow === undefined) { try { tx.dataset.ow = tx.getComputedTextLength(); } catch (e) { tx.dataset.ow = 0; } tx.dataset.ofs = tx.getAttribute('font-size') || getComputedStyle(tx).fontSize.replace('px', '') || ''; }\n    const ow = +tx.dataset.ow, ofs = parseFloat(tx.dataset.ofs); if (!ow || !ofs) return;\n    tx.setAttribute('font-size', ofs); let w = 0; try { w = tx.getComputedTextLength(); } catch (e) { }\n    if (w > ow * 1.04) tx.setAttribute('font-size', (ofs * ow * 1.04 / w).toFixed(2));\n  }));\n}\nfunction apply() {\n  fitTexts();\n  svg.querySelectorAll('*').forEach(el => ATTR.forEach(a => { const o = el.dataset['o' + a.replace('-', '')]; if (o) el.setAttribute(a, map[o] || o); }));\n  xLayout();\n  // nichts abschneiden: viewBox an Inhalt anpassen\n  try {\n    svg.setAttribute('viewBox', vb0.join(' ')); const bb = svg.getBBox(); const p = Math.max(bb.width, bb.height) * .03;\n    const x0 = Math.min(vb0[0], bb.x - p), y0 = Math.min(vb0[1], bb.y - p), x1 = Math.max(vb0[0] + vb0[2], bb.x + bb.width + p), y1 = Math.max(vb0[1] + vb0[3], bb.y + bb.height + p);\n    svg.setAttribute('viewBox', `${x0} ${y0} ${x1 - x0} ${y1 - y0}`);\n  } catch (e) { }\n}\nlet tm = 0; function schedule() { dirty = true; clearTimeout(tm); apply(); tm = setTimeout(render, 450); }\nfunction serialize() {\n  const c = svg.cloneNode(true); const st = d.createElementNS('http://www.w3.org/2000/svg', 'style');\n  st.textContent = Object.entries(fontCache).filter(([, u]) => u).map(([n, u]) => `@font-face{font-family:'${n}';src:url(${u}) format('woff2')}`).join('');\n  let defs = c.querySelector('defs'); if (!defs) { defs = d.createElementNS('http://www.w3.org/2000/svg', 'defs'); c.prepend(defs); } defs.prepend(st);\n  c.removeAttribute('width'); c.removeAttribute('height');\n  return new XMLSerializer().serializeToString(c);\n}\nasync function render() {\n  if (!dirty) return;\n  const s = serialize(), [, , w, h] = svg.getAttribute('viewBox').split(/[\\s,]+/).map(Number);\n  const W = w >= h ? 3000 : Math.round(3000 * w / h), H = Math.round(W * h / w);\n  const url = URL.createObjectURL(new Blob([s], { type: 'image/svg+xml' }));\n  try {\n    const im = await new Promise((res, rej) => { const i = new Image(); i.onload = () => res(i); i.onerror = rej; i.src = url; });\n    const c = d.createElement('canvas'); c.width = W; c.height = H; c.getContext('2d').drawImage(im, 0, 0, W, H);\n    const blob = await new Promise(r => c.toBlob(r, 'image/png'));\n    const f = new File([blob], `Motiv-${m.id}-angepasst.png`, { type: 'image/png' });\n    const inp = d.querySelector('[data-ak-file]'); const dt = new DataTransfer(); dt.items.add(f); inp.files = dt.files; inp.dataset.gce = '1'; inp.dispatchEvent(new Event('change', { bubbles: true }));\n    const xt = X.map(x => x.text.trim()).filter(Boolean); window.GC_EDIT = Object.assign({ 'Motiv angepasst': 'Farben/Texte vom Kunden ge\u00E4ndert und freigegeben' }, xt.length ? { 'Eigener Text': xt.join(' / ') } : {});\n  } catch (e) { console.warn('render', e); } finally { URL.revokeObjectURL(url); }\n}\nfunction restoreOriginal() {\n  const inp = d.querySelector('[data-ak-file]'); inp.value = ''; const up = inp.closest('.ak-upload'); if (up) { up.classList.remove('has-file'); }\n  window.GC_EDIT = null; const up2 = inp.closest('.ak-upload'); if (up2) { const sp = up2.querySelector('span'); if (sp && sp.dataset.akUpLabel) sp.textContent = 'Oder eigenes Motiv hochladen (PNG, JPG, SVG, WebP)'; } if (m.pr && window.GC_SETMOTIF) window.GC_SETMOTIF(m.pr, m.pos || 'Brust mittig'); else if (m.pr && logo) { logo.src = m.pr; logo.hidden = false; if (window.GC_PLACE) window.GC_PLACE(); }\n}\nif (d.readyState === 'loading') d.addEventListener('DOMContentLoaded', init); else init();\n})();\n"],
  "mappings": "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",
  "names": []
}
