{"version":3,"file":"f69ccfde4bf4ea9e20038f52cd8f99ee2a34bab2-13c4ce440e580e91a977.js","mappings":"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","sources":["webpack://extra-hut/./src/components/Accordion/AccordionItem/model.ts","webpack://extra-hut/./src/components/Accordion/index.tsx","webpack://extra-hut/./src/components/AccordionSection/AccordionColumn/index.tsx","webpack://extra-hut/./src/components/AccordionSection/index.tsx","webpack://extra-hut/./src/components/AccordionSection/model.ts","webpack://extra-hut/./src/components/PlusButton/index.tsx","webpack://extra-hut/./src/components/ParallaxImage/index.tsx","webpack://extra-hut/./src/components/ImageWithText/index.tsx","webpack://extra-hut/./src/components/LastArticlesSection/index.tsx","webpack://extra-hut/./src/components/LastArticlesSection/model.ts","webpack://extra-hut/./src/components/LinksSection/index.tsx","webpack://extra-hut/./src/components/Carousel/index.tsx","webpack://extra-hut/./src/components/Testimonial/index.tsx","webpack://extra-hut/./src/components/TestimonialsSection/index.tsx","webpack://extra-hut/./src/components/Testimonial/model.ts","webpack://extra-hut/./src/components/TestimonialsSection/model.ts","webpack://extra-hut/./src/hooks/useNavbarInDarkMode.ts","webpack://extra-hut/./src/images/arrow_left.svg"],"sourcesContent":["import { graphql } from 'gatsby'\nimport _get from 'lodash/get'\n\n/* Kentico model: Accordion Item Element */\nexport interface KenticoAccordionItemElement extends KontentItem {\n elements: {\n heading: KontentTextElement\n text: KontentTextElement\n }\n}\n\nexport class AccordionItem {\n title: string\n content: string\n\n constructor(rawData: KenticoAccordionItemElement) {\n this.title = _get(rawData, 'elements.heading.value', '')\n this.content = _get(rawData, 'elements.text.value', '')\n }\n}\n\nexport const accordionFragment = graphql`\nfragment accordion_column_itemFragment on kontent_item_modular_content_element_value {\n value {\n ... on kontent_item_accordion_item {\n elements {\n heading {\n value\n }\n text {\n value\n }\n }\n }\n }\n}`","import * as React from 'react'\nimport AccordionItem from './AccordionItem'\nimport { AccordionItem as AccordionItemClass } from './AccordionItem/model'\nimport './style.scss'\n\ninterface AccordionProps {\n data: AccordionItemClass[]\n fullWidthMode: boolean\n}\n\nconst Accordion: React.FC = ({ data, fullWidthMode }) => {\n const [selectedItem, setSelectedItem] = React.useState()\n\n const toggleHandler = (active: boolean, accordionItemId: number) => {\n if (active) {\n setSelectedItem(accordionItemId)\n }\n }\n\n return (\n
\n
\n {data.map((item, index) => {\n return (\n \n toggleHandler(active, index)}\n />\n
\n
\n
\n )\n })}\n
\n
\n )\n}\n\nexport default Accordion\n","import * as React from 'react'\nimport './style.scss'\nimport Accordion from '../../Accordion'\nimport { AccordionColumn as AccordionColumnProps } from '../model'\n\nconst AccordionColumn = React.forwardRef((props: AccordionColumnProps, ref) => {\n const { title, text, items, titleClass = 'FontS', textClass = 'FontL' } = props\n return (\n
\n
{title}
\n
{text}
\n {items.length > 0 &&\n <>\n
\n
\n \n }\n \n
\n )\n})\nAccordionColumn.displayName = 'AccordionColumn'\n\nexport default AccordionColumn\n","import * as React from 'react'\nimport AccordionColumn from './AccordionColumn'\nimport { AccordionSection as AccordionSectionClass } from './model'\nimport './style.scss'\nimport { AnimationService } from '../../common/AnimationService'\nimport { IsMobileContext } from '../../common/Context'\n\ninterface AccordionSectionProps extends AccordionSectionClass {\n className?: string\n titleClass?: string\n textClass?: string\n}\n\nconst AccordionSection: React.FC = ({\n title,\n text,\n backgroundColor,\n columns,\n className,\n titleClass,\n textClass,\n}) => {\n\n const { isMobile } = React.useContext(IsMobileContext)\n\n const titleRef = React.useRef(null)\n const textRef = React.useRef(null)\n const columnsRefs = React.useRef>([])\n React.useEffect(() => {\n if (isMobile !== undefined) {\n AnimationService.slideUp(titleRef.current)\n AnimationService.slideUp(textRef.current)\n if (isMobile) {\n for (const el of columnsRefs.current) {\n AnimationService.slideUp(el)\n }\n } else {\n AnimationService.slideSequenceUp(columnsRefs.current)\n }\n }\n }, [isMobile])\n const gridCols = ['', 'lg:grid-cols-1', 'lg:grid-cols-2', 'lg:grid-cols-3']\n const nonEmptyColumns = columns.filter(column => column.title || column.text || column.items.length)\n const nonEmptyColumnsCount = nonEmptyColumns.length\n\n return (\n \n
\n
\n {title &&
{title}
}\n {text &&
{text}
}\n
\n
\n {nonEmptyColumns.map((column, i) => (\n
\n {i > 0 &&
}\n columnsRefs.current[i] = el}\n title={column.title}\n text={column.text}\n items={column.items}\n titleClass={titleClass}\n textClass={textClass}\n />\n
\n ))}\n
\n {backgroundColor &&
}\n \n )\n}\n\nexport const LandingPageAccordionSection: React.FC = ({\n title,\n text,\n backgroundColor,\n columns,\n className,\n titleClass = 'FontL',\n textClass = 'FontM',\n}) => (\n \n)\n\nexport default AccordionSection\n","import { graphql, useStaticQuery } from 'gatsby'\nimport { filterPageDataByLanguage } from '../../common/serviceHelpers'\nimport { AccordionItem, KenticoAccordionItemElement } from '../Accordion/AccordionItem/model'\nimport _get from 'lodash/get'\n\nconst accordionColumnsElements = (queryData: KenticoAccordionSection): AccordionColumn[] => {\n const COLUMNS_NUMBER = 3\n const elements = []\n for (let i = 1; i <= COLUMNS_NUMBER; i++) {\n const element = {\n title: _get(queryData, `column_${i}_title.value`, ''),\n text: _get(queryData, `column_${i}_leading.value`, ''),\n items: _get(queryData, `column_${i}_items.value`, [])\n .filter(Boolean)\n .map((element: KenticoAccordionItemElement) => {\n return new AccordionItem(element)\n })\n }\n elements.push(element)\n }\n return elements\n}\n\n/* Kentico model: Accordion Section */\nexport interface KenticoAccordionSection extends KontentItem {\n title: KontentTextElement\n leading: KontentTextElement\n background_color: KontentTextElement\n column_1_title: KontentTextElement\n column_1_leading: KontentTextElement\n column_1_items: KenticoAccordionItemElement[]\n column_2_title: KontentTextElement\n column_2_leading: KontentTextElement\n column_2_items: KenticoAccordionItemElement[]\n column_3_title: KontentTextElement\n column_3_leading: KontentTextElement\n column_3_items: KenticoAccordionItemElement[]\n}\n\nexport interface AccordionColumn {\n title: string\n text: string\n items: AccordionItem[]\n titleClass?: string\n textClass?: string\n}\n\nexport class AccordionSection {\n title: string\n text: string\n backgroundColor: string\n columns: AccordionColumn[]\n\n constructor(data: KenticoAccordionSection) {\n this.title = _get(data, 'title.value', '')\n this.text = _get(data, 'leading.value', '')\n this.backgroundColor = _get(data, 'background_color.value', '')\n this.columns = accordionColumnsElements(data)\n }\n}\n\nconst accordionSectionFragment = graphql`\nquery AccordionSectionQuery {\n allKontentItemPage {\n nodes {\n elements {\n content {\n value {\n ... on kontent_item_accordion_section {\n elements {\n ...kontent_item_accordion_section_elementsFragment\n }\n preferred_language\n system {\n codename\n }\n }\n }\n }\n }\n system {\n codename\n }\n }\n }\n}`\n\nexport const accordionSectionElementsFragment = graphql`\n fragment kontent_item_accordion_section_elementsFragment on kontent_item_accordion_section_elements {\n column_1_title {\n value\n }\n column_1_leading {\n value\n }\n background_color {\n value\n }\n column_1_items {\n ...accordion_column_itemFragment\n }\n column_2_title {\n value\n }\n column_2_leading {\n value\n }\n column_2_items {\n ...accordion_column_itemFragment\n }\n column_3_title {\n value\n }\n column_3_leading {\n value\n }\n column_3_items {\n ...accordion_column_itemFragment\n }\n title {\n value\n }\n leading {\n value\n }\n }\n`\n\nexport const useAccordionSectionData = (language: string, pageCodename: string, sectionCodename = '') => {\n const data = useStaticQuery(accordionSectionFragment)\n const accordionSectionData: KenticoAccordionSection = filterPageDataByLanguage(data.allKontentItemPage, pageCodename, sectionCodename, language)\n return accordionSectionData \n ? new AccordionSection(accordionSectionData)\n : null\n}","import * as React from 'react'\nimport { IsMobileContext } from '../../common/Context'\nimport { AnimationService } from '../../common/AnimationService'\nimport Plus from '../../images/plus.svg'\nimport './style.scss'\n\nexport interface PlusButtonProps {\n text: string,\n hoveredText: string,\n isHovered: boolean,\n}\n\nconst PlusButton: React.FC = ({ text, hoveredText, isHovered }) => {\n\n const { isMobile } = React.useContext(IsMobileContext)\n const plusHeight = isMobile ? '6vw' : '1.5vw'\n const buttonsWrapperRef = React.useRef(null)\n const [animation, setAnimation] = React.useState()\n\n React.useEffect(() => {\n if (!animation) {\n setAnimation(AnimationService.switchUp(buttonsWrapperRef.current))\n } else {\n if (isHovered) {\n animation.play()\n } else {\n animation.reverse()\n }\n }\n }, [animation, isHovered])\n\n return (\n
\n
\n \n \n
\n
\n )\n}\n\nexport default PlusButton\n","import * as React from 'react'\nimport { ImageElement } from '@kentico/gatsby-kontent-components'\nimport { AnimationService } from '../../common/AnimationService'\nimport { ImageItem } from '@kentico/gatsby-kontent-components/dist/image-element'\nimport { Layout } from 'gatsby-plugin-image'\nimport { ImageOptions } from '@kentico/gatsby-kontent-components/dist/image-element/get-gatsby-image-data'\nimport './style.scss'\n\nexport interface ParallaxImageProps {\n backgroundImage: ImageItem\n layer1Image?: ImageItem\n layer2Image?: ImageItem\n layout: Layout\n alt: string\n className: string\n style: React.CSSProperties | undefined\n options: ImageOptions\n}\n\nconst ParallaxImage: React.FC = ({\n backgroundImage,\n layer1Image,\n layer2Image,\n layout,\n alt,\n className,\n style,\n options,\n}) => {\n\n const parallaxBackgroundRef = React.useRef(null)\n const parallaxLayer1Ref = React.useRef(null)\n const parallaxLayer2Ref = React.useRef(null)\n React.useEffect(() => {\n AnimationService.parallax(parallaxBackgroundRef.current, parallaxLayer1Ref.current, 50)\n AnimationService.parallax(parallaxBackgroundRef.current, parallaxLayer2Ref.current, 20)\n }, [])\n\n const parallaxImageStyle = React.useMemo(() => ({ height: 'auto' }), [])\n\n return (\n <>\n
\n \n
\n {layer1Image && (\n
\n \n
\n )}\n {layer2Image && (\n
\n \n
\n )}\n \n )\n}\n\nexport default ParallaxImage\n","import * as React from 'react'\nimport PlusButton from '../PlusButton'\nimport { Link } from 'gatsby'\nimport { ImageItem } from '@kentico/gatsby-kontent-components/dist/image-element'\nimport { useTranslation } from 'gatsby-plugin-react-i18next'\nimport { localizeDate } from '../../common/serviceHelpers'\nimport { LanguageContext } from '../../common/Context'\nimport { DynamicSitesCategory } from '../../common/typings/enums'\nimport { AnimationService } from '../../common/AnimationService'\nimport { ImageQuality, ImageAspectRatio } from '../../common/typings/enums'\nimport ParallaxImage from '../ParallaxImage'\nimport './style.scss'\n\nexport interface ImageWithTextProps {\n image: ImageItem,\n videoUrl: string,\n parallax: ImageItem[],\n title: string,\n description?: string,\n date?: Date\n target: string\n style?: string\n category?: DynamicSitesCategory | string\n grids?: string\n buttonText?: string\n keepAspectRatio?: boolean\n animate?: boolean\n}\n\nconst ImageWithText = React.forwardRef((props: ImageWithTextProps, ref) => {\n const {\n image,\n videoUrl,\n parallax,\n title,\n description,\n date,\n target,\n style,\n category,\n grids,\n buttonText,\n keepAspectRatio = false,\n animate = true\n } = props\n const { language } = React.useContext(LanguageContext)\n const parsedDate = localizeDate(date, language)\n const [hovered, setHovered] = React.useState(false)\n const { t } = useTranslation()\n\n const imgRef = React.useRef(null)\n const titleRef = React.useRef(null)\n const buttonRef = React.useRef(null)\n React.useEffect(() => {\n if (animate) {\n if (!AnimationService.isInView(imgRef.current)) {\n AnimationService.slideUp(imgRef.current)\n }\n if (!AnimationService.isInView(titleRef.current)) {\n AnimationService.slideUp(titleRef.current)\n }\n if (!AnimationService.isInView(buttonRef.current)) {\n AnimationService.slideUp(buttonRef.current)\n }\n }\n }, [animate])\n\n const imageQualityOptions = React.useMemo(() => ({ quality: ImageQuality.OPTIMIZED }), [])\n const imageStyle = React.useMemo(() => {\n return keepAspectRatio\n ? undefined\n : { aspectRatio: ImageAspectRatio.RECTANGLE, height: '100%' }\n }, [keepAspectRatio])\n\n const defaultButtonText = category === DynamicSitesCategory.WORK ? t('common:caseStudy') : t('common:read')\n const imageWithTextInside = (target: string) => {\n return (\n <>\n
\n {image && (\n \n )}\n {videoUrl && (\n \n \n \n )}\n
\n
\n
\n {title}\n \n {description ? description : parsedDate}\n \n
\n
\n \n
\n
\n \n )\n }\n\n return (\n
setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n >\n {target ?\n \n {imageWithTextInside(target)}\n :\n
\n {imageWithTextInside(target)}\n
\n }\n
\n )\n})\nImageWithText.displayName = 'ImageWithText'\n\nexport default ImageWithText\n","import * as React from 'react'\nimport { IsMobileContext } from '../../common/Context'\nimport { AnimationService } from '../../common/AnimationService'\nimport { DynamicSitesCategory } from '../../common/typings/enums'\nimport ImageWithText from '../ImageWithText'\nimport { LastArticlesSection as LastArticlesSectionClass } from './model'\nimport './style.scss'\n\nexport interface LastArticlesSectionProps {\n lastArticles: LastArticlesSectionClass['lastArticles']\n lead: string\n}\n\nconst sectionStyles = {\n containers: [\n 'col-start-1 col-end-13 pt-mobile-l lg:col-start-1 lg:col-end-5 lg:pt-l', //column 1\n 'col-start-1 col-end-13 pt-mobile-l lg:col-start-5 lg:col-end-9 lg:pt-l', //column 2\n 'col-start-1 col-end-13 pt-mobile-l lg:col-start-9 lg:col-end-13 lg:pt-l' //column 3\n ],\n images: [\n 'h-mobile-xxxl lg:h-desktop-20', //column 1\n 'h-mobile-xxxl lg:h-desktop-28', //column 2\n 'h-mobile-xxxl lg:h-desktop-20' //column 3\n ]\n}\n\nconst LastArticlesSection: React.FC = ({ lastArticles, lead }) => {\n const { isMobile } = React.useContext(IsMobileContext)\n const articlesRefs = React.useRef>([])\n React.useEffect(() => {\n if (!isMobile) {\n AnimationService.slideSequenceUp(articlesRefs.current)\n }\n }, [isMobile])\n\n const category = DynamicSitesCategory.BLOG\n return (\n
\n
\n
\n

{lead}

\n {lastArticles && lastArticles.map((article, index) => {\n const slug = `${category}/${(article.category).replace(/\\s+/g, '-').toLowerCase()}`\n return (\n
\n articlesRefs.current[index] = el}\n />\n
\n )\n })}\n
\n
\n )\n}\n\nexport default LastArticlesSection\n","import * as React from 'react'\nimport { graphql, useStaticQuery } from 'gatsby'\nimport { ImageItem } from '@kentico/gatsby-kontent-components/dist/image-element'\nimport { filterElementDataByLanguage } from '../../common/serviceHelpers'\nimport { DynamicSitesPath } from '../../common/typings/enums'\nimport _get from 'lodash/get'\n\n/* Kentico model: Last Articles Section*/\nexport interface KenticoLastArticlesSection extends KontentItem {\n lastArticles: KenticoLastArticlesSectionElement[]\n}\n\n/* Kentico model: Last Articles Section Element*/\nexport interface KenticoLastArticlesSectionElement extends KontentItem {\n listing_image_or_video: KontentAssetElement\n listing_parallax: KontentAssetElement[],\n title: KontentTextElement\n publication_date: KontentDateElement\n slugs: KontentTextElement\n blog_category: KontentTextElement\n}\n\nexport class LastArticlesSectionElement {\n id: string\n image: ImageItem\n videoUrl: string\n parallax: ImageItem[]\n title: string\n date: Date\n target: string\n category: string\n\n constructor(data: KenticoLastArticlesSectionElement) {\n const listingAssetType = _get(data, 'listing_image_or_video.value[0].type', '')\n this.id = _get(data, 'id', '')\n this.image = listingAssetType.includes('image') ? _get(data, 'listing_image_or_video.value[0]') : ''\n this.videoUrl = listingAssetType.includes('video') ? _get(data, 'listing_image_or_video.value[0].url') : ''\n this.parallax = _get(data, 'listing_parallax.value', [])\n this.title = _get(data, 'title.value', '')\n this.date = new Date(_get(data, 'publication_date.value', ''))\n this.target = _get(data, 'slugs.value', '')\n this.category = _get(data, 'blog_category.value[0].name', '')\n }\n}\n\nexport interface KenticoLastArticlesSectionWithLead extends KontentItem {\n lead: KontentTextElement\n blogs: KenticoLastArticlesSectionElement[]\n}\n\nexport class LastArticlesSectionWithLead {\n lead: string\n lastArticles: LastArticlesSectionElement[]\n\n constructor(data: KenticoLastArticlesSectionWithLead) {\n this.lead = _get(data, 'lead.value', '')\n const blogs = new LastArticlesSection(data.blogs, '')\n this.lastArticles = blogs.lastArticles\n }\n}\n\nexport class LastArticlesSection {\n lastArticles: LastArticlesSectionElement[]\n\n constructor(data: KenticoLastArticlesSectionElement[], currentArticleId?: string) {\n this.lastArticles = data\n .filter(Boolean)\n .map((element: KenticoLastArticlesSectionElement) => {\n return new LastArticlesSectionElement(element)\n })\n if (currentArticleId) {\n this.sliceThreeRandomArticles(currentArticleId)\n } else {\n this.sortArticlesByDate()\n this.sliceLastThree()\n }\n }\n\n private getTime(date?: Date) {\n return date != null ? date.getTime() : 0\n }\n\n private sortArticlesByDate(): void {\n this.lastArticles.sort((a: LastArticlesSectionElement, b: LastArticlesSectionElement) => {\n return this.getTime(b.date) - this.getTime(a.date)\n })\n }\n\n private sliceLastThree(): void {\n this.lastArticles = this.lastArticles.slice(0, 3)\n }\n\n private sliceThreeRandomArticles(currentArticleId: string) {\n const allButCurrent = this.lastArticles.filter(article => article.id !== currentArticleId)\n this.lastArticles = allButCurrent.sort(() => 0.5 - Math.random()).slice(0, 3)\n }\n}\n\nexport const lastArticlesSectionFragment = graphql`\n query LastArticlesSectionQuery {\n allKontentItemBlogArticle {\n ...kontent_item_blog_articleConnectionFragment\n }\n allKontentItemPage {\n nodes {\n elements {\n content {\n value {\n ... on kontent_item_last_articles_section {\n elements {\n ...kontent_item_last_articles_section_elementsFragment\n }\n preferred_language\n system {\n codename\n }\n }\n }\n }\n }\n system {\n codename\n }\n }\n }\n }\n`\n\nexport const lastArticlesSectionElementsFragment = graphql`\n fragment kontent_item_last_articles_section_elementsFragment on kontent_item_last_articles_section_elements {\n lead {\n value\n }\n }\n`\n\nexport const useLastArticlesSectionData = (language: string, currentArticleId?: string) => {\n const data = useStaticQuery(lastArticlesSectionFragment)\n return React.useMemo(() => {\n const LastArticlesSectionData: KenticoLastArticlesSectionElement[] =\n filterElementDataByLanguage(data, language, DynamicSitesPath.BLOG).map((lastArticles: any) => lastArticles.elements)\n return new LastArticlesSection(LastArticlesSectionData, currentArticleId)\n }, [data, language, currentArticleId])\n}","import * as React from 'react'\nimport { IsMobileContext } from '../../common/Context'\nimport LinksGrid from '../LinksGrid'\nimport { LinksSection as LinksSectionClass } from './model'\nimport './style.scss'\n\ninterface LinksSectionProps extends LinksSectionClass {\n className?: string\n}\n\nconst LinksSection: React.FC = ({\n linksColumns,\n className,\n}) => {\n const { isMobile } = React.useContext(IsMobileContext)\n if (isMobile) {\n return null\n }\n\n return (\n
\n \n
\n )\n}\n\nexport default LinksSection\n","import React, { TouchEvent, useCallback } from 'react'\nimport { IsMobileContext } from '../../common/Context'\nimport ArrowRight from '../../images/arrow_right.svg'\nimport ArrowLeft from '../../images/arrow_left.svg'\nimport { AnimationService } from '../../common/AnimationService'\nimport './style.scss'\n\ntype Props = {\n children: JSX.Element[]\n infiniteLoop?: boolean\n show?: number\n scrollStopTime?: number\n isNavShown?: boolean\n}\n\nconst Carousel: React.FC = ({ children, show = 1, infiniteLoop = true, scrollStopTime = 0, isNavShown = true }) => {\n const { isMobile } = React.useContext(IsMobileContext)\n const arrowHeight = isMobile ? '6vw' : '1.5vw'\n\n const [currentIndex, setCurrentIndex] = React.useState(0)\n const [length, setLength] = React.useState(children.length)\n const [touchPosition, setTouchPosition] = React.useState(null)\n const [isRepeating, setIsRepeating] = React.useState(infiniteLoop && children.length > show)\n const [transitionEnabled, setTransitionEnabled] = React.useState(true)\n\n React.useEffect(() => {\n setLength(children.length)\n setIsRepeating(infiniteLoop && children.length > show)\n }, [children, infiniteLoop, show])\n\n React.useEffect(() => {\n if (isRepeating) {\n if (currentIndex === show || currentIndex === length) setTransitionEnabled(true)\n }\n }, [currentIndex, show, length, isRepeating])\n\n const onRightButtonClick = useCallback(() => {\n if (isRepeating || currentIndex < (length - show)) {\n setCurrentIndex(prevState => prevState + 1)\n }\n }, [isRepeating, currentIndex, length, show])\n\n const onLeftButtonClick = () => {\n if (isRepeating || currentIndex > 0) {\n setCurrentIndex(prevState => prevState - 1)\n }\n }\n\n React.useEffect(() => {\n let timer: ReturnType\n if (scrollStopTime) {\n timer = setInterval(onRightButtonClick, scrollStopTime * 1000)\n }\n return () => {\n if (timer) clearInterval(timer)\n }\n }, [scrollStopTime, onRightButtonClick])\n\n const handleTouchStart = (e: TouchEvent) => {\n const touchDown = e.touches[0].clientX\n setTouchPosition(touchDown)\n }\n\n const handleTouchMove = (e: TouchEvent) => {\n const touchDown = touchPosition\n if (touchDown === null) return\n const currentTouch = e.touches[0].clientX\n const diff = touchDown - currentTouch\n if (diff > 5) onRightButtonClick()\n if (diff < -5) onLeftButtonClick()\n setTouchPosition(null)\n }\n\n const handleTransitionEnd = () => {\n if (isRepeating) {\n if (currentIndex === 0) {\n setTransitionEnabled(false)\n setCurrentIndex(length)\n } else if (currentIndex >= length + show) {\n setTransitionEnabled(false)\n setCurrentIndex(show)\n }\n }\n }\n\n const renderExtraPrev = () => {\n const output = []\n for (let i = 0; i < show; i++) output.push(children[length - 1 - i])\n output.reverse()\n return output\n }\n\n const renderExtraNext = () => {\n const output = []\n for (let i = 0; i < show; i++) output.push(children[i])\n return output\n }\n\n const arrowsRef = React.useRef(null)\n React.useEffect(() => {\n if (isNavShown) {\n AnimationService.slideUp(arrowsRef.current)\n }\n }, [isNavShown])\n\n return (\n
\n
\n \n \n {(length > show && isRepeating) && renderExtraPrev()}\n {children}\n {(length > show && isRepeating) && renderExtraNext()}\n
\n
\n {\n isNavShown &&\n
\n \n \n
\n }\n \n \n )\n}\n\nexport default Carousel","import * as React from 'react'\nimport { AnimationService } from '../../common/AnimationService'\nimport { Testimonial as TestimonialClass } from './model'\nimport './style.scss'\n\nconst Testimonial: React.FC = ({ text, author }) => {\n\n const textRef = React.useRef(null)\n const authorRef = React.useRef(null)\n React.useEffect(() => {\n AnimationService.slideUp(textRef.current)\n AnimationService.slideUp(authorRef.current)\n }, [])\n\n return (\n
\n

{text}

\n

{author}

\n
\n )\n}\n\nexport default Testimonial\n","import * as React from 'react'\nimport Carousel from '../Carousel'\nimport Testimonial from '../Testimonial'\nimport { TestimonialsSection as TestimonialsSectionClass } from './model'\nimport { AnimationService } from '../../common/AnimationService'\nimport './style.scss'\n\nconst TestimonialsSection: React.FC = ({ heading, testimonials, navbarDarkMode }) => {\n\n const titleRef = React.useRef(null)\n React.useEffect(() => {\n AnimationService.slideUp(titleRef.current)\n }, [])\n\n return (\n
\n
\n

{heading}

\n 1}>\n {testimonials.map((testimonial, index) => {\n return \n })}\n \n
\n
\n )\n}\n\nexport default TestimonialsSection\n","import { graphql } from 'gatsby'\nimport _get from 'lodash/get'\n\n/* Kentico model: Testimonial Element */\nexport interface KenticoTestimonialElement extends KontentItem {\n elements: {\n quote: KontentTextElement\n signature: KontentTextElement\n }\n}\n\nexport class Testimonial {\n text: string\n author: string\n\n constructor(rawData: KenticoTestimonialElement) {\n this.text = _get(rawData, 'elements.quote.value', '')\n this.author = _get(rawData, 'elements.signature.value', '')\n }\n}\n\nexport const testimonialFragment = graphql`\n fragment kontent_item_modular_content_element_valueFragment on kontent_item_modular_content_element_value {\n value {\n ... on kontent_item_testimonial {\n elements {\n quote {\n value\n }\n signature {\n value\n }\n }\n }\n }\n}`","import { graphql, PageProps, useStaticQuery } from 'gatsby'\nimport { filterPageDataByLanguage } from '../../common/serviceHelpers'\nimport { Testimonial, KenticoTestimonialElement } from '../Testimonial/model'\nimport _get from 'lodash/get'\n\n/* Kentico model: Testimonials Section */\nexport interface KenticoTestimonialsSection extends KontentItem {\n heading: KontentTextElement\n quotes: KenticoTestimonialElement[]\n navbar_dark_mode: KontentTextElement\n}\n\nexport class TestimonialsSection {\n heading: string\n testimonials: Testimonial[]\n navbarDarkMode: boolean\n\n constructor(data: KenticoTestimonialsSection) {\n this.heading = _get(data, 'heading.value', '')\n this.testimonials = _get(data, 'quotes.value', [])\n .filter(Boolean)\n .map((element: KenticoTestimonialElement) => {\n return new Testimonial(element)\n })\n this.navbarDarkMode = _get(data, 'navbar_dark_mode.value[0].name', '') === 'Yes'\n }\n}\n\nexport const testimonialsSectionFragment = graphql` \n query TestimonialsSectionQuery {\n allKontentItemPage {\n nodes {\n elements {\n content {\n value {\n ... on kontent_item_testimonial_section {\n elements {\n ...kontent_item_testimonial_section_elementsFragment\n }\n preferred_language\n system {\n codename\n }\n }\n }\n }\n }\n system {\n codename\n }\n }\n }\n }\n`\n\nexport const testimonialsSectionElementsFragment = graphql`\n fragment kontent_item_testimonial_section_elementsFragment on kontent_item_testimonial_section_elements {\n heading {\n value\n }\n quotes {\n ...kontent_item_modular_content_element_valueFragment\n }\n navbar_dark_mode {\n value {\n name\n }\n }\n }\n`\n\nexport const testimonialsFragment = graphql`\n fragment kontent_item_testimonials_fragment on kontent_item_modular_content_element_value {\n value {\n ... on kontent_item_testimonial_section {\n elements {\n ...kontent_item_testimonial_section_elementsFragment\n }\n preferred_language\n system {\n codename\n }\n }\n }\n }\n`\n\nexport const useTestimonialsSectionsData = (language: string, pageCodename: string, sectionCodename = '') => {\n const data = useStaticQuery(testimonialsSectionFragment)\n const testimonialsSectionData: KenticoTestimonialsSection = filterPageDataByLanguage(data.allKontentItemPage, pageCodename, sectionCodename, language)\n return new TestimonialsSection(testimonialsSectionData)\n}\n\nexport const useTestimonialsDynamicData = (props: PageProps, path: string) => {\n return _get(props, `${path}.testimonials_section.value`).length\n ? new TestimonialsSection(_get(props, `${path}.testimonials_section.value[0].elements`))\n : null\n}\n","import * as React from 'react'\nimport { gsap } from 'gsap'\nimport { ScrollTrigger } from 'gsap/ScrollTrigger'\n\nexport const useNavbarDarkMode = (isMobile: boolean, navbarRef: React.RefObject) => {\n const [navbarInDarkMode, setNavbarInDarkMode] = React.useState(false)\n\n React.useEffect(() => {\n let scrollTrigger: ScrollTrigger\n let isMounted = true\n if (typeof document !== 'undefined' && navbarRef.current) {\n const navHeight = navbarRef.current.clientHeight\n if (navHeight === 0) {\n return\n }\n const triggerPoint = (navHeight / 2).toFixed(0)\n const pageSectionsSelector = `${isMobile ? '.mobile-page' : '.desktop-page'} > header + main > section`\n const elements: HTMLElement[] = gsap.utils.toArray(pageSectionsSelector)\n elements.forEach(element => {\n if (element.classList.contains('navbar-dark')) {\n scrollTrigger = ScrollTrigger.create({\n trigger: element.firstElementChild,\n start: `top ${triggerPoint}`,\n end: `bottom ${triggerPoint}`,\n onToggle: self => {\n if (isMounted) {\n setNavbarInDarkMode(self.isActive)\n }\n }\n })\n }\n })\n }\n\n return () => {\n isMounted = false\n if (scrollTrigger) {\n scrollTrigger.kill()\n }\n }\n }, [navbarRef, isMobile])\n\n return {\n navbarInDarkMode \n }\n}\n","var React = require('react');\n\nfunction ArrowLeft (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"path\",{\"id\":\"Path_2346\",\"data-name\":\"Path 2346\",\"d\":\"M-14366.352,238.107l-3.346-3.474h25.7v-1.264h-25.7l3.346-3.474-.86-.894-4.787,4.974,4.787,5.026Z\",\"transform\":\"translate(14373 -214.457)\",\"fill\":\"#0f0f0f\",\"key\":0}),React.createElement(\"rect\",{\"id\":\"Rectangle_867\",\"data-name\":\"Rectangle 867\",\"width\":\"30\",\"height\":\"30\",\"fill\":\"#0f0f0f\",\"opacity\":\"0\",\"key\":1})]);\n}\n\nArrowLeft.defaultProps = {\"id\":\"arrow_left_move\",\"data-name\":\"arrow left move\",\"width\":\"30\",\"height\":\"30\",\"viewBox\":\"0 0 30 30\"};\n\nmodule.exports = ArrowLeft;\n\nArrowLeft.default = ArrowLeft;\n"],"names":["AccordionItem","rawData","this","title","_get","content","data","fullWidthMode","React","selectedItem","setSelectedItem","className","map","item","index","key","contentClassName","initiallyActive","onToggle","active","accordionItemId","toggleHandler","AccordionColumn","props","ref","text","items","titleClass","textClass","length","displayName","AccordionSection","backgroundColor","columns","isMobile","IsMobileContext","titleRef","textRef","columnsRefs","undefined","AnimationService","current","el","nonEmptyColumns","filter","column","nonEmptyColumnsCount","style","i","LandingPageAccordionSection","queryData","elements","element","Boolean","push","accordionColumnsElements","useAccordionSectionData","language","pageCodename","sectionCodename","useStaticQuery","accordionSectionData","filterPageDataByLanguage","allKontentItemPage","hoveredText","isHovered","plusHeight","buttonsWrapperRef","animation","setAnimation","play","reverse","height","backgroundImage","layer1Image","layer2Image","layout","alt","options","parallaxBackgroundRef","parallaxLayer1Ref","parallaxLayer2Ref","parallaxImageStyle","image","ImageWithText","videoUrl","parallax","description","date","target","category","grids","buttonText","keepAspectRatio","animate","LanguageContext","parsedDate","localizeDate","hovered","setHovered","t","useTranslation","imgRef","buttonRef","imageQualityOptions","quality","ImageQuality","imageStyle","aspectRatio","ImageAspectRatio","defaultButtonText","DynamicSitesCategory","imageWithTextInside","autoPlay","muted","loop","playsInline","src","type","onMouseOver","onMouseLeave","Link","to","sectionStyles","containers","images","lastArticles","lead","articlesRefs","article","slug","replace","toLowerCase","LastArticlesSectionElement","listingAssetType","id","includes","Date","LastArticlesSectionWithLead","blogs","LastArticlesSection","currentArticleId","sliceThreeRandomArticles","sortArticlesByDate","sliceLastThree","getTime","sort","a","b","slice","allButCurrent","Math","random","useLastArticlesSectionData","LastArticlesSectionData","filterElementDataByLanguage","DynamicSitesPath","linksColumns","textColor","borderColor","linkHoverColor","children","show","infiniteLoop","scrollStopTime","isNavShown","arrowHeight","currentIndex","setCurrentIndex","setLength","touchPosition","setTouchPosition","isRepeating","setIsRepeating","transitionEnabled","setTransitionEnabled","onRightButtonClick","useCallback","prevState","onLeftButtonClick","timer","setInterval","clearInterval","arrowsRef","onTouchStart","e","touchDown","touches","clientX","onTouchMove","diff","transform","transition","onTransitionEnd","output","renderExtraPrev","renderExtraNext","onClick","author","authorRef","heading","testimonials","navbarDarkMode","testimonial","Testimonial","TestimonialsSection","useTestimonialsSectionsData","testimonialsSectionData","useTestimonialsDynamicData","path","useNavbarDarkMode","navbarRef","navbarInDarkMode","setNavbarInDarkMode","scrollTrigger","isMounted","document","navHeight","clientHeight","triggerPoint","toFixed","pageSectionsSelector","gsap","forEach","classList","contains","ScrollTrigger","trigger","firstElementChild","start","end","self","isActive","kill","ArrowLeft","createElement","defaultProps","module","exports","default"],"sourceRoot":""}