/* ARBEITSSCHIRM — sticky ink header with wordmark + Sprachumschalter */ (function () { const { Button } = window.ABIndustrieServiceDesignSystem_89df89; const { Icon } = window.ABIcons; const NAV = [ { label: 'Warum', href: '#warum' }, { label: 'Modelle', href: '#modelle' }, { label: 'Technik', href: '#technik' }, { label: 'Einsatz', href: '#einsatz' }, ]; const WX = [ { key: 'wind', label: 'Wind', icon: 'wind' }, { key: 'regen', label: 'Regen', icon: 'cloud-rain' }, { key: 'sturm', label: 'Sturm', icon: 'cloud-lightning' }, { key: 'schnee', label: 'Schnee', icon: 'snowflake' }, { key: 'sonne', label: 'Sonne', icon: 'sun' }, ]; // ---- Sprachen (Vorbereitung Mehrsprachigkeit; Übersetzung folgt später) ---- // Deutsch = aktuell aktiv. Reihenfolge wie vom Kunden vorgegeben. const LANGS = [ { code: 'de', label: 'Deutsch' }, { code: 'en', label: 'English' }, { code: 'pl', label: 'Polski' }, { code: 'fr', label: 'Français' }, { code: 'nl', label: 'Nederlands' }, { code: 'cs', label: 'Čeština' }, { code: 'it', label: 'Italiano' }, { code: 'ru', label: 'Русский' }, ]; // SVG-Flaggen (keine Emoji — Markenregel). viewBox 0 0 20 14. const FLAGS = { de: ( ), en: ( ), pl: ( ), fr: ( ), nl: ( ), cs: ( ), it: ( ), ru: ( ), }; function Flag({ code, w = 22 }) { const h = Math.round(w * 0.7); return ( ); } function LangSwitch({ lang, onPick }) { const [open, setOpen] = React.useState(false); const ref = React.useRef(null); React.useEffect(() => { if (!open) return; const onDoc = (e) => { if (ref.current && !ref.current.contains(e.target)) setOpen(false); }; const onKey = (e) => { if (e.key === 'Escape') setOpen(false); }; document.addEventListener('mousedown', onDoc); document.addEventListener('keydown', onKey); return () => { document.removeEventListener('mousedown', onDoc); document.removeEventListener('keydown', onKey); }; }, [open]); const cur = LANGS.find((l) => l.code === lang) || LANGS[0]; return (
{open && ( )}
); } function Header({ onCta, mode = 'sturm', onPick, auto = false, interval = 9000, lang = 'de', onLang }) { const [scrolled, setScrolled] = React.useState(false); const [open, setOpen] = React.useState(false); const tr = (s) => window.ABi18n.t(lang, s); React.useEffect(() => { const onScroll = () => setScrolled(window.scrollY > 12); window.addEventListener('scroll', onScroll); return () => window.removeEventListener('scroll', onScroll); }, []); const pickLang = (code) => { if (onLang) onLang(code); }; const go = (e, href) => { e.preventDefault(); setOpen(false); const el = document.querySelector(href); if (!el) return; window.scrollTo({ top: el.getBoundingClientRect().top + window.scrollY - 70, behavior: 'smooth' }); }; return (
go(e, '#top')} style={{ display: 'flex', alignItems: 'center', gap: 12, textDecoration: 'none' }}> AB Industrie Service {tr('Arbeitsschirme')} {tr('von AB Industrie Service')}
{WX.map((m) => { const on = m.key === mode; return ( ); })}
{/* Laufbalken: visualisiert den Auto-Wechsel-Takt (interval ms). Per key={mode} startet die Füllung bei jedem Wechsel neu; bei manueller Wahl ist auto=false → Balken bleibt leer (pausiert). */}
{open && (
{NAV.map((n) => ( go(e, n.href)} style={{ color: '#fff', textDecoration: 'none', fontWeight: 600, padding: '10px 0', textTransform: 'uppercase', fontSize: 15 }}>{n.label} ))} info@ab-industrie.de
{tr('Sprache')}
)}
); } window.ABArbeit = Object.assign(window.ABArbeit || {}, { Header }); })();