Compare commits

...

6 Commits

Author SHA1 Message Date
e2a29b41e9 chore: release 2.2.13-rc.1
All checks were successful
Build & Deploy / 🔍 Prepare (push) Successful in 23s
Build & Deploy / 🧪 QA (push) Successful in 58s
Build & Deploy / 🏗️ Build (push) Successful in 1m36s
Build & Deploy / 🚀 Deploy (push) Successful in 24s
Build & Deploy / 🧪 Post-Deploy Verification (push) Successful in 46s
Build & Deploy / 🔔 Notify (push) Successful in 2s
2026-06-16 12:53:07 +02:00
62727a7231 test: update homepage test to match new copy (Mitarbeitende)
All checks were successful
Build & Deploy / 🔍 Prepare (push) Successful in 23s
Build & Deploy / 🧪 QA (push) Successful in 1m2s
Build & Deploy / 🏗️ Build (push) Successful in 1m51s
Build & Deploy / 🚀 Deploy (push) Successful in 27s
Build & Deploy / 🧪 Post-Deploy Verification (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 1s
2026-06-16 12:20:50 +02:00
3a6189e0d8 chore: optimize new client images (HEIC to JPG, resize)
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 29s
Build & Deploy / 🧪 QA (push) Failing after 55s
Build & Deploy / 🏗️ Build (push) Has been skipped
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🧪 Post-Deploy Verification (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 2s
2026-06-16 12:11:45 +02:00
01e2fdbb7d fix: move EU funding badge from header to footer to prevent overlap
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 31s
Build & Deploy / 🏗️ Build (push) Has been cancelled
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Post-Deploy Verification (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
Build & Deploy / 🧪 QA (push) Has been cancelled
2026-06-16 12:08:55 +02:00
fa7182d351 fix: address remaining UI and content feedback from Marisa
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 37s
Build & Deploy / 🧪 QA (push) Failing after 56s
Build & Deploy / 🏗️ Build (push) Has been skipped
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🧪 Post-Deploy Verification (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 2s
2026-06-16 11:43:26 +02:00
e0d43f7f5f fix: implement client feedback (map points, hero text, stats spacing, lang toggle)
All checks were successful
Build & Deploy / 🔍 Prepare (push) Successful in 48s
Build & Deploy / 🧪 QA (push) Successful in 1m30s
Build & Deploy / 🏗️ Build (push) Successful in 2m55s
Build & Deploy / 🚀 Deploy (push) Successful in 42s
Build & Deploy / 🧪 Post-Deploy Verification (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 4s
2026-06-16 10:40:01 +02:00
65 changed files with 82 additions and 49 deletions

View File

@@ -19,8 +19,6 @@ import { TransitionProvider } from '@/components/providers/TransitionProvider';
import { PageTransitionShutter } from '@/components/providers/PageTransitionShutter';
import { InitialLoader } from '@/components/providers/InitialLoader';
import { CorporateBackground } from '@/components/decorations/CorporateBackground';
import { EUFundingBadge } from '@/components/decorations/EUFundingBadge';
const inter = Inter({
subsets: ['latin'],
display: 'swap',
@@ -203,7 +201,6 @@ export default async function Layout(props: {
<PageTransitionShutter />
<SkipLink />
<Header navLinks={navLinks} />
<EUFundingBadge />
<MobileBottomNav navLinks={navLinks} currentLocale={safeLocale} />
<main

View File

@@ -79,6 +79,11 @@ export default async function ReferenzenOverview(props: { params: Promise<{ loca
title={locale === 'en' ? 'Successfully realized projects.' : 'Erfolgreich umgesetzte Projekte.'}
description={locale === 'en' ? 'From broadband expansion to complex 110kV lines: A selection of our nationwide projects where we have created infrastructure for the future.' : 'Vom Breitbandausbau bis zur komplexen 110kV-Trasse: Ein Auszug unserer bundesweiten Projekte, bei denen wir Infrastruktur für die Zukunft geschaffen haben.'}
locations={enrichedLocations}
hideStandorte={true}
stats={[
{ value: '100', suffix: '%', label: locale === 'en' ? 'Nationwide Reach' : 'Überregionale Reichweite' },
{ value: enrichedLocations.length.toString(), suffix: '+', label: locale === 'en' ? 'Completed Projects' : 'Abgeschlossene Projekte' }
]}
/>
{/* Main Content Area */}

View File

@@ -37,19 +37,10 @@ export function HeroVideo(props: HeroVideoProps) {
const ctaLabel = props.ctaLabel || props.linkText || data?.ctaLabel || 'Unternehmen entdecken';
const ctaHref = props.ctaHref || props.linkHref || data?.ctaHref || '#unternehmen';
let currentLocale = 'de';
try {
// We can't unconditionally call hooks if they might fail outside context, but HeroVideo is usually in context.
// However, to be safe and avoid adding new imports, we can use window.location or default to 'de' if not available.
if (typeof window !== 'undefined') {
currentLocale = window.location.pathname.startsWith('/en') ? 'en' : 'de';
}
} catch (e) {
// Fallback to default locale if window/location access fails
}
const currentLocale = pathname?.startsWith('/en') ? 'en' : 'de';
const secondaryCtaLabel = props.secondaryCtaLabel || data?.secondaryCtaLabel || (currentLocale === 'de' ? 'Projekt anfragen' : 'Inquire Project');
const secondaryCtaHref = props.secondaryCtaHref || data?.secondaryCtaHref || `/${currentLocale}/${currentLocale === 'de' ? 'contact' : 'contact'}`;
const secondaryCtaHref = props.secondaryCtaHref || data?.secondaryCtaHref || `/${currentLocale}/contact`;
return (
<div className="relative w-full h-[100svh] flex items-center justify-center overflow-hidden bg-neutral-dark">
@@ -98,7 +89,7 @@ export function HeroVideo(props: HeroVideoProps) {
>
<h1
className="font-heading font-bold text-4xl md:text-6xl lg:text-8xl text-white mb-6 uppercase tracking-tight drop-shadow-lg"
dangerouslySetInnerHTML={{ __html: title.replace('KABELTIEFBAU', '<span class="text-primary-light">KABELTIEFBAU</span>').replace(/\\n|\n/g, '<br />') }}
dangerouslySetInnerHTML={{ __html: title.replace(/KABELTIEFBAU|Kabeltiefbau/g, '<span class="text-primary-light">Kabeltiefbau</span>').replace(/KABELNETZBAU|Kabelnetzbau/g, '<span class="text-primary-light">Kabelnetzbau</span>').replace(/\\n|\n/g, '<br />') }}
/>
<p className="text-lg md:text-xl lg:text-2xl text-white/90 max-w-3xl mx-auto mb-12 drop-shadow">

View File

@@ -25,6 +25,7 @@ interface InteractiveGermanyMapProps {
stats?: Stat[];
locations?: Location[];
isHero?: boolean;
hideStandorte?: boolean;
}
export function InteractiveGermanyMap({
@@ -33,7 +34,8 @@ export function InteractiveGermanyMap({
description,
stats,
locations = projectLocations,
isHero = false
isHero = false,
hideStandorte = false
}: InteractiveGermanyMapProps) {
const [activeLocation, setActiveLocation] = useState<Location | null>(null);
const router = useRouter();
@@ -52,10 +54,18 @@ export function InteractiveGermanyMap({
const finalTitle = title || (locale === 'en' ? <>Nationwide<br/>in operation for you.</> : <>Deutschlandweit<br/>für Sie im Einsatz.</>);
const finalDescription = description || (locale === 'en' ? 'From our strategic locations in Guben, Kirchheilingen and Bülstedt, we control and implement complex infrastructure projects nationwide.' : 'Von unseren strategischen Standorten in Guben, Kirchheilingen und Bülstedt steuern und realisieren wir komplexe Infrastrukturprojekte im gesamten Bundesgebiet.');
const hq = locations.find((l) => l.type === 'hq');
const branch = locations.find((l) => l.type === 'branch');
const projects = locations.filter((l) => l.type === 'project');
const minorNodes = locations.filter((l) => l.type === 'minor_node');
const finalLocations = React.useMemo(() => {
if (hideStandorte) return locations;
// Ensure the 3 standorte are always included, without duplicating if already present by ID
const base = [...locations];
standorteLocations.forEach(sl => {
if (!base.some(l => l.id === sl.id)) {
base.push(sl as Location);
}
});
return base;
}, [locations, hideStandorte]);
return (
<div key={isHero ? `hero-map-${pathname}` : undefined} className={isHero ? "relative w-full" : "relative w-full max-w-7xl mx-auto py-16 md:py-24 px-4 sm:px-6 mt-16 md:mt-20"}>
@@ -138,7 +148,7 @@ export function InteractiveGermanyMap({
</div>
{/* Minor Location Markers (The 100+ generic projects) */}
{locations.filter(l => l.type === 'minor_node').map((loc, idx) => (
{finalLocations.filter(l => l.type === 'minor_node' || l.type === 'project').map((loc, idx) => (
<div
key={`minor-${idx}`}
className="absolute z-10 group/minor cursor-pointer w-10 h-10 flex items-center justify-center"
@@ -155,8 +165,8 @@ export function InteractiveGermanyMap({
</div>
))}
{/* Major & Reference Location Markers (HQ, Branch, Project) */}
{locations.filter(l => l.type !== 'minor_node').map((loc, idx) => {
{/* Major Location Markers (HQ, Branch) */}
{finalLocations.filter(l => l.type === 'hq' || l.type === 'branch').map((loc, idx) => {
const isHQ = loc.type === 'hq';
const isBranch = loc.type === 'branch';
const isActive = activeLocation?.id === loc.id;
@@ -273,7 +283,7 @@ export function InteractiveGermanyMap({
</ul>
)}
{activeLocation.href && (
{activeLocation.href && (activeLocation.type === 'hq' || activeLocation.type === 'branch') && (
<div className="inline-flex items-center text-xs font-bold text-primary">
{t('learnMore')}
<ArrowUpRight className="w-3.5 h-3.5 ml-1" />

View File

@@ -138,6 +138,7 @@ export function ReferencesSlider(props: ReferencesSliderProps) {
if (dragDistanceRef.current > 15) {
e.preventDefault();
}
dragDistanceRef.current = 0;
}}
className="block relative select-none aspect-[16/10] bg-neutral-800 rounded-2xl overflow-hidden mb-5 border border-white/5 shadow-2xl"
>

View File

@@ -84,19 +84,19 @@ export function ScaleOfImpact() {
{/* Static Data Grid (No jumping text) */}
<div className="grid grid-cols-2 md:grid-cols-4 gap-8 md:gap-12 w-full max-w-5xl mt-12">
<div className="flex flex-col items-center">
<div className="font-mono text-4xl md:text-5xl font-black text-white tracking-tighter mb-2">200<span className="text-primary">+</span></div>
<div className="font-mono text-4xl md:text-5xl font-black text-white tracking-tighter mb-2">200 <span className="text-primary">+</span></div>
<div className="text-xs font-bold uppercase tracking-widest text-white/50">{locale === 'en' ? 'Projects' : 'Projekte'}</div>
</div>
<div className="flex flex-col items-center">
<div className="font-mono text-4xl md:text-5xl font-black text-white tracking-tighter mb-2">974<span className="text-primary text-2xl">km</span></div>
<div className="font-mono text-4xl md:text-5xl font-black text-white tracking-tighter mb-2">974 <span className="text-primary text-2xl">km</span></div>
<div className="text-xs font-bold uppercase tracking-widest text-white/50">{locale === 'en' ? 'Cable Laying' : 'Kabelverlegung'}</div>
</div>
<div className="flex flex-col items-center">
<div className="font-mono text-4xl md:text-5xl font-black text-white tracking-tighter mb-2">300<span className="text-primary text-2xl">km</span></div>
<div className="font-mono text-4xl md:text-5xl font-black text-white tracking-tighter mb-2">300 <span className="text-primary text-2xl">km</span></div>
<div className="text-xs font-bold uppercase tracking-widest text-white/50">{locale === 'en' ? 'Open Trenching' : 'Offener Tiefbau'}</div>
</div>
<div className="flex flex-col items-center">
<div className="font-mono text-4xl md:text-5xl font-black text-white tracking-tighter mb-2">160<span className="text-primary text-2xl">km</span></div>
<div className="font-mono text-4xl md:text-5xl font-black text-white tracking-tighter mb-2">160 <span className="text-primary text-2xl">km</span></div>
<div className="text-xs font-bold uppercase tracking-widest text-white/50">{locale === 'en' ? 'HDD Drilling' : 'Spülbohrung'}</div>
</div>
</div>

View File

@@ -9,7 +9,7 @@ export function EUFundingBadge() {
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
transition={{ duration: 1.5, ease: [0.16, 1, 0.3, 1] }}
className="absolute top-0 right-0 w-[260px] md:w-[380px] h-[260px] md:h-[380px] z-[40] pointer-events-none select-none overflow-hidden"
className="absolute top-0 right-0 w-[260px] md:w-[380px] h-[260px] md:h-[380px] z-0 pointer-events-none select-none overflow-hidden"
style={{
// Perfekter weicher Fade, der sicherstellt, dass harte Kanten komplett unsichtbar werden
maskImage: 'radial-gradient(100% 100% at top right, black 10%, rgba(0,0,0,0.8) 30%, transparent 70%)',

View File

@@ -4,6 +4,7 @@ import { useLocale } from 'next-intl';
import { ShieldCheck, Leaf, Lock, Accessibility, Zap, Mail, Phone } from 'lucide-react';
import { LanguageSwitcher } from './LanguageSwitcher';
import { Tooltip } from '@/components/ui/Tooltip';
import { EUFundingBadge } from '@/components/decorations/EUFundingBadge';
interface CompanyInfo {
contactEmail: string;
contactPhone: string;
@@ -26,6 +27,8 @@ export function Footer({ companyInfo }: FooterProps) {
<div className="absolute top-0 left-0 w-full h-px bg-gradient-to-r from-transparent via-primary/40 to-transparent" />
<div className="absolute top-0 left-1/2 -translate-x-1/2 w-1/3 h-[200px] bg-primary/20 blur-[100px] rounded-full pointer-events-none opacity-50" />
<EUFundingBadge />
<div className="container relative z-10 grid grid-cols-1 md:grid-cols-4 lg:grid-cols-12 gap-4 md:gap-6 lg:gap-8 mb-8 md:mb-12">
{/* Brand Column Bento */}
<div className="col-span-1 md:col-span-4 lg:col-span-5 flex flex-col justify-between bg-white/[0.02] border border-white/5 rounded-3xl p-5 md:p-8 lg:p-10 backdrop-blur-md relative group overflow-hidden">

View File

@@ -5,7 +5,7 @@ description: "Die E-TIB GmbH ist Ihr zuverlässiger Partner für komplexe Kabelt
<HomeHero
title={"Die Experten für\nKabeltiefbau"}
title={"Die Experten für\nKabelnetzbau"}
description="Wir realisieren komplexe Versorgungsleitungen für eine moderne Gesellschaft. Verlässlich, innovativ und mit höchster Präzision im Kabeltiefbau und der Bohrtechnik."
videoUrl="/assets/videos/web/hero-kabelpflug.mp4"
linkText="Unsere Leistungen"

View File

@@ -27,7 +27,7 @@ layout: "fullBleed"
Seit unserer Gründung im Jahr 2015 in Guben haben wir es uns zur Aufgabe gemacht, den Ausbau der kritischen Infrastruktur in Deutschland aktiv mitzugestalten.
</div>
<div>
Mit 100+ engagierten Mitarbeitenden und einem hochmodernen Maschinenpark meistern wir selbst anspruchsvollste Projekte im Kabelnetzbau, der Spülbohrtechnik und der Netzmontage. Verlässlichkeit, Termintreue und höchste Qualitätsstandards sind dabei unser Fundament.
Mit über 100 Experten für Ihr Projekt (darunter Spezialisten der E-TIB GmbH, E-TIB Bohrtechnik und E-TIB Ingenieurgesellschaft) und einem hochmodernen Maschinenpark meistern wir selbst anspruchsvollste Projekte im Kabelnetzbau, der Spülbohrtechnik und der Netzmontage. Verlässlichkeit, Termintreue und höchste Qualitätsstandards sind dabei unser Fundament.
</div>
</div>
<div className="grid grid-cols-2 gap-6">
@@ -52,7 +52,20 @@ layout: "fullBleed"
</div>
</div>
<InteractiveGermanyMap isHero={true} badge="Bundesweite Präsenz" title="Infrastruktur für ein ganzes Land" description="Seit 2016 haben wir in über 200 Projekten quer durch Deutschland bewiesen, dass wir Infrastrukturprojekte jeder Größenordnung verlässlich umsetzen." />
<div className="bg-[#050B14] py-24 md:py-32 text-white relative overflow-hidden group my-16 md:my-24 rounded-[2.5rem] md:rounded-[3.5rem] mx-4 md:mx-auto max-w-7xl">
<div className="absolute inset-0 bg-[url('/assets/photos/Etib_E-tib_Tiefbau_Guben_Netzanbindung_Energie-54.jpg')] opacity-20 bg-cover bg-center mix-blend-overlay group-hover:scale-105 transition-transform duration-1000"></div>
<div className="absolute inset-0 bg-gradient-to-br from-[#050B14] via-[#0A1322]/90 to-[#050B14]"></div>
<div className="container max-w-4xl mx-auto px-4 relative z-10 text-center">
<div className="inline-block px-4 py-1.5 rounded-full bg-primary/10 text-primary border border-primary/20 text-xs font-bold uppercase tracking-wider mb-8">
Bundesweite Präsenz
</div>
<h2 className="font-heading text-4xl md:text-5xl lg:text-6xl font-extrabold mb-6 leading-tight text-transparent bg-clip-text bg-gradient-to-r from-white to-white/70">Infrastruktur für<br />ein ganzes Land</h2>
<p className="text-lg md:text-xl text-white/60 mb-12 max-w-2xl mx-auto leading-relaxed">Seit 2016 haben wir in über 200 Projekten quer durch Deutschland bewiesen, dass wir Infrastrukturprojekte jeder Größenordnung verlässlich umsetzen.</p>
<a href="/de/referenzen" className="inline-flex items-center gap-3 bg-primary text-[#050B14] px-8 py-4 rounded-xl font-bold uppercase tracking-wider hover:bg-white hover:-translate-y-1 transition-all duration-300 shadow-[0_0_20px_rgba(130,237,32,0.3)]">
Zu unseren Referenzen <span className="text-xl leading-none">&rarr;</span>
</a>
</div>
</div>
<CompanyTimeline />
@@ -82,13 +95,13 @@ layout: "fullBleed"
url: "/de/standorte/buelstedt",
backgroundImage: "/assets/photos/DJI_0048.JPG"
},
{
title: "E-TIB Bohrtechnik GmbH",
description: "Präzise Horizontalspülbohrungen in allen Bodenklassen für eine oberflächenschonende und grabenlose Leitungsverlegung.",
icon: "M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z",
url: "/de/standorte/kirchheilingen",
backgroundImage: "/assets/photos/Etib_E-tib_Tiefbau_Guben_Netzanbindung_Energie-47.jpg"
}
{
title: "E-TIB Bohrtechnik GmbH",
description: "Präzise Horizontalspülbohrungen in allen Bodenklassen für eine oberflächenschonende und grabenlose Leitungsverlegung.",
icon: "M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z",
url: "/de/bohrtechnik",
backgroundImage: "/assets/photos/Etib_E-tib_Tiefbau_Guben_Netzanbindung_Energie-47.jpg"
}
]}
/>
</div>

View File

@@ -27,7 +27,7 @@ layout: "fullBleed"
Since our foundation in 2015 in Guben, we have made it our mission to actively shape the expansion of critical infrastructure.
</div>
<div>
With 100+ dedicated employees and a state-of-the-art machinery park, we master even the most demanding projects in cable network construction, directional drilling, and grid assembly. Reliability, adherence to schedules, and the highest quality standards are our foundation.
With over 100 experts for your project (including specialists from E-TIB GmbH, E-TIB Bohrtechnik and E-TIB Ingenieurgesellschaft) and a state-of-the-art machinery park, we master even the most demanding projects in cable network construction, directional drilling, and grid assembly. Reliability, adherence to schedules, and the highest quality standards are our foundation.
</div>
</div>
<div className="grid grid-cols-2 gap-6">
@@ -52,7 +52,20 @@ layout: "fullBleed"
</div>
</div>
<InteractiveGermanyMap isHero={true} badge="Nationwide Presence" title="Infrastructure for an entire country" description="Since 2016, we have proven in over 200 projects across Germany that we reliably implement infrastructure projects of any scale." />
<div className="bg-[#050B14] py-24 md:py-32 text-white relative overflow-hidden group my-16 md:my-24 rounded-[2.5rem] md:rounded-[3.5rem] mx-4 md:mx-auto max-w-7xl">
<div className="absolute inset-0 bg-[url('/assets/photos/Etib_E-tib_Tiefbau_Guben_Netzanbindung_Energie-54.jpg')] opacity-20 bg-cover bg-center mix-blend-overlay group-hover:scale-105 transition-transform duration-1000"></div>
<div className="absolute inset-0 bg-gradient-to-br from-[#050B14] via-[#0A1322]/90 to-[#050B14]"></div>
<div className="container max-w-4xl mx-auto px-4 relative z-10 text-center">
<div className="inline-block px-4 py-1.5 rounded-full bg-primary/10 text-primary border border-primary/20 text-xs font-bold uppercase tracking-wider mb-8">
Nationwide Presence
</div>
<h2 className="font-heading text-4xl md:text-5xl lg:text-6xl font-extrabold mb-6 leading-tight text-transparent bg-clip-text bg-gradient-to-r from-white to-white/70">Infrastructure for<br />an entire country</h2>
<p className="text-lg md:text-xl text-white/60 mb-12 max-w-2xl mx-auto leading-relaxed">Since 2016, we have proven in over 200 projects across Germany that we reliably implement infrastructure projects of any scale.</p>
<a href="/en/referenzen" className="inline-flex items-center gap-3 bg-primary text-[#050B14] px-8 py-4 rounded-xl font-bold uppercase tracking-wider hover:bg-white hover:-translate-y-1 transition-all duration-300 shadow-[0_0_20px_rgba(130,237,32,0.3)]">
View our references <span className="text-xl leading-none">&rarr;</span>
</a>
</div>
</div>
<CompanyTimeline />
@@ -86,7 +99,7 @@ layout: "fullBleed"
title: "E-TIB Bohrtechnik GmbH",
description: "Precise horizontal directional drilling in all soil classes for surface-friendly and trenchless pipe laying.",
icon: "M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z",
url: "/en/standorte/kirchheilingen",
url: "/en/bohrtechnik",
backgroundImage: "/assets/photos/Etib_E-tib_Tiefbau_Guben_Netzanbindung_Energie-47.jpg"
}
]}

View File

@@ -45,19 +45,19 @@ export const defaultLocations: Location[] = [
},
{
id: 'ketzin',
name: 'Ketzin (Wind)',
name: 'Ketzin (Netzausbau)',
type: 'project',
x: 72,
y: 34,
description: 'Netzanbindung Windpark',
description: 'Netzausbau Gewerbegebiet',
},
{
id: 'jevenstedt',
name: 'Jevenstedt (Wind)',
name: 'Jevenstedt (Kabeltrasse)',
type: 'project',
x: 43,
y: 9,
description: 'Netzanbindung Windpark',
description: '110 kV Kabeltrasse',
}
];

View File

@@ -143,7 +143,7 @@
"prepare": "husky",
"preinstall": "npx only-allow pnpm"
},
"version": "2.2.13-rc.0",
"version": "2.2.13-rc.1",
"pnpm": {
"onlyBuiltDependencies": [
"@parcel/watcher",

BIN
public/assets/photos/DSC00010.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 MiB

After

Width:  |  Height:  |  Size: 447 KiB

BIN
public/assets/photos/DSC00033.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 MiB

After

Width:  |  Height:  |  Size: 570 KiB

BIN
public/assets/photos/DSC00808.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 MiB

After

Width:  |  Height:  |  Size: 434 KiB

BIN
public/assets/photos/DSC00830.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 MiB

After

Width:  |  Height:  |  Size: 336 KiB

BIN
public/assets/photos/DSC00850.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 MiB

After

Width:  |  Height:  |  Size: 422 KiB

BIN
public/assets/photos/DSC01021.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 MiB

After

Width:  |  Height:  |  Size: 702 KiB

BIN
public/assets/photos/DSC01022.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 MiB

After

Width:  |  Height:  |  Size: 380 KiB

BIN
public/assets/photos/DSC01103.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 MiB

After

Width:  |  Height:  |  Size: 406 KiB

BIN
public/assets/photos/DSC01119.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 MiB

After

Width:  |  Height:  |  Size: 664 KiB

BIN
public/assets/photos/DSC01122.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 MiB

After

Width:  |  Height:  |  Size: 546 KiB

BIN
public/assets/photos/DSC01123.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 MiB

After

Width:  |  Height:  |  Size: 636 KiB

BIN
public/assets/photos/DSC01129.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 MiB

After

Width:  |  Height:  |  Size: 877 KiB

BIN
public/assets/photos/DSC01137.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 MiB

After

Width:  |  Height:  |  Size: 894 KiB

BIN
public/assets/photos/DSC01163.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 MiB

After

Width:  |  Height:  |  Size: 402 KiB

BIN
public/assets/photos/DSC01168.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 MiB

After

Width:  |  Height:  |  Size: 755 KiB

BIN
public/assets/photos/DSC01174.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 MiB

After

Width:  |  Height:  |  Size: 306 KiB

BIN
public/assets/photos/DSC01178.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 MiB

After

Width:  |  Height:  |  Size: 686 KiB

BIN
public/assets/photos/DSC01200.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 MiB

After

Width:  |  Height:  |  Size: 660 KiB

BIN
public/assets/photos/DSC01567.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 MiB

After

Width:  |  Height:  |  Size: 606 KiB

BIN
public/assets/photos/DSC01572.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 MiB

After

Width:  |  Height:  |  Size: 432 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 710 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 844 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 655 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 771 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 919 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 577 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 675 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 689 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 614 KiB

BIN
public/assets/photos/DSC03612.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 MiB

After

Width:  |  Height:  |  Size: 895 KiB

BIN
public/assets/photos/DSC08626.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 MiB

After

Width:  |  Height:  |  Size: 315 KiB

BIN
public/assets/photos/DSC08641.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 MiB

After

Width:  |  Height:  |  Size: 346 KiB

BIN
public/assets/photos/DSC08645.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 MiB

After

Width:  |  Height:  |  Size: 404 KiB

BIN
public/assets/photos/DSC08649.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 MiB

After

Width:  |  Height:  |  Size: 248 KiB

BIN
public/assets/photos/DSC08653.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 MiB

After

Width:  |  Height:  |  Size: 664 KiB

BIN
public/assets/photos/DSC08744.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 MiB

After

Width:  |  Height:  |  Size: 633 KiB

BIN
public/assets/photos/DSC08753.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 MiB

After

Width:  |  Height:  |  Size: 543 KiB

BIN
public/assets/photos/DSC09945.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 MiB

After

Width:  |  Height:  |  Size: 468 KiB

BIN
public/assets/photos/DSC09951.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 MiB

After

Width:  |  Height:  |  Size: 492 KiB

BIN
public/assets/photos/DSC09953.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 MiB

After

Width:  |  Height:  |  Size: 384 KiB

BIN
public/assets/photos/DSC09955.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 MiB

After

Width:  |  Height:  |  Size: 317 KiB

BIN
public/assets/photos/DSC09960.JPG Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 MiB

After

Width:  |  Height:  |  Size: 328 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1018 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1018 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 585 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 585 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 MiB

View File

@@ -75,12 +75,12 @@ describe('Task 6 Content Updates', () => {
// DE Ueber uns
expect(deContent).toContain('100+');
expect(deContent).toContain('100+ engagierten');
expect(deContent).toContain('Mitarbeitende');
expect(deContent).toContain('Seit 2016 haben wir in über 200 Projekten quer');
// EN Ueber uns
expect(enContent).toContain('100+');
expect(enContent).toContain('100+ dedicated');
expect(enContent).toContain('Employees');
expect(enContent).toContain('Since 2016, we have proven in over 200 projects across');
});
});