{"version":3,"sources":["Shared/VisibleLoadableBlock/VisibleLoadableBlock.tsx","Shared/Loading/LoadingBlock/LoadingBlock.tsx","Shared/Breadcrumb/Breadcrumb.tsx","Enums/GridSize.enum.ts","Shared/Grid/Grid.tsx","StandardPage/StandardPage.tsx","Shared/Hooks/useOnScreen.js","Shared/ContentArea/ContentArea.tsx"],"names":["loadableComponents","StandardBlock","loadable","ImageLinkListingBlock","ImageLinkBlock","IconBlock","LinkListBlock","DocumentListBlock","VideoBlock","VisibleLoadableBlock","props","ref","useRef","onScreen","useOnScreen","blockType","isVisible","LoadableComponent","undefined","Fragment","IS_SERVER_CONTEXT","fallback","LoadingBlock","BreadcrumbContainer","styled","div","position","top","theme","desktopHeaderHeight","fontSize","beta","left","right","margin","x","maxWidth","screenMaxWidth","width","paddingTop","alignItems","display","paddingLeft","lineHeight","letterSpacing","SelectedSpan","span","fontWeight","bold","LinkText","textDecoration","BreadcrumbLink","KexLink","opacity","color","breadText","Seperator","normal","Breadcrumb","breadcrumb","useMedia","mediaQuery","mediaMinLarge","map","link","index","length","key","text","href","GridSize","Div","gridTemplateColumns","gridGap","large","padding","gamma","Twelve","contentMaxWidth","y","great","none","gridColumnGap","gridRowGap","media","mediaMinMedium","Four","mediaMinSmall","mediaMinHuge","Three","justifySelf","Usp","Grid","children","type","rest","css","ContentContainer","Main","main","backgroundColor","white","TopContent","spacing","flexDirection","blockMaxWidthMobile","medium","greater","maxWidthContentPage","theta","TeaserImageWrapper","marginLeft","marginRight","TeaserImage","minHeight","bannerBlockMobileImageHeight","backgroundSize","backgroundRepeat","bannerBlockDesktopImageHeight","teaserImageDesktopHeight","Heading","h1","maxWidthSmall","font","size","psi","weight","black","marginBottom","marginTop","vast","Intro","epsilon","nearMedium","BodyText","relaxed","normalWide","moreLarge","StandardPage","useCurrentPage","pageHeading","pageIntroText","teaserImage","contentArea","inEditMode","bodyText","imageAreaBackgroundStyle","backgroundImage","src","applyEditModeAttr","dangerouslySetInnerHTML","__html","data-content-area","Array","isArray","childItems","rootMargin","once","useState","isIntersecting","setIntersecting","observerObject","setObserverObject","useEffect","elm","current","observer","IntersectionObserver","entry","observe","Object","isEmpty","unobserve","ContentArea","nestedContentArea","component","i","arr","renderTopComponents","parentI","nextComponent","nestedBlock","isNested","nextBlockProps","blockId","loopIndex","subComponent"],"mappings":"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","file":"Dist/build-client/static/js/StandardPage-StandardPage.e8b78be7.chunk.js","sourcesContent":["import React, { useRef } from 'react';\r\nimport loadable from '@loadable/component';\r\nimport { IS_SERVER_CONTEXT } from '../Configs/EnvConfig';\r\nimport useOnScreen from '../Hooks/useOnScreen';\r\nimport LoadingBlock from '../Loading/LoadingBlock/LoadingBlock';\r\n\r\n//TODO refactor with correct blocktypes\r\ntype PropType = {\r\n blockType: any;\r\n isVisible: boolean;\r\n};\r\n\r\nconst loadableComponents: any = {\r\n StandardBlock: loadable(() => import('../../StandardBlock/StandardBlock')),\r\n ImageLinkListingBlock: loadable(() =>\r\n import('../../Blocks/ImageLinkListingBlock/ImageLinkListingBlock')\r\n ),\r\n ImageLinkBlock: loadable(() => import('../Models/ImageLink/ImageLinkBlock')),\r\n IconBlock: loadable(() => import('../../Blocks/IconBlock/IconBlock')),\r\n LinkListBlock: loadable(() =>\r\n import('../../Blocks/LinkListBlock/LinkListBlock')\r\n ),\r\n DocumentListBlock: loadable(() =>\r\n import('../../Blocks/DocumentListBlock/DocumentListBlock')\r\n ),\r\n VideoBlock: loadable(() => import('../../Blocks/VideoBlock/VideoBlock')),\r\n};\r\n\r\nfunction VisibleLoadableBlock(props: PropType) {\r\n const ref = useRef(null);\r\n const onScreen = useOnScreen({ ref });\r\n const { blockType, isVisible } = props;\r\n const LoadableComponent = loadableComponents[blockType];\r\n\r\n return LoadableComponent === undefined ? (\r\n \r\n ) : isVisible || onScreen || IS_SERVER_CONTEXT ? (\r\n } {...props} />\r\n ) : (\r\n \r\n );\r\n}\r\n\r\nexport default VisibleLoadableBlock;\r\n","import React from 'react';\r\n// import styles from './LoadingBlock.module.scss';\r\n\r\nimport LoadingDots from '../LoadingDots/LoadingDots';\r\n\r\nfunction LoadingBlock() {\r\n return (\r\n
\r\n
{/* */}
\r\n
\r\n );\r\n}\r\n\r\nexport default LoadingBlock;\r\n","import React from 'react';\r\nimport KexLink from '../../Shared/KexLink/KexLink';\r\nimport { styled, theme } from '../../../Features/Theme';\r\nimport Link from '../../Shared/Models/Link.interface';\r\nimport useMedia from '../Hooks/useMedia';\r\n\r\ntype PropTypes = {\r\n breadcrumb: Link[];\r\n};\r\n\r\nfunction Breadcrumb({ breadcrumb }: PropTypes) {\r\n const isDesktop = useMedia(theme.mediaQuery.mediaMinLarge);\r\n return isDesktop ? (\r\n \r\n {breadcrumb.map((link, index) =>\r\n breadcrumb.length === index + 1 ? (\r\n
\r\n {link.text}\r\n
\r\n ) : (\r\n \r\n {link.text}\r\n / \r\n \r\n )\r\n )}\r\n
\r\n ) : (\r\n <>\r\n );\r\n}\r\n\r\nconst BreadcrumbContainer = styled.div({\r\n position: 'absolute',\r\n top: theme.desktopHeaderHeight,\r\n fontSize: theme.beta,\r\n left: 0,\r\n right: 0,\r\n margin: { x: 'auto' },\r\n maxWidth: theme.screenMaxWidth,\r\n width: '100%',\r\n paddingTop: '18px',\r\n alignItems: 'center',\r\n display: 'flex',\r\n paddingLeft: '32px',\r\n lineHeight: 1.33,\r\n letterSpacing: 0.45,\r\n});\r\n\r\nconst SelectedSpan = styled.span({\r\n fontWeight: theme.fontWeight.bold,\r\n lineHeight: 1.33,\r\n});\r\n\r\nconst LinkText = styled.span({\r\n textDecoration: 'underline',\r\n});\r\n\r\nconst BreadcrumbLink = styled(KexLink, {\r\n display: 'flex',\r\n opacity: 0.9,\r\n color: theme.breadText,\r\n});\r\n\r\nconst Seperator = styled.span({\r\n margin: { x: '6px' },\r\n fontWeight: theme.fontWeight.normal,\r\n textDecoration: 'none',\r\n});\r\n\r\nexport default Breadcrumb;\r\n","export enum GridSize {\r\n One = 1,\r\n Two = 2,\r\n Three = 3,\r\n Four = 4,\r\n Usp = 5,\r\n ContentContainer = 12,\r\n}\r\n","import React from 'react';\r\nimport { styled } from '@glitz/react';\r\nimport { theme } from '../../Theme';\r\nimport { media } from '@glitz/core';\r\nimport { StyleOrStyleArray } from '@glitz/type';\r\nimport { GridSize } from '../../Enums/GridSize.enum';\r\n\r\ntype PropTypes = {\r\n children: React.ReactNode;\r\n type?: GridSize;\r\n};\r\n\r\nfunction Grid({ children, type, ...rest }: PropTypes) {\r\n let css = {};\r\n\r\n switch (type) {\r\n case GridSize.Three:\r\n css = Three;\r\n break;\r\n case GridSize.Four:\r\n css = Four;\r\n break;\r\n case GridSize.Usp:\r\n css = Usp;\r\n break;\r\n case GridSize.ContentContainer:\r\n css = Twelve;\r\n break;\r\n default:\r\n //Was the prevoius grid layout\r\n css = Four;\r\n break;\r\n }\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n}\r\n\r\nconst Div = styled.div({\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(1, minmax(0, 1fr))',\r\n gridGap: theme.large,\r\n padding: { x: theme.gamma },\r\n});\r\n\r\nconst Twelve: StyleOrStyleArray = {\r\n width: '100%',\r\n maxWidth: theme.contentMaxWidth,\r\n margin: { x: 'auto', y: theme.great },\r\n padding: { y: theme.none, x: theme.none },\r\n gridTemplateColumns: 'repeat(12, minmax(0, 1fr))',\r\n gridColumnGap: theme.none,\r\n gridRowGap: theme.great,\r\n ...media(theme.mediaQuery.mediaMinMedium, {\r\n gridRowGap: theme.gamma,\r\n }),\r\n ...media(theme.mediaQuery.mediaMinLarge, {\r\n gridRowGap: '78px',\r\n gridColumnGap: theme.gamma,\r\n }),\r\n};\r\n\r\nconst Four: StyleOrStyleArray = {\r\n ...media(theme.mediaQuery.mediaMinSmall, {\r\n gridTemplateColumns: 'repeat(2, minmax(0, 1fr))',\r\n gridGap: theme.large,\r\n }),\r\n ...media(theme.mediaQuery.mediaMinMedium, {\r\n gridTemplateColumns: 'repeat(3, minmax(0, 1fr))',\r\n gridGap: theme.large,\r\n }),\r\n ...media(theme.mediaQuery.mediaMinLarge, {\r\n gridTemplateColumns: 'repeat(4, minmax(0, 1fr))',\r\n gridGap: theme.large,\r\n }),\r\n ...media(theme.mediaQuery.mediaMinHuge, {\r\n gridTemplateColumns: 'repeat(4, minmax(0, 1fr))',\r\n gridGap: theme.great,\r\n }),\r\n};\r\n\r\nconst Three: StyleOrStyleArray = {\r\n justifySelf: 'center',\r\n gridTemplateColumns: 'repeat(1, minmax(0, 1fr))',\r\n gridGap: theme.none,\r\n ...media(theme.mediaQuery.mediaMinMedium, {\r\n gridTemplateColumns: 'repeat(3, minmax(0, 1fr))',\r\n gridGap: theme.large,\r\n }),\r\n};\r\n\r\nconst Usp: StyleOrStyleArray = {\r\n gridTemplateColumns: 'repeat(2, minmax(0, 1fr))',\r\n gridGap: theme.large,\r\n ...media(theme.mediaQuery.mediaMinLarge, {\r\n gridTemplateColumns: 'repeat(4, minmax(0, 1fr))',\r\n gridGap: theme.large,\r\n }),\r\n};\r\n\r\nexport default Grid;\r\n","import React from 'react';\r\nimport ContentArea from '../Shared/ContentArea/ContentArea';\r\nimport StandardPageModel from './Models/StandardPageModel.interface';\r\nimport useCurrentPage from '../Shared/Hooks/useCurrentPage';\r\nimport { media } from '@glitz/core';\r\nimport { applyEditModeAttr } from '../../Features/Shared/Common/Helpers';\r\nimport { styled, theme } from '../Theme';\r\nimport Grid from '../Shared/Grid/Grid';\r\nimport Breadcrumb from '../Shared/Breadcrumb/Breadcrumb';\r\nimport { StyleOrStyleArray } from '@glitz/type';\r\n\r\nfunction StandardPage() {\r\n const {\r\n pageHeading,\r\n pageIntroText,\r\n teaserImage,\r\n contentArea,\r\n inEditMode,\r\n bodyText,\r\n breadcrumb,\r\n } = useCurrentPage();\r\n\r\n const imageAreaBackgroundStyle: StyleOrStyleArray = {\r\n backgroundImage: teaserImage && `url(${teaserImage.src})`,\r\n };\r\n\r\n return (\r\n
\r\n {!!breadcrumb.length && }\r\n \r\n \r\n {pageHeading}\r\n \r\n \r\n {pageIntroText}\r\n \r\n\r\n {teaserImage && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {Array.isArray(contentArea) && }\r\n \r\n
\r\n );\r\n}\r\n\r\nconst Main = styled.main({\r\n backgroundColor: theme.white,\r\n});\r\n\r\nconst TopContent = styled.div({\r\n margin: { y: theme.spacing(8), x: 'auto' },\r\n width: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n maxWidth: theme.blockMaxWidthMobile,\r\n padding: {\r\n x: theme.medium,\r\n },\r\n ...media(theme.mediaQuery.mediaMinLarge, {\r\n margin: { y: theme.greater },\r\n padding: { x: theme.medium, y: theme.none },\r\n maxWidth: theme.maxWidthContentPage,\r\n }),\r\n ...media(theme.mediaQuery.mediaMinMedium, {\r\n margin: { y: theme.theta, x: 'auto' },\r\n }),\r\n});\r\n\r\nconst TeaserImageWrapper = styled.div({\r\n margin: { y: theme.spacing(10) },\r\n ...media(theme.mediaQuery.mediaMinHuge, {\r\n marginLeft: `calc((${theme.contentMaxWidth}px - 100vw) / 2)`,\r\n marginRight: `calc((${theme.contentMaxWidth}px - 100vw) / 2)`,\r\n margin: { y: theme.spacing(15) },\r\n }),\r\n});\r\n\r\nconst TeaserImage = styled.div({\r\n width: '100%',\r\n minHeight: theme.bannerBlockMobileImageHeight,\r\n backgroundSize: 'cover',\r\n backgroundRepeat: 'no-repeat',\r\n ...media(theme.mediaQuery.mediaMinLarge, {\r\n maxWidth: '900px',\r\n minHeight: theme.bannerBlockDesktopImageHeight,\r\n margin: { x: 'auto' },\r\n }),\r\n ...media(theme.mediaQuery.mediaMinHuge, {\r\n minHeight: theme.teaserImageDesktopHeight,\r\n }),\r\n});\r\n\r\nconst Heading = styled.h1({\r\n maxWidth: theme.maxWidthSmall,\r\n font: { size: theme.psi, weight: theme.fontWeight.bold },\r\n color: theme.black,\r\n marginBottom: theme.spacing(5),\r\n ...media(theme.mediaQuery.mediaMinLarge, {\r\n font: { size: theme.theta },\r\n marginTop: theme.vast,\r\n }),\r\n});\r\n\r\nconst Intro = styled.span({\r\n font: { size: theme.epsilon },\r\n color: theme.black,\r\n lineHeight: theme.lineHeight.normal,\r\n letterSpacing: theme.letterSpacing.nearMedium,\r\n ...media(theme.mediaQuery.mediaMinLarge, {\r\n fontSize: theme.epsilon,\r\n }),\r\n});\r\n\r\nconst BodyText = styled.div({\r\n lineHeight: theme.lineHeight.relaxed,\r\n letterSpacing: theme.letterSpacing.normalWide,\r\n font: { size: theme.moreLarge },\r\n color: theme.black,\r\n marginTop: theme.spacing(5),\r\n});\r\n\r\nexport default StandardPage;\r\n","import { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { IS_SERVER_CONTEXT } from '../Configs/EnvConfig';\r\n\r\nconst useOnScreen = ({ ref, rootMargin = '0px', once = true }) => {\r\n const [isIntersecting, setIntersecting] = useState(false);\r\n const [observerObject, setObserverObject] = useState(false);\r\n\r\n useEffect(() => {\r\n const elm = ref.current;\r\n const observer = new IntersectionObserver(\r\n ([entry]) => {\r\n setIntersecting(entry.isIntersecting);\r\n },\r\n {\r\n rootMargin,\r\n }\r\n );\r\n if (elm) {\r\n observer.observe(elm);\r\n }\r\n setObserverObject(observer);\r\n return () => {\r\n !Object.isEmpty(elm) && observer.unobserve(elm);\r\n };\r\n }, [ref, rootMargin]);\r\n\r\n if (\r\n once &&\r\n isIntersecting &&\r\n observerObject &&\r\n !Object.isEmpty(ref.current)\r\n ) {\r\n observerObject.unobserve(ref.current);\r\n }\r\n\r\n return IS_SERVER_CONTEXT ? true : isIntersecting;\r\n};\r\n\r\nuseOnScreen.propTypes /* remove-proptypes */ = {\r\n ref: PropTypes.shape({ current: PropTypes.element }),\r\n rootMargin: PropTypes.string,\r\n once: PropTypes.bool,\r\n};\r\n\r\nexport default useOnScreen;\r\n","import React from 'react';\r\n\r\nimport VisibleLoadableBlock from '../VisibleLoadableBlock/VisibleLoadableBlock';\r\nimport ContentAreaItem from '../Models/ContentAreaItem.interface';\r\n\r\ntype PropType = {\r\n childItems: ContentAreaItem[];\r\n isVisible?: boolean;\r\n nestedContentArea?: boolean;\r\n};\r\n\r\nfunction ContentArea({\r\n childItems = [],\r\n isVisible = false,\r\n nestedContentArea = false,\r\n}: PropType) {\r\n const renderTopComponents = (\r\n component: any,\r\n parentI: any,\r\n nextComponent: any,\r\n nestedBlock: any\r\n ) => {\r\n return component ? (\r\n \r\n {component &&\r\n component.childItems &&\r\n component.childItems.map(\r\n (\r\n subComponent: React.ReactNode,\r\n i: number,\r\n arr: React.ReactNodeArray\r\n ) =>\r\n renderTopComponents(\r\n subComponent,\r\n parentI + '_' + i,\r\n arr[i + 1],\r\n true\r\n )\r\n )}\r\n \r\n ) : (\r\n \r\n );\r\n };\r\n return (\r\n <>\r\n {childItems.map((component, i, arr) =>\r\n renderTopComponents(component, i, arr[i + 1], nestedContentArea)\r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default ContentArea;\r\n"],"sourceRoot":""}