diff --git a/extensions/directus-extension-skrift-neuauftrag/dist/index.js b/extensions/directus-extension-skrift-neuauftrag/dist/index.js index 664a154..489b2ec 100644 --- a/extensions/directus-extension-skrift-neuauftrag/dist/index.js +++ b/extensions/directus-extension-skrift-neuauftrag/dist/index.js @@ -324,17 +324,22 @@ const NeuAuftrag = defineComponent({ const sel = (val, opts, on, extra) => h('select', { style: WSELECT + 'width:100%;' + (extra || ''), value: val, onChange: on }, opts.map((o) => h('option', { value: o.v, selected: String(val) === String(o.v) }, o.t))); const svgUri = (svg) => { try { return 'data:image/svg+xml;base64,' + btoa(unescape(encodeURIComponent(svg))); } catch { return null; } }; - // Vorschau-Optik „Kugelschreiber" (nur Anzeige/Download): blaue Tinte mit - // leichter Deckkraft, etwas dickere Striche. WICHTIG: vector-effect= - // "non-scaling-stroke" MUSS bleiben – die Glyphen-Pfade haben eigene - // transform-Skalierungen; ohne non-scaling wird die Strichbreite winzig - // (Text verschwindet). Papier bleibt weiß. Produktion bleibt schwarz. + // Vorschau-Optik „Kugelschreiber" (nur Anzeige/Download): blaue Tinte, etwas + // dickere Striche (1.4) und ein dezenter „Wobble" (feTurbulence + Displacement) + // für die typische, leicht unruhige Kuli-Linie. Im Browser (auch als ) + // getestet. WICHTIG: vector-effect="non-scaling-stroke" MUSS bleiben – die + // Glyphen-Pfade haben eigene transform-Skalierungen; ohne non-scaling wird die + // Strichbreite winzig (Text verschwindet). Weißer Grund. Produktion bleibt schwarz. const BALLPOINT = '#1a2a6c'; - const inkify = (svg) => (typeof svg === 'string' - ? svg + const inkify = (svg) => { + if (typeof svg !== 'string') return svg; + return svg .replace(/stroke="#0{3,6}"/gi, `stroke="${BALLPOINT}" stroke-opacity="0.95"`) - .replace(/stroke-width="0\.6"/gi, 'stroke-width="1.7"') - : svg); + .replace(/stroke-width="0\.6"/gi, 'stroke-width="1.4"') + .replace(/(]*>)/i, '$1') + .replace(/(]*fill="#FFFFFF"[^>]*\/>)/i, '$1') + .replace(/<\/svg>\s*$/i, ''); + }; // Vorschau als PNG speichern (wie in der App); Fallback: SVG. function bildSpeichern(d) { const svg = d && typeof d.svg === 'string' ? inkify(d.svg) : null;