{"version":3,"file":"component---src-pages-expertise-tsx-4975c79141889c04a882.js","mappings":"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","sources":["webpack://garage51/./src/components/Cards.tsx","webpack://garage51/./src/pages/expertise.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from \"react\"\nimport styled from \"styled-components\"\nimport { Content, SwipeContainer } from \"./layout-components\"\nimport { bp, colors, fonts } from \"./Styles\"\nimport { useBreakpoint } from \"gatsby-plugin-breakpoints\"\nimport { useLottie, Lottie } from \"react-lottie-hook\"\nimport useComponentSize from \"@rehooks/component-size\"\nimport { ParallaxProvider, Parallax } from \"react-scroll-parallax\"\nimport FadeInSection from \"../util/fade-in-section\"\n\nconst CardContainer = styled.div`\n display: flex;\n flex-direction: column;\n width: 110rem;\n max-width: 100%;\n align-items: center;\n margin-right: auto;\n margin-left: auto;\n`\n\nexport const ImageCard = styled.div`\n flex: 0 0 auto;\n height: 24.3rem;\n background-color: ${colors.blue};\n width: 17rem;\n box-shadow: 0px 0px 20px #00000030;\n display: flex;\n flex-direction: column;\n margin: 1.5rem;\n\n ${bp(\"hdpi\")`\n margin: 2.5rem;\n `}\n\n ${bp(\"ldpi\")`\n margin: 2rem 3rem;\n `}\n & p {\n color: ${colors.primary};\n }\n > .lottie-container {\n margin: 1rem 1rem 0 1rem;\n height: 13rem;\n width: calc(100% - 2rem);\n\n > .lottie-sizer {\n width: 100%;\n height: 100%;\n }\n }\n\n > :last-child {\n margin-top: auto;\n line-height: 2.25rem;\n font-size: 1.22rem;\n padding: 1.4rem;\n padding-bottom: 1.5rem;\n }\n\n ${bp(\"mobile\")`\n height: 27rem;\n width: 18.9rem;\n margin: 25px;\n position: relative;\n ::after {\n content: \"\";\n position: absolute;\n top: 0;\n left: -25px;\n right: -25px;\n bottom: 0;\n }\n\n > :first-child {\n margin-top: 2rem;\n height: 15rem;\n }\n\n > :last-child {\n padding: 1.1rem;\n padding-bottom: 1.4rem;\n font-size: 1.45rem;\n line-height: 2.4rem;\n }\n `}\n`\n\nconst CardContainerInner = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n\n ${bp(\"ldpi\")`\n width: 80rem;\n max-width: 100%;\n flex-wrap: wrap;\n `}\n`\n\nconst CardsContainerOuter = styled.div`\n margin-top: -6rem;\n transform: translateY(7rem);\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n position: relative;\n z-index: 1;\n background: linear-gradient(0deg, ${colors.primary} 40%, rgb(0 0 0 / 0%) 40%);\n padding-bottom: 5em;\n\n > div ${Content} {\n > h2 {\n margin-bottom: 5.1rem;\n margin-top: 10.4rem;\n max-width: 100%;\n line-height: 4.3rem;\n font-size: 4.3rem;\n font-family: ${fonts.bold};\n color: ${colors.primary};\n\n ${bp(\"mobile\")`\n display: none;\n `}\n }\n }\n\n ${bp(\"mobile\")`\n background: linear-gradient(\n 0deg, ${colors.primary} 60%, rgb(0 0 0 / 0%) 40%);\n margin-top: 0;\n margin-bottom: 12rem;\n transform: translateY(8rem);\n `}\n\n .expertise {\n p {\n font-family: ${fonts.bold};\n margin-top: 0;\n }\n ${ImageCard} {\n height: 20rem;\n .lottie-container {\n height: 9rem;\n }\n }\n }\n`\n\ninterface CardItem {\n animation: any\n label: string\n}\n\nconst CardInner: React.FC<{\n item: CardItem\n isSlider?: boolean\n isPlaying?: boolean\n}> = ({ item, isSlider, isPlaying }) => {\n const { animation, label } = item\n const lottieSizerRef = useRef(null)\n const { width, height } = useComponentSize(lottieSizerRef)\n\n const [lottieRef, , controls] = useLottie({\n loop: true,\n autoplay: false,\n animationData: animation,\n rendererSettings: {\n preserveAspectRatio: \"xMidYMid\",\n },\n })\n\n useEffect(() => {\n if (isSlider && !isPlaying) controls.goToAndStop(0)\n if (isSlider && isPlaying) controls.play()\n }, [isPlaying, isSlider])\n\n return (\n controls.play()}\n onMouseLeave={() => controls.goToAndStop(0)}\n >\n
\n
\n \n
\n
\n\n

{label}

\n \n )\n}\n\nconst Cards: React.FC<{\n items: CardItem[]\n title?: string\n className?: string\n id?: string\n}> = ({ items, title, className, id }) => {\n const breaks = useBreakpoint()\n const [activeSlide, setActiveSlide] = useState(0)\n\n const isSlider =\n breaks.mobile &&\n (items.length > 3 ||\n (items.length === 3 && breaks.widthMax710) ||\n breaks.widthMax420)\n\n const children = items.map((item, key) => {\n const isPlaying = key === activeSlide\n return \n })\n\n return (\n \n \n \n \n {title && (\n \n

{title}

\n
\n )}\n\n {isSlider && (\n setActiveSlide(s)}\n center\n >\n {children}\n \n )}\n\n {!isSlider && (\n \n \n {children}\n \n \n )}\n
\n
\n
\n
\n )\n}\n\nexport default Cards\n","import React from \"react\"\nimport InfoMenu from \"../components/InfoMenu\"\nimport Cards from \"../components/Cards\"\nimport {\n Container,\n HeadlineContainer,\n HeroHeader,\n StickyContentContainer,\n StickyContent,\n TextBlock,\n Spacing,\n MinSpacing,\n BackgroundContainer,\n TextSegment,\n SmSpacing,\n} from \"../components/layout-components\"\nimport { graphql } from \"gatsby\"\nimport { asBg } from \"../util/image\"\nimport { StaticImage } from \"gatsby-plugin-image\"\nimport { useTranslation } from \"gatsby-plugin-react-i18next\"\nimport { Helmet } from \"react-helmet\"\nimport Footer from \"../components/Footer\"\nimport ApiIcon from \"../lottie/Expertise/Icn_CustomAPI.json\"\nimport Authentifizierung from \"../lottie/Expertise/Icn_Authentifizierung.json\"\nimport OAuth2 from \"../lottie/Expertise/Icn_OAuth2.json\"\nimport Websocket from \"../lottie/Expertise/Icn_WebSocket.json\"\nimport ZeroDowntime from \"../lottie/Expertise/Icn_ZeroDowntime.json\"\nimport SchemaFirst from \"../lottie/Expertise/Icn_SchemaFirst.json\"\nimport Datenbanken from \"../lottie/Expertise/Icn_Datenbanken.json\"\nimport Kompetenzen from \"../lottie/Expertise/Icn_Kompetenzen.json\"\nimport KomponentenVernetzen from \"../lottie/Expertise/Icn_KomponentenVernetzen.json\"\nimport SSLVerschluesselung from \"../lottie/Expertise/Icn_SSLVerschluesselung.json\"\nimport TypscriptReactClient from \"../lottie/Expertise/Icn_TypscriptReactClient.json\"\n\nconst Expertise: React.FC<{ data: any }> = ({ data }) => {\n const { headerBackground } = data\n\n const { t } = useTranslation()\n\n return (\n \n \n Garage51 | {t(\"Expertise\")}\n \n\n \n \n

\n {t(\"Unser\")} \n {t(\"Stack\")}.\n
\n {t(\"Ihre\")} \n {t(\"Lösung\")}.\n

\n
\n
\n\n \n
\n

\n {t(\n \"Ob es sich um eine Website oder eine App handelt, um interne Tools, Cloudanwendungen oder um komplexe Systeme mit Redundanzen zur Steuerung von Industrieparks, unser Team aus erstklassigen Webentwicklern und Softwareingenieuren kann eine auf Ihre Bedürfnisse zugeschnittene Lösung erstellen.\"\n )}\n

\n

\n {t(\n \"Das Entwicklungsteam arbeitet nach methodischen Praktiken und agilen Prinzipien, um sicherzustellen, dass Ihr digitales Produkt schnell und ohne Qualitätseinbußen geliefert wird.\"\n )}\n

\n
\n
\n\n \n\n \n \n \n \n \n \n\n \n\n \n\n \n\n \n\n \n\n \n \n \n \n \n \n\n \n\n \n \n \n \n \n \n \n \n