Compare commits
6 Commits
v2.2.13-rc
...
v2.2.13-rc
| Author | SHA1 | Date | |
|---|---|---|---|
| e2a29b41e9 | |||
| 62727a7231 | |||
| 3a6189e0d8 | |||
| 01e2fdbb7d | |||
| fa7182d351 | |||
| e0d43f7f5f |
@@ -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
|
||||
|
||||
@@ -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 */}
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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"
|
||||
>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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%)',
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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">→</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>
|
||||
|
||||
@@ -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">→</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"
|
||||
}
|
||||
]}
|
||||
|
||||
@@ -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',
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
@@ -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
|
Before Width: | Height: | Size: 5.7 MiB After Width: | Height: | Size: 447 KiB |
BIN
public/assets/photos/DSC00033.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 6.3 MiB After Width: | Height: | Size: 570 KiB |
BIN
public/assets/photos/DSC00808.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 5.2 MiB After Width: | Height: | Size: 434 KiB |
BIN
public/assets/photos/DSC00830.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 4.1 MiB After Width: | Height: | Size: 336 KiB |
BIN
public/assets/photos/DSC00850.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 5.2 MiB After Width: | Height: | Size: 422 KiB |
BIN
public/assets/photos/DSC01021.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 8.9 MiB After Width: | Height: | Size: 702 KiB |
BIN
public/assets/photos/DSC01022.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 4.9 MiB After Width: | Height: | Size: 380 KiB |
BIN
public/assets/photos/DSC01103.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 4.8 MiB After Width: | Height: | Size: 406 KiB |
BIN
public/assets/photos/DSC01119.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 7.4 MiB After Width: | Height: | Size: 664 KiB |
BIN
public/assets/photos/DSC01122.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 6.3 MiB After Width: | Height: | Size: 546 KiB |
BIN
public/assets/photos/DSC01123.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 7.5 MiB After Width: | Height: | Size: 636 KiB |
BIN
public/assets/photos/DSC01129.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 10 MiB After Width: | Height: | Size: 877 KiB |
BIN
public/assets/photos/DSC01137.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 10 MiB After Width: | Height: | Size: 894 KiB |
BIN
public/assets/photos/DSC01163.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 5.0 MiB After Width: | Height: | Size: 402 KiB |
BIN
public/assets/photos/DSC01168.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 8.3 MiB After Width: | Height: | Size: 755 KiB |
BIN
public/assets/photos/DSC01174.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 3.9 MiB After Width: | Height: | Size: 306 KiB |
BIN
public/assets/photos/DSC01178.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 8.6 MiB After Width: | Height: | Size: 686 KiB |
BIN
public/assets/photos/DSC01200.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 8.3 MiB After Width: | Height: | Size: 660 KiB |
BIN
public/assets/photos/DSC01567.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 7.3 MiB After Width: | Height: | Size: 606 KiB |
BIN
public/assets/photos/DSC01572.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 5.9 MiB After Width: | Height: | Size: 432 KiB |
BIN
public/assets/photos/DSC02639.JPG
Normal file
|
After Width: | Height: | Size: 710 KiB |
BIN
public/assets/photos/DSC02642.JPG
Normal file
|
After Width: | Height: | Size: 844 KiB |
BIN
public/assets/photos/DSC02643.JPG
Normal file
|
After Width: | Height: | Size: 655 KiB |
BIN
public/assets/photos/DSC02656.JPG
Normal file
|
After Width: | Height: | Size: 771 KiB |
BIN
public/assets/photos/DSC02676.JPG
Normal file
|
After Width: | Height: | Size: 919 KiB |
BIN
public/assets/photos/DSC02690.JPG
Normal file
|
After Width: | Height: | Size: 577 KiB |
BIN
public/assets/photos/DSC02691.JPG
Normal file
|
After Width: | Height: | Size: 675 KiB |
BIN
public/assets/photos/DSC02693.JPG
Normal file
|
After Width: | Height: | Size: 689 KiB |
BIN
public/assets/photos/DSC02700.JPG
Normal file
|
After Width: | Height: | Size: 614 KiB |
BIN
public/assets/photos/DSC03612.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 10 MiB After Width: | Height: | Size: 895 KiB |
BIN
public/assets/photos/DSC08626.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 4.6 MiB After Width: | Height: | Size: 315 KiB |
BIN
public/assets/photos/DSC08641.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 4.4 MiB After Width: | Height: | Size: 346 KiB |
BIN
public/assets/photos/DSC08645.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 5.1 MiB After Width: | Height: | Size: 404 KiB |
BIN
public/assets/photos/DSC08649.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 4.0 MiB After Width: | Height: | Size: 248 KiB |
BIN
public/assets/photos/DSC08653.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 7.2 MiB After Width: | Height: | Size: 664 KiB |
BIN
public/assets/photos/DSC08744.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 8.0 MiB After Width: | Height: | Size: 633 KiB |
BIN
public/assets/photos/DSC08753.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 7.2 MiB After Width: | Height: | Size: 543 KiB |
BIN
public/assets/photos/DSC09945.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 5.9 MiB After Width: | Height: | Size: 468 KiB |
BIN
public/assets/photos/DSC09951.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 5.9 MiB After Width: | Height: | Size: 492 KiB |
BIN
public/assets/photos/DSC09953.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 4.7 MiB After Width: | Height: | Size: 384 KiB |
BIN
public/assets/photos/DSC09955.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 4.0 MiB After Width: | Height: | Size: 317 KiB |
BIN
public/assets/photos/DSC09960.JPG
Executable file → Normal file
|
Before Width: | Height: | Size: 4.6 MiB After Width: | Height: | Size: 328 KiB |
BIN
public/assets/photos/IMG_6070.jpg
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
public/assets/photos/IMG_6083.jpg
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
public/assets/photos/IMG_6100.jpg
Normal file
|
After Width: | Height: | Size: 1.0 MiB |
BIN
public/assets/photos/image001-1.png
Normal file
|
After Width: | Height: | Size: 1018 KiB |
BIN
public/assets/photos/image001.png
Normal file
|
After Width: | Height: | Size: 1018 KiB |
BIN
public/assets/photos/image002-1.png
Normal file
|
After Width: | Height: | Size: 585 KiB |
BIN
public/assets/photos/image002.png
Normal file
|
After Width: | Height: | Size: 585 KiB |
BIN
public/assets/photos/image003.png
Normal file
|
After Width: | Height: | Size: 3.1 MiB |
BIN
public/assets/photos/image004.png
Normal file
|
After Width: | Height: | Size: 3.8 MiB |
@@ -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');
|
||||
});
|
||||
});
|
||||
|
||||