{"version":3,"file":"react-redesign.bundle.js","sources":["../../../Static/src/react/redesign/pages/FrontPage/frontPage.utils.ts","../../../Static/src/react/redesign/utils/getBackgroundColor.ts","../../../Static/src/react/redesign/components/SectionHeading/SectionHeading.tsx","../../../Static/src/react/redesign/components/FullImageBlock/FullImageBlock.tsx","../../../Static/src/react/redesign/components/HeroBlock/HeroBlock.tsx","../../../Static/src/react/redesign/types/button.ts","../../../Static/src/react/redesign/utils/getButtonVariant.ts","../../../Static/src/react/redesign/assets/arrow-right.svg?react","../../../Static/src/react/redesign/components/Link/Link.tsx","../../../Static/src/react/redesign/components/HeroContainer/HeroContainer.tsx","../../../Static/src/react/redesign/components/CTADoubleBlock/CTADoubleBlock.tsx","../../../Static/prod/images/redesign/arrowRight.svg?react","../../../Static/prod/images/redesign/arrowLeft.svg?react","../../../Static/src/react/redesign/components/Carousel/CarouselArrowButtons/CarouselArrowButtons.tsx","../../../Static/src/react/redesign/components/Carousel/CarouselDotButtons/CarouselDotButtons.tsx","../../../Static/src/react/redesign/components/Carousel/Carousel.tsx","../../../Static/prod/images/bg3.jpg","../../../Static/src/react/redesign/components/EmployeesBlock/EmployeesBlock.tsx","../../../Static/src/react/redesign/utils/getDepartment.ts","../../../Static/src/react/redesign/components/EmployeesBlockWrapper/EmployeesBlockWrapper.tsx","../../../Static/src/react/redesign/components/FullImageBlockWrapper/FullImageBlockWrapper.tsx","../../../Static/src/react/redesign/components/ProductCard/ProductCard.tsx","../../../Static/src/react/redesign/components/ProductCatalogue/ProductCatalogue.tsx","../../../Static/src/react/redesign/components/ProductSection/ProductSection.tsx","../../../Static/src/react/redesign/components/SocialCard/SocialCard.tsx","../../../Static/src/react/redesign/components/SocialMedia/SocialMedia.tsx","../../../Static/src/react/redesign/components/Statistic/Statistic.tsx","../../../Static/src/react/redesign/components/StatisticsBlock/StatisticsBlock.tsx","../../../Static/src/react/redesign/components/TeaserCard/TeaserCard.tsx","../../../Static/src/react/redesign/components/Button/Button.tsx","../../../Static/src/react/redesign/pages/BusinessStreamPage/businessStreamPage.utils.ts","../../../Static/src/react/redesign/types/optimizely/blocks.ts","../../../Static/src/react/redesign/components/TeaserListBlock/TeaserListBlock.utlis.tsx","../../../Static/src/react/redesign/components/TeaserListBlock/TeaserListBlock.tsx","../../../Static/src/react/redesign/utils/getHeaderClasses.ts","../../../Static/src/react/redesign/components/TextAndImageBlock/TextAndImageBlock.tsx","../../../Static/src/react/redesign/assets/wilhelmsen_logo_flag.svg","../../../Static/src/react/redesign/utils/isHeaderTag.ts","../../../Static/src/react/redesign/components/TextBlock/TextBlock.tsx","../../../Static/src/react/redesign/components/TwoColumnsComponent/TwoColumnsComponent.tsx","../../../Static/src/react/redesign/components/SpacerBlock/SpacerBlock.tsx","../../../Static/src/react/redesign/assets/wilhelmsen_logo_flag_white.svg","../../../Static/src/react/redesign/assets/arrowDown.svg","../../../Static/src/react/redesign/assets/arrowDownWhite.svg","../../../Static/src/react/redesign/components/AccordionBlock/AccordionItem/AccordionItem.tsx","../../../Static/src/react/redesign/components/AccordionBlock/AccordionBlock.tsx","../../../Static/src/react/redesign/components/LinkListBlock/LinkListBlock.tsx","../../../Static/src/react/redesign/components/EditorialBlock/EditorialBlock.tsx","../../../Static/src/react/redesign/components/CTABlock/CTABlock.tsx","../../../Static/src/react/redesign/utils/mamDTOToProps.ts","../../../Static/src/react/redesign/utils/mapContentToBlock.tsx","../../../Static/src/react/redesign/components/ContentArea/ContentArea.tsx","../../../Static/src/react/redesign/components/ServicesBlock/ServicesBlock.tsx","../../../Static/src/react/redesign/components/ServicesBlockWrapper/ServicesBlockWrapper.tsx","../../../Static/src/react/redesign/pages/FrontPage/FrontPage.tsx","../../../Static/src/react/redesign/components/MegaMenuPreviewItem/MegaMenuPreviewItem.tsx","../../../Static/src/react/redesign/components/MegaMenuPreviewBlock/MegaMenuPreviewBlock.tsx","../../../Static/src/react/redesign/components/SearchBlock/SearchBlock.tsx","../../../Static/src/react/redesign/components/ProductCatalogueIntro/ProductCatalogueIntro.tsx","../../../Static/src/react/redesign/pages/BusinessStreamPage/BusinessStreamPage.tsx","../../../Static/src/react/redesign/pages/SectionPage/sectionPage.utils.ts","../../../Static/src/react/redesign/components/AnchorNav/AnchorNav.tsx","../../../Static/src/react/redesign/pages/SectionPage/SectionPage.tsx","../../../Static/src/react/redesign/pages/ArticlePage/articlePage.utils.ts","../../../Static/src/api/axiosClient.ts","../../../Static/src/api/contentDeliveryApi.ts","../../../Static/src/react/redesign/components/BlockRenderer/BlockRenderer.tsx","../../../Static/src/react/redesign/components/RTEBlock/RTEBlock.tsx","../../../Static/src/react/redesign/components/ContactPerson/ContactPerson.tsx","../../../Static/src/react/redesign/utils/useMobileView.tsx","../../../Static/src/react/redesign/pages/ArticlePage/ArticlePage.tsx","../../../Static/src/react/redesign/pages/OptimizelyPage/OptimizelyPage.tsx","../../../Static/src/react/redesign/Redesign.tsx","../../../Static/src/react/redesign/index.tsx"],"sourcesContent":["import { OptimizelyExpandedValue } from \"../../types/optimizely/expanded\";\r\nimport { FrontPageType } from \"../../types/optimizely/frontpage\";\r\n\r\nexport const frontPageTypeName = \"FrontPage\";\r\n\r\nexport const isFrontPage = (content: OptimizelyExpandedValue): content is FrontPageType => {\r\n return content.contentType.includes(frontPageTypeName);\r\n}","import { ColorPalette } from \"../types/background\";\r\n\r\n// TODO: - remove this and use font and bg color helpers\r\n// Left here fore now to make mocking easier\r\nexport const getColorClasses = (backgroundColor?: ColorPalette) => {\r\n switch (backgroundColor) {\r\n case \"white\":\r\n return \"bg-white text-primary\";\r\n case \"primaryBlue\":\r\n return \"bg-primaryBlue text-white\";\r\n case \"primaryTurquoise\":\r\n return \"bg-primaryTurquoise text-primary\";\r\n case \"secondaryYellow\":\r\n return \"bg-secondaryYellow text-primary\";\r\n case \"secondaryDarkGreen\":\r\n return \"bg-secondaryDarkGreen text-white\";\r\n case \"secondaryGreen\":\r\n return \"bg-secondaryGreen text-primary\";\r\n case \"secondaryLightGreen\":\r\n return \"bg-secondaryLightGreen text-primary\";\r\n case \"neutral80\":\r\n return \"bg-neutral80 text-white\";\r\n case \"neutral60\":\r\n return \"bg-neutral60 text-white\";\r\n case \"neutral40\":\r\n return \"bg-neutral40 text-white\";\r\n case \"neutral10\":\r\n return \"bg-neutral10 text-primary\";\r\n case \"neutralYellow\":\r\n return \"bg-neutralYellow text-primary\";\r\n case \"transparent\":\r\n return \"bg-transparent text-primary\";\r\n default:\r\n return \"bg-primary text-white\";\r\n }\r\n};\r\n\r\nexport const getTextColorClass = (backgroundColor?: ColorPalette) => {\r\n switch (backgroundColor) {\r\n case \"white\":\r\n case \"primaryTurquoise\":\r\n case \"secondaryYellow\":\r\n case \"secondaryGreen\":\r\n case \"secondaryLightGreen\":\r\n case \"neutral10\":\r\n case \"neutralYellow\":\r\n return \"text-primary\";\r\n case \"neutral80\":\r\n case \"neutral60\":\r\n case \"neutral40\":\r\n default:\r\n return \"text-white\";\r\n }\r\n};\r\n\r\nexport const getBackgroundColorClass = (backgroundColor?: ColorPalette) => {\r\n switch (backgroundColor) {\r\n case \"primary\":\r\n return \"bg-primary\";\r\n case \"primaryBlue\":\r\n return \"bg-primaryBlue\";\r\n case \"primaryTurquoise\":\r\n return \"bg-primaryTurquoise\";\r\n case \"secondaryYellow\":\r\n return \"bg-secondaryYellow\";\r\n case \"secondaryLightGreen\":\r\n return \"bg-secondaryLightGreen\";\r\n case \"secondaryDarkGreen\":\r\n return \"bg-secondaryDarkGreen\";\r\n case \"secondaryGreen\":\r\n return \"bg-secondaryGreen\";\r\n case \"neutral80\":\r\n return \"bg-neutral80\";\r\n case \"neutral60\":\r\n return \"bg-neutral60\";\r\n case \"neutral40\":\r\n return \"bg-neutral40\";\r\n case \"neutral10\":\r\n return \"bg-neutral10\";\r\n case \"neutralYellow\":\r\n return \"bg-neutralYellow\";\r\n case \"white\":\r\n default:\r\n return \"bg-white\";\r\n }\r\n};\r\n\r\nexport const getFontColorClass = (fontColor?: ColorPalette) => {\r\n switch (fontColor) {\r\n case \"primaryBlue\":\r\n return \"text-primaryBlue\";\r\n case \"primaryTurquoise\":\r\n return \"text-primaryTurquoise\";\r\n case \"secondaryYellow\":\r\n return \"text-secondaryYellow\";\r\n case \"secondaryLightGreen\":\r\n return \"text-secondaryLightGreen\";\r\n case \"secondaryDarkGreen\":\r\n return \"text-secondaryDarkGreen\";\r\n case \"secondaryGreen\":\r\n return \"text-secondaryGreen\";\r\n case \"white\":\r\n return \"text-white\";\r\n case \"neutral80\":\r\n return \"text-neutral80\";\r\n case \"neutral60\":\r\n return \"text-neutral60\";\r\n case \"neutral40\":\r\n return \"text-neutral40\";\r\n case \"neutral10\":\r\n return \"text-neutral10\";\r\n case \"neutralYellow\":\r\n return \"text-neutralYellow\";\r\n default:\r\n case \"primary\":\r\n return \"text-primary\";\r\n }\r\n};\r\n","import React, { FC } from \"react\";\r\n\r\ninterface SectionHeadingProps {\r\n colorVariant: \"white\" | \"primary\";\r\n title: string;\r\n}\r\n\r\nexport const SectionHeading: FC = ({\r\n title,\r\n colorVariant,\r\n}) => {\r\n const isDotVisible = false;\r\n const textColor = colorVariant === \"white\" ? \"text-white\" : \"text-primary\";\r\n const dotColor = colorVariant === \"white\" ? \"bg-white\" : \"bg-primaryBlue\";\r\n\r\n return (\r\n
\r\n {isDotVisible &&
}\r\n

{title}

\r\n
\r\n );\r\n};\r\n","import React from \"react\";\r\nimport classNames from \"classnames\";\r\nimport { ColorPalette } from \"../../types/background\";\r\nimport {\r\n getBackgroundColorClass,\r\n getFontColorClass,\r\n} from \"../../utils/getBackgroundColor\";\r\nimport { SectionHeading } from \"../SectionHeading/SectionHeading\";\r\n\r\ninterface FullImageBlockProps {\r\n backgroundImage: string;\r\n title: string;\r\n subTitle: string;\r\n actions: React.ReactNode[];\r\n videoUrl?: string;\r\n backgroundColor?: ColorPalette;\r\n fontColor?: ColorPalette;\r\n type?: \"hero\" | \"standard\";\r\n fullHeight?: boolean;\r\n imageCaption?: string;\r\n}\r\n\r\nexport const FullImageBlock = ({\r\n backgroundImage,\r\n title,\r\n subTitle,\r\n actions,\r\n videoUrl,\r\n backgroundColor,\r\n fontColor,\r\n type = \"standard\",\r\n fullHeight,\r\n imageCaption,\r\n}: FullImageBlockProps) => {\r\n const [imageHeight, setImageHeight] = React.useState(null);\r\n const [imageRatio, setImageRatio] = React.useState(null);\r\n\r\n React.useEffect(() => {\r\n if (backgroundImage) {\r\n const img = new Image();\r\n img.src = backgroundImage;\r\n img.onload = () => {\r\n const ratio = img.width / img.height;\r\n setImageHeight(img.height);\r\n setImageRatio(ratio);\r\n };\r\n }\r\n }, [backgroundImage]);\r\n\r\n const bgClass = getBackgroundColorClass(backgroundColor);\r\n const fontClass = getFontColorClass(fontColor);\r\n const heading =\r\n type === \"hero\" ? (\r\n

{title}

\r\n ) : (\r\n

{title}

\r\n );\r\n const heightClass = fullHeight ? \"\" : (type === \"hero\" ? \"min-h-[640px]\" : \"min-h-[570px]\");\r\n const headingContainerClasses =\r\n type === \"standard\" ? [\"pt-16\", \"self-center\", \"text-center\"] : [];\r\n const actionsContainerClasses =\r\n type === \"standard\" ? [\"justify-center\", \"self-center\"] : [];\r\n\r\n return (\r\n \r\n {videoUrl ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n {type === \"hero\" ? (\r\n

{subTitle}

\r\n ) : (\r\n \r\n )}\r\n\r\n\r\n {heading && (\r\n \r\n {heading}\r\n
\r\n )}\r\n \r\n {actions && (\r\n \r\n {actions}\r\n \r\n )}\r\n \r\n {imageCaption && (\r\n
\r\n

Foto: {imageCaption}

\r\n
\r\n )}\r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport { FullImageBlock } from \"../FullImageBlock/FullImageBlock\";\r\nimport { ColorPalette } from \"../../types/background\";\r\n\r\ninterface HeroBlockProps {\r\n backgroundImage: string;\r\n title: string;\r\n subTitle: string;\r\n actions: React.ReactNode[];\r\n videoUrl?: string;\r\n backgroundColor?: ColorPalette;\r\n fontColor?: ColorPalette;\r\n}\r\n\r\nexport const HeroBlock = (props: HeroBlockProps) => ;\r\n","\r\nexport const ButtonVariants = [\"main\", \"secondary\", \"link-primary\", \"link-secondary\", \"text\", \"main-reverse\", \"link-primary-reverse\", \"link-secondary-reverse\"] as const;\r\n\r\nexport type ButtonVariant = typeof ButtonVariants[number];\r\n\r\nexport function isButtonVariant(variant: string): variant is ButtonVariant {\r\n return ButtonVariants.includes(variant as ButtonVariant);\r\n};\r\n","import { ButtonVariant, isButtonVariant } from \"../types/button\";\r\nimport { OptimizelyButtonTypeValue } from \"../types/optimizely/blocks\";\r\n\r\nexport const getButtonVariant = ( optiType: OptimizelyButtonTypeValue ): ButtonVariant => {\r\n if (isButtonVariant(optiType)) {\r\n return optiType;\r\n }\r\n return \"link-primary\";\r\n}","import * as React from \"react\";\nconst SvgArrowRight = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 17, height: 13, viewBox: \"0 0 17 13\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M1.97461 6.5013H15.0256M15.0256 6.5013L10.0672 1.54297M15.0256 6.5013L10.0672 11.4596\", stroke: \"currentColor\", strokeWidth: 2, strokeLinecap: \"round\", strokeLinejoin: \"round\" }));\nexport default SvgArrowRight;\n","import React from \"react\";\r\nimport ArrowRight from \"../../assets/arrow-right.svg?react\";\r\nimport classnames from \"classnames\";\r\nimport { ButtonVariant } from \"../../types/button\";\r\n\r\ninterface LinkProps {\r\n text: string;\r\n href: string;\r\n variant?: ButtonVariant;\r\n className?: string;\r\n forceAddIcon?: boolean;\r\n}\r\n\r\nconst getClassByVariant = (variant: ButtonVariant) => {\r\n switch (variant) {\r\n case \"main\":\r\n return \"px-6 bg-primary text-md text-white outline-none hover:bg-primaryBlue hover:border-primaryBlue hover:text-white hover:outline-none\";\r\n case \"secondary\":\r\n case \"link-primary\":\r\n return \"px-6 border-2 border-primary bg-transparent text-primary outline-none hover:text-primaryBlue hover:border-primaryBlue hover:outline-none\";\r\n case \"link-primary-reverse\":\r\n return \"px-6 border-2 border-white bg-transparent text-white outline-none hover:border-primaryBlue hover:text-primaryBlue hover:border-2 hover:outline-none\";\r\n case \"link-secondary\":\r\n return \"text-primary hover:text-primaryBlue border-0 outline-none hover:border-none hover:outline-none\";\r\n case \"text\":\r\n return \"text-primary hover:text-primaryBlue \";\r\n case \"link-secondary-reverse\":\r\n return \"text-white border-none hover:text-primaryBlue hover:border-none hover:outline-none\";\r\n case \"main-reverse\":\r\n return \"px-6 bg-white text-primary hover:bg-primaryBlue hover:text-white border-white outline-white border-white hover:outline-primaryBlue hover:border-primaryBlue\";\r\n default:\r\n return \"bg-primary text-white \";\r\n }\r\n};\r\n\r\nconst typesWithIcons = [\r\n \"link-primary\",\r\n \"link-secondary\",\r\n \"link-primary-reverse\",\r\n \"link-secondary-reverse\",\r\n];\r\n\r\nexport const Link: React.FC = ({\r\n variant = \"main\",\r\n href,\r\n text,\r\n className,\r\n forceAddIcon = false,\r\n}) => {\r\n const shouldUseIcon = forceAddIcon ? forceAddIcon : typesWithIcons.includes(variant);\r\n\r\n return (\r\n \r\n {text}\r\n {shouldUseIcon && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Link;\r\n","import React from \"react\";\r\nimport { HeroBlock } from \"../HeroBlock/HeroBlock\";\r\nimport { FrontPageType } from \"../../types/optimizely/frontpage\";\r\nimport { getButtonVariant } from \"../../utils/getButtonVariant\";\r\nimport Link from \"../Link/Link\";\r\n\r\nexport const HeroContainer = ({ content }: { content: FrontPageType }) => {\r\n const backgroundImage = content.listImage?.expandedValue?.url;\r\n const title = content?.title?.value || \"\";\r\n const subTitle = content?.mainIntro?.value || \"\";\r\n const videoUrl = content?.videoUrl?.value || \"\";\r\n const backgroundColor = content.introBackgroundColor?.value;\r\n const fontColor = content.introFontColor?.value;\r\n const ctaButtons = content.callToActionButtons?.expandedValue;\r\n\r\n return (\r\n (\r\n \r\n ))}\r\n />\r\n );\r\n};\r\n","import React from \"react\";\r\nimport { CTASection } from \"../../types/optimizely/blocks\";\r\nimport { getColorClasses, getTextColorClass } from \"../../utils/getBackgroundColor\";\r\nimport classNames from \"classnames\";\r\nimport Link from \"../Link/Link\";\r\n\r\ninterface DoubleCTAProps {\r\n ctaLeft: CTASection;\r\n ctaRight: CTASection;\r\n}\r\n\r\nconst CTADoubleBlock = ({ ctaLeft, ctaRight }: DoubleCTAProps) => {\r\n const {\r\n image: { value: { url: backgroundImage1 } = {} },\r\n heading: { value: leftTitle },\r\n introduction: { value: leftDescription },\r\n buttonLink: { value: leftButtonLink },\r\n } = ctaLeft;\r\n\r\n const {\r\n image: { value: { url: backgroundImage2 } = {} },\r\n heading: { value: rightTitle },\r\n introduction: { value: rightDescription },\r\n buttonLink: { value: rightButtonLink },\r\n } = ctaRight;\r\n\r\n const leftBackground = getColorClasses(ctaLeft?.backgroundColor?.value);\r\n const leftTextColor = getTextColorClass(ctaLeft?.backgroundColor?.value);\r\n const rightBackground = getColorClasses(ctaRight?.backgroundColor?.value);\r\n const rightTextColor = getTextColorClass(ctaRight?.backgroundColor?.value);\r\n\r\n const containerClasses = \"container flex flex-col lg:flex-row min-h-[570px]\";\r\n const blockClasses =\r\n \"px-10 pt-11 pb-14 md:pb-10 min-h-[494px] md:max-h-[434px] flex-1 flex flex-col justify-between bg-cover bg-no-repeat bg-center\";\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n

{leftDescription}

\r\n

\r\n {leftTitle}\r\n

\r\n
\r\n \r\n
\r\n \r\n
\r\n

{rightDescription}

\r\n

\r\n {rightTitle}\r\n

\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default CTADoubleBlock;\r\n","import * as React from \"react\";\nconst SvgArrowRight = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 13, viewBox: \"0 0 16 13\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M1.875 6.6385H14.926M14.926 6.6385L9.96762 1.2832M14.926 6.6385L9.96762 11.9938\", stroke: \"#29588C\", strokeWidth: 2, strokeLinecap: \"round\", strokeLinejoin: \"round\" }));\nexport default SvgArrowRight;\n","import * as React from \"react\";\nconst SvgArrowLeft = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 13, viewBox: \"0 0 16 13\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M14.3906 6.64421L1.33967 6.64421M1.33967 6.64421L6.29801 11.9995M1.33967 6.64421L6.29801 1.28891\", stroke: \"#29588C\", strokeWidth: 2, strokeLinecap: \"round\", strokeLinejoin: \"round\" }));\nexport default SvgArrowLeft;\n","import React, {\r\n PropsWithChildren,\r\n useCallback,\r\n useEffect,\r\n useState\r\n} from 'react'\r\nimport { EmblaCarouselType } from 'embla-carousel'\r\nimport ArrowRightIcon from \"../../../../../../prod/images/redesign/arrowRight.svg?react\";\r\nimport ArrowLeftIcon from \"../../../../../../prod/images/redesign/arrowLeft.svg?react\";\r\n\r\ntype UsePrevNextButtonsType = {\r\n prevBtnDisabled: boolean\r\n nextBtnDisabled: boolean\r\n onPrevButtonClick: () => void\r\n onNextButtonClick: () => void\r\n}\r\n\r\nexport const usePrevNextButtons = (\r\n emblaApi: EmblaCarouselType | undefined,\r\n onButtonClick?: (emblaApi: EmblaCarouselType) => void\r\n): UsePrevNextButtonsType => {\r\n const [prevBtnDisabled, setPrevBtnDisabled] = useState(true)\r\n const [nextBtnDisabled, setNextBtnDisabled] = useState(true)\r\n\r\n const onPrevButtonClick = useCallback(() => {\r\n if (!emblaApi) return\r\n emblaApi.scrollPrev()\r\n if (onButtonClick) onButtonClick(emblaApi)\r\n }, [emblaApi, onButtonClick])\r\n\r\n const onNextButtonClick = useCallback(() => {\r\n if (!emblaApi) return\r\n emblaApi.scrollNext()\r\n if (onButtonClick) onButtonClick(emblaApi)\r\n }, [emblaApi, onButtonClick])\r\n\r\n const onSelect = useCallback((emblaApi: EmblaCarouselType) => {\r\n setPrevBtnDisabled(!emblaApi.canScrollPrev())\r\n setNextBtnDisabled(!emblaApi.canScrollNext())\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (!emblaApi) return\r\n\r\n onSelect(emblaApi)\r\n emblaApi.on('reInit', onSelect)\r\n emblaApi.on('select', onSelect)\r\n }, [emblaApi, onSelect])\r\n\r\n return {\r\n prevBtnDisabled,\r\n nextBtnDisabled,\r\n onPrevButtonClick,\r\n onNextButtonClick\r\n }\r\n}\r\n\r\ntype PropType = PropsWithChildren<\r\n React.DetailedHTMLProps<\r\n React.ButtonHTMLAttributes,\r\n HTMLButtonElement\r\n >\r\n>\r\n\r\nexport const PrevButton: React.FC = (props) => {\r\n const { children, ...restProps } = props\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport const NextButton: React.FC = (props) => {\r\n const { children, ...restProps } = props\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n )\r\n}\r\n","import React, {\r\n PropsWithChildren,\r\n useCallback,\r\n useEffect,\r\n useState,\r\n} from \"react\";\r\nimport { EmblaCarouselType } from \"embla-carousel\";\r\nimport classNames from \"classnames\";\r\n\r\ntype UseDotButtonType = {\r\n selectedIndex: number;\r\n scrollSnaps: number[];\r\n onDotButtonClick: (index: number) => void;\r\n};\r\n\r\nexport const useDotButton = (\r\n emblaApi: EmblaCarouselType | undefined,\r\n onButtonClick?: (emblaApi: EmblaCarouselType) => void\r\n): UseDotButtonType => {\r\n const [selectedIndex, setSelectedIndex] = useState(0);\r\n const [scrollSnaps, setScrollSnaps] = useState([]);\r\n\r\n const onDotButtonClick = useCallback(\r\n (index: number) => {\r\n if (!emblaApi) return;\r\n emblaApi.scrollTo(index);\r\n if (onButtonClick) onButtonClick(emblaApi);\r\n },\r\n [emblaApi, onButtonClick]\r\n );\r\n\r\n const onInit = useCallback((emblaApi: EmblaCarouselType) => {\r\n setScrollSnaps(emblaApi.scrollSnapList());\r\n }, []);\r\n\r\n const onSelect = useCallback((emblaApi: EmblaCarouselType) => {\r\n setSelectedIndex(emblaApi.selectedScrollSnap());\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!emblaApi) return;\r\n\r\n onInit(emblaApi);\r\n onSelect(emblaApi);\r\n emblaApi.on(\"reInit\", onInit);\r\n emblaApi.on(\"reInit\", onSelect);\r\n emblaApi.on(\"select\", onSelect);\r\n }, [emblaApi, onInit, onSelect]);\r\n\r\n return {\r\n selectedIndex,\r\n scrollSnaps,\r\n onDotButtonClick,\r\n };\r\n};\r\n\r\ntype PropType = PropsWithChildren<\r\n React.DetailedHTMLProps<\r\n React.ButtonHTMLAttributes,\r\n HTMLButtonElement\r\n >\r\n>;\r\n\r\nexport const DotButton: React.FC = (props) => {\r\n const { children, className, ...restProps } = props;\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n","import React, { FC } from \"react\";\r\nimport { EmblaOptionsType } from \"embla-carousel\";\r\nimport useEmblaCarousel from \"embla-carousel-react\";\r\nimport ClassNames from \"embla-carousel-class-names\";\r\nimport {\r\n NextButton,\r\n PrevButton,\r\n usePrevNextButtons,\r\n} from \"./CarouselArrowButtons/CarouselArrowButtons\";\r\nimport {\r\n DotButton,\r\n useDotButton,\r\n} from \"./CarouselDotButtons/CarouselDotButtons\";\r\nimport classNames from \"classnames\";\r\n\r\ntype PropType = {\r\n children: React.ReactNode;\r\n options?: EmblaOptionsType;\r\n};\r\n\r\nconst Carousel: FC = ({ options, children }) => {\r\n const [emblaRef, emblaApi] = useEmblaCarousel(options, [ClassNames()]);\r\n\r\n const { selectedIndex, scrollSnaps, onDotButtonClick } =\r\n useDotButton(emblaApi);\r\n\r\n const {\r\n prevBtnDisabled,\r\n nextBtnDisabled,\r\n onPrevButtonClick,\r\n onNextButtonClick,\r\n } = usePrevNextButtons(emblaApi);\r\n\r\n return (\r\n
\r\n {(!prevBtnDisabled || !nextBtnDisabled) && (\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n )}\r\n\r\n
\r\n
{children}
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Carousel;\r\n","export default \"__VITE_ASSET__DhV4qokq__\"","import React, { FC } from \"react\";\r\nimport { SectionHeading } from \"../SectionHeading/SectionHeading\";\r\nimport Carousel from \"../Carousel/Carousel\";\r\nimport fallbackImage from \"../../../../../prod/images/bg3.jpg\";\r\nimport { ButtonVariant } from \"../../types/button\";\r\nimport classNames from \"classnames\";\r\nimport Link from \"../Link/Link\";\r\n\r\nexport interface EmployeeStoryCard {\r\n title: string;\r\n link: string;\r\n image?: string;\r\n department: string;\r\n}\r\n\r\nexport interface EmployeesBlockProps {\r\n sectionName: string;\r\n sectionSubName: string;\r\n employeeStories: EmployeeStoryCard[];\r\n buttonText: string;\r\n buttonLink: string;\r\n buttonVariant: ButtonVariant;\r\n isFrontPage?: boolean;\r\n}\r\n\r\nexport const EmployeesBlock: FC = ({\r\n employeeStories,\r\n sectionName,\r\n sectionSubName,\r\n buttonText,\r\n buttonLink,\r\n buttonVariant,\r\n isFrontPage\r\n}) => (\r\n
\r\n {!!employeeStories.length && (\r\n <>\r\n
\r\n

{sectionName.split(' ')[0]} {sectionName.split(' ').slice(1).join(' ')}

\r\n {buttonLink && ( \r\n \r\n )}\r\n
\r\n \r\n\r\n {/* TODO: Add back in when we decide how header should look */}\r\n {/* */}\r\n

{sectionSubName}

\r\n \r\n <>\r\n {employeeStories.map((employeeStory, index) => (\r\n \r\n
\r\n
\r\n
\r\n

\r\n {employeeStory.department}\r\n

\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n {employeeStory.title}\r\n
\r\n\r\n \r\n
\r\n
\r\n ))}\r\n \r\n \r\n\r\n\r\n {buttonText && (\r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n);\r\n\r\n","import { OptimizelyPropertyCategoryValue } from \"../types/optimizely/blocks\";\r\n\r\nexport const getDepartment = (organization?: OptimizelyPropertyCategoryValue) => {\r\n if (organization?.name === \"Wilhelmsen Ship Management\") {\r\n return \"Ship Management\"\r\n }\r\n return organization?.name || organization?.description;\r\n}","import React from 'react';\r\nimport { OptimizelyArticlePage, OptimizelyEmployeeTeaserListBlock } from '../../types/optimizely/blocks';\r\nimport { EmployeeStoryCard, EmployeesBlock } from '../EmployeesBlock/EmployeesBlock';\r\nimport { getDepartment } from '../../utils/getDepartment';\r\nimport { getButtonVariant } from '../../utils/getButtonVariant';\r\n\r\nexport interface EmployeesBlockWrapperProps {\r\n module: OptimizelyEmployeeTeaserListBlock;\r\n isFrontPage?: boolean;\r\n}\r\n\r\nconst mapArticlePagesToEmployeeStories= (articles: OptimizelyArticlePage[]): EmployeeStoryCard[] => {\r\n if (!articles || articles.length == 0) {\r\n const result: EmployeeStoryCard[] = [];\r\n return result;\r\n }\r\n\r\n return articles.map(article => {\r\n return {\r\n title: article.mainIntro?.value,\r\n link: article.contentLink?.url,\r\n image: article.listImage?.expandedValue?.url,\r\n department: getDepartment(article.organization?.value?.[0]),\r\n }\r\n })\r\n};\r\n\r\nconst EmployeesBlockWrapper: React.FC = ({ module, isFrontPage }) => {\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default EmployeesBlockWrapper;\r\n","import React, { FC } from \"react\";\r\nimport { OptimizelyFullImageBlock } from \"../../types/optimizely/blocks\";\r\nimport { FullImageBlock } from \"../FullImageBlock/FullImageBlock\";\r\nimport { getButtonVariant } from \"../../utils/getButtonVariant\";\r\nimport Link from \"../Link/Link\";\r\nexport interface FullImageBlockWrapperProps {\r\n module: OptimizelyFullImageBlock;\r\n}\r\n\r\nconst FullImageBlockWrapper: FC = ({\r\n module,\r\n}) => {\r\n const headerButton = module.headerCallToActionButtons?.expandedValue?.[0];\r\n const hasHeaderButton = module.headerCallToActionButtons?.expandedValue?.length > 0;\r\n\r\n const headerWords = module.headerText?.value?.split(' ') || [];\r\n \r\n const firstWord = headerWords[0];\r\n const remainingWords = headerWords.slice(1).join(' ');\r\n\r\n return (\r\n
\r\n
\r\n

\r\n {firstWord} {remainingWords}\r\n

\r\n {hasHeaderButton && (\r\n
\r\n
\r\n (\r\n \r\n ))}\r\n />\r\n
\r\n
\r\n (\r\n \r\n ))}\r\n />\r\n
\r\n {hasHeaderButton && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default FullImageBlockWrapper;\r\n","import React, { FC } from \"react\";\r\nimport fallbackImage from \"../../../../../prod/images/bg3.jpg\";\r\nimport ArrowRightIcon from \"../../../../../prod/images/redesign/arrowRight.svg?react\";\r\nimport { Product } from \"../../types/product/product.types\";\r\n\r\nexport interface ProductCardProps extends Product {}\r\n\r\nexport const ProductCard: FC = (props) => {\r\n return (\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n {props.name}\r\n \r\n \r\n\r\n

Prod no. {props.catalogueNumber}

\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","import React, { FC } from \"react\";\r\nimport Carousel from \"../Carousel/Carousel\";\r\n\r\nimport { ProductCard } from \"../ProductCard/ProductCard\";\r\nimport { SectionHeading } from \"../SectionHeading/SectionHeading\";\r\nimport { Product } from \"../../types/product/product.types\";\r\nimport Link from \"../Link/Link\";\r\n\r\ninterface ProductCatalogueProps {\r\n sectionTitle: string;\r\n products: Product[];\r\n}\r\n\r\nexport const ProductCatalogue: FC = (props) => {\r\n const allProductsButtonLabel = \"All products\";\r\n\r\n const handleOnClick = () => window.open(\"/product-catalogue/\", \"_self\");\r\n\r\n return (\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n\r\n \r\n {props.products.map((product, index) => (\r\n \r\n ))}\r\n \r\n\r\n \r\n
\r\n );\r\n};\r\n","import React, { FC } from \"react\";\r\nimport { ProductCatalogue } from \"../ProductCatalogue/ProductCatalogue\";\r\nimport { ProductsBlock } from \"../../types/optimizely/blocks\";\r\nimport { Product } from \"../../types/product/product.types\";\r\n\r\ninterface ProductSectionProps {\r\n module: ProductsBlock;\r\n}\r\n\r\nconst mapEpiProductToModel = (module: ProductsBlock): Product[] => {\r\n return module.products.expandedValue.map((product) => {\r\n return {\r\n url: product.url,\r\n name: product.name,\r\n catalogueNumber: product.number.value,\r\n image: {\r\n ...product.images.value[0],\r\n },\r\n };\r\n });\r\n};\r\n\r\nconst ProductSection: FC = ({ module }) => (\r\n \r\n);\r\n\r\nexport default ProductSection;\r\n","import React, { FC } from \"react\";\r\nimport fallbackImage from \"../../../../../prod/images/bg3.jpg\";\r\nimport DOMPurify from \"dompurify\";\r\n\r\ninterface SocialCardProps {\r\n imageUrl: string;\r\n postUrl: string;\r\n text: string;\r\n}\r\n\r\nexport const SocialCard: FC = ({\r\n imageUrl,\r\n postUrl,\r\n text,\r\n}) => {\r\n return (\r\n
\r\n \r\n \r\n \r\n

\r\n
\r\n );\r\n};\r\n","import React, { FC, SetStateAction, useEffect, useState } from \"react\";\r\nimport { SectionHeading } from \"../SectionHeading/SectionHeading\";\r\nimport Carousel from \"../Carousel/Carousel\";\r\nimport { SocialCard } from \"../SocialCard/SocialCard\";\r\nimport axios from \"axios\";\r\n\r\nenum SocialMediaSource {\r\n INSTAGRAM = \"instagram\",\r\n LINKEDIN = \"linkedin\",\r\n}\r\n\r\nconst tabOptions: { label: string; value: SocialMediaSource }[] = [\r\n {\r\n label: \"Instagram\",\r\n value: SocialMediaSource.INSTAGRAM,\r\n },\r\n {\r\n label: \"Linkedin\",\r\n value: SocialMediaSource.LINKEDIN,\r\n },\r\n];\r\n\r\ntype MappedJuicerPost = { imageUrl: string; postUrl: string; text: string };\r\n\r\nconst getJuicerFeed = async (\r\n params: any,\r\n feedId: string,\r\n setData: React.Dispatch>\r\n) => {\r\n try {\r\n const response = await axios.get(\r\n `https://www.juicer.io/api/feeds/${feedId}`,\r\n {\r\n params: {\r\n per: params.pageSize,\r\n page: 1,\r\n },\r\n }\r\n );\r\n\r\n const mappedItems: MappedJuicerPost[] = response.data.posts.items.map(\r\n (item) => ({\r\n imageUrl: item.image,\r\n postUrl: item.full_url,\r\n text: item.unformatted_message,\r\n })\r\n );\r\n\r\n setData(mappedItems);\r\n } catch {\r\n console.error(\"Error fetching Juicer data\");\r\n setData([]);\r\n }\r\n};\r\n\r\ntype SocialMediaProps = {\r\n feedId: string;\r\n pagination: {\r\n pageSize: number;\r\n };\r\n};\r\n\r\nconst getJuicerFeedBySocialMediaSource: { [key in SocialMediaSource]: string } =\r\n {\r\n [SocialMediaSource.INSTAGRAM]: \"wsmsocialwall\",\r\n [SocialMediaSource.LINKEDIN]: \"wilhelmsengroup\",\r\n };\r\n\r\nconst SocialMedia: FC = (props) => {\r\n const [source, setSource] = useState(\r\n SocialMediaSource.LINKEDIN\r\n );\r\n const [items, setItems] = useState([]);\r\n\r\n useEffect(() => {\r\n getJuicerFeed(\r\n props.pagination,\r\n getJuicerFeedBySocialMediaSource[source],\r\n setItems\r\n );\r\n }, [source]);\r\n\r\n return (\r\n
\r\n
\r\n \r\n\r\n {/* TODO uncomment when toggle available*/}\r\n {/*
*/}\r\n {/* tabs={tabOptions} setSource={setSource} />*/}\r\n {/*
*/}\r\n
\r\n\r\n {!!items.length && (\r\n \r\n {items.map((post, index) => (\r\n \r\n ))}\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default SocialMedia;\r\n","import React from \"react\";\r\nimport classnames from \"classnames\";\r\n\r\ninterface StatisticProps {\r\n number: string;\r\n title: string;\r\n introduction: string;\r\n className?: string;\r\n total: number;\r\n}\r\n\r\nexport const Statistic: React.FC = ({\r\n number,\r\n introduction,\r\n title,\r\n className,\r\n total,\r\n}) => {\r\n return (\r\n
  • \r\n {title}\r\n
    \r\n = 4 })}>{number}\r\n {introduction}\r\n
    \r\n
  • \r\n );\r\n};\r\n","import React from \"react\";\r\nimport { Statistic } from \"../Statistic/Statistic\";\r\nimport { StatsNumbersBlockValues } from \"../../types/optimizely/blocks\";\r\nimport { SectionHeading } from \"../SectionHeading/SectionHeading\";\r\nimport Link from \"../Link/Link\";\r\n\r\ninterface StatisticsProps {\r\n content: StatsNumbersBlockValues;\r\n}\r\n\r\nconst StatisticsBlock: React.FC = ({ content }) => {\r\n const {\r\n title,\r\n buttonLink,\r\n buttonTitle,\r\n statsNumbersContentArea,\r\n } = content;\r\n\r\n const contentArray = statsNumbersContentArea?.expandedValue || [];\r\n\r\n return (\r\n
    \r\n
    \r\n {Boolean(title.value) && (\r\n
    \r\n \r\n
    \r\n )}\r\n\r\n
      \r\n {contentArray.map((content, idx) => (\r\n \r\n ))}\r\n
    \r\n\r\n {Boolean(buttonTitle.value) && (\r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default StatisticsBlock;","import React from \"react\";\r\nimport { ColorPalette } from \"../../types/background\";\r\nimport {\r\n getColorClasses,\r\n getTextColorClass,\r\n} from \"../../utils/getBackgroundColor\";\r\nimport classNames from \"classnames\";\r\nimport dayjs from \"dayjs\";\r\nimport Link from \"../Link/Link\";\r\n\r\nexport interface TeaserCardProps {\r\n title: string;\r\n backgroundColor: ColorPalette;\r\n tag: string;\r\n created: string;\r\n hideImage: boolean;\r\n href: string;\r\n image?: string;\r\n linkText?: string;\r\n}\r\n\r\nconst getButtonType = (backgroundColor: TeaserCardProps[\"backgroundColor\"]) => {\r\n switch (backgroundColor) {\r\n case \"white\":\r\n case \"secondaryYellow\":\r\n case \"primaryBlue\":\r\n case \"secondaryGreen\":\r\n case \"secondaryLightGreen\":\r\n return \"link-secondary\";\r\n case \"primary\":\r\n case \"primaryTurquoise\":\r\n case \"secondaryDarkGreen\":\r\n return \"link-secondary-reverse\";\r\n }\r\n};\r\n\r\nconst getHeadingSize = (text: string, image?: boolean) => {\r\n return image\r\n ? text.length > 100\r\n ? \"text-1xl\"\r\n : \"text-2xl\"\r\n : text.length > 50\r\n ? \"text-2xl\"\r\n : \"text-3xl\";\r\n};\r\n\r\nexport const TeaserCard = ({\r\n title,\r\n backgroundColor,\r\n tag,\r\n created,\r\n hideImage,\r\n href,\r\n image,\r\n linkText,\r\n}: TeaserCardProps) => {\r\n const showImage = !hideImage && !!image;\r\n const buttonType = getButtonType(backgroundColor);\r\n const headingSize = getHeadingSize(title, showImage);\r\n const backgroundClass = getColorClasses(backgroundColor);\r\n const textClass = getTextColorClass(backgroundColor);\r\n\r\n return (\r\n \r\n
    \r\n {!!tag && (\r\n
    \r\n
    \r\n

    {tag}

    \r\n
    \r\n
    \r\n )}\r\n\r\n \r\n {title}\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n {showImage && (\r\n \r\n )}\r\n
    \r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport ArrowRight from \"../../assets/arrow-right.svg?react\";\r\nimport classnames from \"classnames\";\r\nimport { ButtonVariant } from \"../../types/button\";\r\n\r\ninterface ButtonProps {\r\n text: string;\r\n variant?: ButtonVariant;\r\n className?: string;\r\n onClick: (evt?: React.MouseEvent) => void;\r\n}\r\n\r\nconst getClassByVariant = (variant: ButtonVariant) => {\r\n switch (variant) {\r\n case \"main\":\r\n return \"px-6 bg-primary text-md text-white justify-center outline-none hover:bg-primaryBlue hover:border-primaryBlue hover:text-white hover:outline-none\";\r\n case \"secondary\":\r\n case \"link-primary\":\r\n return \"px-6 border-2 border-primary bg-transparent text-primary justify-center outline-none hover:text-primaryBlue hover:border-primaryBlue hover:outline-none\";\r\n case \"link-primary-reverse\":\r\n return \"px-6 border-2 border-white bg-transparent text-white justify-center outline-none hover:border-primaryBlue hover:text-primaryBlue hover:border-2 hover:outline-none\";\r\n case \"link-secondary\":\r\n return \"text-primary hover:text-primaryBlue border-0 outline-none hover:border-none hover:outline-none\";\r\n case \"text\":\r\n return \"text-primary hover:text-primaryBlue justify-center\";\r\n case \"link-secondary-reverse\":\r\n return \"text-white border-none justify-center hover:text-primaryBlue hover:border-none hover:outline-none\";\r\n case \"main-reverse\":\r\n return \"px-6 bg-white text-primary hover:bg-primaryBlue hover:text-white justify-center border-white outline-white border-white hover:outline-primaryBlue hover:border-primaryBlue\";\r\n default:\r\n return \"bg-primary text-white justify-center\";\r\n }\r\n};\r\n\r\nconst typesWithIcons = [\r\n \"link-primary\",\r\n \"link-secondary\",\r\n \"link-primary-reverse\",\r\n \"link-secondary-reverse\",\r\n];\r\n\r\nexport const Button: React.FC = ({\r\n variant = \"main\",\r\n text,\r\n className,\r\n onClick,\r\n}) => {\r\n const shouldUseIcon = typesWithIcons.includes(variant);\r\n\r\n return (\r\n \r\n {text}\r\n {shouldUseIcon && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Button;\r\n","import { BusinessStreamPageType } from \"../../types/optimizely/businessStreamPage\";\r\nimport { OptimizelyExpandedValue } from \"../../types/optimizely/expanded\";\r\n\r\nexport const businessStreamPageTypeName = \"BusinessStreamPage\";\r\n\r\nexport const isBusinessStreamPage = (content: OptimizelyExpandedValue): content is BusinessStreamPageType => {\r\n return content.contentType.includes(businessStreamPageTypeName);\r\n}","import { ColorPalette } from \"../background\";\r\nimport {\r\n OptimizelyContentArea,\r\n OptimizelyContentLink,\r\n OptimizelyPropertyBoolean,\r\n} from \"./base\";\r\nimport {\r\n OptimizelyContentReferenceExpandedValue,\r\n OptimizelyExpandedValue,\r\n} from \"./expanded\";\r\nimport { PropertyDataType } from \"./unions\";\r\n\r\nexport interface OptimizelyBlock {\r\n value?: string | Object | Object[];\r\n propertyDataType: PropertyDataType;\r\n contentLink?: {\r\n guidValue: string;\r\n };\r\n}\r\n\r\nexport interface OptimizelyLongString extends OptimizelyBlock {\r\n value: string;\r\n propertyDataType: \"PropertyLongString\";\r\n}\r\n\r\nexport interface OptimizelyNumber extends OptimizelyBlock {\r\n value: number;\r\n propertyDataType: \"PropertyNumber\";\r\n}\r\n\r\nexport interface OptimizelyXhtmlString extends OptimizelyBlock {\r\n value: string;\r\n propertyDataType: \"PropertyXhtmlString\";\r\n}\r\nexport interface OptimizelyColor {\r\n value: ColorPalette | null;\r\n propertyDataType: \"PropertyLongString\";\r\n}\r\n\r\nexport interface OptimizelyURL extends OptimizelyBlock {\r\n value: string;\r\n propertyDataType: \"PropertyUrl\";\r\n}\r\n\r\nexport interface OptimizelyLinkCollection {\r\n propertyDataType: \"PropertyLinkCollection\";\r\n value: {\r\n href: string;\r\n text: string;\r\n }[];\r\n}\r\n\r\nexport interface OptimizelyContentReference extends OptimizelyBlock {\r\n propertyDataType: \"PropertyContentReference\";\r\n expandedValue: OptimizelyContentReferenceExpandedValue;\r\n}\r\n\r\nexport interface OptimizelyContentReferenceList extends OptimizelyBlock {\r\n value: Object[];\r\n propertyDataType: \"PropertyContentReferenceList\";\r\n expandedValue: OptimizelyContentReferenceExpandedValue[];\r\n}\r\n\r\nexport interface TeasedNewsPage extends OptimizelyExpandedValue {\r\n contentType: [\"Page\", \"NewsPage\"] | [\"Page\", \"PressReleasePage\"];\r\n url: string;\r\n name: string;\r\n mainIntro: OptimizelyLongString;\r\n mainImage: OptimizelyContentReference;\r\n listImage: OptimizelyContentReference;\r\n teaserBackgroundColor?: OptimizelyColor;\r\n teaserHideImage: OptimizelyPropertyBoolean;\r\n organization: OptimizelyPropertyCategory;\r\n}\r\n\r\nexport const isTeasedNewsPage = (\r\n block: OptimizelyExpandedValue\r\n): block is TeasedNewsPage => {\r\n return (\r\n block.contentType[1] === \"NewsPage\" ||\r\n block.contentType[1] === \"PressReleasePage\"\r\n );\r\n};\r\n\r\nexport interface ArticlePageIndustryPerpectives\r\n extends OptimizelyExpandedValue {\r\n contentType: [\"Page\", \"ArticlePageIndustryPerpectives\"];\r\n url: string;\r\n name: string;\r\n mainIntro: OptimizelyLongString;\r\n mainImage: OptimizelyContentReference;\r\n listImage: OptimizelyContentReference;\r\n teaserBackgroundColor?: OptimizelyColor;\r\n teaserHideImage: OptimizelyPropertyBoolean;\r\n organization: OptimizelyPropertyCategory;\r\n}\r\n\r\nexport const isArticlePageIndustryPerpectives = (\r\n block: OptimizelyExpandedValue\r\n): block is ArticlePageIndustryPerpectives => {\r\n return block.contentType[1] === \"ArticlePageIndustryPerpectives\";\r\n};\r\n\r\nexport interface SectionPage extends OptimizelyExpandedValue {\r\n contentType: [\"Page\", \"SectionPage\"];\r\n url: string;\r\n name: string;\r\n mainIntro: OptimizelyLongString;\r\n mainImage: OptimizelyContentReference;\r\n listImage: OptimizelyContentReference;\r\n teaserBackgroundColor?: OptimizelyColor;\r\n teaserHideImage: OptimizelyPropertyBoolean;\r\n organization: OptimizelyPropertyCategory;\r\n}\r\n\r\nexport const isSectionPage = (\r\n block: OptimizelyExpandedValue\r\n): block is SectionPage => {\r\n return block.contentType[1] === \"SectionPage\";\r\n};\r\n\r\nexport const isCenteredSectionPage = (\r\n block: OptimizelyExpandedValue\r\n): block is SectionPage => {\r\n return block.contentType[1] === \"SectionCenteredPage\";\r\n};\r\n\r\nexport const isSolutionPage = (\r\n block: OptimizelyExpandedValue\r\n): block is SectionPage => {\r\n return block.contentType[1] === \"SolutionPage\";\r\n};\r\n\r\nexport interface SimpleEventPage extends OptimizelyExpandedValue {\r\n contentType: [\"Page\", \"SimpleEventPage\"];\r\n url: string;\r\n name: string;\r\n mainIntro: OptimizelyLongString;\r\n mainImage: OptimizelyContentReference;\r\n listImage: OptimizelyContentReference;\r\n teaserBackgroundColor?: OptimizelyColor;\r\n teaserHideImage: OptimizelyPropertyBoolean;\r\n organization: OptimizelyPropertyCategory;\r\n}\r\n\r\nexport const isSimpleEventPage = (\r\n block: OptimizelyExpandedValue\r\n): block is SimpleEventPage => {\r\n return block.contentType[1] === \"SimpleEventPage\";\r\n};\r\n\r\nexport interface CoursePage extends OptimizelyExpandedValue {\r\n contentType: [\"Page\", \"CoursePage\"];\r\n url: string;\r\n name: string;\r\n mainIntro: OptimizelyLongString;\r\n mainImage: OptimizelyContentReference;\r\n listImage: OptimizelyContentReference;\r\n teaserBackgroundColor?: OptimizelyColor;\r\n teaserHideImage: OptimizelyPropertyBoolean;\r\n organization: OptimizelyPropertyCategory;\r\n}\r\n\r\nexport const isCoursePage = (\r\n block: OptimizelyExpandedValue\r\n): block is CoursePage => {\r\n return block.contentType[1] === \"CoursePage\";\r\n};\r\n\r\nexport interface PortNewsPage extends OptimizelyExpandedValue {\r\n contentType: [\"Page\", \"PortNewsPage\"];\r\n url: string;\r\n name: string;\r\n mainIntro: OptimizelyLongString;\r\n mainImage: OptimizelyContentReference;\r\n listImage: OptimizelyContentReference;\r\n teaserBackgroundColor?: OptimizelyColor;\r\n teaserHideImage: OptimizelyPropertyBoolean;\r\n organization: OptimizelyPropertyCategory;\r\n}\r\n\r\nexport const isPortNewsPage = (\r\n block: OptimizelyExpandedValue\r\n): block is PortNewsPage => {\r\n return block.contentType[1] === \"PortNewsPage\";\r\n};\r\n\r\nexport interface StatsNumbersBlockValues extends OptimizelyExpandedValue {\r\n title: OptimizelyLongString;\r\n buttonTitle: OptimizelyLongString;\r\n buttonLink: OptimizelyLongString;\r\n statsNumbersContentArea: {\r\n expandedValue: StatsNumbersContentBlock[];\r\n propertyDataType: \"PropertyContentArea\";\r\n };\r\n}\r\n\r\nexport interface StatsNumbersContentBlock extends OptimizelyExpandedValue {\r\n contentType: [\"Block\", \"StatsNumbersContentBlock\"];\r\n number: {\r\n value: string;\r\n propertyDataType: \"PropertyLongString\";\r\n };\r\n title: {\r\n value: string;\r\n propertyDataType: \"PropertyLongString\";\r\n };\r\n introduction: {\r\n value: string;\r\n propertyDataType: \"PropertyLongString\";\r\n };\r\n}\r\n\r\nexport interface ImageReference extends OptimizelyContentReference {\r\n value: {\r\n guidValue: string;\r\n id: number;\r\n url: string;\r\n workId: number;\r\n };\r\n}\r\n\r\nexport interface CTASection extends OptimizelyExpandedValue {\r\n propertyDataType: \"CTALeft\" | \"CTARight\";\r\n buttonLink: OptimizelyURL;\r\n description: OptimizelyLongString;\r\n heading: OptimizelyLongString;\r\n image: ImageReference;\r\n introduction: OptimizelyLongString;\r\n linkText: OptimizelyLongString;\r\n name: \"CTALeft\" | \"CTARight\";\r\n backgroundColor: OptimizelyColor;\r\n}\r\n\r\nexport interface Image extends OptimizelyExpandedValue {\r\n contentType: [\"Image\", \"Media\"];\r\n url: string;\r\n title: OptimizelyLongString;\r\n}\r\n\r\nexport interface TeaserListBlock extends OptimizelyExpandedValue {\r\n contentType: [\"Block\", \"TeaserListBlock\"];\r\n content: OptimizelyContentArea;\r\n headerLink: OptimizelyPropertyUrl;\r\n headerLinkText: OptimizelyLongString;\r\n navigateToArticleText: OptimizelyLongString;\r\n name: string;\r\n}\r\n\r\nexport interface StatsNumbersBlock\r\n extends OptimizelyExpandedValue,\r\n StatsNumbersBlockValues {\r\n contentType: [\"Block\", \"StatsNumbersBlock\"];\r\n}\r\n\r\nexport const isTeaserListBlock = (\r\n block: OptimizelyExpandedValue\r\n): block is TeaserListBlock => {\r\n return block.contentType[1] === \"TeaserListBlock\";\r\n};\r\n\r\nexport interface CTADoubleBlock extends OptimizelyExpandedValue {\r\n contentType: [\"Block\", \"CallToActionDoubleBlock\"];\r\n ctaLeft: CTASection;\r\n ctaRight: CTASection;\r\n}\r\n\r\nexport const isCTADoubleBlock = (\r\n block: OptimizelyExpandedValue\r\n): block is CTADoubleBlock => {\r\n return block.contentType[1] === \"CallToActionDoubleBlock\";\r\n};\r\n\r\nexport interface TextAndImageBlock extends OptimizelyExpandedValue {\r\n contentType: [\"Block\", \"TextAndImageBlock\"];\r\n image: {\r\n expandedValue: OptimizelyContentReferenceExpandedValue;\r\n };\r\n title?: OptimizelyLongString;\r\n description: OptimizelyXhtmlString;\r\n backgroundColor?: OptimizelyColor;\r\n}\r\n\r\nexport const isTextAndImageBlock = (\r\n block: OptimizelyExpandedValue\r\n): block is TextAndImageBlock => {\r\n return block.contentType[1] === \"TextAndImageBlock\";\r\n};\r\n\r\nexport interface TextBlock extends OptimizelyExpandedValue {\r\n contentType: [\"Block\", \"TextBlock\"];\r\n text: OptimizelyXhtmlString;\r\n backgroundColor: OptimizelyColor;\r\n isLogoVisible: OptimizelyPropertyBoolean;\r\n}\r\n\r\nexport const isTextBlock = (\r\n block: OptimizelyExpandedValue\r\n): block is TextBlock => {\r\n return block.contentType[1] === \"TextBlock\";\r\n};\r\n\r\nexport interface EditorialBlock extends OptimizelyExpandedValue {\r\n contentType: [\"Block\", \"EditorialBlock\"];\r\n text: OptimizelyXhtmlString;\r\n title: OptimizelyLongString;\r\n backgroundColor: OptimizelyColor;\r\n}\r\n\r\nexport const isEditorialBlock = (\r\n block: OptimizelyExpandedValue\r\n): block is EditorialBlock => {\r\n return block.contentType[1] === \"EditorialBlock\";\r\n};\r\n\r\nexport interface CTABlock extends OptimizelyExpandedValue {\r\n contentType: [\"Block\", \"CallToActionBlock\"];\r\n linkText: OptimizelyLongString;\r\n buttonLink: OptimizelyURL;\r\n heading: OptimizelyLongString;\r\n introduction: OptimizelyLongString;\r\n}\r\n\r\nexport const isCTABlock = (\r\n block: OptimizelyExpandedValue\r\n): block is CTABlock => {\r\n return block.contentType[1] === \"CallToActionBlock\";\r\n};\r\n\r\nexport interface ContactBlock extends OptimizelyExpandedValue {\r\n contentType: [\"Block\", \"ContactBlock\"];\r\n title: OptimizelyLongString;\r\n text: OptimizelyLongString;\r\n link: OptimizelyURL;\r\n}\r\n\r\nexport const isContactBlock = (\r\n block: OptimizelyExpandedValue\r\n): block is ContactBlock => {\r\n return block.contentType[1] === \"ContactBlock\";\r\n};\r\n\r\nexport interface SpacerBlock extends OptimizelyExpandedValue {\r\n contentType: [\"Block\", \"SpacerBlock\"];\r\n height: OptimizelyNumber;\r\n backgroundColor: OptimizelyColor;\r\n hideOnMobile: OptimizelyPropertyBoolean;\r\n}\r\n\r\nexport const isSpacerBlock = (\r\n block: OptimizelyExpandedValue\r\n): block is SpacerBlock => {\r\n return block.contentType[1] === \"SpacerBlock\";\r\n};\r\n\r\nexport interface TwoColumnsBlock extends OptimizelyExpandedValue {\r\n contentType: [\"Block\", \"TwoColumnsBlock\"];\r\n leftColumn: OptimizelyContentArea;\r\n rightColumn: OptimizelyContentArea;\r\n leftColumnScrollableContent: OptimizelyPropertyBoolean;\r\n rightColumnScrollableContent: OptimizelyPropertyBoolean;\r\n}\r\n\r\nexport const isTwoColumnsBlock = (\r\n block: OptimizelyExpandedValue\r\n): block is TwoColumnsBlock => {\r\n return block.contentType[1] === \"TwoColumnsBlock\";\r\n};\r\n\r\nexport interface AccordionBlock extends OptimizelyExpandedValue {\r\n contentType: [\"Block\", \"AccordionBlock\"];\r\n accordionItems: OptimizelyContentArea;\r\n}\r\n\r\nexport const isAccordionBlock = (\r\n block: OptimizelyExpandedValue\r\n): block is AccordionBlock => {\r\n return block.contentType[1] === \"AccordionBlock\";\r\n};\r\n\r\nexport const isStatsNumbersBlock = (\r\n block: OptimizelyExpandedValue\r\n): block is StatsNumbersBlock => {\r\n return block.contentType[1] === \"StatsNumbersBlock\";\r\n};\r\n\r\nexport interface LinkListBlock extends OptimizelyExpandedValue {\r\n contentType: [\"Block\", \"LinkListBlock\"];\r\n links: OptimizelyLinkCollection;\r\n name: string;\r\n}\r\n\r\nexport const isLinkListBlock = (\r\n block: OptimizelyExpandedValue\r\n): block is LinkListBlock => {\r\n return block.contentType[1] === \"LinkListBlock\";\r\n};\r\n\r\nexport interface GalleryBlock extends OptimizelyExpandedValue {\r\n contentType: [\"Block\", \"TeaserGalleryBlock\"];\r\n}\r\n\r\nexport type MainContentAreaExpandedValue =\r\n | TeaserListBlock\r\n | GalleryBlock\r\n | ProductsBlock;\r\n\r\ninterface CatalogedProductPage extends OptimizelyExpandedValue {\r\n contentType: [\"Page\", \"CatalogedProductPage\"];\r\n name: string;\r\n description: OptimizelyLongString;\r\n images: OptimizelyLinkCollection;\r\n number: OptimizelyLongString;\r\n url: string;\r\n}\r\n\r\nexport interface ProductsBlock extends OptimizelyExpandedValue {\r\n contentType: [\"Block\", \"CatalogueProductsPreviewBlock\"];\r\n products: {\r\n expandedValue: CatalogedProductPage[];\r\n propertyDataType: \"PropertyContentReferenceList\";\r\n value: {\r\n guidValue: string;\r\n id: number;\r\n url: string;\r\n workId: number;\r\n }[];\r\n };\r\n title: OptimizelyLongString;\r\n}\r\n\r\nexport const isProductsBlock = (\r\n block: OptimizelyExpandedValue\r\n): block is ProductsBlock => {\r\n return block.contentType[1] === \"CatalogueProductsPreviewBlock\";\r\n};\r\n\r\nexport type OptimizelyButtonTypeValue =\r\n | \"main\"\r\n | \"secondary\"\r\n | \"link-primary\"\r\n | \"link-secondary\"\r\n | \"text\"\r\n | \"main-reverse\"\r\n | \"link-primary-reverse\"\r\n | \"link-secondary-reverse\";\r\n\r\nexport interface OptimizelyButtonType {\r\n value: OptimizelyButtonTypeValue;\r\n propertyDataType: string;\r\n}\r\n\r\nexport interface OptimizelyPropertyUrl {\r\n value: string;\r\n propertyDataType: \"PropertyUrl\";\r\n}\r\n\r\nexport interface OptimizelyCallToActionButtonBlock\r\n extends OptimizelyExpandedValue {\r\n contentType: [\"Block\", \"CallToActionButtonBlock\"];\r\n linkText?: OptimizelyLongString;\r\n buttonLink: OptimizelyURL;\r\n buttonType: OptimizelyButtonType;\r\n}\r\n\r\nexport interface OptimizelyCallToActionButtonsContentArea {\r\n expandedValue: OptimizelyCallToActionButtonBlock[];\r\n propertyDataType: \"PropertyContentArea\";\r\n}\r\n\r\nexport interface OptimizelyFullImageBlock extends OptimizelyExpandedValue {\r\n contentType: [\"Block\", \"FullImageBlock\"];\r\n headerText: OptimizelyLongString;\r\n title: OptimizelyLongString;\r\n subTitle: OptimizelyLongString;\r\n image: OptimizelyContentReference;\r\n imageMobile: OptimizelyContentReference;\r\n callToActionButtons: OptimizelyCallToActionButtonsContentArea;\r\n headerCallToActionButtons: OptimizelyCallToActionButtonsContentArea;\r\n fontColor: OptimizelyColor;\r\n backgroundColor: OptimizelyColor;\r\n fullHeight: OptimizelyPropertyBoolean;\r\n imageCaption: OptimizelyLongString;\r\n sectionId: OptimizelyLongString;\r\n}\r\n\r\nexport const isFullImageBlock = (\r\n block: OptimizelyExpandedValue\r\n): block is OptimizelyFullImageBlock => {\r\n return block.contentType[1] === \"FullImageBlock\";\r\n};\r\n\r\nexport interface OptimizelyPropertyCategoryValue {\r\n id: number;\r\n name: string;\r\n description: string;\r\n}\r\n\r\nexport interface OptimizelyPropertyCategory {\r\n value: OptimizelyPropertyCategoryValue[];\r\n propertyDataType: \"PropertyCategory\";\r\n}\r\n\r\nexport interface OptimizelyArticlePage extends OptimizelyExpandedValue {\r\n contentType: [\"Page\", \"ArticlePage\"];\r\n contentLink: OptimizelyContentLink;\r\n mainIntro: OptimizelyLongString;\r\n listImage: OptimizelyContentReference;\r\n organization: OptimizelyPropertyCategory;\r\n url: string;\r\n name: string;\r\n mainImage: OptimizelyContentReference;\r\n teaserBackgroundColor?: OptimizelyColor;\r\n teaserHideImage: OptimizelyPropertyBoolean;\r\n}\r\n\r\nexport const isArticlePage = (\r\n block: OptimizelyExpandedValue\r\n): block is OptimizelyArticlePage => {\r\n return block.contentType[1] === \"ArticlePage\";\r\n};\r\n\r\nexport interface OptimizelyEmployeeTeaserListBlockContentArea {\r\n expandedValue: OptimizelyArticlePage[];\r\n propertyDataType: \"PropertyContentArea\";\r\n}\r\n\r\nexport interface OptimizelyEmployeeTeaserListBlock\r\n extends OptimizelyExpandedValue {\r\n contentType: [\"Block\", \"EmployeeTeaserListBlock\"];\r\n title: OptimizelyLongString;\r\n secondaryTitle: OptimizelyLongString;\r\n callToActionButton: OptimizelyCallToActionButtonBlock;\r\n content: OptimizelyEmployeeTeaserListBlockContentArea;\r\n}\r\n\r\nexport const isEmployeeTeaserListBlock = (\r\n block: OptimizelyExpandedValue\r\n): block is OptimizelyEmployeeTeaserListBlock => {\r\n return block.contentType[1] === \"EmployeeTeaserListBlock\";\r\n};\r\n\r\nexport interface OptimizelySocialMediaWallBlock\r\n extends OptimizelyExpandedValue {\r\n contentType: [\"Block\", \"SocialMediaWallBlock\"];\r\n juicerFeedId: OptimizelyLongString;\r\n numberOfItems: OptimizelyNumber;\r\n}\r\nexport const isSocialMediaWallBlock = (\r\n block: OptimizelyExpandedValue\r\n): block is OptimizelySocialMediaWallBlock => {\r\n return block.contentType[1] === \"SocialMediaWallBlock\";\r\n};\r\n","import { isBusinessStreamPage } from \"../../pages/BusinessStreamPage/businessStreamPage.utils\";\r\nimport {\r\n isArticlePage,\r\n isArticlePageIndustryPerpectives,\r\n isCenteredSectionPage,\r\n isCoursePage,\r\n isPortNewsPage,\r\n isSectionPage,\r\n isSimpleEventPage,\r\n isSolutionPage,\r\n isTeasedNewsPage,\r\n} from \"../../types/optimizely/blocks\";\r\nimport { OptimizelyExpandedValue } from \"../../types/optimizely/expanded\";\r\nimport { TeaserCardProps } from \"../TeaserCard/TeaserCard\";\r\n\r\nexport const MapToTeaserCardProps = (\r\n item: OptimizelyExpandedValue\r\n): TeaserCardProps => {\r\n if (isTeasedNewsPage(item)) {\r\n return {\r\n title: item.name,\r\n tag: item.teaserHideTag?.value ? \"\" : item.organization?.value[0]?.name,\r\n image: item.mainImage?.expandedValue?.url || item.listImage?.expandedValue?.url,\r\n hideImage: item.teaserHideImage?.value,\r\n backgroundColor: item.teaserBackgroundColor?.value || \"primary\",\r\n created: item.created,\r\n href: item.url,\r\n };\r\n }\r\n if (isArticlePageIndustryPerpectives(item)) {\r\n return {\r\n title: item.name,\r\n tag: item.teaserHideTag?.value ? \"\" : item.organization?.value[0]?.name,\r\n image: item.mainImage?.expandedValue?.url || item.listImage?.expandedValue?.url,\r\n hideImage: item.teaserHideImage?.value,\r\n backgroundColor: item.teaserBackgroundColor?.value || \"primary\",\r\n created: item.created,\r\n href: item.url,\r\n };\r\n }\r\n if (isSimpleEventPage(item)) {\r\n return {\r\n title: item.name,\r\n tag: item.teaserHideTag?.value ? \"\" : item.organization?.value[0]?.name,\r\n image: item.mainImage?.expandedValue?.url || item.listImage?.expandedValue?.url,\r\n hideImage: item.teaserHideImage?.value,\r\n backgroundColor: item.teaserBackgroundColor?.value || \"primary\",\r\n created: item.created,\r\n href: item.url,\r\n };\r\n }\r\n if (isSectionPage(item)) {\r\n return {\r\n title: item.name,\r\n tag: item.teaserHideTag?.value ? \"\" : item.organization?.value[0]?.name,\r\n image: item.mainImage?.expandedValue?.url || item.listImage?.expandedValue?.url,\r\n hideImage: item.teaserHideImage?.value,\r\n backgroundColor: item.teaserBackgroundColor?.value || \"primary\",\r\n created: item.created,\r\n href: item.url,\r\n };\r\n }\r\n if (isCenteredSectionPage(item)) {\r\n return {\r\n title: item.name,\r\n tag: item.teaserHideTag?.value ? \"\" : item.organization?.value[0]?.name,\r\n image: item.mainImage?.expandedValue?.url || item.listImage?.expandedValue?.url,\r\n hideImage: item.teaserHideImage?.value,\r\n backgroundColor: item.teaserBackgroundColor?.value || \"primary\",\r\n created: item.created,\r\n href: item.url,\r\n };\r\n }\r\n if (isSolutionPage(item)) {\r\n return {\r\n title: item.name,\r\n tag: item.teaserHideTag?.value ? \"\" : item.organization?.value[0]?.name,\r\n image: item.mainImage?.expandedValue?.url || item.listImage?.expandedValue?.url,\r\n hideImage: item.teaserHideImage?.value,\r\n backgroundColor: item.teaserBackgroundColor?.value || \"primary\",\r\n created: item.created,\r\n href: item.url,\r\n };\r\n }\r\n if (isCoursePage(item)) {\r\n return {\r\n title: item.name,\r\n tag: item.teaserHideTag?.value ? \"\" : item.organization?.value[0]?.name,\r\n image: item.mainImage?.expandedValue?.url || item.listImage?.expandedValue?.url,\r\n hideImage: item.teaserHideImage?.value,\r\n backgroundColor: item.teaserBackgroundColor?.value || \"primary\",\r\n created: item.created,\r\n href: item.url,\r\n };\r\n }\r\n if (isBusinessStreamPage(item)) {\r\n return {\r\n title: item.name,\r\n tag: item.teaserHideTag?.value ? \"\" : item.organization?.value[0]?.name,\r\n image: item.mainImage?.expandedValue?.url || item.listImage?.expandedValue?.url,\r\n hideImage: item.teaserHideImage?.value,\r\n backgroundColor: item.teaserBackgroundColor?.value || \"primary\",\r\n created: item.created,\r\n href: item.url,\r\n };\r\n }\r\n if (isArticlePage(item)) {\r\n return {\r\n title: item.name,\r\n tag: item.teaserHideTag?.value ? \"\" : item.organization?.value[0]?.name,\r\n image: item.mainImage?.expandedValue?.url || item.listImage?.expandedValue?.url,\r\n hideImage: item.teaserHideImage?.value,\r\n backgroundColor: item.teaserBackgroundColor?.value || \"primary\",\r\n created: item.created,\r\n href: item.url,\r\n };\r\n }\r\n if (isPortNewsPage(item)) {\r\n return {\r\n title: item.name,\r\n tag: item.teaserHideTag?.value ? \"\" : item.organization?.value[0]?.name,\r\n image: item.mainImage?.expandedValue?.url || item.listImage?.expandedValue?.url,\r\n hideImage: item.teaserHideImage?.value,\r\n backgroundColor: item.teaserBackgroundColor?.value || \"primary\",\r\n created: item.created,\r\n href: item.url,\r\n };\r\n }\r\n return null;\r\n};\r\n","import React from \"react\";\r\nimport { TeaserCard } from \"../TeaserCard/TeaserCard\";\r\nimport { SectionHeading } from \"../SectionHeading/SectionHeading\";\r\nimport Button from \"../Button/Button\";\r\nimport { OptimizelyContentArea } from \"../../types/optimizely/base\";\r\nimport { MapToTeaserCardProps } from \"./TeaserListBlock.utlis\";\r\nimport Link from \"../Link/Link\";\r\n\r\ninterface TeaserListBlockProps {\r\n content: OptimizelyContentArea;\r\n allNewsLink: string;\r\n allNewsLabel: string;\r\n sectionLabel: string;\r\n navigateToArticleText?: string;\r\n}\r\n\r\nconst TeaserListBlock = ({\r\n content,\r\n allNewsLink,\r\n allNewsLabel,\r\n sectionLabel,\r\n navigateToArticleText,\r\n}: TeaserListBlockProps) => {\r\n const handleOnClick = () => window.open(allNewsLink, \"_self\");\r\n return (\r\n
    \r\n
    \r\n \r\n\r\n {allNewsLink && allNewsLabel && (\r\n \r\n )}\r\n
    \r\n\r\n
    \r\n {content?.expandedValue?.map((page) => {\r\n const cardProps = MapToTeaserCardProps(page);\r\n\r\n if (cardProps === null) {\r\n return null;\r\n }\r\n return ;\r\n })}\r\n
    \r\n\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default TeaserListBlock;","export const getHeaderClasses = (level: number, textClass: string = '') => {\r\n switch (level) {\r\n case 2: return `${textClass} text-3xl`;\r\n case 3: return `${textClass} text-2xl`;\r\n case 4: return `${textClass} text-xl`;\r\n case 5: return `${textClass} text-lg`;\r\n case 6: return `${textClass} text-base`;\r\n default: return '';\r\n }\r\n };","import React from \"react\";\r\nimport {\r\n getColorClasses,\r\n getTextColorClass,\r\n} from \"../../utils/getBackgroundColor\";\r\nimport { OptimizelyCallToActionButtonsContentArea, TextAndImageBlock as TextAndImageBlockType } from \"../../types/optimizely/blocks\";\r\nimport ArrowRight from \"../../assets/arrow-right.svg?react\";\r\nimport dompurify from \"dompurify\";\r\nimport { renderToString } from \"react-dom/server\";\r\nimport classNames from \"classnames\";\r\nimport { OptimizelyPropertyBoolean } from \"../../types/optimizely/base\";\r\nimport Link from \"../Link/Link\";\r\nimport { getButtonVariant } from \"../../utils/getButtonVariant\";\r\nimport { getHeaderClasses } from \"../../utils/getHeaderClasses\";\r\n\r\ninterface TextImageBlockProps extends Omit {\r\n rightClasses?: string;\r\n rightActions?: React.ReactNode[];\r\n justifyNormal?: boolean;\r\n additionalIntro?: string;\r\n showImageOnRight?: OptimizelyPropertyBoolean;\r\n showImageAsSecond?: boolean;\r\n overridesForTextClasses?: string;\r\n overridesForRightClasses?: string;\r\n sectionId?: { value: string, propertyDataType: string };\r\n isHero?: boolean;\r\n preTitle?: { value: string, propertyDataType: string };\r\n callToActionButtons?: OptimizelyCallToActionButtonsContentArea;\r\n}\r\n\r\nconst getAnchorClasses = (backgroundColor: string) =>\r\n `w-1/2 mt-7 py-3 bg-transparent ${backgroundColor} hover:${backgroundColor} items-center font-bold rounded flex`;\r\n\r\nconst localPurifier = dompurify();\r\n\r\nconst TextAndImageBlock = ({\r\n image,\r\n preTitle,\r\n title,\r\n description,\r\n backgroundColor: optiBgColor,\r\n rightClasses,\r\n rightActions,\r\n justifyNormal,\r\n additionalIntro,\r\n showImageOnRight,\r\n showImageAsSecond,\r\n overridesForTextClasses,\r\n overridesForRightClasses,\r\n sectionId,\r\n isHero,\r\n callToActionButtons,\r\n}: TextImageBlockProps) => {\r\n const backgroundColor = getColorClasses(optiBgColor?.value);\r\n const textClass = getTextColorClass(optiBgColor?.value);\r\n const justifyClass = justifyNormal ? \"\" : \"justify-end\";\r\n const showImageOnRightClass = showImageOnRight?.value ? \"md:flex-row-reverse\" : \"md:flex-row\";\r\n const showImageAsSecondClass = showImageAsSecond ? \"\" : \"flex-col\";\r\n\r\n localPurifier.addHook(\"beforeSanitizeAttributes\", (node) => {\r\n if (node.nodeName && node.nodeName === \"A\") {\r\n const hasSvgChild =\r\n Array.from(node.childNodes).filter((child) => child.nodeName === \"SPAN\")\r\n .length > 0;\r\n node.setAttribute(\r\n \"class\",\r\n `${getAnchorClasses(\r\n backgroundColor\r\n )} font-normal group hover:text-primaryBlue`\r\n );\r\n\r\n if (!hasSvgChild) {\r\n const icon = renderToString(\r\n \r\n \r\n \r\n );\r\n node.innerHTML += icon;\r\n }\r\n }\r\n\r\n if (node.nodeName && node.nodeName === \"P\") {\r\n node.setAttribute(\"class\", \"text-[18px] md:text-[20px]\");\r\n }\r\n\r\n if (node.nodeName?.match(/^H[2-6]$/)) {\r\n const level = parseInt(node.nodeName.charAt(1));\r\n node.setAttribute(\"class\", getHeaderClasses(level));\r\n }\r\n });\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n {additionalIntro ?

    {additionalIntro}

    : <>}\r\n {preTitle?.value ?

    {preTitle.value}

    : <>}\r\n {title?.value ? \r\n {title.value}\r\n : <>}\r\n \r\n {rightActions && (\r\n
    \r\n {rightActions}\r\n
    \r\n )}\r\n\r\n {callToActionButtons?.expandedValue?.length > 0 ? (\r\n
    \r\n {callToActionButtons.expandedValue.map((cta, idx) => (\r\n \r\n ))}\r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default TextAndImageBlock;\r\n","export default \"data:image/svg+xml,%3csvg%20width='85'%20height='67'%20viewBox='0%200%2085%2067'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M52.9168%2031.748C52.9168%2032.9579%2052.9168%2034.3086%2053.0146%2035.7938C52.6327%2034.484%2052.1714%2033.2011%2051.6336%2031.9529L48.6577%2025.02H44.0563L43.6591%2032.2089C43.6095%2033.447%2043.636%2034.6872%2043.7385%2035.9218C43.4103%2034.632%2043.0021%2033.3661%2042.5164%2032.1321L39.6077%2025.0456H34.7618L41.9908%2042.4385H47.1789L47.3744%2035.7361C47.4227%2034.3164%2047.3614%2032.8949%2047.1911%2031.4855C47.6738%2033.1371%2048.1566%2034.6863%2048.6638%2035.9154L51.2669%2042.4321H56.8277L57.5977%2025.0392H52.9963L52.9168%2031.748Z'%20fill='%2329588C'/%3e%3cpath%20d='M76.2102%2036.2867C68.9506%2030.7174%2066.2497%2020.4749%2069.5922%2017.4534C52.0177%206.30199%2044.5932%2015.3153%2031.5712%2013.4333C25.6499%2012.5755%2024.2383%207.73593%209.85975%208.84979L9.80476%208.80497C10.3792%208.28005%2010.813%206.82691%2010.7153%205.64263C10.5797%204.24276%209.95988%202.94324%208.97263%201.9892C7.98539%201.03517%206.699%200.492579%205.35614%200.463802C4.72342%200.454908%204.09606%200.586371%203.51529%200.849538C2.93452%201.1127%202.41347%201.50162%201.98638%201.99075C1.5593%202.47987%201.23584%203.05814%201.03726%203.68753C0.83868%204.31693%200.769473%204.98322%200.834187%205.64263C0.888794%206.66314%201.22024%207.64615%201.7896%208.47618C2.35895%209.30622%203.14258%209.94883%204.04844%2010.3285C4.31731%2010.4566%2016.3738%2062.6225%2017.7059%2066.7643H21.2135L5.77778%208.0304L5.69834%207.95997C5.13245%207.90133%204.60379%207.63785%204.20337%207.21487C3.80296%206.79189%203.55585%206.23591%203.50459%205.64263C3.47421%205.34566%203.50447%205.04531%203.59337%204.76153C3.68227%204.47774%203.82778%204.21702%204.02023%203.99665C4.21267%203.77628%204.44766%203.60131%204.70959%203.48335C4.97152%203.3654%205.2544%203.30715%205.53946%203.31248C6.14502%203.31943%206.72655%203.56162%207.17137%203.99213C7.61619%204.42263%207.89262%205.01079%207.94709%205.64263C7.98799%206.05782%207.91057%206.4764%207.7246%206.84554C7.53863%207.21467%207.25244%207.51783%206.90216%207.71673V7.83195L24.385%2066.7579H28.2836C26.096%2059.8891%2017.2415%2032.8299%2012.634%2018.2472L12.6829%2018.1832C16.4838%2023.983%2019.1359%2029.0658%2022.3929%2037.663C24.0244%2042.0352%2026.2488%2050.8885%2028.1614%2056.6819L28.9802%2055.7857C30.0702%2054.7788%2031.3562%2054.0322%2032.749%2053.5978C34.1419%2053.1634%2035.6082%2053.0515%2037.0464%2053.2699C39.8879%2053.4363%2039.6068%2055.5872%2044.856%2056.6755C51.3639%2058.0198%2055.2442%2053.8652%2062.3999%2053.033C74.1447%2051.6631%2084.6308%2056.6755%2084.8691%2056.6243C84.8935%2056.5475%2084.1541%2042.4065%2076.2102%2036.2867ZM61.2022%2049.8835C53.301%2051.0294%2051.3822%2053.9421%2046.1148%2053.5388C42.2161%2053.2443%2041.5378%2050.4148%2038.3114%2049.6978C35.3973%2049.0671%2032.366%2049.4632%2029.6891%2050.8245C23.7861%2024.047%2012.2368%2012.2234%2012.2368%2012.2234C22.014%2010.3029%2023.9389%2015.9619%2033.3311%2016.5764C45.5953%2017.383%2052.0116%2010.9303%2065.3575%2018.4072C63.0476%2023.5285%2068.2845%2033.6236%2072.4765%2036.658C80.2616%2042.2977%2081.3432%2052.156%2081.3187%2052.2265C81.1415%2052.2329%2071.9815%2048.3215%2061.2022%2049.8835Z'%20fill='%2329588C'/%3e%3c/svg%3e\"","export const isHeaderTag = (node: Node) => { \r\n return node.nodeName?.match(/^H[2-6]$/);\r\n}","import React from \"react\";\r\nimport {\r\n getColorClasses,\r\n} from \"../../utils/getBackgroundColor\";\r\nimport { TextBlock as TextBlockType } from \"../../types/optimizely/blocks\";\r\nimport classNames from \"classnames\";\r\nimport dompurify from \"dompurify\";\r\nimport { renderToString } from \"react-dom/server\";\r\nimport ArrowRight from \"../../assets/arrow-right.svg?react\";\r\nimport logo from \"../../assets/wilhelmsen_logo_flag.svg\";\r\nimport { isHeaderTag } from \"../../utils/isHeaderTag\";\r\nimport { getHeaderClasses } from \"../../utils/getHeaderClasses\";\r\n\r\ninterface TextBlockProps extends TextBlockType {}\r\n\r\nconst getAnchorClasses = (backgroundColor: string) =>\r\n `w-1/2 mt-7 py-3 bg-transparent ${backgroundColor} hover:${backgroundColor} items-center font-bold rounded flex`;\r\nconst localPurifier = dompurify();\r\n\r\nconst TextBlock = ({ text, backgroundColor: optiBgColor, isLogoVisible }: TextBlockProps) => {\r\n const backgroundColor = getColorClasses(optiBgColor?.value);\r\n\r\n localPurifier.addHook(\"beforeSanitizeAttributes\", (node) => {\r\n if (node.nodeName && node.nodeName === \"A\") {\r\n const hasSvgChild =\r\n Array.from(node.childNodes).filter((child) => child.nodeName === \"SPAN\")\r\n .length > 0;\r\n node.setAttribute(\r\n \"class\",\r\n `${getAnchorClasses(\r\n backgroundColor\r\n )} font-normal group hover:text-primaryBlue`\r\n );\r\n\r\n if (!hasSvgChild) {\r\n const icon = renderToString(\r\n \r\n \r\n \r\n );\r\n node.innerHTML += icon;\r\n }\r\n }\r\n\r\n if (isHeaderTag(node)) {\r\n const level = parseInt(node.nodeName.charAt(1));\r\n node.setAttribute(\"class\", getHeaderClasses(level));\r\n }\r\n });\r\n\r\n return (\r\n \r\n {isLogoVisible.value && \"logo\"}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default TextBlock;\r\n","import React from 'react';\r\nimport { TwoColumnsBlock } from \"../../types/optimizely/blocks\";\r\nimport { ContentArea } from '../ContentArea/ContentArea';\r\n\r\nconst TwoColumnsComponent: React.FC = ({\r\n leftColumnScrollableContent,\r\n rightColumnScrollableContent,\r\n leftColumn,\r\n rightColumn,\r\n}) => {\r\n return (\r\n
    \r\n
    \r\n {leftColumn && }\r\n
    \r\n
    \r\n {rightColumn && } \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default TwoColumnsComponent;\r\n","import React from \"react\";\r\nimport { getColorClasses } from \"../../utils/getBackgroundColor\";\r\nimport { SpacerBlock as SpacerBlockType } from \"../../types/optimizely/blocks\";\r\nimport classNames from \"classnames\";\r\n\r\ntype SpacerBlockProps = SpacerBlockType;\r\n\r\nconst SpacerBlock = ({ \r\n height, \r\n backgroundColor,\r\n hideOnMobile\r\n}: SpacerBlockProps) => {\r\n const bgColor = getColorClasses(backgroundColor?.value);\r\n \r\n if (!height?.value || height.value < 0) {\r\n console.warn('SpacerBlock: Invalid height value');\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default SpacerBlock;\r\n","export default \"data:image/svg+xml,%3csvg%20width='61'%20height='49'%20viewBox='0%200%2061%2049'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M37.725%2022.7278C37.725%2023.6037%2037.725%2024.5816%2037.7958%2025.6568C37.5193%2024.7086%2037.1853%2023.7798%2036.796%2022.8761L34.6415%2017.8569H31.3102L31.0226%2023.0615C30.9868%2023.9579%2031.006%2024.8557%2031.0801%2025.7495C30.8426%2024.8158%2030.547%2023.8993%2030.1953%2023.0059L28.0895%2017.8755H24.5813L29.8149%2030.4674H33.5709L33.7124%2025.6151C33.7474%2024.5873%2033.7031%2023.5581%2033.5797%2022.5378C33.9292%2023.7335%2034.2787%2024.855%2034.6459%2025.7449L36.5305%2030.4628H40.5564L41.1138%2017.8708H37.7825L37.725%2022.7278Z'%20fill='%23FFFFF9'/%3e%3cpath%20d='M54.5871%2026.0146C49.3314%2021.9826%2047.376%2014.5674%2049.7959%2012.3799C37.0725%204.30658%2031.6973%2010.832%2022.2698%209.46943C17.9829%208.84841%2016.961%205.34471%206.55128%206.15112L6.51147%206.11867C6.92732%205.73864%207.24143%204.68661%207.17065%203.82923C7.07253%202.81576%206.62377%201.87494%205.90903%201.18424C5.19429%200.493549%204.26299%200.10073%203.29079%200.0798961C2.83272%200.0734568%202.37853%200.168633%201.95807%200.359158C1.53761%200.549683%201.16038%200.831247%200.851185%201.18536C0.541987%201.53947%200.307812%201.95812%200.164045%202.41379C0.0202793%202.86945%20-0.0298246%203.35183%200.0170264%203.82923C0.0565601%204.56805%200.296518%205.27971%200.708716%205.88064C1.12091%206.48156%201.68824%206.94679%202.34406%207.22169C2.53871%207.31438%2011.2673%2045.0811%2012.2317%2048.0796H14.7711L3.59605%205.5579L3.53854%205.50691C3.12885%205.46446%202.74611%205.2737%202.45622%204.96748C2.16633%204.66126%201.98743%204.25874%201.95032%203.82923C1.92833%203.61422%201.95024%203.39678%202.0146%203.19133C2.07896%202.98588%202.18431%202.79712%202.32363%202.63758C2.46295%202.47804%202.63308%202.35136%202.82271%202.26597C3.01234%202.18057%203.21714%202.1384%203.42351%202.14226C3.86192%202.14729%204.28294%202.32263%204.60497%202.6343C4.92701%202.94598%205.12713%203.37179%205.16657%203.82923C5.19618%204.12981%205.14013%204.43285%205.00549%204.70009C4.87085%204.96734%204.66366%205.18681%204.41007%205.33081V5.41423L17.0671%2048.075H19.8897C18.3059%2043.1021%2011.8955%2023.512%208.55978%2012.9546L8.59517%2012.9082C11.3469%2017.1071%2013.2669%2020.7869%2015.6249%2027.0111C16.8061%2030.1765%2018.4165%2036.586%2019.8012%2040.7802L20.394%2040.1314C21.1831%2039.4024%2022.1141%2038.8619%2023.1225%2038.5474C24.1309%2038.2329%2025.1924%2038.1519%2026.2337%2038.31C28.2908%2038.4305%2028.0873%2039.9877%2031.8876%2040.7756C36.5991%2041.7488%2039.4084%2038.741%2044.5889%2038.1385C53.0918%2037.1468%2060.6834%2040.7756%2060.8559%2040.7385C60.8736%2040.6829%2060.3383%2030.4452%2054.5871%2026.0146ZM43.7218%2035.8584C38.0015%2036.688%2036.6124%2038.7966%2032.7989%2038.5047C29.9764%2038.2915%2029.4853%2036.243%2027.1495%2035.724C25.0398%2035.2673%2022.8451%2035.5541%2020.9072%2036.5396C16.6336%2017.1535%208.27222%208.5935%208.27222%208.5935C15.3506%207.20315%2016.7442%2011.3001%2023.5439%2011.745C32.4229%2012.3289%2037.0681%207.65733%2046.7301%2013.0704C45.0578%2016.7781%2048.8492%2024.0867%2051.8841%2026.2835C57.5202%2030.3665%2058.3033%2037.5036%2058.2856%2037.5546C58.1573%2037.5592%2051.5257%2034.7276%2043.7218%2035.8584Z'%20fill='%23FFFFF9'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='13'%20height='16'%20viewBox='0%200%2013%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M6.85243%201.75293L6.85243%2014.8039M6.85243%2014.8039L11.8108%209.84555M6.85243%2014.8039L1.89409%209.84555'%20stroke='%2329588C'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='19'%20height='16'%20viewBox='0%200%2019%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9.85238%201.43793L9.85238%2014.4889M9.85238%2014.4889L14.8107%209.53054M9.85238%2014.4889L4.89405%209.53054'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e\"","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport dompurify from 'dompurify';\r\nimport arrowDown from '../../../assets/arrowDown.svg';\r\nimport arrowDownWhite from '../../../assets/arrowDownWhite.svg';\r\nimport { getHeaderClasses } from '../../../utils/getHeaderClasses';\r\n\r\ninterface AccordionItemProps {\r\n index: number;\r\n item: AccordionItemData;\r\n isOpen: boolean;\r\n textClass: string;\r\n hasText: boolean;\r\n onToggle: (index: number) => void;\r\n openIndexes: number[];\r\n \r\n}\r\n\r\nexport interface AccordionItemData {\r\n title: { value: string };\r\n sectionDescription: { value: string };\r\n content: { value: string };\r\n}\r\n\r\nconst localPurifier = dompurify();\r\n\r\nexport const AccordionItem: React.FC = ({\r\n index,\r\n item,\r\n isOpen,\r\n textClass,\r\n hasText,\r\n onToggle,\r\n openIndexes,\r\n}) => {\r\n const getArrowProps = (isMobile: boolean) => {\r\n const baseProps = {\r\n className: `h-[18px] ${isMobile ? 'md:hidden' : 'hidden md:block'}`,\r\n src: textClass === 'text-white' ? arrowDownWhite : arrowDown,\r\n };\r\n \r\n if (!isOpen) {\r\n return {\r\n ...baseProps,\r\n style: { transform: isMobile && hasText ? 'rotate(270deg)' : 'none' },\r\n };\r\n }\r\n \r\n return {\r\n ...baseProps,\r\n style: { \r\n transform: isMobile && hasText ? 'none' : 'rotate(180deg)',\r\n },\r\n };\r\n };\r\n\r\n localPurifier.addHook(\"beforeSanitizeAttributes\", (node) => {\r\n if (node.nodeName?.match(/^H[2-6]$/)) {\r\n const level = parseInt(node.nodeName.charAt(1));\r\n node.setAttribute(\"class\", getHeaderClasses(level, textClass));\r\n }\r\n });\r\n\r\n return (\r\n
    0 && !openIndexes.includes(index) ? 'hidden md:block' : 'block'\r\n )}\r\n >\r\n onToggle(index)}\r\n aria-expanded={isOpen}\r\n aria-controls={`accordion-content-${index}`}\r\n >\r\n
    \r\n

    \r\n {item.title.value}\r\n

    \r\n

    \r\n {item.sectionDescription.value}\r\n

    \r\n
    \r\n \r\n {isOpen && hasText && Back}\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n};","import React, { useState, useMemo } from \"react\";\r\nimport { getColorClasses, getTextColorClass } from \"../../utils/getBackgroundColor\";\r\nimport { AccordionBlock as AccordionBlockType, OptimizelyLongString, OptimizelyXhtmlString } from \"../../types/optimizely/blocks\";\r\nimport classNames from \"classnames\";\r\nimport dompurify from \"dompurify\";\r\nimport { ColorPalette } from \"../../types/background\";\r\nimport { renderToString } from \"react-dom/server\";\r\nimport logo from \"../../assets/wilhelmsen_logo_flag.svg\";\r\nimport logoWhite from \"../../assets/wilhelmsen_logo_flag_white.svg\";\r\nimport ArrowRight from \"../../assets/arrow-right.svg?react\";\r\nimport { OptimizelyExpandedValue } from \"../../types/optimizely/expanded\";\r\nimport { AccordionItem } from './AccordionItem/AccordionItem';\r\n\r\ninterface AccordionItem extends OptimizelyExpandedValue {\r\n sectionDescription: { value: string };\r\n}\r\n\r\ninterface AccordionBlockProps extends AccordionBlockType {\r\n sections?: {\r\n expandedValue: AccordionItem;\r\n }\r\n backgroundColor?: { value: string };\r\n additionalColor?: { value: string };\r\n header?: { value: string };\r\n preHeading?: { value: string };\r\n overflowingContent?: { value: string };\r\n text?: OptimizelyXhtmlString;\r\n sectionId?: OptimizelyLongString;\r\n}\r\n\r\nconst getAnchorClasses = (backgroundColor: string) =>\r\n `w-1/2 mt-7 py-3 bg-transparent ${backgroundColor} hover:${backgroundColor} items-center font-bold rounded flex`;\r\nconst localPurifier = dompurify();\r\n\r\nconst AccordionBlock: React.FC = ({\r\n sections,\r\n backgroundColor: optiBgColor,\r\n additionalColor: optiAdditionalColor,\r\n header,\r\n preHeading,\r\n overflowingContent,\r\n text,\r\n name,\r\n sectionId\r\n}) => {\r\n const [openIndexes, setOpenIndexes] = useState([]);\r\n const backgroundColor = getColorClasses(optiBgColor?.value as ColorPalette);\r\n const textClass = getTextColorClass(optiBgColor?.value as ColorPalette);\r\n\r\n const additionalColor = getColorClasses(optiAdditionalColor?.value as ColorPalette);\r\n const additionalTextColor = getTextColorClass(optiAdditionalColor?.value as ColorPalette);\r\n\r\n const toggleAccordion = (index: number) => {\r\n setOpenIndexes(prevIndexes => \r\n prevIndexes.includes(index)\r\n ? prevIndexes.filter(i => i !== index)\r\n : [...prevIndexes, index]\r\n );\r\n };\r\n\r\n const transformedSections = useMemo(() => \r\n sections?.expandedValue && Array.isArray(sections.expandedValue)\r\n ? sections.expandedValue.map(section => ({\r\n title: { value: section.sectionHeader.value },\r\n sectionDescription: { value: section.sectionDescription.value },\r\n content: { value: section.sectionContent.expandedValue[0]?.text.value || '' }\r\n }))\r\n : [],\r\n [sections]\r\n );\r\n\r\n localPurifier.addHook(\"beforeSanitizeAttributes\", (node) => {\r\n if (node.nodeName && node.nodeName === \"A\") {\r\n const hasSvgChild =\r\n Array.from(node.childNodes).filter((child) => child.nodeName === \"SPAN\")\r\n .length > 0;\r\n node.setAttribute(\r\n \"class\",\r\n `${getAnchorClasses(\r\n backgroundColor\r\n )} font-normal group hover:text-primaryBlue`\r\n );\r\n\r\n if (!hasSvgChild) {\r\n const icon = renderToString(\r\n \r\n \r\n \r\n );\r\n node.innerHTML += icon;\r\n }\r\n }\r\n });\r\n\r\n return (\r\n
    \r\n {text?.value ? : null}\r\n
    \r\n { text?.value ? \"Wilhelmsen : null}\r\n { name && text?.value ?

    {name}:

    : null}\r\n { header?.value && text?.value ?

    {header?.value}

    : null}\r\n { header?.value && !text?.value ?

    {header?.value}

    : null}\r\n
    \r\n {transformedSections.map((item, index) => (\r\n \r\n ))}\r\n {text?.value && openIndexes.length > 0 ? (\r\n
    \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default AccordionBlock;","import React from \"react\";\r\nimport { OptimizelyLinkCollection } from \"../../types/optimizely/blocks\";\r\n\r\ninterface LinkListBlockProps {\r\n name: string;\r\n links: OptimizelyLinkCollection;\r\n}\r\n\r\nconst LinkListBlock = (props: LinkListBlockProps) => {\r\n const { name, links } = props;\r\n\r\n return (\r\n
    \r\n

    {name}

    \r\n {links.value.map(link => (\r\n

    {link.text}

    \r\n ))}\r\n
    \r\n );\r\n}\r\n\r\nexport default LinkListBlock;","import React from \"react\";\r\nimport { getColorClasses } from \"../../utils/getBackgroundColor\";\r\nimport { EditorialBlock as EditorialBlockType } from \"../../types/optimizely/blocks\";\r\nimport classNames from \"classnames\";\r\nimport dompurify from \"dompurify\";\r\nimport { renderToString } from \"react-dom/server\";\r\nimport ArrowRight from \"../../assets/arrow-right.svg?react\";\r\nimport logo from \"../../assets/wilhelmsen_logo_flag.svg\";\r\nimport { isHeaderTag } from \"../../utils/isHeaderTag\";\r\nimport { getHeaderClasses } from \"../../utils/getHeaderClasses\";\r\n\r\ninterface EditorialBlockProps extends EditorialBlockType {}\r\n\r\nconst getAnchorClasses = (backgroundColor: string) =>\r\n `w-1/2 bg-transparent ${backgroundColor} hover:${backgroundColor} items-center font-bold rounded flex`;\r\nconst localPurifier = dompurify();\r\n\r\nconst EditorialBlock = ({\r\n text,\r\n backgroundColor: optiBgColor,\r\n}: EditorialBlockProps) => {\r\n const backgroundColor = getColorClasses(optiBgColor?.value);\r\n\r\n localPurifier.addHook(\"beforeSanitizeAttributes\", (node) => {\r\n if (node.nodeName && node.nodeName === \"A\") {\r\n const hasSvgChild =\r\n Array.from(node.childNodes).filter((child) => child.nodeName === \"SPAN\")\r\n .length > 0;\r\n node.setAttribute(\r\n \"class\",\r\n `${getAnchorClasses(\r\n backgroundColor\r\n )} font-normal group hover:text-primaryBlue`\r\n );\r\n\r\n if (!hasSvgChild) {\r\n const icon = renderToString(\r\n \r\n \r\n \r\n );\r\n node.innerHTML += icon;\r\n }\r\n }\r\n\r\n if (isHeaderTag(node)) {\r\n const level = parseInt(node.nodeName.charAt(1));\r\n node.setAttribute(\"class\", getHeaderClasses(level));\r\n }\r\n });\r\n\r\n return (\r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default EditorialBlock;\r\n","import React from \"react\";\r\nimport { CTABlock as CTABlockType } from \"../../types/optimizely/blocks\";\r\nimport Button from \"../Button/Button\";\r\n\r\ninterface CTABlockProps extends CTABlockType {}\r\n\r\nconst CTABlock = ({\r\n heading,\r\n buttonLink,\r\n introduction,\r\n linkText,\r\n}: CTABlockProps) => {\r\n const handleClick = () => {\r\n window.open(buttonLink.value, \"_self\");\r\n };\r\n\r\n return (\r\n
    \r\n

    \r\n {heading.value}\r\n

    \r\n

    {introduction.value}

    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default CTABlock;\r\n","import { ContactBlock, CTABlock } from \"../types/optimizely/blocks\";\r\n\r\nexport const mapContactBlockToCTABlockProps = (\r\n contactBlock: ContactBlock\r\n): CTABlock => {\r\n return {\r\n contentType: [\"Block\", \"CallToActionBlock\"],\r\n heading: contactBlock.title,\r\n buttonLink: contactBlock.link,\r\n introduction: { value: \"\", propertyDataType: \"PropertyLongString\" },\r\n linkText: contactBlock.text,\r\n };\r\n};\r\n","import React from \"react\";\r\nimport CTADoubleBlock from \"../components/CTADoubleBlock/CTADoubleBlock\";\r\nimport EmployeesBlockWrapper from \"../components/EmployeesBlockWrapper/EmployeesBlockWrapper\";\r\nimport FullImageBlockWrapper from \"../components/FullImageBlockWrapper/FullImageBlockWrapper\";\r\nimport ProductSection from \"../components/ProductSection/ProductSection\";\r\nimport SocialMedia from \"../components/SocialMedia/SocialMedia\";\r\nimport StatisticsBlock from \"../components/StatisticsBlock/StatisticsBlock\";\r\nimport TeaserListBlock from \"../components/TeaserListBlock/TeaserListBlock\";\r\nimport TextAndImageBlock from \"../components/TextAndImageBlock/TextAndImageBlock\";\r\nimport TextBlock from \"../components/TextBlock/TextBlock\";\r\nimport TwoColumnsComponent from \"../components/TwoColumnsComponent/TwoColumnsComponent\";\r\nimport SpacerBlock from \"../components/SpacerBlock/SpacerBlock\";\r\nimport AccordionBlock from \"../components/AccordionBlock/AccordionBlock\";\r\nimport {\r\n isTeaserListBlock,\r\n isCTADoubleBlock,\r\n isTextAndImageBlock,\r\n isProductsBlock,\r\n isStatsNumbersBlock,\r\n isFullImageBlock,\r\n isEmployeeTeaserListBlock,\r\n isSocialMediaWallBlock,\r\n isTextBlock,\r\n isTwoColumnsBlock,\r\n isSpacerBlock,\r\n isAccordionBlock,\r\n isLinkListBlock,\r\n isEditorialBlock,\r\n isCTABlock,\r\n isContactBlock,\r\n} from \"../types/optimizely/blocks\";\r\nimport { OptimizelyExpandedValue } from \"../types/optimizely/expanded\";\r\nimport LinkListBlock from \"../components/LinkListBlock/LinkListBlock\";\r\nimport EditorialBlock from \"../components/EditorialBlock/EditorialBlock\";\r\nimport CTABlock from \"../components/CTABlock/CTABlock\";\r\nimport { mapContactBlockToCTABlockProps } from \"./mamDTOToProps\";\r\n\r\ninterface OverridesForClasses {\r\n [key: string]: {\r\n [key: string]: string;\r\n };\r\n}\r\n\r\nexport const mapContentToBlock = (\r\n content: OptimizelyExpandedValue,\r\n isFrontPage?: boolean,\r\n overridesForClasses?: OverridesForClasses\r\n) => {\r\n if (!content?.contentType) {\r\n return <>;\r\n }\r\n\r\n if (isTeaserListBlock(content)) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (isCTADoubleBlock(content)) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (isTextAndImageBlock(content)) {\r\n const overrides = overridesForClasses?.[content.contentType[1]];\r\n const overridesForRightClasses = overrides?.overridesForRightClasses;\r\n const overridesForTextClasses = overrides?.overridesForTextClasses;\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (isTextBlock(content)) {\r\n return ;\r\n }\r\n\r\n if (isEditorialBlock(content)) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (isSpacerBlock(content)) {\r\n return ;\r\n }\r\n\r\n if (isCTABlock(content)) {\r\n return ;\r\n }\r\n\r\n if (isContactBlock(content)) {\r\n const ctaProps = mapContactBlockToCTABlockProps(content);\r\n\r\n return ;\r\n }\r\n\r\n if (isTwoColumnsBlock(content)) {\r\n return ;\r\n }\r\n\r\n if (isAccordionBlock(content)) {\r\n return ;\r\n }\r\n\r\n if (isProductsBlock(content)) {\r\n return ;\r\n }\r\n\r\n if (isStatsNumbersBlock(content)) {\r\n return ;\r\n }\r\n\r\n if (isFullImageBlock(content)) {\r\n return ;\r\n }\r\n\r\n if (isEmployeeTeaserListBlock(content)) {\r\n return ;\r\n }\r\n\r\n if (isSocialMediaWallBlock(content)) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (isLinkListBlock(content)) {\r\n return ;\r\n }\r\n};\r\n","import React, { Suspense } from \"react\";\r\nimport { mapContentToBlock } from \"../../utils/mapContentToBlock\";\r\nimport { OptimizelyContentArea } from \"../../types/optimizely/base\";\r\n\r\ninterface ContentAreaProps {\r\n contentArea: OptimizelyContentArea;\r\n isFrontPage?: boolean;\r\n}\r\n\r\nexport const ContentArea: React.FC = ({ contentArea, isFrontPage }) => {\r\n if (!contentArea) {\r\n return null;\r\n }\r\n \r\n return (\r\n <>\r\n {contentArea.expandedValue?.map((module, index) => (\r\n \r\n {mapContentToBlock(module, isFrontPage)}\r\n \r\n ))}\r\n \r\n );\r\n};\r\n","import React, { FC } from \"react\";\r\nimport ArrowIcon from \"../../../../../prod/images/redesign/arrowRight.svg?react\";\r\nimport { SectionHeading } from \"../SectionHeading/SectionHeading\";\r\nimport classNames from \"classnames\";\r\n\r\ninterface Service {\r\n title: string;\r\n description: string;\r\n link: string;\r\n hideMegaMenuItemFromDesktop: boolean;\r\n}\r\n\r\nexport interface ServicesBlockProps {\r\n blockTitle: string;\r\n services: Service[];\r\n}\r\n\r\nexport const ServicesBlock: FC = ({\r\n services,\r\n blockTitle,\r\n}) => {\r\n return (\r\n
    \r\n \r\n\r\n
    \r\n {services.map((service, index) => (\r\n \r\n
    \r\n
    \r\n {service.title}\r\n
    \r\n \r\n
    \r\n\r\n \r\n \r\n \r\n
    \r\n ))}\r\n
    \r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport { useHeaderModel } from \"../Header/useHeaderModel\";\r\nimport { MegaMenuModel } from \"../../../../api/headerApi.types\";\r\nimport {\r\n ServicesBlock,\r\n ServicesBlockProps,\r\n} from \"../ServicesBlock/ServicesBlock\";\r\n\r\ninterface ServicesBlockWrapperProps {\r\n currentPageId: number;\r\n}\r\n\r\nconst mapMegaMenuToServicesBlockProps = (\r\n megaMenu: MegaMenuModel\r\n): ServicesBlockProps => {\r\n return {\r\n blockTitle: \"Our services and products\",\r\n services: megaMenu?.items?.map((item) => ({\r\n description: item.megaMenuIntroduction,\r\n link: item.linkUrl,\r\n title: item.linkTitle,\r\n hideMegaMenuItemFromDesktop: item.hideMegaMenuItemFromDesktop\r\n })),\r\n };\r\n};\r\n\r\nexport const ServicesBlockWrapper: React.FC = ({\r\n currentPageId,\r\n}) => {\r\n const { isLoading, data: headerModel } = useHeaderModel(\r\n currentPageId.toString()\r\n );\r\n\r\n if (isLoading) {\r\n return null;\r\n }\r\n if (!headerModel?.megaMenuModel) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport { FrontPageType } from \"../../types/optimizely/frontpage\";\r\nimport { HeroContainer } from \"../../components/HeroContainer/HeroContainer\";\r\nimport { ContentArea } from \"../../components/ContentArea/ContentArea\";\r\nimport { ServicesBlockWrapper } from \"../../components/ServicesBlockWrapper/ServicesBlockWrapper\";\r\n\r\ninterface FrontPageProps {\r\n content: FrontPageType;\r\n}\r\n\r\nexport const FrontPage: React.FC = ({ content }) => {\r\n if (!content) {\r\n return <>;\r\n }\r\n\r\n return (\r\n <>\r\n {/* Smelly fix\r\n Client wanted to uniform the whitespace on frontpage and other pages\r\n There are breadcrumbs on other pages, but not on front page */}\r\n
    \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import DOMPurify from \"dompurify\";\r\nimport React from \"react\";\r\nimport { renderToString } from \"react-dom/server\";\r\nimport ArrowRight from '../../assets/arrow-right.svg?react';\r\n\r\nexport interface MegaMenuPreviewItemProps {\r\n title: string,\r\n imageUrl: string,\r\n introductionText: string;\r\n text: string;\r\n id: number;\r\n}\r\n\r\nconst localPurifier = DOMPurify();\r\n\r\nexport const MegaMenuPreviewItem: React.FC = (props) => {\r\n\r\n localPurifier.addHook('beforeSanitizeAttributes', (node) => {\r\n if (node.nodeName && node.nodeName === 'P') {\r\n node.setAttribute('class', 'flex justify-between py-2 items-center border-t last-of-type:border-b border-primary group');\r\n const hasSvgChild = Array.from(node.childNodes).filter(child => child.nodeName === 'SPAN').length > 0;\r\n const hasLinkChildren = Array.from(node.childNodes).filter(child => child.nodeName === 'A').length > 0;\r\n\r\n if (!hasSvgChild && hasLinkChildren) {\r\n const icon = renderToString();\r\n node.innerHTML += icon;\r\n }\r\n }\r\n if (node.nodeName && node.nodeName === 'A') {\r\n node.setAttribute('class', 'text-primary');\r\n }\r\n });\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n { props.title }\r\n
    \r\n
    \r\n { props.introductionText }\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n","import React from \"react\";\r\nimport {\r\n MegaMenuPreviewItem,\r\n MegaMenuPreviewItemProps,\r\n} from \"../MegaMenuPreviewItem/MegaMenuPreviewItem\";\r\n\r\nexport interface MegaMenuPreviewBlockProps {\r\n items: MegaMenuPreviewItemProps[];\r\n}\r\n\r\nexport const MegaMenuPreviewBlock: React.FC = (\r\n props\r\n) => {\r\n return (\r\n
    \r\n {props.items.map((item) => (\r\n \r\n ))}\r\n
    \r\n );\r\n};\r\n","import React, { useState } from \"react\";\r\nimport SearchRedesignSvg from \"../../../../../prod/images/redesign/search.svg?react\";\r\nimport Button from \"../Button/Button\";\r\n\r\ninterface SearchBlockProps {\r\n blockTitle: string;\r\n searchPlaceholder: string;\r\n}\r\n\r\nexport const SearchBlock: React.FC = ({\r\n blockTitle,\r\n searchPlaceholder,\r\n}) => {\r\n const [searchTerm, setSearchTerm] = useState(\"\");\r\n\r\n const handleSubmit = (evt: React.FormEvent) => {\r\n evt.preventDefault();\r\n redirectToSerachPage();\r\n };\r\n\r\n const redirectToSerachPage = () => {\r\n const url = new URL(`${window.location.origin}/searchpage`);\r\n url.searchParams.append(\"term\", searchTerm);\r\n window.location.href = url.toString();\r\n };\r\n\r\n const handleInputChange = (event: React.ChangeEvent) => {\r\n setSearchTerm(event.target.value);\r\n };\r\n\r\n return (\r\n \r\n
    {blockTitle}
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n Search\r\n \r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport Button from \"../Button/Button\";\r\nimport { ButtonVariant } from \"../../types/button\";\r\n\r\ninterface ProductCatalogueIntroProps {\r\n introduction: string;\r\n buttonText: string;\r\n buttonLink: string;\r\n buttonVariant: ButtonVariant;\r\n}\r\n\r\nexport const ProductCatalogueIntro: React.FC = ({\r\n introduction,\r\n buttonText,\r\n buttonLink,\r\n buttonVariant,\r\n}) => {\r\n const handleClick = () => {\r\n window.open(buttonLink, \"_self\");\r\n };\r\n\r\n return (\r\n
    \r\n {introduction && (\r\n
    \r\n {introduction}\r\n
    \r\n )}\r\n {buttonText && (\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n","import React from \"react\";\r\nimport { BusinessStreamPageType } from \"../../types/optimizely/businessStreamPage\";\r\nimport { ContentArea } from \"../../components/ContentArea/ContentArea\";\r\nimport { useHeaderModel } from \"../../components/Header/useHeaderModel\";\r\nimport { MegaMenuPreviewBlock } from \"../../components/MegaMenuPreviewBlock/MegaMenuPreviewBlock\";\r\nimport { SearchBlock } from \"../../components/SearchBlock/SearchBlock\";\r\nimport { ProductCatalogueIntro } from \"../../components/ProductCatalogueIntro/ProductCatalogueIntro\";\r\nimport { getButtonVariant } from \"../../utils/getButtonVariant\";\r\nimport TextAndImageBlock from \"../../components/TextAndImageBlock/TextAndImageBlock\";\r\nimport { OptimizelyCallToActionButtonBlock } from \"../../types/optimizely/blocks\";\r\nimport Button from \"../../components/Button/Button\";\r\n\r\ninterface BusinessStreamPageProps {\r\n content?: BusinessStreamPageType;\r\n}\r\n\r\nexport const BusinessStreamPage: React.FC = ({\r\n content,\r\n}) => {\r\n if (!content) {\r\n return <>;\r\n }\r\n\r\n const { isLoading, error, data } = useHeaderModel(\r\n content.contentLink.id.toString()\r\n );\r\n\r\n if (isLoading) {\r\n return null;\r\n }\r\n\r\n const megaMenuSection = data.megaMenuModel.items.find(\r\n (item) => item.id == content.contentLink.id\r\n );\r\n return (\r\n <>\r\n {\r\n const optiButton = button as OptimizelyCallToActionButtonBlock;\r\n return (\r\n \r\n window.open(optiButton.buttonLink.value, \"_self\")\r\n }\r\n text={optiButton.linkText.value}\r\n key={optiButton.name}\r\n variant={getButtonVariant(optiButton.buttonType.value)}\r\n />\r\n );\r\n }\r\n )}\r\n />\r\n {content.showSearchBlock?.value && (\r\n \r\n )}\r\n {(content.productCatalogueIntro?.value ||\r\n content.productCatalogueCtaButton?.linkText?.value) && (\r\n \r\n )}\r\n {megaMenuSection && (\r\n ({\r\n id: eb.id,\r\n imageUrl: eb.image?.url,\r\n introductionText: eb.introduction,\r\n text: eb.text,\r\n title: eb.title,\r\n }))}\r\n />\r\n )}\r\n \r\n \r\n );\r\n};\r\n","import { OptimizelyExpandedValue } from \"../../types/optimizely/expanded\";\r\nimport { SectionPageType } from \"../../types/optimizely/sectionpage\";\r\n\r\nexport const sectionPageTypeName = \"SectionPage\";\r\n\r\nexport const isSectionPage = (content: OptimizelyExpandedValue): content is SectionPageType => {\r\n return content.contentType.includes(sectionPageTypeName);\r\n}","import React from \"react\";\r\nimport ArrowIcon from \"../../../../../prod/images/redesign/arrowRight.svg?react\";\r\nimport { SectionPageType } from \"../../types/optimizely/sectionpage\";\r\n\r\ninterface AnchorNavProps {\r\n content: SectionPageType;\r\n}\r\n\r\nexport const AnchorNav: React.FC = ({ content }) => {\r\n const linkButtons = content.linkButtons.expandedValue;\r\n\r\n if (!linkButtons?.length) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport { SectionPageType } from \"../../types/optimizely/sectionpage\";\r\nimport { HeroContainer } from \"../../components/HeroContainer/HeroContainer\";\r\nimport { ContentArea } from \"../../components/ContentArea/ContentArea\";\r\nimport { ServicesBlockWrapper } from \"../../components/ServicesBlockWrapper/ServicesBlockWrapper\";\r\nimport TextAndImageBlock from \"../../components/TextAndImageBlock/TextAndImageBlock\";\r\nimport { ArticlePageType } from \"../../types/optimizely/articlePage\";\r\nimport TextBlock from \"../../components/TextBlock/TextBlock\";\r\nimport { AnchorNav } from \"../../components/AnchorNav/AnchorNav\";\r\n\r\ninterface SectionPageProps {\r\n content: SectionPageType;\r\n}\r\n\r\nconst removeTags = (html: string) => {\r\n return html.replace(/<\\/?(p|h[1-6])>/gi, \"\");\r\n};\r\n\r\nconst HeroModule = ({ content }: SectionPageProps) => {\r\n if (content?.mainImage?.expandedValue?.url) {\r\n return (\r\n ${removeTags(content.heroText.value)}`,\r\n propertyDataType: \"PropertyXhtmlString\",\r\n contentLink: {\r\n guidValue: ''\r\n }\r\n }}\r\n title={{\r\n propertyDataType: \"PropertyLongString\",\r\n value: \"\",\r\n contentLink: null,\r\n }}\r\n image={content.mainImage}\r\n backgroundColor={{\r\n propertyDataType: \"PropertyLongString\",\r\n value: \"primaryTurquoise\",\r\n }}\r\n showImageOnRight={{\r\n propertyDataType: \"PropertyBoolean\",\r\n value: true,\r\n }}\r\n isHero={true}\r\n />\r\n )\r\n }\r\n return null;\r\n};\r\n\r\nconst TextModule = ({ content }: SectionPageProps) => {\r\n if (content.bottomIntroText.value) {\r\n return (\r\n ${content.bottomIntroText.value}
    `,\r\n propertyDataType: \"PropertyXhtmlString\",\r\n contentLink: {\r\n guidValue: ''\r\n }\r\n }}\r\n backgroundColor={{\r\n propertyDataType: \"PropertyLongString\",\r\n value: \"primary\",\r\n }}\r\n isLogoVisible={{\r\n propertyDataType: \"PropertyBoolean\",\r\n value: false,\r\n }}\r\n contentType={[\"Block\", \"TextBlock\"]}\r\n contentLink={{\r\n id: null,\r\n guidValue: '',\r\n url: ''\r\n }}\r\n name={content.name}\r\n created={content.created}\r\n />\r\n )\r\n }\r\n else {\r\n return null;\r\n }\r\n};\r\n\r\nexport const SectionPage: React.FC = ({ content }) => {\r\n if (!content) {\r\n return <>;\r\n }\r\n\r\n return (\r\n <>\r\n {/* Smelly fix\r\n Client wanted to uniform the whitespace on frontpage and other pages\r\n There are breadcrumbs on other pages, but not on front page */}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import { ArticlePageType } from \"../../types/optimizely/articlePage\";\r\nimport { OptimizelyExpandedValue } from \"../../types/optimizely/expanded\";\r\n\r\nexport const articlePageTypeName = [\"ArticlePage\", \"PressReleasePage\", \"NewsPage\"];\r\n\r\nexport const isArticlePage = (content: OptimizelyExpandedValue): content is ArticlePageType => {\r\n return content.contentType.some((type) => articlePageTypeName.includes(type));\r\n}","import axios, { AxiosRequestHeaders } from 'axios';\r\n\r\nconst baseUrl = '/api/episerver/v3.0/content/';\r\n\r\nexport const createContentDeliveryClient = ( config?: { headers: AxiosRequestHeaders } ) => {\r\n return axios.create({\r\n headers: {\r\n 'Accept-Language': 'en',\r\n ...config?.headers,\r\n },\r\n baseURL: baseUrl,\r\n ...config\r\n })\r\n}","import { createContentDeliveryClient } from './axiosClient';\r\n\r\nexport const getContent = async ( contentId ) => {\r\n const client = createContentDeliveryClient();\r\n const response = await client.get(encodeURIComponent(contentId));\r\n return response.data;\r\n};\r\n\r\nexport const getContentWithChildren = async ( contentId ) => {\r\n const client = createContentDeliveryClient();\r\n const response = await client.get(`${encodeURIComponent(contentId)}`, {\r\n params: {\r\n expand: '*'\r\n }\r\n });\r\n return response.data;\r\n}\r\n\r\nexport const getContentChildren = async ( contentId ) => {\r\n const client = createContentDeliveryClient();\r\n const response = await client.get(`${encodeURIComponent(contentId)}/children`, {\r\n params: {\r\n expand: '*'\r\n }\r\n });\r\n return response.data;\r\n}","import { QueryClientProvider, useQuery } from \"@tanstack/react-query\";\r\nimport { getContentWithChildren } from \"../../../../api/contentDeliveryApi\";\r\nimport { OptimizelyExpandedValue } from \"../../types/optimizely/expanded\";\r\nimport React from \"react\";\r\nimport { queryClient } from \"../../../../api/reactQueryClient\";\r\nimport { mapContentToBlock } from \"../../utils/mapContentToBlock\";\r\n\r\ninterface OverridesForClasses {\r\n [key: string]: {\r\n [key: string]: string;\r\n };\r\n}\r\n\r\nconst BlockRenderer = (props: { contentId: string, overridesForClasses?: OverridesForClasses }) => {\r\n const content = useQuery([`${props.contentId}`], () => getContentWithChildren(props.contentId));\r\n\r\n if (!content) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n {mapContentToBlock(content.data, false, props.overridesForClasses)}\r\n
    \r\n );\r\n}\r\n\r\nconst BlockRendererWrapper = (props: { contentId: string, overridesForClasses?: OverridesForClasses }) => {\r\n\r\n return \r\n \r\n \r\n};\r\n\r\nexport default BlockRendererWrapper;","import DOMPurify from \"dompurify\";\r\nimport React, { FC } from \"react\";\r\nimport { renderToString } from \"react-dom/server\";\r\nimport BlockRenderer from \"../BlockRenderer/BlockRenderer\";\r\nimport { createPortal } from \"react-dom\";\r\n\r\nconst localPurifier = DOMPurify();\r\n\r\nconst cleanCSSPropertyInRecurence = (\r\n node: HTMLElement,\r\n cssProperty: string\r\n) => {\r\n if (node.style?.[cssProperty]) {\r\n node.style.removeProperty(cssProperty);\r\n }\r\n node.childNodes.forEach((child: HTMLElement) => {\r\n cleanCSSPropertyInRecurence(child, cssProperty);\r\n });\r\n};\r\n\r\nconst checkDataAttributeExistenceInRecurence = (\r\n node: HTMLElement,\r\n dataAttribute: string\r\n) => {\r\n if (!node?.dataset) {\r\n return false;\r\n }\r\n\r\n if (node.dataset[dataAttribute]) {\r\n return true;\r\n }\r\n return node.childNodes\r\n ? Array.from(node.childNodes).some((child: HTMLElement) =>\r\n checkDataAttributeExistenceInRecurence(child, dataAttribute)\r\n )\r\n : false;\r\n};\r\n\r\nconst checkChildrenExsitenceInRecurence = (\r\n node: HTMLElement,\r\n nodeName: string\r\n) => {\r\n if (\r\n node.childNodes.length > 0 &&\r\n Array.from(node.childNodes).some(\r\n (child: HTMLElement) => child.nodeName === nodeName\r\n )\r\n ) {\r\n return true;\r\n }\r\n return node.childNodes\r\n ? Array.from(node.childNodes).some((child: HTMLElement) =>\r\n checkChildrenExsitenceInRecurence(child, nodeName)\r\n )\r\n : false;\r\n};\r\n\r\nconst checkClassExistenceInRecurence = (\r\n node: HTMLElement,\r\n className: string\r\n) => {\r\n if (node.classList?.contains(className)) {\r\n return true;\r\n }\r\n return node.childNodes\r\n ? Array.from(node.childNodes).some((child: HTMLElement) =>\r\n checkClassExistenceInRecurence(child, className)\r\n )\r\n : false;\r\n};\r\n\r\nlocalPurifier.addHook(\"beforeSanitizeAttributes\", (node: HTMLElement) => {\r\n if (node.style?.fontFamily) {\r\n node.style.removeProperty(\"font-family\");\r\n node.style.removeProperty(\"font-size\");\r\n node.style.removeProperty(\"background-color\");\r\n }\r\n\r\n if (node.nodeName === \"H2\") {\r\n node.setAttribute(\r\n \"class\",\r\n \"max-w-[836px] md:mx-auto mx-3 text-mob-article-h2 md:text-article-h2 mb-8 text-primary\"\r\n );\r\n }\r\n\r\n if (node.nodeName === \"H3\") {\r\n node.setAttribute(\r\n \"class\",\r\n \"max-w-[836px] md:mx-auto mx-3 text-mob-article-h3 md:text-article-h3 mb-8 text-primary\"\r\n );\r\n }\r\n\r\n if (node.nodeName === \"H4\") {\r\n node.setAttribute(\r\n \"class\",\r\n \"max-w-[836px] md:mx-auto mx-3 text-mob-article-h4 md:text-article-h4 mb-8 font-medium text-primary\"\r\n );\r\n }\r\n\r\n if (node.nodeName === \"H5\") {\r\n node.setAttribute(\r\n \"class\",\r\n \"max-w-[836px] md:mx-auto mx-3 text-lg mb-8 font-medium text-primary\"\r\n );\r\n }\r\n\r\n if (node.nodeName === \"H6\") {\r\n node.setAttribute(\r\n \"class\",\r\n \"max-w-[836px] md:mx-auto mx-3 text-base mb-8 font-medium text-primary\"\r\n );\r\n }\r\n\r\n if (node.nodeName === \"A\") {\r\n node.style.removeProperty(\"color\");\r\n node.setAttribute(\"class\", \"text-primaryBlue underline font-semibold\");\r\n }\r\n\r\n if (\r\n node.nodeName === \"IMG\" ||\r\n checkChildrenExsitenceInRecurence(node, \"IMG\")\r\n ) {\r\n if (node.style?.float) {\r\n node.classList.remove(\"md:mx-auto\");\r\n node.classList.remove(\"mx-3\");\r\n node.classList.remove(\"max-w-[964px]\");\r\n node.classList.remove(\"max-w-[836px]\");\r\n node.parentElement?.classList.remove(\"max-w-[964px]\");\r\n }\r\n\r\n if (node.style?.float === \"left\") {\r\n node.classList.add(\"mr-8\");\r\n node.classList.add(\"mb-8\");\r\n }\r\n\r\n if (node.style?.float === \"right\") {\r\n node.classList.add(\"ml-8\");\r\n node.classList.add(\"mb-8\");\r\n }\r\n\r\n if (\r\n node.classList.contains(\"wide-image\") ||\r\n checkClassExistenceInRecurence(node, \"wide-image\")\r\n ) {\r\n node.classList.add(\"w-full\");\r\n } else {\r\n node.classList.add(\"max-w-[964px]\");\r\n }\r\n }\r\n\r\n if (\r\n node.nodeName === \"IFRAME\" ||\r\n checkChildrenExsitenceInRecurence(node, \"IFRAME\")\r\n ) {\r\n node.classList?.add(\"w-full\");\r\n node.classList?.add(\"max-w-[1192px]\");\r\n }\r\n\r\n if (node.nodeName === \"BLOCKQUOTE\") {\r\n node.setAttribute(\r\n \"class\",\r\n \"max-w-[836px] md:mx-auto bg-[#EBF8EE] p-14 md:text-mob-article-subtitle text-mob-article-paragraph text-center\"\r\n );\r\n node.childNodes.forEach((child: HTMLElement) => {\r\n child.style?.removeProperty(\"text-align\");\r\n cleanCSSPropertyInRecurence(child, \"font-size\");\r\n });\r\n }\r\n\r\n if (node.nodeName === \"UL\" || node.nodeName === \"OL\") {\r\n node.setAttribute(\r\n \"class\",\r\n \"max-w-[836px] mx-3 md:mx-auto text-primary md:text-article-paragraph\"\r\n );\r\n }\r\n\r\n if (node.nodeName === \"UL\") {\r\n node.classList?.add(\"list-disc\");\r\n }\r\n\r\n if (node.nodeName === \"OL\") {\r\n node.classList?.add(\"list-decimal\");\r\n }\r\n\r\n if (node.nodeName === \"LI\") {\r\n node.classList?.add(\"marker:text-primary\");\r\n node.classList?.add(\"text-primary\");\r\n node.classList?.add(\"md:text-article-paragraph\");\r\n node.style.setProperty(\"display\", \"list-item\");\r\n node.style.setProperty(\"margin-inline-start\", \"16px\");\r\n }\r\n\r\n if (node.nodeName === \"EM\") {\r\n node.classList?.add(\"class\", \"italic\");\r\n }\r\n if (node.nodeName === \"P\") {\r\n node.classList?.add(\"md:text-article-paragraph\");\r\n node.classList?.add(\"text-primary\");\r\n node.classList?.add(\"mb-8\");\r\n }\r\n\r\n if (node.nodeName === \"TABLE\" || node.nodeName === \"TR\") {\r\n node.classList?.add(\"text-primary\");\r\n }\r\n\r\n if (node.classList?.contains(\"img-flow\")) {\r\n node.classList?.add(\"min-h-[670px]\");\r\n node.classList?.remove(\"img-flow\");\r\n }\r\n\r\n if (node.classList?.contains(\"quote\")) {\r\n node.setAttribute(\r\n \"class\",\r\n \"max-w-[836px] md:mx-auto bg-[#EBF8EE] p-14 md:text-mob-article-subtitle text-mob-article-paragraph text-center\"\r\n );\r\n node.childNodes.forEach((child: HTMLElement) => {\r\n child.style?.removeProperty(\"text-align\");\r\n cleanCSSPropertyInRecurence(child, \"font-size\");\r\n });\r\n }\r\n\r\n if (node.classList?.contains(\"vcard\")) {\r\n node.classList?.add(\"max-w-[836px]\");\r\n node.classList?.add(\"md:mx-auto\");\r\n node.classList?.add(\"p-0\");\r\n node.classList?.add(\"static\");\r\n node.classList?.remove(\"max-w-[964px]\");\r\n }\r\n\r\n if (node.classList?.contains(\"vcard__photo\")) {\r\n node.classList?.add(\"static\");\r\n node.classList?.add(\"float-right\");\r\n }\r\n});\r\n\r\nlocalPurifier.addHook(\"afterSanitizeElements\", (node: HTMLElement) => {\r\n node.style?.removeProperty(\"margin\");\r\n\r\n if (\r\n node.classList?.contains(\"wide-image\") ||\r\n checkClassExistenceInRecurence(node, \"wide-image\")\r\n ) {\r\n node.classList?.add(\"mx-auto\");\r\n } else if (\r\n !checkDataAttributeExistenceInRecurence(node, \"blockId\") &&\r\n !checkChildrenExsitenceInRecurence(node, \"IFRAME\") &&\r\n node.nodeName !== \"IFRAME\"\r\n ) {\r\n node.classList?.add(\"max-w-[836px]\");\r\n if (\r\n !node.classList?.contains(\"TextRun\") &&\r\n !node.classList?.contains(\"NormalTextRun\") &&\r\n !node.classList?.contains(\"Paragraph\") &&\r\n node.nodeName !== \"SPAN\"\r\n ) {\r\n node.classList?.add(\"mx-3\");\r\n node.classList?.add(\"md:mx-auto\");\r\n } else {\r\n node.classList?.add(\"mx-auto\");\r\n }\r\n } else {\r\n node.classList?.add(\"max-w-[1192px]\");\r\n node.classList?.add(\"mx-auto\");\r\n node.setAttribute(\"height\", \"670\");\r\n }\r\n});\r\n\r\nconst blockClassesOverrides = {\r\n TextAndImageBlock: {\r\n overridesForRightClasses:\r\n \"w-full lg:w-1/2 justify-end p-8 md:p-16 flex flex-col whitespace-pre-wrap lg:pr-8\",\r\n overridesForTextClasses: \"w-full\",\r\n },\r\n};\r\n\r\ninterface RTEBlockProps {\r\n content: string;\r\n}\r\n\r\nconst RTEBlock: FC = ({ content }) => {\r\n const htmlRef = React.useRef(null);\r\n const [nodes, setNodes] = React.useState([]);\r\n\r\n React.useEffect(() => {\r\n if (!htmlRef.current) {\r\n return;\r\n }\r\n if (htmlRef.current) {\r\n const nodes: HTMLElement[] = Array.from(\r\n htmlRef.current.querySelectorAll(\"[data-block-id]\")\r\n );\r\n setNodes(nodes);\r\n }\r\n }, [htmlRef.current]);\r\n\r\n return (\r\n <>\r\n \r\n {nodes.map((component) => {\r\n const contentId = component.getAttribute(\"data-block-id\");\r\n const jsxElement = (\r\n \r\n );\r\n\r\n return createPortal(jsxElement, component);\r\n })}\r\n \r\n );\r\n};\r\n\r\nexport default RTEBlock;\r\n","import React, { FC } from \"react\";\r\nimport { OptimizelyContactPerson } from \"../../types/optimizely/articlePage\";\r\nimport { OptimizelyContentArea } from \"../../types/optimizely/base\";\r\nimport { mapContentToBlock } from \"../../utils/mapContentToBlock\";\r\nimport { ContentArea } from \"../ContentArea/ContentArea\";\r\nimport { ContactBlock, isContactBlock } from \"../../types/optimizely/blocks\";\r\n\r\ninterface ContactPersonProps {\r\n primaryContactPersonsContentArea: OptimizelyContactPerson | ContactBlock;\r\n secondaryContactPersonsContentArea?: OptimizelyContactPerson;\r\n informationContentAreaRight: OptimizelyContentArea;\r\n}\r\n\r\nconst mapOptimizelyContactPersonToContactPerson = (\r\n contactPerson: OptimizelyContactPerson | ContactBlock,\r\n firstPerson?: boolean\r\n) => {\r\n if (!contactPerson) {\r\n return null;\r\n }\r\n\r\n if (isContactBlock(contactPerson)) {\r\n return (\r\n
    \r\n {mapContentToBlock(contactPerson)}\r\n
    \r\n );\r\n }\r\n\r\n if (contactPerson.contentType[1] !== \"PersonBlock\") {\r\n return null;\r\n }\r\n\r\n const {\r\n firstName: { value: firstName },\r\n lastName: { value: lastName },\r\n mobileNumber: { value: mobileNumber },\r\n mainImage: { expandedValue: mainImage },\r\n workTitle: { value: workTitle },\r\n email: { value: email },\r\n } = contactPerson;\r\n\r\n return (\r\n \r\n {mainImage?.url ? (\r\n \r\n ) : null}\r\n
    \r\n

    \r\n {firstName} {lastName}\r\n

    \r\n

    {workTitle}

    \r\n

    Tel: {mobileNumber}

    \r\n \r\n {email}\r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nconst ContactPerson: FC = (props: ContactPersonProps) => {\r\n const {\r\n primaryContactPersonsContentArea,\r\n secondaryContactPersonsContentArea,\r\n informationContentAreaRight,\r\n } = props;\r\n\r\n return (\r\n
    \r\n {/*
    */}\r\n *]:col-span-1 [&>*]:w-full [&>*:only-child]:col-span-2 [&>*:last-child:nth-child(odd)]:col-span-2 divide-neutralYellow`}\r\n >\r\n {primaryContactPersonsContentArea && (\r\n \r\n {mapOptimizelyContactPersonToContactPerson(\r\n primaryContactPersonsContentArea,\r\n true\r\n )}\r\n
    \r\n )}\r\n {secondaryContactPersonsContentArea?.expandedValue && (\r\n
    \r\n {mapOptimizelyContactPersonToContactPerson(\r\n secondaryContactPersonsContentArea\r\n )}\r\n
    \r\n )}\r\n\r\n {informationContentAreaRight?.expandedValue && (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default ContactPerson;\r\n","import { useState, useEffect } from 'react';\r\n\r\nconst useMobileView = (expectedWidth: number) => {\r\n const [screenWidth, setScreenWidth] = useState(window.innerWidth);\r\n\r\n useEffect(() => {\r\n const handleResize = () => {\r\n setScreenWidth(window.innerWidth);\r\n };\r\n\r\n window.addEventListener('resize', handleResize);\r\n\r\n // Clean up the event listener when the component unmounts\r\n return () => {\r\n window.removeEventListener('resize', handleResize);\r\n };\r\n }, []);\r\n\r\n return screenWidth < expectedWidth;\r\n};\r\n\r\nexport default useMobileView;","import React from \"react\";\r\nimport { ArticlePageType } from \"../../types/optimizely/articlePage\";\r\nimport RTEBlock from \"../../components/RTEBlock/RTEBlock\";\r\nimport ContactPerson from \"../../components/ContactPerson/ContactPerson\";\r\nimport { HeroBlock } from \"../../components/HeroBlock/HeroBlock\";\r\nimport TextAndImageBlock from \"../../components/TextAndImageBlock/TextAndImageBlock\";\r\nimport { ContentArea } from \"../../components/ContentArea/ContentArea\";\r\nimport useMobileView from \"../../utils/useMobileView\";\r\n\r\ninterface ArticlePageProps {\r\n content: ArticlePageType;\r\n}\r\n\r\nfunction formatDate(inputDate: string): string {\r\n const date = new Date(inputDate);\r\n\r\n // Options for formatting the date to \"04. Jun 2024\"\r\n const options: Intl.DateTimeFormatOptions = {\r\n day: '2-digit',\r\n month: 'short',\r\n year: 'numeric'\r\n };\r\n\r\n // Format the date using the specified locale and options\r\n return date.toLocaleDateString('en-GB', options).replace(/,/g, '');\r\n};\r\n\r\nconst HeroModule = ({ content }: ArticlePageProps) => {\r\n\r\n const isMobile = useMobileView(770)\r\n\r\n if (content?.mainImage?.expandedValue?.url) {\r\n return (\r\n )\r\n } else {\r\n return (\r\n
    \r\n

    {content.pageTypeDisplayName} {formatDate(content.startPublish)}

    \r\n

    {content.name}

    \r\n

    {content.mainIntro.value}

    \r\n
    \r\n )\r\n };\r\n};\r\n\r\n\r\nexport const ArticlePage: React.FC = ({ content }) => {\r\n if (!content) {\r\n return <>;\r\n }\r\n\r\n return (\r\n
    \r\n {/* Smelly fix\r\n Client wanted to uniform the whitespace on frontpage and other pages\r\n There are breadcrumbs on other pages, but not on front page */}\r\n
    \r\n\r\n \r\n \r\n \r\n {content.informationContentAreaBottom.value ?? content.informationContentAreaBottom.expandedValue \r\n ?
    \r\n : null}\r\n
    \r\n );\r\n};\r\n","import React from \"react\";\r\nimport { isFrontPage } from \"../FrontPage/frontPage.utils\";\r\nimport { OptimizelyExpandedValue } from \"../../types/optimizely/expanded\";\r\nimport { FrontPage } from \"../FrontPage/FrontPage\";\r\nimport { BusinessStreamPage } from \"../BusinessStreamPage/BusinessStreamPage\";\r\nimport { isBusinessStreamPage } from \"../BusinessStreamPage/businessStreamPage.utils\";\r\nimport { isSectionPage } from \"../SectionPage/sectionPage.utils\";\r\nimport { SectionPage } from \"../SectionPage/SectionPage\";\r\nimport { isArticlePage } from \"../ArticlePage/articlePage.utils\";\r\nimport { ArticlePage } from \"../ArticlePage/ArticlePage\";\r\n\r\ninterface OptimizelyPageProps {\r\n currentPage: OptimizelyExpandedValue;\r\n}\r\n\r\nexport const OptimizelyPage: React.FC = ({ currentPage }) => {\r\n if (!currentPage) {\r\n return null;\r\n }\r\n if (!currentPage.contentType) {\r\n return null;\r\n }\r\n\r\n if (isFrontPage(currentPage)) {\r\n return \r\n }\r\n\r\n if (isSectionPage(currentPage)) {\r\n return \r\n }\r\n \r\n if (isArticlePage(currentPage)) {\r\n return \r\n }\r\n\r\n if (isBusinessStreamPage(currentPage)) {\r\n return \r\n }\r\n}","import React, { useEffect } from \"react\";\r\nimport { OptimizelyPage } from \"./pages/OptimizelyPage/OptimizelyPage\";\r\nimport { getContentWithChildren } from \"../../api/contentDeliveryApi\";\r\nimport { OptimizelyExpandedValue } from \"./types/optimizely/expanded\";\r\nimport { useQuery } from \"@tanstack/react-query\";\r\n\r\nexport const Redesign = ({ pageId }: { pageId: string }) => {\r\n const content = useQuery(['content'], () => getContentWithChildren(pageId));\r\n \r\n if (!content) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n}","import React from 'react';\r\nimport { createRoot } from 'react-dom/client';\r\nimport { Redesign } from './Redesign';\r\nimport { QueryClientProvider } from '@tanstack/react-query';\r\nimport { queryClient } from '../../api/reactQueryClient';\r\n\r\nconst rootElement = document.getElementById('redesign-root');\r\n\r\nif (rootElement) {\r\n const app = createRoot(rootElement);\r\n const pageId = rootElement.dataset.currentPageId;\r\n\r\n if (!pageId) throw new Error('No page id found');\r\n app.render(\r\n \r\n \r\n \r\n );\r\n}"],"names":["frontPageTypeName","isFrontPage","content","getColorClasses","backgroundColor","getTextColorClass","getBackgroundColorClass","getFontColorClass","fontColor","SectionHeading","title","colorVariant","textColor","jsxs","FullImageBlock","backgroundImage","subTitle","actions","videoUrl","type","fullHeight","imageCaption","imageHeight","setImageHeight","React","imageRatio","setImageRatio","img","ratio","bgClass","fontClass","heading","classNames","heightClass","headingContainerClasses","actionsContainerClasses","jsx","Fragment","HeroBlock","props","ButtonVariants","isButtonVariant","variant","getButtonVariant","optiType","SvgArrowRight","React.createElement","getClassByVariant","typesWithIcons","Link","href","text","className","forceAddIcon","shouldUseIcon","classnames","ArrowRight","HeroContainer","_b","_a","_c","_d","_e","_f","_g","ctaButtons","_h","button","index","CTADoubleBlock","ctaLeft","ctaRight","backgroundImage1","leftTitle","leftDescription","leftButtonLink","backgroundImage2","rightTitle","rightDescription","rightButtonLink","leftBackground","leftTextColor","rightBackground","rightTextColor","containerClasses","blockClasses","SvgArrowLeft","usePrevNextButtons","emblaApi","onButtonClick","prevBtnDisabled","setPrevBtnDisabled","useState","nextBtnDisabled","setNextBtnDisabled","onPrevButtonClick","useCallback","onNextButtonClick","onSelect","useEffect","PrevButton","children","restProps","ArrowLeftIcon","NextButton","ArrowRightIcon","useDotButton","selectedIndex","setSelectedIndex","scrollSnaps","setScrollSnaps","onDotButtonClick","onInit","Carousel","options","emblaRef","useEmblaCarousel","ClassNames","fallbackImage","EmployeesBlock","employeeStories","sectionName","sectionSubName","buttonText","buttonLink","buttonVariant","employeeStory","getDepartment","organization","mapArticlePagesToEmployeeStories","articles","article","EmployeesBlockWrapper","module","_i","FullImageBlockWrapper","headerButton","hasHeaderButton","headerWords","firstWord","remainingWords","_k","_j","_m","_l","_n","_o","_p","_q","_r","_s","_u","_t","cta","idx","_w","_v","_y","_x","_z","_A","_B","_C","_D","_E","_G","_F","_H","_I","ProductCard","ProductCatalogue","allProductsButtonLabel","product","mapEpiProductToModel","ProductSection","SocialCard","imageUrl","postUrl","DOMPurify","getJuicerFeed","params","feedId","setData","mappedItems","axios","item","getJuicerFeedBySocialMediaSource","SocialMedia","source","setSource","items","setItems","post","Statistic","number","introduction","total","StatisticsBlock","buttonTitle","statsNumbersContentArea","contentArray","getButtonType","getHeadingSize","image","TeaserCard","tag","created","hideImage","linkText","showImage","buttonType","headingSize","backgroundClass","textClass","dayjs","Button","onClick","businessStreamPageTypeName","isBusinessStreamPage","isTeasedNewsPage","block","isArticlePageIndustryPerpectives","isSectionPage","isCenteredSectionPage","isSolutionPage","isSimpleEventPage","isCoursePage","isPortNewsPage","isTeaserListBlock","isCTADoubleBlock","isTextAndImageBlock","isTextBlock","isEditorialBlock","isCTABlock","isContactBlock","isSpacerBlock","isTwoColumnsBlock","isAccordionBlock","isStatsNumbersBlock","isLinkListBlock","isProductsBlock","isFullImageBlock","isArticlePage","isEmployeeTeaserListBlock","isSocialMediaWallBlock","MapToTeaserCardProps","_J","_K","_M","_L","_O","_N","_Q","_P","_R","_S","_T","_V","_U","_X","_W","_Z","_Y","__","_$","_aa","_ca","_ba","_ea","_da","_ga","_fa","_ha","_ia","_ja","_la","_ka","_na","_ma","_pa","_oa","_qa","_ra","_sa","_ua","_ta","_wa","_va","_ya","_xa","_za","_Aa","_Ba","_Da","_Ca","_Fa","_Ea","_Ha","_Ga","_Ia","_Ja","TeaserListBlock","allNewsLink","allNewsLabel","sectionLabel","navigateToArticleText","handleOnClick","page","cardProps","getHeaderClasses","level","getAnchorClasses","localPurifier","dompurify","TextAndImageBlock","preTitle","description","optiBgColor","rightClasses","rightActions","justifyNormal","additionalIntro","showImageOnRight","showImageAsSecond","overridesForTextClasses","overridesForRightClasses","sectionId","isHero","callToActionButtons","justifyClass","showImageOnRightClass","showImageAsSecondClass","node","hasSvgChild","child","icon","renderToString","logo","isHeaderTag","TextBlock","isLogoVisible","TwoColumnsComponent","leftColumnScrollableContent","rightColumnScrollableContent","leftColumn","rightColumn","ContentArea","SpacerBlock","height","hideOnMobile","bgColor","logoWhite","arrowDown","arrowDownWhite","AccordionItem","isOpen","hasText","onToggle","openIndexes","getArrowProps","isMobile","baseProps","AccordionBlock","sections","optiAdditionalColor","header","preHeading","overflowingContent","name","setOpenIndexes","additionalColor","additionalTextColor","toggleAccordion","prevIndexes","i","transformedSections","useMemo","section","LinkListBlock","links","link","EditorialBlock","CTABlock","handleClick","mapContactBlockToCTABlockProps","contactBlock","mapContentToBlock","overridesForClasses","overrides","ctaProps","contentArea","ServicesBlock","services","blockTitle","service","ArrowIcon","mapMegaMenuToServicesBlockProps","megaMenu","ServicesBlockWrapper","currentPageId","isLoading","headerModel","useHeaderModel","FrontPage","MegaMenuPreviewItem","hasLinkChildren","MegaMenuPreviewBlock","SearchBlock","searchPlaceholder","searchTerm","setSearchTerm","handleSubmit","evt","redirectToSerachPage","url","handleInputChange","event","SearchRedesignSvg","ProductCatalogueIntro","BusinessStreamPage","error","data","megaMenuSection","optiButton","eb","sectionPageTypeName","AnchorNav","linkButtons","removeTags","html","HeroModule","TextModule","SectionPage","articlePageTypeName","baseUrl","createContentDeliveryClient","config","getContentWithChildren","contentId","BlockRenderer","useQuery","BlockRendererWrapper","QueryClientProvider","queryClient","cleanCSSPropertyInRecurence","cssProperty","checkDataAttributeExistenceInRecurence","dataAttribute","checkChildrenExsitenceInRecurence","nodeName","checkClassExistenceInRecurence","blockClassesOverrides","RTEBlock","htmlRef","nodes","setNodes","component","jsxElement","createPortal","mapOptimizelyContactPersonToContactPerson","contactPerson","firstPerson","firstName","lastName","mobileNumber","mainImage","workTitle","email","ContactPerson","primaryContactPersonsContentArea","secondaryContactPersonsContentArea","informationContentAreaRight","useMobileView","expectedWidth","screenWidth","setScreenWidth","handleResize","formatDate","inputDate","date","ArticlePage","OptimizelyPage","currentPage","Redesign","pageId","rootElement","app","createRoot"],"mappings":"8MAGO,MAAMA,GAAoB,YAEpBC,GAAeC,GACnBA,EAAQ,YAAY,SAASF,EAAiB,ECF1CG,EAAmBC,GAAmC,CACjE,OAAQA,EAAiB,CACvB,IAAK,QACI,MAAA,wBACT,IAAK,cACI,MAAA,4BACT,IAAK,mBACI,MAAA,mCACT,IAAK,kBACI,MAAA,kCACT,IAAK,qBACI,MAAA,mCACT,IAAK,iBACI,MAAA,iCACT,IAAK,sBACI,MAAA,sCACT,IAAK,YACI,MAAA,0BACT,IAAK,YACI,MAAA,0BACT,IAAK,YACI,MAAA,0BACT,IAAK,YACI,MAAA,4BACT,IAAK,gBACI,MAAA,gCACT,IAAK,cACI,MAAA,8BACT,QACS,MAAA,uBACX,CACF,EAEaC,EAAqBD,GAAmC,CACnE,OAAQA,EAAiB,CACvB,IAAK,QACL,IAAK,mBACL,IAAK,kBACL,IAAK,iBACL,IAAK,sBACL,IAAK,YACL,IAAK,gBACI,MAAA,eACT,IAAK,YACL,IAAK,YACL,IAAK,YACL,QACS,MAAA,YACX,CACF,EAEaE,GAA2BF,GAAmC,CACzE,OAAQA,EAAiB,CACvB,IAAK,UACI,MAAA,aACT,IAAK,cACI,MAAA,iBACT,IAAK,mBACI,MAAA,sBACT,IAAK,kBACI,MAAA,qBACT,IAAK,sBACI,MAAA,yBACT,IAAK,qBACI,MAAA,wBACT,IAAK,iBACI,MAAA,oBACT,IAAK,YACI,MAAA,eACT,IAAK,YACI,MAAA,eACT,IAAK,YACI,MAAA,eACT,IAAK,YACI,MAAA,eACT,IAAK,gBACI,MAAA,mBACT,IAAK,QACL,QACS,MAAA,UACX,CACF,EAEaG,GAAqBC,GAA6B,CAC7D,OAAQA,EAAW,CACjB,IAAK,cACI,MAAA,mBACT,IAAK,mBACI,MAAA,wBACT,IAAK,kBACI,MAAA,uBACT,IAAK,sBACI,MAAA,2BACT,IAAK,qBACI,MAAA,0BACT,IAAK,iBACI,MAAA,sBACT,IAAK,QACI,MAAA,aACT,IAAK,YACI,MAAA,iBACT,IAAK,YACI,MAAA,iBACT,IAAK,YACI,MAAA,iBACT,IAAK,YACI,MAAA,iBACT,IAAK,gBACI,MAAA,qBACT,QACA,IAAK,UACI,MAAA,cACX,CACF,EC9GaC,EAA0C,CAAC,CACtD,MAAAC,EACA,aAAAC,CACF,IAAM,CAEE,MAAAC,EAAYD,IAAiB,QAAU,aAAe,eAI1D,OAAAE,EAAA,KAAC,MAAI,CAAA,UAAU,YACZ,SAAA,CAAA,SACA,KAAG,CAAA,UAAW,kCAAkCD,CAAS,GAAK,SAAMF,EAAA,CACvE,CAAA,CAAA,CAEJ,ECCaI,GAAiB,CAAC,CAC7B,gBAAAC,EACA,MAAAL,EACA,SAAAM,EACA,QAAAC,EACA,SAAAC,EACA,gBAAAd,EACA,UAAAI,EACA,KAAAW,EAAO,WACP,WAAAC,EACA,aAAAC,CACF,IAA2B,CACzB,KAAM,CAACC,EAAaC,CAAc,EAAIC,EAAM,SAAwB,IAAI,EAClE,CAACC,EAAYC,CAAa,EAAIF,EAAM,SAAwB,IAAI,EAEtEA,EAAM,UAAU,IAAM,CACpB,GAAIT,EAAiB,CACb,MAAAY,EAAM,IAAI,MAChBA,EAAI,IAAMZ,EACVY,EAAI,OAAS,IAAM,CACX,MAAAC,EAAQD,EAAI,MAAQA,EAAI,OAC9BJ,EAAeI,EAAI,MAAM,EACzBD,EAAcE,CAAK,CAAA,CAEvB,CAAA,EACC,CAACb,CAAe,CAAC,EAEd,MAAAc,EAAUvB,GAAwBF,CAAe,EACjD0B,EAAYvB,GAAkBC,CAAS,EACvCuB,EACJZ,IAAS,aACN,KAAG,CAAA,UAAWa,EAAW,iDAAkDF,CAAS,EAAI,SAAMpB,CAAA,CAAA,QAE9F,KAAG,CAAA,UAAWsB,EAAW,mCAAoCF,CAAS,EAAI,SAAMpB,CAAA,CAAA,EAE/EuB,EAAcb,EAAa,GAAMD,IAAS,OAAS,gBAAkB,gBACrEe,EACJf,IAAS,WAAa,CAAC,QAAS,cAAe,aAAa,EAAI,GAC5DgB,EACJhB,IAAS,WAAa,CAAC,iBAAkB,aAAa,EAAI,GAG1D,OAAAN,EAAA,KAAC,UAAA,CACC,UAAWmB,EACT,qCACAX,EAAe,kEAAoE,MACnFY,EACAJ,CACF,EACA,MAAO,CACL,OAAQR,GAAgBC,EAAc,GAAGA,CAAW,KAAO,OAC3D,UAAWA,EAAc,GAAGA,CAAW,KAAO,OAC9C,YAAa,CAACD,GAAgBI,EAAa,GAAGA,CAAU,GAAK,OAC7D,iBAAkB,YAClB,eAAgBL,EAAa,UAAY,QACzC,gBAAiB,OAAOL,CAAe,GACzC,EAEC,SAAA,CACCG,EAAAkB,EAAA,IAAC,QAAA,CACC,UAAU,sCACV,SAAQ,GACR,MAAK,GACL,KAAI,GACJ,QAAQ,OACR,GAAG,UACH,OAAO,4BAEP,SAACA,EAAA,IAAA,SAAA,CAAO,IAAKlB,EAAU,KAAK,YAAY,CAAA,CAAA,EAGxCkB,EAAA,IAAAC,EAAA,SAAA,EAAA,EAEJxB,EAAA,KAAC,MAAA,CACC,UAAWmB,EACT,mDACAF,CACF,EAEC,SAAA,CAAAX,IAAS,OACRiB,EAAAA,IAAC,IAAE,CAAA,UAAWJ,EAAW,QAASF,CAAS,EAAI,SAAAd,CAAS,CAAA,EAEvDoB,EAAAA,IAAA3B,EAAA,CAAe,aAAa,QAAQ,MAAOO,EAAU,EAIvDe,GACCK,EAAA,IAAC,MAAA,CACC,UAAWJ,EACX,0BACA,GAAGE,CACL,EAEG,SAAAH,CAAA,CACH,EAGDd,GACCmB,EAAA,IAAC,MAAA,CACC,UAAWJ,EACT,sFACF,GAAGG,CACL,EAEG,SAAAlB,CAAA,CACH,CAAA,CAAA,CAEJ,EACCI,GACGe,EAAA,IAAC,MAAI,CAAA,UAAU,2BAA2B,MAAO,CAC/C,IAAKhB,EAAa,QAAU,GAAGE,CAAW,KAC1C,KAAM,GAAA,EAEN,SAAAT,EAAAA,KAAC,IAAE,CAAA,UAAU,yBAAyB,SAAA,CAAAuB,EAAAA,IAAC,KAAE,SAAK,OAAA,CAAA,EAAI,IAAEf,CAAA,CAAA,CAAa,CACnE,CAAA,CAAA,CAAA,CAAA,CAIV,EC9HaiB,GAAaC,GAA0BH,MAACtB,IAAgB,GAAGyB,EAAO,KAAK,OAAO,ECb9EC,GAAiB,CAAC,OAAQ,YAAa,eAAgB,iBAAkB,OAAQ,eAAgB,uBAAwB,wBAAwB,EAIvJ,SAASC,GAAgBC,EAA2C,CAChE,OAAAF,GAAe,SAASE,CAAwB,CAC3D,CCJa,MAAAC,EAAqBC,GAC5BH,GAAgBG,CAAQ,EACnBA,EAEF,eCNHC,EAAiBN,GAA0BO,EAAAA,cAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAGP,CAAO,EAAkBO,EAAmB,cAAC,OAAQ,CAAE,EAAG,wFAAyF,OAAQ,eAAgB,YAAa,EAAG,cAAe,QAAS,eAAgB,OAAS,CAAA,CAAC,ECYxZC,GAAqBL,GAA2B,CACpD,OAAQA,EAAS,CACf,IAAK,OACI,MAAA,qIACT,IAAK,YACL,IAAK,eACI,MAAA,4IACT,IAAK,uBACI,MAAA,uJACT,IAAK,iBACI,MAAA,iGACT,IAAK,OACI,MAAA,uCACT,IAAK,yBACI,MAAA,sFACT,IAAK,eACI,MAAA,+JACT,QACS,MAAA,wBACX,CACF,EAEMM,GAAiB,CACrB,eACA,iBACA,uBACA,wBACF,EAEaC,EAA4B,CAAC,CACxC,QAAAP,EAAU,OACV,KAAAQ,EACA,KAAAC,EACA,UAAAC,EACA,aAAAC,EAAe,EACjB,IAAM,CACJ,MAAMC,EAAgBD,GAA8BL,GAAe,SAASN,CAAO,EAGjF,OAAA7B,EAAA,KAAC,IAAA,CACC,UAAW0C,EACTR,GAAkBL,CAAO,EACzB,4CACAU,CACF,EACA,KAAAF,EAEC,SAAA,CAAAC,EACAG,GACElB,EAAA,IAAA,OAAA,CAAK,UAAU,yDACd,SAAAA,MAACoB,GAAW,CAAA,EACd,CAAA,CAAA,CAAA,CAIR,EC9DaC,GAAgB,CAAC,CAAE,QAAAvD,KAA0C,qBAClE,MAAAa,GAAkB2C,GAAAC,EAAAzD,EAAQ,YAAR,YAAAyD,EAAmB,gBAAnB,YAAAD,EAAkC,IACpDhD,IAAQkD,EAAA1D,GAAA,YAAAA,EAAS,QAAT,YAAA0D,EAAgB,QAAS,GACjC5C,IAAW6C,EAAA3D,GAAA,YAAAA,EAAS,YAAT,YAAA2D,EAAoB,QAAS,GACxC3C,IAAW4C,EAAA5D,GAAA,YAAAA,EAAS,WAAT,YAAA4D,EAAmB,QAAS,GACvC1D,GAAkB2D,EAAA7D,EAAQ,uBAAR,YAAA6D,EAA8B,MAChDvD,GAAYwD,EAAA9D,EAAQ,iBAAR,YAAA8D,EAAwB,MACpCC,GAAaC,EAAAhE,EAAQ,sBAAR,YAAAgE,EAA6B,cAG9C,OAAA9B,EAAA,IAACE,GAAA,CACC,gBAAAvB,EACA,MAAAL,EACA,SAAAM,EACA,SAAAE,EACA,gBAAAd,EACA,UAAAI,EACA,QAASyD,GAAA,YAAAA,EAAY,IAAI,CAACE,EAAQC,IAChChC,EAAA,IAACa,EAAA,CAEC,QAASN,EAAiBwB,EAAO,WAAW,KAAK,EACjD,KAAMA,EAAO,SAAS,MACtB,KAAMA,EAAO,WAAW,KAAA,EAHnB,GAAGA,EAAO,QAAQ,GAAGC,CAAK,EAAA,EAKlC,CAAA,CAGP,ECtBMC,GAAiB,CAAC,CAAE,QAAAC,EAAS,SAAAC,KAA+B,aAC1D,KAAA,CACJ,MAAO,CAAE,MAAO,CAAE,IAAKC,CAAiB,EAAI,CAAA,CAAG,EAC/C,QAAS,CAAE,MAAOC,CAAU,EAC5B,aAAc,CAAE,MAAOC,CAAgB,EACvC,WAAY,CAAE,MAAOC,CAAe,CAClC,EAAAL,EAEE,CACJ,MAAO,CAAE,MAAO,CAAE,IAAKM,CAAiB,EAAI,CAAA,CAAG,EAC/C,QAAS,CAAE,MAAOC,CAAW,EAC7B,aAAc,CAAE,MAAOC,CAAiB,EACxC,WAAY,CAAE,MAAOC,CAAgB,CACnC,EAAAR,EAEES,EAAiB7E,GAAgBwD,EAAAW,GAAA,YAAAA,EAAS,kBAAT,YAAAX,EAA0B,KAAK,EAChEsB,EAAgB5E,GAAkBqD,EAAAY,GAAA,YAAAA,EAAS,kBAAT,YAAAZ,EAA0B,KAAK,EACjEwB,EAAkB/E,GAAgByD,EAAAW,GAAA,YAAAA,EAAU,kBAAV,YAAAX,EAA2B,KAAK,EAClEuB,EAAiB9E,GAAkBwD,EAAAU,GAAA,YAAAA,EAAU,kBAAV,YAAAV,EAA2B,KAAK,EAEnEuB,EAAmB,oDACnBC,EACJ,iIAEF,aACG,UAAQ,CAAA,UAAU,eACjB,SAACxE,EAAA,KAAA,MAAA,CAAI,UAAWuE,EACd,SAAA,CAAAvE,EAAA,KAAC,MAAA,CACC,UAAWmB,EACTqD,EACAL,EACA,iDACF,EACA,MACER,EACI,CACE,gBAAiB,OAAOA,CAAgB,IACxC,eAAgB,MAAA,EAElB,CAAC,EAGP,SAAA,CAAA3D,OAAC,MACC,CAAA,SAAA,CAAAuB,EAAAA,IAAC,KAAG,SAAgBsC,CAAA,CAAA,QACnB,KAAG,CAAA,UAAW1C,EAAW,0CAA2CiD,CAAa,EAC/E,SACHR,EAAA,CAAA,EACF,EACArC,EAAA,IAACa,EAAA,CACC,UAAU,sCACV,KAAK,YACL,QAAQ,uBACR,KAAM0B,CAAA,CACR,CAAA,CAAA,CACF,EACA9D,EAAA,KAAC,MAAA,CACC,UAAWmB,EACTqD,EACAH,EACA,gDACF,EACA,MACEN,EACI,CACE,gBAAiB,OAAOA,CAAgB,IACxC,eAAgB,MAAA,EAElB,CAAC,EAGP,SAAA,CAAA/D,OAAC,MACC,CAAA,SAAA,CAAAuB,EAAAA,IAAC,KAAG,SAAiB0C,CAAA,CAAA,QACpB,KAAG,CAAA,UAAW9C,EAAW,0CAA2CmD,CAAc,EAChF,SACHN,EAAA,CAAA,EACF,EACAzC,EAAA,IAACa,EAAA,CACC,UAAU,sCACV,KAAK,YACL,QAAQ,eACR,KAAM8B,CAAA,CACR,CAAA,CAAA,CACF,CAAA,CACF,CAAA,CACF,CAAA,CAEJ,EChGMlC,GAAiBN,GAA0BO,EAAAA,cAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAGP,CAAO,EAAkBO,EAAmB,cAAC,OAAQ,CAAE,EAAG,kFAAmF,OAAQ,UAAW,YAAa,EAAG,cAAe,QAAS,eAAgB,OAAS,CAAA,CAAC,ECA7YwC,GAAgB/C,GAA0BO,EAAAA,cAAoB,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAGP,CAAO,EAAkBO,EAAmB,cAAC,OAAQ,CAAE,EAAG,mGAAoG,OAAQ,UAAW,YAAa,EAAG,cAAe,QAAS,eAAgB,OAAS,CAAA,CAAC,ECgBtZyC,GAAqB,CAC9BC,EACAC,IACyB,CACzB,KAAM,CAACC,EAAiBC,CAAkB,EAAIC,WAAS,EAAI,EACrD,CAACC,EAAiBC,CAAkB,EAAIF,WAAS,EAAI,EAErDG,EAAoBC,EAAAA,YAAY,IAAM,CACnCR,IACLA,EAAS,WAAW,EAChBC,GAAeA,EAAcD,CAAQ,EAAA,EAC1C,CAACA,EAAUC,CAAa,CAAC,EAEtBQ,EAAoBD,EAAAA,YAAY,IAAM,CACnCR,IACLA,EAAS,WAAW,EAChBC,GAAeA,EAAcD,CAAQ,EAAA,EAC1C,CAACA,EAAUC,CAAa,CAAC,EAEtBS,EAAWF,cAAaR,GAAgC,CACvCG,EAAA,CAACH,EAAS,cAAA,CAAe,EACzBM,EAAA,CAACN,EAAS,cAAA,CAAe,CAChD,EAAG,CAAE,CAAA,EAELW,OAAAA,EAAAA,UAAU,IAAM,CACPX,IAELU,EAASV,CAAQ,EACRA,EAAA,GAAG,SAAUU,CAAQ,EACrBV,EAAA,GAAG,SAAUU,CAAQ,EAAA,EAC/B,CAACV,EAAUU,CAAQ,CAAC,EAEhB,CACH,gBAAAR,EACA,gBAAAG,EACA,kBAAAE,EACA,kBAAAE,CAAA,CAER,EASaG,GAAkC7D,GAAU,CACrD,KAAM,CAAE,SAAA8D,EAAU,GAAGC,CAAA,EAAc/D,EAG/B,OAAAH,EAAA,IAAC,SAAA,CACG,UAAU,4HACV,KAAK,SACJ,GAAGkE,EAEJ,SAAAlE,EAAAA,IAACmE,GAAc,CAAA,UAAU,qBAAsB,CAAA,CAAA,CAAA,CAG3D,EAEaC,GAAkCjE,GAAU,CACrD,KAAM,CAAE,SAAA8D,EAAU,GAAGC,CAAA,EAAc/D,EAG/B,OAAA1B,EAAA,KAAC,SAAA,CACG,UAAU,2HACV,KAAK,SACJ,GAAGyF,EAEJ,SAAA,CAAClE,EAAAA,IAAAqE,GAAA,CAAe,UAAU,qBAAsB,CAAA,EAC/CJ,CAAA,CAAA,CAAA,CAGb,EC5EaK,GAAe,CAC1BlB,EACAC,IACqB,CACrB,KAAM,CAACkB,EAAeC,CAAgB,EAAIhB,WAAS,CAAC,EAC9C,CAACiB,EAAaC,CAAc,EAAIlB,EAAA,SAAmB,CAAE,CAAA,EAErDmB,EAAmBf,EAAA,YACtB5B,GAAkB,CACZoB,IACLA,EAAS,SAASpB,CAAK,EACnBqB,GAAeA,EAAcD,CAAQ,EAC3C,EACA,CAACA,EAAUC,CAAa,CAAA,EAGpBuB,EAAShB,cAAaR,GAAgC,CAC3CA,EAAAA,EAAS,gBAAgB,CAC1C,EAAG,CAAE,CAAA,EAECU,EAAWF,cAAaR,GAAgC,CAC3CA,EAAAA,EAAS,oBAAoB,CAChD,EAAG,CAAE,CAAA,EAELW,OAAAA,EAAAA,UAAU,IAAM,CACTX,IAELwB,EAAOxB,CAAQ,EACfU,EAASV,CAAQ,EACRA,EAAA,GAAG,SAAUwB,CAAM,EACnBxB,EAAA,GAAG,SAAUU,CAAQ,EACrBV,EAAA,GAAG,SAAUU,CAAQ,EAC7B,EAAA,CAACV,EAAUwB,EAAQd,CAAQ,CAAC,EAExB,CACL,cAAAS,EACA,YAAAE,EACA,iBAAAE,CAAA,CAEJ,EClCME,GAAyB,CAAC,CAAE,QAAAC,EAAS,SAAAb,KAAe,CAClD,KAAA,CAACc,EAAU3B,CAAQ,EAAI4B,GAAiBF,EAAS,CAACG,GAAY,CAAA,CAAC,EAGnEX,GAAalB,CAAQ,EAEjB,KAAA,CACJ,gBAAAE,EACA,gBAAAG,EACA,kBAAAE,EACA,kBAAAE,CAAA,EACEV,GAAmBC,CAAQ,EAG7B,OAAA3E,EAAA,KAAC,MAAI,CAAA,UAAU,sBACX,SAAA,EAAC,CAAA6E,GAAmB,CAACG,IACpBzD,EAAAA,IAAA,MAAA,CAAI,UAAU,mBACb,SAAAvB,EAAA,KAAC,MAAI,CAAA,UAAU,8BACf,SAAA,CAAAuB,EAAA,IAACgE,GAAW,CAAA,QAASL,EAAmB,SAAUL,EAAiB,EACnEtD,EAAAA,IAAC,MAAI,CAAA,UAAU,+BAAgC,CAAA,EAC9CA,EAAA,IAAAoE,GAAA,CAAW,QAASP,EAAmB,SAAUJ,EAAiB,CAAA,CAAA,CACnE,CACF,CAAA,EAGFzD,EAAA,IAAC,MAAI,CAAA,UAAU,kBAAkB,IAAK+E,EACpC,SAAA/E,EAAAA,IAAC,MAAI,CAAA,UAAU,mCAAoC,SAAAiE,CAAA,CAAS,CAC9D,CAAA,CACF,CAAA,CAAA,CAEJ,EClDeiB,GAAA,GAAA,IAAA,IAAA,oBAAA,YAAA,GAAA,EAAA,KCyBFC,GAA0C,CAAC,CACtD,gBAAAC,EACA,YAAAC,EACA,eAAAC,EACA,WAAAC,EACA,WAAAC,EACA,cAAAC,EACA,YAAA5H,CACF,UACG,MACE,CAAA,SAAA,CAAC,CAACuH,EAAgB,QAEf3G,EAAA,KAAAwB,WAAA,CAAA,SAAA,CAACxB,EAAAA,KAAA,MAAA,CAAI,UAAU,uCACb,SAAA,CAACA,EAAAA,KAAA,KAAA,CAAG,UAAU,oEAAoE,SAAA,CAAAuB,MAAC,QAAM,SAAYqF,EAAA,MAAM,GAAG,EAAE,CAAC,EAAE,EAAO,IAAErF,EAAA,IAAA,OAAA,CAAK,UAAU,YAAa,SAAYqF,EAAA,MAAM,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,CAAE,CAAA,CAAA,EAAO,EACxMG,GACCxF,EAAA,IAACa,EAAA,CACD,UAAU,mDACV,QAAS,eACT,KAAM0E,EACN,KAAMC,CAAA,CACN,CAAA,EAEJ,EACF/G,EAAA,KAAC,MAAA,CACC,UAAWmB,EACX,kBACA/B,EAAc,iBAAmB,EACnC,EAKA,SAAA,CAACmC,EAAA,IAAA,KAAA,CAAG,UAAU,0DAA2D,SAAesF,EAAA,QACrFT,GACC,CAAA,SAAA7E,EAAA,IAAAC,EAAA,SAAA,CACG,WAAgB,IAAI,CAACyF,EAAe1D,IACnChC,EAAA,IAAC,MAAA,CACC,UAAU,2DAGV,SAAAvB,EAAA,KAAC,MAAI,CAAA,UAAU,sCACb,SAAA,CAACA,EAAAA,KAAA,MAAA,CAAI,UAAU,WACb,SAAA,CAACuB,EAAA,IAAA,MAAA,CAAI,UAAU,4EACb,SAAAA,EAAAA,IAAC,KAAE,UAAU,mCACV,SAAc0F,EAAA,UAAA,CACjB,CACF,CAAA,EAEA1F,EAAA,IAAC,MAAA,CACC,IAAK,WACL,UAAU,0DACV,KAAK0F,GAAA,YAAAA,EAAe,QAASR,EAAA,CAC/B,CAAA,EACF,EAEClF,EAAA,IAAA,KAAA,CAAG,UAAU,oDACX,WAAc,MACjB,EAEAA,EAAA,IAACa,EAAA,CACC,KAAK,YACL,KAAM6E,EAAc,KACpB,QAASD,GAAiB,iBAC1B,UAAU,0BACV,aAAc,EAAA,CAChB,CAAA,EACF,CAAA,EA5BKzD,CAAA,CA8BR,EACH,CACF,CAAA,EAGCuD,GACCvF,EAAA,IAACa,EAAA,CACC,KAAM0E,EACN,KAAMC,EACN,QAAQ,eACR,UAAU,oCAAA,CACV,CAAA,CAAA,CAEJ,CAAA,CAAA,CACF,CAEJ,CAAA,EC3GWG,GAAiBC,IACxBA,GAAA,YAAAA,EAAc,QAAS,6BAClB,mBAEFA,GAAA,YAAAA,EAAc,QAAQA,GAAA,YAAAA,EAAc,aCKvCC,GAAmCC,GACnC,CAACA,GAAYA,EAAS,QAAU,EACE,CAAA,EAI/BA,EAAS,IAAeC,GAAA,iBACtB,MAAA,CACL,OAAOxE,EAAAwE,EAAQ,YAAR,YAAAxE,EAAmB,MAC1B,MAAMD,EAAAyE,EAAQ,cAAR,YAAAzE,EAAqB,IAC3B,OAAOG,GAAAD,EAAAuE,EAAQ,YAAR,YAAAvE,EAAmB,gBAAnB,YAAAC,EAAkC,IACzC,WAAYkE,IAAchE,GAAAD,EAAAqE,EAAQ,eAAR,YAAArE,EAAsB,QAAtB,YAAAC,EAA8B,EAAE,CAAA,CAC5D,CACD,EAGGqE,GAA8D,CAAC,CAAE,OAAAC,EAAQ,YAAApI,KAAkB,uBAE7F,OAAAmC,EAAA,IAACmF,GAAA,CACC,YAAAtH,EACA,aAAa0D,EAAA0E,EAAO,QAAP,YAAA1E,EAAc,MAC3B,gBAAgBD,EAAA2E,EAAO,iBAAP,YAAA3E,EAAuB,MACvC,gBAAiBuE,IAAiCrE,EAAAyE,EAAO,UAAP,YAAAzE,EAAgB,aAAa,EAC/E,YAAYE,GAAAD,EAAAwE,EAAO,qBAAP,YAAAxE,EAA2B,aAA3B,YAAAC,EAAuC,MACnD,YAAYE,GAAAD,EAAAsE,EAAO,qBAAP,YAAAtE,EAA2B,WAA3B,YAAAC,EAAqC,MACjD,cAAerB,GAAiB2F,GAAApE,EAAAmE,EAAO,qBAAP,YAAAnE,EAA2B,aAA3B,YAAAoE,EAAuC,KAAK,CAAA,CAAA,CAGlF,EC9BMC,GAAwD,CAAC,CAC7D,OAAAF,CACF,IAAM,8EACJ,MAAMG,GAAe9E,GAAAC,EAAA0E,EAAO,4BAAP,YAAA1E,EAAkC,gBAAlC,YAAAD,EAAkD,GACjE+E,IAAkB5E,GAAAD,EAAAyE,EAAO,4BAAP,YAAAzE,EAAkC,gBAAlC,YAAAC,EAAiD,QAAS,EAE5E6E,IAAc3E,GAAAD,EAAAuE,EAAO,aAAP,YAAAvE,EAAmB,QAAnB,YAAAC,EAA0B,MAAM,OAAQ,GAEtD4E,EAAYD,EAAY,CAAC,EACzBE,EAAiBF,EAAY,MAAM,CAAC,EAAE,KAAK,GAAG,EAEpD,cACG,MAAI,CAAA,KAAI1E,EAAAqE,EAAO,YAAP,YAAArE,EAAkB,QAAS,GAClC,SAAA,CAACnD,EAAAA,KAAA,MAAA,CAAI,UAAU,mDACb,SAAA,CAACA,EAAAA,KAAA,KAAA,CAAG,UAAU,oDACZ,SAAA,CAAAuB,EAAAA,IAAC,QAAM,SAAUuG,CAAA,CAAA,EAAO,IAAEvG,EAAA,IAAA,OAAA,CAAK,UAAU,YAAa,SAAewG,EAAA,CAAA,EACvE,EACCH,GACCrG,EAAA,IAACa,EAAA,CACC,KAAMuF,EAAa,SAAS,MAC5B,MAAMtE,EAAAsE,EAAa,aAAb,YAAAtE,EAAyB,MAC/B,QAASvB,GAAiB2F,EAAAE,EAAa,aAAb,YAAAF,EAAyB,KAAK,EACxD,UAAU,iDAAA,CACZ,CAAA,EAEJ,EACAlG,EAAAA,IAAC,OAAI,WAAWyG,GAAAC,EAAAT,EAAO,cAAP,YAAAS,EAAoB,gBAApB,MAAAD,EAAmC,IAAM,kBAAoB,QAC3E,SAAAzG,EAAA,IAACtB,GAAA,CACC,iBAAiBiI,GAAAC,EAAAX,EAAO,QAAP,YAAAW,EAAc,gBAAd,YAAAD,EAA6B,IAC9C,iBAAiBE,EAAAZ,EAAO,kBAAP,YAAAY,EAAwB,MACzC,UAAUC,EAAAb,EAAO,WAAP,YAAAa,EAAiB,MAC3B,OAAOC,EAAAd,EAAO,QAAP,YAAAc,EAAc,MACrB,WAAWC,EAAAf,EAAO,YAAP,YAAAe,EAAkB,MAC7B,YAAYC,EAAAhB,EAAO,aAAP,YAAAgB,EAAmB,MAC/B,cAAcC,EAAAjB,EAAO,eAAP,YAAAiB,EAAqB,MACnC,SAASC,GAAAC,EAAAnB,EAAO,sBAAP,YAAAmB,EAA4B,gBAA5B,YAAAD,EAA2C,IAAI,CAACE,EAAKC,aAC5DtH,OAAAA,EAAA,IAACa,EAAA,CAEC,KAAMwG,EAAI,SAAS,MACnB,MAAM9F,EAAA8F,EAAI,aAAJ,YAAA9F,EAAgB,MACtB,QAAShB,GAAiBe,EAAA+F,EAAI,aAAJ,YAAA/F,EAAgB,KAAK,EAC/C,UAAU,UAAA,EAJLgG,CAAA,GAMR,CAAA,EAEL,EACAtH,EAAAA,IAAC,OAAI,WAAWuH,GAAAC,EAAAvB,EAAO,cAAP,YAAAuB,EAAoB,gBAApB,MAAAD,EAAmC,IAAM,kBAAoB,SAC3E,SAAAvH,EAAA,IAACtB,GAAA,CACC,iBAAiB+I,GAAAC,EAAAzB,EAAO,cAAP,YAAAyB,EAAoB,gBAApB,YAAAD,EAAmC,IACpD,iBAAiBE,EAAA1B,EAAO,kBAAP,YAAA0B,EAAwB,MACzC,UAAUC,EAAA3B,EAAO,WAAP,YAAA2B,EAAiB,MAC3B,OAAOC,EAAA5B,EAAO,QAAP,YAAA4B,EAAc,MACrB,WAAWC,EAAA7B,EAAO,YAAP,YAAA6B,EAAkB,MAC7B,YAAYC,EAAA9B,EAAO,aAAP,YAAA8B,EAAmB,MAC/B,cAAcC,EAAA/B,EAAO,eAAP,YAAA+B,EAAqB,MACnC,SAASC,IAAAC,EAAAjC,EAAO,sBAAP,YAAAiC,EAA4B,gBAA5B,YAAAD,GAA2C,IAAI,CAACZ,EAAKC,aAC5DtH,OAAAA,EAAA,IAACa,EAAA,CAEC,KAAMwG,EAAI,SAAS,MACnB,MAAM9F,EAAA8F,EAAI,aAAJ,YAAA9F,EAAgB,MACtB,QAAShB,GAAiBe,EAAA+F,EAAI,aAAJ,YAAA/F,EAAgB,KAAK,EAC/C,UAAU,UAAA,EAJLgG,CAAA,GAMR,CAAA,EAEL,EACCjB,GACCrG,EAAA,IAAC,MAAI,CAAA,UAAU,0BACb,SAAAA,EAAA,IAACa,EAAA,CACC,KAAMuF,EAAa,SAAS,MAC5B,MAAM+B,GAAA/B,EAAa,aAAb,YAAA+B,GAAyB,MAC/B,QAAS5H,GAAiB6H,GAAAhC,EAAa,aAAb,YAAAgC,GAAyB,KAAK,EACxD,UAAU,+BAAA,CAAA,EAEd,CAEJ,CAAA,CAAA,CAEJ,EChFaC,GAAqClI,GAAU,SAC1D,aACG,MAAI,CAAA,UAAU,6DACb,SAAC1B,EAAA,KAAA,MAAA,CAAI,UAAU,2CACb,SAAA,CAAAuB,EAAA,IAAC,MAAA,CACC,MAAKuB,EAAApB,EAAM,QAAN,YAAAoB,EAAa,OAAQ,oBAC1B,UAAU,2DACV,MAAKD,EAAAnB,EAAM,QAAN,YAAAmB,EAAa,OAAQ4D,EAAA,CAC5B,SAEC,MACC,CAAA,SAAA,CAAAlF,EAAA,IAAC,IAAE,CAAA,UAAU,uBAAuB,KAAMG,EAAM,IAC9C,SAACH,EAAA,IAAA,OAAA,CAAK,UAAU,wDACb,SAAMG,EAAA,IACT,CAAA,EACF,EAEA1B,EAAAA,KAAC,IAAE,CAAA,UAAU,UAAU,SAAA,CAAA,YAAU0B,EAAM,eAAA,EAAgB,CAAA,EACzD,CAAA,CACF,CAAA,CACF,CAAA,CAEJ,EChBamI,GAA+CnI,GAAU,CACpE,MAAMoI,EAAyB,eAK7B,OAAA9J,EAAA,KAAC,UAAQ,CAAA,UAAU,gCACjB,SAAA,CAACA,EAAAA,KAAA,MAAA,CAAI,UAAU,uBACb,SAAA,CAAAuB,EAAA,IAAC3B,EAAe,CAAA,aAAa,UAAU,MAAO8B,EAAM,aAAc,EAElEH,EAAA,IAACa,EAAA,CACC,KAAM0H,EACN,KAAK,sBACL,QAAQ,eACR,UAAU,gCAAA,CACZ,CAAA,EACF,EAECvI,EAAA,IAAA6E,GAAA,CACE,SAAM1E,EAAA,SAAS,IAAI,CAACqI,EAASxG,IAC5BhC,EAAAA,IAACqI,GAAyB,CAAA,GAAGG,CAAX,EAAAxG,CAAoB,CACvC,EACH,EAEAhC,EAAA,IAACa,EAAA,CACC,KAAM0H,EACN,KAAK,sBACL,QAAQ,YACR,UAAU,4DAAA,CACZ,CACF,CAAA,CAAA,CAEJ,ECpCME,GAAwBxC,GACrBA,EAAO,SAAS,cAAc,IAAKuC,IACjC,CACL,IAAKA,EAAQ,IACb,KAAMA,EAAQ,KACd,gBAAiBA,EAAQ,OAAO,MAChC,MAAO,CACL,GAAGA,EAAQ,OAAO,MAAM,CAAC,CAC3B,CAAA,EAEH,EAGGE,GAA0C,CAAC,CAAE,OAAAzC,CAAA,WACjDjG,OAAAA,EAAA,IAACsI,GAAA,CACC,SAAUG,GAAqBxC,CAAM,EACrC,eAAc1E,EAAA0E,EAAO,QAAP,YAAA1E,EAAc,QAAS,uBAAA,CACvC,GChBWoH,GAAkC,CAAC,CAC9C,SAAAC,EACA,QAAAC,EACA,KAAA9H,CACF,IAEItC,EAAA,KAAC,MAAI,CAAA,UAAU,kEACb,SAAA,CAACuB,EAAAA,IAAA,IAAA,CAAE,KAAM6I,EACP,SAAA7I,EAAA,IAAC,MAAA,CACC,IAAI,0BACJ,UAAU,gDACV,IAAK4I,GAAY1D,EAAA,CAAA,EAErB,EACAlF,EAAA,IAAC,IAAA,CACC,UAAU,gBACV,wBAAyB,CACvB,OAAQ8I,EAAU,SAAS/H,EAAM,CAC/B,aAAc,CAAE,KAAM,EAAM,CAAA,CAC7B,CACH,CAAA,CACD,CACH,CAAA,CAAA,ECREgI,GAAgB,MACpBC,EACAC,EACAC,IACG,CACC,GAAA,CAWF,MAAMC,GAVW,MAAMC,GAAM,IAC3B,mCAAmCH,CAAM,GACzC,CACE,OAAQ,CACN,IAAKD,EAAO,SACZ,KAAM,CACR,CACF,CAAA,GAG+C,KAAK,MAAM,MAAM,IAC/DK,IAAU,CACT,SAAUA,EAAK,MACf,QAASA,EAAK,SACd,KAAMA,EAAK,mBAAA,EACb,EAGFH,EAAQC,CAAW,CAAA,MACb,CACN,QAAQ,MAAM,4BAA4B,EAC1CD,EAAQ,CAAE,CAAA,CACZ,CACF,EASMI,GACJ,CACG,UAA8B,gBAC9B,SAA6B,iBAChC,EAEIC,GAAqCpJ,GAAU,CAC7C,KAAA,CAACqJ,EAAQC,CAAS,EAAIjG,EAAA,SAC1B,UAAA,EAEI,CAACkG,EAAOC,CAAQ,EAAInG,EAAA,SAA6B,CAAE,CAAA,EAEzDO,OAAAA,EAAAA,UAAU,IAAM,CACdgF,GACE5I,EAAM,WACNmJ,GAAiCE,CAAM,EACvCG,CAAA,CACF,EACC,CAACH,CAAM,CAAC,EAGT/K,EAAA,KAAC,UAAQ,CAAA,UAAU,uBACjB,SAAA,CAACuB,EAAAA,IAAA,MAAA,CAAI,UAAU,uBACb,SAAAA,EAAA,IAAC3B,EAAA,CACC,aAAa,UACb,MAAM,0BAAA,CAAA,EAOV,EAEC,CAAC,CAACqL,EAAM,QACP1J,EAAAA,IAAC6E,IACE,SAAM6E,EAAA,IAAI,CAACE,EAAM5H,IAChBhC,EAAA,IAAC2I,GAAA,CACC,QAASiB,EAAK,QACd,SAAUA,EAAK,SACf,KAAMA,EAAK,IAAA,EACN5H,CAER,CAAA,EACH,CAEJ,CAAA,CAAA,CAEJ,ECnGa6H,GAAsC,CAAC,CAClD,OAAAC,EACA,aAAAC,EACA,MAAAzL,EACA,UAAA0C,EACA,MAAAgJ,CACF,WAEK,KAAG,CAAA,UAAW7I,EAAW,uBAAwBH,CAAS,EACzD,SAAA,CAAChB,EAAA,IAAA,OAAA,CAAK,UAAU,qCAAsC,SAAM1B,EAAA,EAC5DG,EAAAA,KAAC,MAAI,CAAA,UAAU,oEACb,SAAA,CAAAuB,EAAA,IAAC,OAAK,CAAA,UAAWmB,EAAW,yCAA0C,CAAE,WAAY6I,EAAQ,EAAG,cAAeA,GAAS,CAAG,CAAA,EAAI,SAAOF,EAAA,EACpI9J,EAAA,IAAA,OAAA,CAAK,UAAU,mCAAoC,SAAa+J,EAAA,CAAA,EACnE,CACF,CAAA,CAAA,ECfEE,GAA6C,CAAC,CAAE,QAAAnM,KAAc,CAC5D,KAAA,CACJ,MAAAQ,EACA,WAAAkH,EACA,YAAA0E,EACA,wBAAAC,CACE,EAAArM,EAEEsM,GAAeD,GAAA,YAAAA,EAAyB,gBAAiB,GAE/D,aACG,MAAI,CAAA,UAAU,sBACb,SAAC1L,EAAA,KAAA,UAAA,CAAQ,UAAU,sDAChB,SAAA,CAAA,EAAQH,EAAM,OACb0B,EAAA,IAAC,OAAI,UAAU,SACb,SAACA,EAAAA,IAAA3B,EAAA,CAAe,MAAOC,EAAM,MAAO,aAAa,SAAU,CAAA,EAC7D,EAGF0B,EAAA,IAAC,KAAG,CAAA,UAAW,iCAAiCoK,EAAa,MAAM,iEAChE,SAAaA,EAAA,IAAI,CAACtM,EAASwJ,IAC1BtH,EAAA,IAAC6J,GAAA,CAEC,OAAQ/L,EAAQ,OAAO,MACvB,MAAOA,EAAQ,MAAM,MACrB,aAAcA,EAAQ,aAAa,MACnC,MAAOsM,EAAa,OACpB,UAAU,sHAAA,EALL9C,CAOR,CAAA,EACH,EAEC,EAAQ4C,EAAY,OACnBlK,EAAA,IAACa,EAAA,CACC,KAAMqJ,EAAY,MAClB,QAAQ,OACR,KAAM1E,EAAW,MACjB,UAAU,uBAAA,CACZ,CAAA,CAEJ,CAAA,CACF,CAAA,CAEJ,EChCM6E,GAAiBrM,GAAwD,CAC7E,OAAQA,EAAiB,CACvB,IAAK,QACL,IAAK,kBACL,IAAK,cACL,IAAK,iBACL,IAAK,sBACI,MAAA,iBACT,IAAK,UACL,IAAK,mBACL,IAAK,qBACI,MAAA,wBACX,CACF,EAEMsM,GAAiB,CAACvJ,EAAcwJ,IAC7BA,EACHxJ,EAAK,OAAS,IACZ,WACA,WACFA,EAAK,OAAS,GACd,WACA,WAGOyJ,GAAa,CAAC,CACzB,MAAAlM,EACA,gBAAAN,EACA,IAAAyM,EACA,QAAAC,EACA,UAAAC,EACA,KAAA7J,EACA,MAAAyJ,EACA,SAAAK,CACF,IAAuB,CACrB,MAAMC,EAAY,CAACF,GAAa,CAAC,CAACJ,EAC5BO,EAAaT,GAAcrM,CAAe,EAC1C+M,EAAcT,GAAehM,EAAOuM,CAAS,EAC7CG,EAAkBjN,EAAgBC,CAAe,EACjDiN,EAAYhN,EAAkBD,CAAe,EAGjD,OAAAS,EAAA,KAAC,MAAA,CACC,UAAWmB,EACT,uDACAoL,EACAH,EAAY,gBAAkB,eAChC,EAEA,SAAA,CAAApM,EAAA,KAAC,MAAI,CAAA,UAAWmB,EAAWoL,CAAe,EACvC,SAAA,CAAA,CAAC,CAACP,GACDzK,EAAA,IAAC,MAAI,CAAA,UAAU,eACb,SAACA,MAAA,MAAA,CAAI,UAAU,yDACb,eAAC,IAAE,CAAA,UAAU,uBAAwB,SAAAyK,CAAA,CAAI,CAC3C,CAAA,EACF,EAGFzK,EAAA,IAAC,KAAA,CACC,UAAWJ,EACT,mCACAqL,EACAF,EACAF,EAAY,OAAS,OACvB,EAEC,SAAAvM,CAAA,CACH,CAAA,EACF,SAEC,MACC,CAAA,SAAA,CAAC0B,EAAAA,IAAA,MAAA,CAAI,UAAU,qCACb,SAAAA,EAAA,IAACa,EAAA,CACC,KAAM+J,GAAYM,GAAMR,CAAO,EAAE,OAAO,eAAe,EACvD,QAASI,EACT,UAAWlL,EAAW,YAAaiL,EAAY,GAAK,QAAS,iBAAkB,eAAe,EAC9F,KAAA/J,CAAA,CAAA,EAEJ,EAEC+J,GACC7K,EAAA,IAAC,MAAA,CACC,IAAK1B,EACL,IAAKiM,EACL,UAAU,qCACV,MAAO,CAAE,OAAQ,OAAQ,CAAA,CAC3B,CAAA,EAEJ,CAAA,CAAA,CAAA,CAGN,ECpGM5J,GAAqBL,GAA2B,CACpD,OAAQA,EAAS,CACf,IAAK,OACI,MAAA,mJACT,IAAK,YACL,IAAK,eACI,MAAA,0JACT,IAAK,uBACI,MAAA,qKACT,IAAK,iBACI,MAAA,iGACT,IAAK,OACI,MAAA,qDACT,IAAK,yBACI,MAAA,oGACT,IAAK,eACI,MAAA,6KACT,QACS,MAAA,sCACX,CACF,EAEMM,GAAiB,CACrB,eACA,iBACA,uBACA,wBACF,EAEauK,GAAgC,CAAC,CAC5C,QAAA7K,EAAU,OACV,KAAAS,EACA,UAAAC,EACA,QAAAoK,CACF,IAAM,CACE,MAAAlK,EAAgBN,GAAe,SAASN,CAAO,EAGnD,OAAA7B,EAAA,KAAC,SAAA,CACC,UAAW0C,EACTR,GAAkBL,CAAO,EACzB,4CACAU,CACF,EACA,QAAAoK,EAEC,SAAA,CAAArK,EACAG,GACElB,EAAA,IAAA,OAAA,CAAK,UAAU,yDACd,SAAAA,MAACoB,GAAW,CAAA,EACd,CAAA,CAAA,CAAA,CAIR,EC/DaiK,GAA6B,qBAE7BC,GAAwBxN,GAC5BA,EAAQ,YAAY,SAASuN,EAA0B,ECqEnDE,GACXC,GAGEA,EAAM,YAAY,CAAC,IAAM,YACzBA,EAAM,YAAY,CAAC,IAAM,mBAiBhBC,GACXD,GAEOA,EAAM,YAAY,CAAC,IAAM,iCAerBE,GACXF,GAEOA,EAAM,YAAY,CAAC,IAAM,cAGrBG,GACXH,GAEOA,EAAM,YAAY,CAAC,IAAM,sBAGrBI,GACXJ,GAEOA,EAAM,YAAY,CAAC,IAAM,eAerBK,GACXL,GAEOA,EAAM,YAAY,CAAC,IAAM,kBAerBM,GACXN,GAEOA,EAAM,YAAY,CAAC,IAAM,aAerBO,GACXP,GAEOA,EAAM,YAAY,CAAC,IAAM,eAuErBQ,GACXR,GAEOA,EAAM,YAAY,CAAC,IAAM,kBASrBS,GACXT,GAEOA,EAAM,YAAY,CAAC,IAAM,0BAarBU,GACXV,GAEOA,EAAM,YAAY,CAAC,IAAM,oBAUrBW,GACXX,GAEOA,EAAM,YAAY,CAAC,IAAM,YAUrBY,GACXZ,GAEOA,EAAM,YAAY,CAAC,IAAM,iBAWrBa,GACXb,GAEOA,EAAM,YAAY,CAAC,IAAM,oBAUrBc,GACXd,GAEOA,EAAM,YAAY,CAAC,IAAM,eAUrBe,GACXf,GAEOA,EAAM,YAAY,CAAC,IAAM,cAWrBgB,GACXhB,GAEOA,EAAM,YAAY,CAAC,IAAM,kBAQrBiB,GACXjB,GAEOA,EAAM,YAAY,CAAC,IAAM,iBAGrBkB,GACXlB,GAEOA,EAAM,YAAY,CAAC,IAAM,oBASrBmB,GACXnB,GAEOA,EAAM,YAAY,CAAC,IAAM,gBAoCrBoB,GACXpB,GAEOA,EAAM,YAAY,CAAC,IAAM,gCAoDrBqB,GACXrB,GAEOA,EAAM,YAAY,CAAC,IAAM,iBA2BrBsB,GACXtB,GAEOA,EAAM,YAAY,CAAC,IAAM,cAiBrBuB,GACXvB,GAEOA,EAAM,YAAY,CAAC,IAAM,0BASrBwB,GACXxB,GAEOA,EAAM,YAAY,CAAC,IAAM,uBCxhBrByB,GACX5D,GACoB,0OAChB,OAAAkC,GAAiBlC,CAAI,EAChB,CACL,MAAOA,EAAK,KACZ,KAAK9H,EAAA8H,EAAK,gBAAL,MAAA9H,EAAoB,MAAQ,IAAKC,GAAAF,EAAA+H,EAAK,eAAL,YAAA/H,EAAmB,MAAM,KAAzB,YAAAE,EAA6B,KACnE,QAAOE,GAAAD,EAAA4H,EAAK,YAAL,YAAA5H,EAAgB,gBAAhB,YAAAC,EAA+B,QAAOE,GAAAD,EAAA0H,EAAK,YAAL,YAAA1H,EAAgB,gBAAhB,YAAAC,EAA+B,KAC5E,WAAWE,EAAAuH,EAAK,kBAAL,YAAAvH,EAAsB,MACjC,kBAAiBoE,EAAAmD,EAAK,wBAAL,YAAAnD,EAA4B,QAAS,UACtD,QAASmD,EAAK,QACd,KAAMA,EAAK,GAAA,EAGXoC,GAAiCpC,CAAI,EAChC,CACL,MAAOA,EAAK,KACZ,KAAK3C,EAAA2C,EAAK,gBAAL,MAAA3C,EAAoB,MAAQ,IAAKE,GAAAH,EAAA4C,EAAK,eAAL,YAAA5C,EAAmB,MAAM,KAAzB,YAAAG,EAA6B,KACnE,QAAOC,GAAAF,EAAA0C,EAAK,YAAL,YAAA1C,EAAgB,gBAAhB,YAAAE,EAA+B,QAAOE,GAAAD,EAAAuC,EAAK,YAAL,YAAAvC,EAAgB,gBAAhB,YAAAC,EAA+B,KAC5E,WAAWC,EAAAqC,EAAK,kBAAL,YAAArC,EAAsB,MACjC,kBAAiBC,EAAAoC,EAAK,wBAAL,YAAApC,EAA4B,QAAS,UACtD,QAASoC,EAAK,QACd,KAAMA,EAAK,GAAA,EAGXwC,GAAkBxC,CAAI,EACjB,CACL,MAAOA,EAAK,KACZ,KAAKnC,EAAAmC,EAAK,gBAAL,MAAAnC,EAAoB,MAAQ,IAAKC,GAAAC,EAAAiC,EAAK,eAAL,YAAAjC,EAAmB,MAAM,KAAzB,YAAAD,EAA6B,KACnE,QAAOI,GAAAC,EAAA6B,EAAK,YAAL,YAAA7B,EAAgB,gBAAhB,YAAAD,EAA+B,QAAOE,GAAAC,EAAA2B,EAAK,YAAL,YAAA3B,EAAgB,gBAAhB,YAAAD,EAA+B,KAC5E,WAAWE,EAAA0B,EAAK,kBAAL,YAAA1B,EAAsB,MACjC,kBAAiBC,EAAAyB,EAAK,wBAAL,YAAAzB,EAA4B,QAAS,UACtD,QAASyB,EAAK,QACd,KAAMA,EAAK,GAAA,EAGXqC,GAAcrC,CAAI,EACb,CACL,MAAOA,EAAK,KACZ,KAAKxB,EAAAwB,EAAK,gBAAL,MAAAxB,EAAoB,MAAQ,IAAKE,GAAAD,EAAAuB,EAAK,eAAL,YAAAvB,EAAmB,MAAM,KAAzB,YAAAC,EAA6B,KACnE,QAAOG,GAAAF,EAAAqB,EAAK,YAAL,YAAArB,EAAgB,gBAAhB,YAAAE,EAA+B,QAAOC,GAAAF,EAAAoB,EAAK,YAAL,YAAApB,EAAgB,gBAAhB,YAAAE,EAA+B,KAC5E,WAAWC,EAAAiB,EAAK,kBAAL,YAAAjB,EAAsB,MACjC,kBAAiB8E,EAAA7D,EAAK,wBAAL,YAAA6D,EAA4B,QAAS,UACtD,QAAS7D,EAAK,QACd,KAAMA,EAAK,GAAA,EAGXsC,GAAsBtC,CAAI,EACrB,CACL,MAAOA,EAAK,KACZ,KAAK8D,EAAA9D,EAAK,gBAAL,MAAA8D,EAAoB,MAAQ,IAAKC,IAAAC,GAAAhE,EAAK,eAAL,YAAAgE,GAAmB,MAAM,KAAzB,YAAAD,GAA6B,KACnE,QAAOE,GAAAC,GAAAlE,EAAK,YAAL,YAAAkE,GAAgB,gBAAhB,YAAAD,EAA+B,QAAOE,GAAAC,EAAApE,EAAK,YAAL,YAAAoE,EAAgB,gBAAhB,YAAAD,EAA+B,KAC5E,WAAWE,EAAArE,EAAK,kBAAL,YAAAqE,EAAsB,MACjC,kBAAiBC,GAAAtE,EAAK,wBAAL,YAAAsE,GAA4B,QAAS,UACtD,QAAStE,EAAK,QACd,KAAMA,EAAK,GAAA,EAGXuC,GAAevC,CAAI,EACd,CACL,MAAOA,EAAK,KACZ,KAAKuE,GAAAvE,EAAK,gBAAL,MAAAuE,GAAoB,MAAQ,IAAKC,IAAAC,GAAAzE,EAAK,eAAL,YAAAyE,GAAmB,MAAM,KAAzB,YAAAD,GAA6B,KACnE,QAAOE,IAAAC,GAAA3E,EAAK,YAAL,YAAA2E,GAAgB,gBAAhB,YAAAD,GAA+B,QAAOE,IAAAC,GAAA7E,EAAK,YAAL,YAAA6E,GAAgB,gBAAhB,YAAAD,GAA+B,KAC5E,WAAWE,GAAA9E,EAAK,kBAAL,YAAA8E,GAAsB,MACjC,kBAAiBC,GAAA/E,EAAK,wBAAL,YAAA+E,GAA4B,QAAS,UACtD,QAAS/E,EAAK,QACd,KAAMA,EAAK,GAAA,EAGXyC,GAAazC,CAAI,EACZ,CACL,MAAOA,EAAK,KACZ,KAAKgF,GAAAhF,EAAK,gBAAL,MAAAgF,GAAoB,MAAQ,IAAKC,IAAAC,GAAAlF,EAAK,eAAL,YAAAkF,GAAmB,MAAM,KAAzB,YAAAD,GAA6B,KACnE,QAAOE,IAAAC,GAAApF,EAAK,YAAL,YAAAoF,GAAgB,gBAAhB,YAAAD,GAA+B,QAAOE,IAAAC,GAAAtF,EAAK,YAAL,YAAAsF,GAAgB,gBAAhB,YAAAD,GAA+B,KAC5E,WAAWE,GAAAvF,EAAK,kBAAL,YAAAuF,GAAsB,MACjC,kBAAiBC,GAAAxF,EAAK,wBAAL,YAAAwF,GAA4B,QAAS,UACtD,QAASxF,EAAK,QACd,KAAMA,EAAK,GAAA,EAGXiC,GAAqBjC,CAAI,EACpB,CACL,MAAOA,EAAK,KACZ,KAAKyF,GAAAzF,EAAK,gBAAL,MAAAyF,GAAoB,MAAQ,IAAKC,IAAAC,GAAA3F,EAAK,eAAL,YAAA2F,GAAmB,MAAM,KAAzB,YAAAD,GAA6B,KACnE,QAAOE,IAAAC,GAAA7F,EAAK,YAAL,YAAA6F,GAAgB,gBAAhB,YAAAD,GAA+B,QAAOE,IAAAC,GAAA/F,EAAK,YAAL,YAAA+F,GAAgB,gBAAhB,YAAAD,GAA+B,KAC5E,WAAWE,GAAAhG,EAAK,kBAAL,YAAAgG,GAAsB,MACjC,kBAAiBC,GAAAjG,EAAK,wBAAL,YAAAiG,GAA4B,QAAS,UACtD,QAASjG,EAAK,QACd,KAAMA,EAAK,GAAA,EAGXyD,GAAczD,CAAI,EACb,CACL,MAAOA,EAAK,KACZ,KAAKkG,GAAAlG,EAAK,gBAAL,MAAAkG,GAAoB,MAAQ,IAAKC,IAAAC,GAAApG,EAAK,eAAL,YAAAoG,GAAmB,MAAM,KAAzB,YAAAD,GAA6B,KACnE,QAAOE,IAAAC,GAAAtG,EAAK,YAAL,YAAAsG,GAAgB,gBAAhB,YAAAD,GAA+B,QAAOE,IAAAC,GAAAxG,EAAK,YAAL,YAAAwG,GAAgB,gBAAhB,YAAAD,GAA+B,KAC5E,WAAWE,GAAAzG,EAAK,kBAAL,YAAAyG,GAAsB,MACjC,kBAAiBC,GAAA1G,EAAK,wBAAL,YAAA0G,GAA4B,QAAS,UACtD,QAAS1G,EAAK,QACd,KAAMA,EAAK,GAAA,EAGX0C,GAAe1C,CAAI,EACd,CACL,MAAOA,EAAK,KACZ,KAAK2G,GAAA3G,EAAK,gBAAL,MAAA2G,GAAoB,MAAQ,IAAKC,IAAAC,GAAA7G,EAAK,eAAL,YAAA6G,GAAmB,MAAM,KAAzB,YAAAD,GAA6B,KACnE,QAAOE,IAAAC,GAAA/G,EAAK,YAAL,YAAA+G,GAAgB,gBAAhB,YAAAD,GAA+B,QAAOE,IAAAC,GAAAjH,EAAK,YAAL,YAAAiH,GAAgB,gBAAhB,YAAAD,GAA+B,KAC5E,WAAWE,GAAAlH,EAAK,kBAAL,YAAAkH,GAAsB,MACjC,kBAAiBC,GAAAnH,EAAK,wBAAL,YAAAmH,GAA4B,QAAS,UACtD,QAASnH,EAAK,QACd,KAAMA,EAAK,GAAA,EAGR,IACT,ECjHMoH,GAAkB,CAAC,CACvB,QAAA3S,EACA,YAAA4S,EACA,aAAAC,EACA,aAAAC,EACA,sBAAAC,CACF,IAA4B,OAC1B,MAAMC,EAAgB,IAAM,OAAO,KAAKJ,EAAa,OAAO,EAE1D,OAAAjS,EAAA,KAAC,UAAQ,CAAA,UAAU,+CACjB,SAAA,CAACA,EAAAA,KAAA,MAAA,CAAI,UAAU,uBACb,SAAA,CAAAuB,EAAA,IAAC3B,EAAe,CAAA,aAAa,UAAU,MAAOuS,EAAc,EAE3DF,GAAeC,GACd3Q,EAAA,IAACa,EAAA,CACC,KAAM8P,EACN,KAAMD,EACN,QAAQ,eACR,UAAU,gCAAA,CACZ,CAAA,EAEJ,EAEA1Q,MAAC,OAAI,UAAU,6DACZ,6BAAS,8BAAe,IAAK+Q,GAAS,CAC/B,MAAAC,EAAY/D,GAAqB8D,CAAI,EAE3C,OAAIC,IAAc,KACT,KAEFhR,MAACwK,IAA6C,GAAGwG,EAAW,SAAUH,CAArD,EAAAE,EAAK,YAAY,SAA0D,CACpG,GACH,EAEA/Q,EAAA,IAACmL,GAAA,CACC,KAAK,UACL,QAAS2F,EACT,QAAQ,OACR,UAAU,6CAAA,CACZ,CACF,CAAA,CAAA,CAEJ,EC1DaG,GAAmB,CAACC,EAAejG,EAAoB,KAAO,CACvE,OAAQiG,EAAO,CACb,IAAK,GAAG,MAAO,GAAGjG,CAAS,YAC3B,IAAK,GAAG,MAAO,GAAGA,CAAS,YAC3B,IAAK,GAAG,MAAO,GAAGA,CAAS,WAC3B,IAAK,GAAG,MAAO,GAAGA,CAAS,WAC3B,IAAK,GAAG,MAAO,GAAGA,CAAS,aAC3B,QAAgB,MAAA,EAClB,CACF,ECqBIkG,GAAoBnT,GACxB,kCAAkCA,CAAe,UAAUA,CAAe,uCAEtEoT,GAAgBC,EAAU,EAE1BC,GAAoB,CAAC,CACzB,MAAA/G,EACA,SAAAgH,EACA,MAAAjT,EACA,YAAAkT,EACA,gBAAiBC,EACjB,aAAAC,EACA,aAAAC,EACA,cAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,kBAAAC,EACA,wBAAAC,EACA,yBAAAC,EACA,UAAAC,EACA,OAAAC,EACA,oBAAAC,CACF,IAA2B,WACnB,MAAApU,EAAkBD,EAAgB0T,GAAA,YAAAA,EAAa,KAAK,EACpDxG,EAAYhN,EAAkBwT,GAAA,YAAAA,EAAa,KAAK,EAChDY,EAAeT,EAAgB,GAAK,cACpCU,EAAwBR,GAAA,MAAAA,EAAkB,MAAQ,sBAAwB,cAC1ES,EAAyBR,EAAoB,GAAK,WAE1CX,OAAAA,GAAA,QAAQ,2BAA6BoB,GAAS,OAC1D,GAAIA,EAAK,UAAYA,EAAK,WAAa,IAAK,CAC1C,MAAMC,EACJ,MAAM,KAAKD,EAAK,UAAU,EAAE,OAAQE,GAAUA,EAAM,WAAa,MAAM,EACpE,OAAS,EAQd,GAPKF,EAAA,aACH,QACA,GAAGrB,GACDnT,CACD,CAAA,2CAAA,EAGC,CAACyU,EAAa,CAChB,MAAME,EAAOC,SACV,OAAK,CAAA,UAAU,yDACd,SAAA5S,MAACoB,GAAW,CAAA,EACd,CAAA,EAEFoR,EAAK,WAAaG,CACpB,CACF,CAMA,GAJIH,EAAK,UAAYA,EAAK,WAAa,KAChCA,EAAA,aAAa,QAAS,4BAA4B,GAGrDjR,EAAAiR,EAAK,WAAL,MAAAjR,EAAe,MAAM,YAAa,CACpC,MAAM2P,EAAQ,SAASsB,EAAK,SAAS,OAAO,CAAC,CAAC,EAC9CA,EAAK,aAAa,QAASvB,GAAiBC,CAAK,CAAC,CACpD,CAAA,CACD,EAGClR,EAAA,IAAC,OAAI,UAAU,mCAAmC,IAAIkS,GAAA,YAAAA,EAAW,QAAS,GACxE,SAAAlS,EAAA,IAAC,MAAI,CAAA,UAAWJ,EAAW,SAAU5B,CAAe,EAClD,SAACS,EAAA,KAAA,MAAA,CAAI,UAAWmB,EAAW,wBAAyB0S,EAAuBC,CAAsB,EAC/F,SAAA,CAACvS,EAAAA,IAAA,MAAA,CAAI,UAAU,kBACb,SAAAA,EAAA,IAAC,MAAA,CACC,KAAKuB,EAAAgJ,GAAA,YAAAA,EAAO,gBAAP,YAAAhJ,EAAsB,IAC3B,KAAKD,EAAAiJ,GAAA,YAAAA,EAAO,gBAAP,YAAAjJ,EAAsB,KAC3B,UAAU,6BAAA,CAAA,EAEd,EACAtB,EAAA,IAAC,MAAA,CACC,UAAWJ,EACTyS,EACAJ,GAA4B,gEAC5BP,EACAI,GAAA,MAAAA,EAAkB,MAAQ,UAAY,SACxC,EAEA,gBAAC,MAAI,CAAA,UAAYK,EAAkB,GAAT,OACvB,SAAA,CAAAN,QAAmB,IAAE,CAAA,UAAU,8BAA+B,SAAAA,EAAgB,EAAS7R,MAAAC,EAAAA,SAAA,CAAA,CAAA,EACvFsR,GAAA,MAAAA,EAAU,MAASvR,EAAAA,IAAA,IAAA,CAAE,UAAU,6BAA8B,SAAAuR,EAAS,KAAM,CAAA,EAASvR,EAAAA,IAAAC,EAAAA,SAAA,CAAA,CAAA,EACrF3B,GAAA,MAAAA,EAAO,MAAQ0B,EAAA,IAAC,KAAA,CACjB,UAAWJ,EACT,4CACAqL,CACF,EAEC,SAAM3M,EAAA,KAAA,CAAA,EACC0B,EAAA,IAAAC,EAAA,SAAA,EAAA,EACVD,EAAA,IAAC,MAAA,CACC,UAAWgS,GAA2B,gBACtC,wBAAyB,CACvB,OAAQZ,GAAc,SAASI,EAAY,KAAK,CAClD,CAAA,CACF,EACCG,GACC3R,EAAA,IAAC,MAAI,CAAA,UAAU,sFACZ,SACH2R,EAAA,IAGDnQ,EAAA4Q,GAAA,YAAAA,EAAqB,gBAArB,YAAA5Q,EAAoC,QAAS,QAC3C,MAAI,CAAA,UAAU,0FACZ,SAAA4Q,EAAoB,cAAc,IAAI,CAAC/K,EAAKC,UAC1CzG,EAAe,CAAA,KAAMwG,EAAI,SAAS,MAAO,KAAMA,EAAI,WAAW,MAAO,QAAS9G,EAAiB8G,EAAI,WAAW,KAAK,EAAG,UAAU,OAAA,EAAtHC,CAA8H,CAC1I,CACH,CAAA,EACE,IAAA,EACJ,CAAA,CACF,CAAA,EACF,EACF,CACF,CAAA,CAEJ,EClJeuL,GAAA,6tGCAFC,GAAeN,GAAe,OAClC,OAAAjR,EAAAiR,EAAK,WAAL,YAAAjR,EAAe,MAAM,WAC9B,ECaM4P,GAAoBnT,GACtB,kCAAkCA,CAAe,UAAUA,CAAe,uCACxEoT,GAAgBC,EAAU,EAE1B0B,GAAY,CAAC,CAAE,KAAAhS,EAAM,gBAAiB0Q,EAAa,cAAAuB,KAAoC,CACrF,MAAAhV,EAAkBD,EAAgB0T,GAAA,YAAAA,EAAa,KAAK,EAE5CL,OAAAA,GAAA,QAAQ,2BAA6BoB,GAAS,CAC1D,GAAIA,EAAK,UAAYA,EAAK,WAAa,IAAK,CAC1C,MAAMC,EACJ,MAAM,KAAKD,EAAK,UAAU,EAAE,OAAQE,GAAUA,EAAM,WAAa,MAAM,EACpE,OAAS,EAQd,GAPKF,EAAA,aACH,QACA,GAAGrB,GACDnT,CACD,CAAA,2CAAA,EAGC,CAACyU,EAAa,CAChB,MAAME,EAAOC,SACV,OAAK,CAAA,UAAU,yDACd,SAAA5S,MAACoB,GAAW,CAAA,EACd,CAAA,EAEFoR,EAAK,WAAaG,CACpB,CACF,CAEI,GAAAG,GAAYN,CAAI,EAAG,CACrB,MAAMtB,EAAQ,SAASsB,EAAK,SAAS,OAAO,CAAC,CAAC,EAC9CA,EAAK,aAAa,QAASvB,GAAiBC,CAAK,CAAC,CACpD,CAAA,CACD,EAGCzS,EAAA,KAAC,MAAA,CACC,UAAWmB,EACT,+CACA5B,CACF,EAEG,SAAA,CAAcgV,EAAA,OAAUhT,EAAAA,IAAA,MAAA,CAAI,IAAK6S,GAAM,IAAI,OAAO,UAAU,eAAe,MAAM,MAAO,CAAA,EACzF7S,EAAA,IAAC,MAAA,CACC,UAAU,kCACV,wBAAyB,CACvB,OAAQoR,GAAc,SAASrQ,EAAK,KAAK,CAC3C,CAAA,CACF,CAAA,CAAA,CAAA,CAGR,EC9DMkS,GAAiD,CAAC,CACtD,4BAAAC,EACA,6BAAAC,EACA,WAAAC,EACA,YAAAC,CACF,IAEI5U,EAAA,KAAC,MAAI,CAAA,UAAU,4BACb,SAAA,CAACuB,EAAAA,IAAA,MAAA,CAAI,UAAU,yBAAyB,MAAOkT,EAA4B,MAAQ,CAAE,SAAU,SAAU,IAAK,EAAG,OAAQ,QAAW,GACjI,YAAelT,MAAAsT,EAAA,CAAY,YAAaF,CAAA,CAAY,CACvD,CAAA,EACApT,EAAAA,IAAC,OAAI,UAAU,yBAAyB,MAAOmT,EAA6B,MAAQ,CAAE,SAAU,SAAU,IAAK,EAAG,OAAQ,QAAW,GAClI,YAAgBnT,MAAAsT,EAAA,CAAY,YAAaD,CAAA,CAAa,CACzD,CAAA,CACF,CAAA,CAAA,ECXEE,GAAc,CAAC,CACnB,OAAAC,EACA,gBAAAxV,EACA,aAAAyV,CACF,IAAwB,CAChB,MAAAC,EAAU3V,EAAgBC,GAAA,YAAAA,EAAiB,KAAK,EAEtD,MAAI,EAACwV,GAAA,MAAAA,EAAQ,QAASA,EAAO,MAAQ,GACnC,QAAQ,KAAK,mCAAmC,EACzC,MAIPxT,EAAA,IAAC,MAAA,CACC,UAAWJ,EAAW8T,EAAS,CAC7B,kBAAmBD,GAAA,YAAAA,EAAc,KAAA,CAClC,EACD,MAAO,CAAE,OAAQ,GAAGD,EAAO,KAAK,IAAK,CAAA,CAAA,CAG3C,EC3BeG,GAAA,mvGCAAC,GAAA,4WCAAC,GAAA,wWCwBTzC,GAAgBC,EAAU,EAEnByC,GAA8C,CAAC,CAC1D,MAAA9R,EACA,KAAAqH,EACA,OAAA0K,EACA,UAAA9I,EACA,QAAA+I,EACA,SAAAC,EACA,YAAAC,CACF,IAAM,CACE,MAAAC,EAAiBC,GAAsB,CAC3C,MAAMC,EAAY,CAChB,UAAW,YAAYD,EAAW,YAAc,iBAAiB,GACjE,IAAKnJ,IAAc,aAAe4I,GAAiBD,EAAA,EAGrD,OAAKG,EAOE,CACL,GAAGM,EACH,MAAO,CACL,UAAWD,GAAYJ,EAAU,OAAS,gBAC5C,CAAA,EAVO,CACL,GAAGK,EACH,MAAO,CAAE,UAAWD,GAAYJ,EAAU,iBAAmB,MAAO,CAAA,CASxE,EAGY5C,OAAAA,GAAA,QAAQ,2BAA6BoB,GAAS,OAC1D,IAAIjR,EAAAiR,EAAK,WAAL,MAAAjR,EAAe,MAAM,YAAa,CACpC,MAAM2P,EAAQ,SAASsB,EAAK,SAAS,OAAO,CAAC,CAAC,EAC9CA,EAAK,aAAa,QAASvB,GAAiBC,EAAOjG,CAAS,CAAC,CAC/D,CAAA,CACD,EAGCxM,EAAA,KAAC,MAAA,CACC,UAAWmB,EACT,oEACAoU,GAAWE,EAAY,OAAS,GAAK,CAACA,EAAY,SAASlS,CAAK,EAAI,kBAAoB,OAC1F,EAEA,SAAA,CAAAvD,EAAA,KAAC,SAAA,CACC,UAAU,0JACV,QAAS,IAAMwV,EAASjS,CAAK,EAC7B,gBAAe+R,EACf,gBAAe,qBAAqB/R,CAAK,GAEzC,SAAA,CAACvD,EAAAA,KAAA,MAAA,CAAI,UAAU,gBACb,SAAA,CAACuB,EAAA,IAAA,KAAA,CAAG,UAAWJ,EAAW,UAAWqL,EAAW+I,EAAU,uBAAyB,eAAe,EAC/F,SAAK3K,EAAA,MAAM,KACd,CAAA,EACCrJ,EAAA,IAAA,KAAA,CAAG,UAAWJ,EAAW,UAAWqL,EAAW+I,EAAU,sBAAwB,eAAe,EAC9F,SAAK3K,EAAA,mBAAmB,KAC3B,CAAA,CAAA,EACF,EACA5K,OAAC,QAAK,UAAWmB,EAAW,uCAAwCqL,IAAc,cAAgB,YAAY,EAC3G,SAAA,CAAA8I,GAAUC,GAAWhU,EAAAA,IAAC,OAAK,CAAA,UAAU,4BAA4B,SAAI,OAAA,EACrEA,EAAAA,IAAA,MAAA,CAAK,GAAGmU,EAAc,EAAK,CAAG,CAAA,EAC9BnU,EAAAA,IAAA,MAAA,CAAK,GAAGmU,EAAc,EAAI,CAAG,CAAA,CAAA,EAChC,CAAA,CAAA,CACF,EACAnU,EAAA,IAAC,MAAA,CACC,GAAI,qBAAqBgC,CAAK,GAC9B,KAAK,SACL,kBAAiB,oBAAoBA,CAAK,GAC1C,UAAWpC,EACT,wDACAmU,EAAS,OAAS,MAClB9I,CACF,EACA,wBAAyB,CACvB,OAAQmG,GAAc,SAAS/H,EAAK,QAAQ,KAAK,CACnD,CAAA,CACF,CAAA,CAAA,CAAA,CAGN,EC3EM8H,GAAoBnT,GACxB,kCAAkCA,CAAe,UAAUA,CAAe,uCACtEoT,GAAgBC,EAAU,EAE1BiD,GAAgD,CAAC,CACrD,SAAAC,EACA,gBAAiB9C,EACjB,gBAAiB+C,EACjB,OAAAC,EACA,WAAAC,EACA,mBAAAC,EACA,KAAA5T,EACA,KAAA6T,EACA,UAAA1C,CACF,IAAM,CACJ,KAAM,CAACgC,EAAaW,CAAc,EAAIrR,EAAA,SAAmB,CAAE,CAAA,EACrDxF,EAAkBD,EAAgB0T,GAAA,YAAAA,EAAa,KAAqB,EACpExG,EAAYhN,EAAkBwT,GAAA,YAAAA,EAAa,KAAqB,EAEhEqD,EAAkB/W,EAAgByW,GAAA,YAAAA,EAAqB,KAAqB,EAC5EO,EAAsB9W,EAAkBuW,GAAA,YAAAA,EAAqB,KAAqB,EAElFQ,EAAmBhT,GAAkB,CACzC6S,EACEI,GAAAA,EAAY,SAASjT,CAAK,EACtBiT,EAAY,OAAYC,GAAAA,IAAMlT,CAAK,EACnC,CAAC,GAAGiT,EAAajT,CAAK,CAAA,CAC5B,EAGImT,EAAsBC,EAAA,QAAQ,IAClCb,GAAA,MAAAA,EAAU,eAAiB,MAAM,QAAQA,EAAS,aAAa,EAC3DA,EAAS,cAAc,IAAgBc,GAAA,OAAA,OACrC,MAAO,CAAE,MAAOA,EAAQ,cAAc,KAAM,EAC5C,mBAAoB,CAAE,MAAOA,EAAQ,mBAAmB,KAAM,EAC9D,QAAS,CAAE,QAAO9T,EAAA8T,EAAQ,eAAe,cAAc,CAAC,IAAtC,YAAA9T,EAAyC,KAAK,QAAS,EAAG,CAC9E,EAAE,EACF,CAAC,EACL,CAACgT,CAAQ,CAAA,EAGGnD,OAAAA,GAAA,QAAQ,2BAA6BoB,GAAS,CAC1D,GAAIA,EAAK,UAAYA,EAAK,WAAa,IAAK,CAC1C,MAAMC,EACJ,MAAM,KAAKD,EAAK,UAAU,EAAE,OAAQE,GAAUA,EAAM,WAAa,MAAM,EACpE,OAAS,EAQd,GAPKF,EAAA,aACH,QACA,GAAGrB,GACDnT,CACD,CAAA,2CAAA,EAGC,CAACyU,EAAa,CAChB,MAAME,EAAOC,SACV,OAAK,CAAA,UAAU,yDACd,SAAA5S,MAACoB,GAAW,CAAA,EACd,CAAA,EAEFoR,EAAK,WAAaG,CACpB,CACF,CAAA,CACD,EAGClU,EAAA,KAAC,MAAI,CAAA,UAAU,6CAA6C,KAAK,SAAS,aAAY,oBAAqB,IAAIyT,GAAA,YAAAA,EAAW,QAAS,GAChI,SAAA,CAAAnR,GAAA,MAAAA,EAAM,MAAStC,EAAA,KAAA,MAAA,CAAI,UAAWmB,EAAW,0GAA2GkV,CAAe,EACpK,SAAA,CAAA9U,EAAA,IAAC,MAAI,CAAA,IAAK+U,IAAwB,aAAepB,GAAYd,GAAM,IAAI,kBAAkB,UAAU,eAAe,MAAM,KAAK,OAAO,KAAK,SACxI,MACC,CAAA,SAAA,CAAA7S,EAAAA,IAAC,MAAG,UAAWJ,EAAW,cAAemV,CAAmB,EAAI,0BAAY,MAAM,EAClF/U,EAAAA,IAAC,MAAG,UAAWJ,EAAW,6BAA8BmV,CAAmB,EAAI,0BAAQ,MAAM,EAC7F/U,EAAA,IAAC,UAAA,CACK,UAAWJ,EAAW,kCAAmCmV,CAAmB,EAC5E,wBAAyB,CACvB,OAAQ3D,GAAc,SAASrQ,EAAK,KAAK,CAC3C,CAAA,CACF,CAAA,EACN,CAAA,CAAA,CACA,EAAS,KACRtC,EAAA,KAAA,MAAA,CAAI,UAAWmB,EAAW,qDAAsD5B,EAAiB2W,GAAA,MAAAA,EAAoB,MAAQ,0BAA4B,GAAI5T,GAAA,MAAAA,EAAM,MAAQ,sDAAwD,QAAQ,EACxO,SAAA,CAAAA,GAAA,MAAAA,EAAM,MAASf,EAAAA,IAAA,MAAA,CAAI,IAAKiL,IAAc,aAAe0I,GAAYd,GAAM,IAAI,kBAAkB,UAAU,+BAA+B,MAAM,KAAK,OAAO,IAAK,CAAA,EAAK,KAClK+B,IAAQ7T,GAAA,MAAAA,EAAM,OAAQtC,EAAAA,KAAC,MAAG,UAAWmB,EAAW,wCAAyCqL,CAAS,EAAI,SAAA,CAAA2J,EAAK,GAAA,CAAA,CAAC,EAAQ,KACpHH,GAAA,MAAAA,EAAQ,QAAS1T,GAAA,MAAAA,EAAM,OAASf,EAAA,IAAA,KAAA,CAAG,UAAWJ,EAAW,iDAAkDqL,CAAS,EAAI,SAAAwJ,GAAA,YAAAA,EAAQ,KAAM,CAAA,EAAQ,KAC9IA,GAAA,MAAAA,EAAQ,OAAS,EAAC1T,GAAA,MAAAA,EAAM,OAASf,EAAAA,IAAA,KAAA,CAAG,UAAWJ,EAAW,mDAAoDqL,CAAS,EAAI,SAAAwJ,GAAA,YAAAA,EAAQ,KAAM,CAAA,EAAQ,KACpJhW,EAAAA,KAAA,MAAA,CAAI,UAAWmB,EAAW,2BAA4B6U,GAAA,MAAAA,EAAQ,OAAS,EAAC1T,GAAA,MAAAA,EAAM,OAAQ,8BAAgC,EAAE,EACtH,SAAA,CAAoBoU,EAAA,IAAI,CAAC9L,EAAMrH,IAC9BhC,EAAA,IAAC8T,GAAA,CAEC,MAAA9R,EACA,KAAAqH,EACA,OAAQ6K,EAAY,SAASlS,CAAK,EAClC,UAAAiJ,EACA,QAAS,CAAC,EAAClK,GAAA,MAAAA,EAAM,OACjB,SAAUiU,EACV,YAAAd,CAAA,EAPKlS,CAAA,CASR,EACAjB,GAAA,MAAAA,EAAM,OAASmT,EAAY,OAAS,EAClClU,MAAA,MAAA,CAAI,UAAU,mBACb,SAAAvB,EAAA,KAAC,SAAA,CACC,UAAWmB,EAAW,sEAAuEqL,EAAYA,IAAc,aAAe,mDAAqD,wDAAwD,EACnP,QAAS,IAAM4J,EAAe,EAAE,EAChC,aAAW,+BACZ,SAAA,CAAA,eACQ,OAAK,CAAA,UAAU,OAAO,cAAY,OAAO,SAAC,IAAA,CAAA,CAAA,GAErD,EACE,IAAA,EACJ,CAAA,EACF,CACF,CAAA,CAAA,CAEJ,ECtIMS,GAAiBnV,GAA8B,CAC3C,KAAA,CAAE,KAAAyU,EAAM,MAAAW,CAAU,EAAApV,EAExB,cACK,MACG,CAAA,SAAA,CAAAH,EAAAA,IAAC,KAAG,SAAK4U,CAAA,CAAA,EACRW,EAAM,MAAM,IACTC,GAAAxV,EAAA,IAAC,KAAE,SAACA,EAAAA,IAAA,IAAA,CAAE,UAAU,+CAA+C,KAAMwV,EAAK,KAAO,SAAKA,EAAA,KAAK,EAAI,CAClG,CACL,CAAA,CAAA,CAER,ECNMrE,GAAoBnT,GACxB,wBAAwBA,CAAe,UAAUA,CAAe,uCAC5DoT,GAAgBC,EAAU,EAE1BoE,GAAiB,CAAC,CACtB,KAAA1U,EACA,gBAAiB0Q,CACnB,IAA2B,CACnB,MAAAzT,EAAkBD,EAAgB0T,GAAA,YAAAA,EAAa,KAAK,EAE5CL,OAAAA,GAAA,QAAQ,2BAA6BoB,GAAS,CAC1D,GAAIA,EAAK,UAAYA,EAAK,WAAa,IAAK,CAC1C,MAAMC,EACJ,MAAM,KAAKD,EAAK,UAAU,EAAE,OAAQE,GAAUA,EAAM,WAAa,MAAM,EACpE,OAAS,EAQd,GAPKF,EAAA,aACH,QACA,GAAGrB,GACDnT,CACD,CAAA,2CAAA,EAGC,CAACyU,EAAa,CAChB,MAAME,EAAOC,SACV,OAAK,CAAA,UAAU,yDACd,SAAA5S,MAACoB,GAAW,CAAA,EACd,CAAA,EAEFoR,EAAK,WAAaG,CACpB,CACF,CAEI,GAAAG,GAAYN,CAAI,EAAG,CACrB,MAAMtB,EAAQ,SAASsB,EAAK,SAAS,OAAO,CAAC,CAAC,EAC9CA,EAAK,aAAa,QAASvB,GAAiBC,CAAK,CAAC,CACpD,CAAA,CACD,EAGClR,EAAA,IAAC,MAAA,CACC,UAAWJ,EACT,+CACA5B,CACF,EAEA,SAAAgC,EAAA,IAAC,MAAA,CACC,UAAU,kCACV,wBAAyB,CACvB,OAAQoR,GAAc,SAASrQ,EAAK,KAAK,CAC3C,CAAA,CACF,CAAA,CAAA,CAGN,EC5DM2U,GAAW,CAAC,CAChB,QAAA/V,EACA,WAAA6F,EACA,aAAAuE,EACA,SAAAa,CACF,IAAqB,CACnB,MAAM+K,EAAc,IAAM,CACjB,OAAA,KAAKnQ,EAAW,MAAO,OAAO,CAAA,EAIrC,OAAA/G,EAAA,KAAC,MAAI,CAAA,UAAU,6BACb,SAAA,CAAAuB,EAAA,IAAC,KAAG,CAAA,UAAU,qEACX,SAAAL,EAAQ,MACX,EACCK,EAAA,IAAA,IAAA,CAAE,UAAU,OAAQ,WAAa,MAAM,EACxCA,EAAA,IAACmL,GAAA,CACC,UAAU,sCACV,KAAMP,EAAS,MACf,QAAQ,OACR,QAAS+K,CAAA,CACX,CACF,CAAA,CAAA,CAEJ,EC5BaC,GACXC,IAEO,CACL,YAAa,CAAC,QAAS,mBAAmB,EAC1C,QAASA,EAAa,MACtB,WAAYA,EAAa,KACzB,aAAc,CAAE,MAAO,GAAI,iBAAkB,oBAAqB,EAClE,SAAUA,EAAa,IAAA,GCiCdC,GAAoB,CAC/BhY,EACAD,EACAkY,IACG,CACC,GAAA,EAACjY,GAAA,MAAAA,EAAS,aACZ,OAASkC,EAAA,IAAAC,WAAA,CAAA,CAAA,EAGP,GAAA+L,GAAkBlO,CAAO,EAEzB,OAAAkC,EAAA,IAACyQ,GAAA,CACC,QAAS3S,EAAQ,QACjB,YAAaA,EAAQ,WAAW,MAChC,aAAcA,EAAQ,eAAe,MACrC,aAAcA,EAAQ,KACtB,sBAAuBA,EAAQ,sBAAsB,KAAA,CAAA,EAKvD,GAAAmO,GAAiBnO,CAAO,EAC1B,aACGmE,GAAe,CAAA,QAASnE,EAAQ,QAAS,SAAUA,EAAQ,QAAU,CAAA,EAItE,GAAAoO,GAAoBpO,CAAO,EAAG,CAChC,MAAMkY,EAAYD,GAAA,YAAAA,EAAsBjY,EAAQ,YAAY,CAAC,GACvDmU,EAA2B+D,GAAA,YAAAA,EAAW,yBACtChE,EAA0BgE,GAAA,YAAAA,EAAW,wBAGzC,OAAAhW,EAAA,IAACsR,GAAA,CACE,GAAGxT,EACJ,yBAAAmU,EACA,wBAAAD,CAAA,CAAA,CAGN,CAEI,GAAA7F,GAAYrO,CAAO,EACd,OAAAkC,EAAA,IAAC+S,GAAW,CAAA,GAAGjV,CAAS,CAAA,EAG7B,GAAAsO,GAAiBtO,CAAO,EAExB,OAAAkC,EAAA,IAACyV,GAAA,CACE,GAAG3X,EACJ,gBAAiB,CACf,MAAO,cACP,iBAAkB,oBACpB,CAAA,CAAA,EAKF,GAAAyO,GAAczO,CAAO,EAChB,OAAAkC,EAAA,IAACuT,GAAa,CAAA,GAAGzV,CAAS,CAAA,EAG/B,GAAAuO,GAAWvO,CAAO,EACb,OAAAkC,EAAA,IAAC0V,GAAU,CAAA,GAAG5X,CAAS,CAAA,EAG5B,GAAAwO,GAAexO,CAAO,EAAG,CACrB,MAAAmY,EAAWL,GAA+B9X,CAAO,EAEhD,OAAAkC,EAAA,IAAC0V,GAAU,CAAA,GAAGO,CAAU,CAAA,CACjC,CAEI,GAAAzJ,GAAkB1O,CAAO,EACpB,OAAAkC,EAAA,IAACiT,GAAqB,CAAA,GAAGnV,CAAS,CAAA,EAGvC,GAAA2O,GAAiB3O,CAAO,EACnB,OAAAkC,EAAA,IAACsU,GAAgB,CAAA,GAAGxW,CAAS,CAAA,EAGlC,GAAA8O,GAAgB9O,CAAO,EAClB,OAAAkC,EAAA,IAAC0I,GAAe,CAAA,OAAQ5K,CAAS,CAAA,EAGtC,GAAA4O,GAAoB5O,CAAO,EACtB,OAAAkC,MAACiK,IAAgB,QAAAnM,CAAkB,CAAA,EAGxC,GAAA+O,GAAiB/O,CAAO,EACnB,OAAAkC,EAAA,IAACmG,GAAsB,CAAA,OAAQrI,CAAS,CAAA,EAG7C,GAAAiP,GAA0BjP,CAAO,EACnC,OAAQkC,EAAAA,IAAAgG,GAAA,CAAsB,OAAQlI,EAAS,YAAAD,CAA0B,CAAA,EAGvE,GAAAmP,GAAuBlP,CAAO,EAE9B,OAAAkC,EAAA,IAACuJ,GAAA,CACC,OAAQzL,EAAQ,aAAa,MAC7B,WAAY,CAAE,SAAUA,EAAQ,cAAc,KAAM,CAAA,CAAA,EAKtD,GAAA6O,GAAgB7O,CAAO,EAClB,OAAAkC,EAAA,IAACsV,GAAe,CAAA,GAAGxX,CAAS,CAAA,CAEvC,EC7IawV,EAA0C,CAAC,CAAE,YAAA4C,EAAa,YAAArY,KAAkB,OACvF,OAAKqY,oBAMA,UAAY3U,EAAA2U,EAAA,gBAAA,YAAA3U,EAAe,IAAI,CAAC0E,EAAQjE,IACvChC,EAAAA,IAACZ,EAAM,SAAN,CACI,SAAkB0W,GAAA7P,EAAQpI,CAAW,GADrBmE,CAErB,EAEJ,CAAA,EAVO,IAYX,ECNamU,GAAwC,CAAC,CACpD,SAAAC,EACA,WAAAC,CACF,IAEI5X,EAAA,KAAC,MAAI,CAAA,UAAU,iCACb,SAAA,CAAAuB,EAAA,IAAC3B,EAAe,CAAA,aAAa,UAAU,MAAOgY,EAAY,EAE1DrW,EAAAA,IAAC,OAAI,UAAU,+DACZ,WAAS,IAAI,CAACsW,EAAStU,IACtBvD,EAAA,KAAC,MAAA,CACC,UAAWmB,EACT,kIACE0W,EAAQ,4BAA8B,iBAAmB,MAC7D,EAGA,SAAA,CAAA7X,OAAC,MACC,CAAA,SAAA,CAAAuB,EAAA,IAAC,KAAG,CAAA,UAAU,oCACX,SAAAsW,EAAQ,MACX,EACCtW,EAAA,IAAA,IAAA,CAAE,UAAU,uCACV,WAAQ,YACX,CAAA,EACF,EAEAA,EAAA,IAAC,IAAE,CAAA,KAAMsW,EAAQ,KAAM,UAAU,kCAC/B,SAACtW,EAAAA,IAAAuW,GAAA,CAAU,UAAU,sFAAA,CAAuF,CAC9G,CAAA,CAAA,CAAA,EAbKvU,CAeR,CAAA,EACH,CACF,CAAA,CAAA,ECrCEwU,GACJC,GACuB,OAChB,MAAA,CACL,WAAY,4BACZ,UAAUlV,EAAAkV,GAAA,YAAAA,EAAU,QAAV,YAAAlV,EAAiB,IAAK8H,IAAU,CACxC,YAAaA,EAAK,qBAClB,KAAMA,EAAK,QACX,MAAOA,EAAK,UACZ,4BAA6BA,EAAK,2BAAA,GAClC,CAEN,EAEaqN,GAA4D,CAAC,CACxE,cAAAC,CACF,IAAM,CACJ,KAAM,CAAE,UAAAC,EAAW,KAAMC,CAAgB,EAAAC,GACvCH,EAAc,SAAS,CAAA,EAMrB,OAHAC,GAGA,EAACC,GAAA,MAAAA,EAAa,eACT,KAIP7W,EAAA,IAACmW,GAAA,CACE,GAAGK,GAAgCK,GAAA,YAAAA,EAAa,aAAa,CAAA,CAAA,CAGpE,ECnCaE,GAAsC,CAAC,CAAE,QAAAjZ,KAC/CA,EASDW,EAAA,KAAAwB,WAAA,CAAA,SAAA,CAACD,EAAAA,IAAA,MAAA,CAAI,UAAU,4BAA6B,CAAA,EAC5CA,MAACqB,IAAc,QAAAvD,EAAkB,EAChCkC,EAAA,IAAA0W,GAAA,CAAqB,cAAe5Y,EAAQ,YAAY,GAAI,QAC5DwV,EAAY,CAAA,YAAaxV,EAAQ,gBAAiB,YAAa,GAAK,CACvE,CAAA,CAAA,EAZSkC,EAAA,IAAAC,WAAA,CAAA,CAAA,ECCPmR,GAAgBtI,EAAU,EAEnBkO,GAA2D7W,IAExDiR,GAAA,QAAQ,2BAA6BoB,GAAS,CAC1D,GAAIA,EAAK,UAAYA,EAAK,WAAa,IAAK,CACrCA,EAAA,aAAa,QAAS,4FAA4F,EACvH,MAAMC,EAAc,MAAM,KAAKD,EAAK,UAAU,EAAE,OAAOE,GAASA,EAAM,WAAa,MAAM,EAAE,OAAS,EAC9FuE,EAAkB,MAAM,KAAKzE,EAAK,UAAU,EAAE,OAAOE,GAASA,EAAM,WAAa,GAAG,EAAE,OAAS,EAEjG,GAAA,CAACD,GAAewE,EAAiB,CAC7B,MAAAtE,EAAOC,GAAgB5S,MAAA,OAAA,CAAK,UAAU,yDAAyD,SAAAA,EAAAA,IAACoB,EAAW,CAAA,CAAA,CAAA,CAAE,CAAO,EAC1HoR,EAAK,WAAaG,CACpB,CACF,CACIH,EAAK,UAAYA,EAAK,WAAa,KAChCA,EAAA,aAAa,QAAS,cAAc,CAC3C,CACD,EAGC/T,EAAA,KAAC,MAAI,CAAA,UAAU,uBACb,SAAA,CAACA,EAAAA,KAAA,MAAA,CAAI,UAAU,yBACb,SAAA,CAACA,EAAAA,KAAA,MAAA,CAAI,UAAU,MACb,SAAA,CAAAuB,EAAA,IAAC,MAAI,CAAA,UAAU,gBACX,SAAAG,EAAM,MACV,EACCH,EAAA,IAAA,MAAA,CAAI,UAAU,YACX,WAAM,iBACV,CAAA,EACF,EACAA,EAAA,IAAC,MAAA,CACC,UAAU,yCACV,IAAKG,EAAM,QAAA,CACb,CAAA,EACF,EACAH,EAAAA,IAAC,MAAI,CAAA,wBAAyB,CAAE,OAAQoR,GAAc,SAASjR,EAAM,IAAI,CAAA,EAAI,CAC/E,CAAA,CAAA,GCxCS+W,GACX/W,GAGGH,EAAAA,IAAA,MAAA,CAAI,UAAU,iFACZ,WAAM,MAAM,IAAKqJ,GACfrJ,EAAAA,IAAAgX,GAAA,CAAqB,GAAG3N,CAAM,CAAA,CAChC,CACH,CAAA,ECTS8N,GAA0C,CAAC,CACtD,WAAAd,EACA,kBAAAe,CACF,IAAM,CACJ,KAAM,CAACC,EAAYC,CAAa,EAAI9T,WAAiB,EAAE,EAEjD+T,EAAgBC,GAA0C,CAC9DA,EAAI,eAAe,EACEC,GAAA,EAGjBA,EAAuB,IAAM,CACjC,MAAMC,EAAM,IAAI,IAAI,GAAG,OAAO,SAAS,MAAM,aAAa,EACtDA,EAAA,aAAa,OAAO,OAAQL,CAAU,EACnC,OAAA,SAAS,KAAOK,EAAI,SAAS,CAAA,EAGhCC,EAAqBC,GAA+C,CAC1DN,EAAAM,EAAM,OAAO,KAAK,CAAA,EAIhC,OAAAnZ,EAAA,KAAC,OAAA,CACC,UAAU,4FACV,SAAU8Y,EAEV,SAAA,CAACvX,EAAA,IAAA,MAAA,CAAI,UAAU,8BAA+B,SAAWqW,EAAA,QACxD,MAAI,CAAA,UAAU,mCACb,SAAC5X,EAAA,KAAA,MAAA,CAAI,UAAU,oGACb,SAAA,CAAAuB,EAAA,IAAC,QAAA,CACC,UAAU,iCACV,SAAU2X,EACV,YAAaP,CAAA,CACf,EACApX,EAAAA,IAAC,UAAO,UAAU,8BAA8B,KAAK,SACnD,SAAAA,EAAA,IAAC6X,KAAkB,CACrB,CAAA,CAAA,CAAA,CACF,CACF,CAAA,EACA7X,EAAA,IAAC,SAAA,CACC,UAAU,6LACV,KAAK,SACN,SAAA,QAAA,CAED,CAAA,CAAA,CAAA,CAGN,EC7Ca8X,GAA8D,CAAC,CAC1E,aAAA/N,EACA,WAAAxE,EACA,WAAAC,EACA,cAAAC,CACF,IAAM,CACJ,MAAMkQ,EAAc,IAAM,CACjB,OAAA,KAAKnQ,EAAY,OAAO,CAAA,EAI/B,OAAA/G,EAAA,KAAC,MAAI,CAAA,UAAU,oDACZ,SAAA,CAAAsL,GACE/J,EAAA,IAAA,MAAA,CAAI,UAAU,mEACZ,SACH+J,EAAA,EAEDxE,GACCvF,EAAA,IAACmL,GAAA,CACC,KAAM5F,EACN,QAASE,EACT,QAASkQ,CAAA,CACX,CAEJ,CAAA,CAAA,CAEJ,ECrBaoC,GAAwD,CAAC,CACpE,QAAAja,CACF,IAAM,qCACJ,GAAI,CAACA,EACH,OAASkC,EAAA,IAAAC,WAAA,CAAA,CAAA,EAGX,KAAM,CAAE,UAAA2W,EAAW,MAAAoB,EAAO,KAAAC,CAAS,EAAAnB,GACjChZ,EAAQ,YAAY,GAAG,SAAS,CAAA,EAGlC,GAAI8Y,EACK,OAAA,KAGH,MAAAsB,EAAkBD,EAAK,cAAc,MAAM,KAC9C5O,GAASA,EAAK,IAAMvL,EAAQ,YAAY,EAAA,EAE3C,OAEIW,EAAA,KAAAwB,WAAA,CAAA,SAAA,CAAAD,EAAA,IAACsR,GAAA,CACC,MAAOxT,EAAQ,UACf,MAAO,CACL,iBAAkB,qBAClB,MAAOA,EAAQ,KACf,YAAa,IACf,EACA,gBAAiB,CACf,iBAAkB,qBAClB,QAAOyD,EAAAzD,EAAQ,sBAAR,YAAAyD,EAA6B,QAAS,kBAC/C,EACA,YAAa,CACX,iBAAkB,sBAClB,OAAOD,EAAAxD,EAAQ,kBAAR,YAAAwD,EAAyB,MAChC,YAAa,IACf,EACA,KAAK,GACL,cAAa,GACb,aAAa,6BACb,cAAcI,GAAAD,GAAAD,EAAA1D,EAAQ,sBAAR,YAAA0D,EAA6B,gBAA7B,YAAAC,EAA4C,MAA5C,YAAAC,EAAA,KAAAD,EACXM,GAAW,CACV,MAAMoW,EAAapW,EAEjB,OAAA/B,EAAA,IAACmL,GAAA,CACC,QAAS,IACP,OAAO,KAAKgN,EAAW,WAAW,MAAO,OAAO,EAElD,KAAMA,EAAW,SAAS,MAE1B,QAAS5X,EAAiB4X,EAAW,WAAW,KAAK,CAAA,EADhDA,EAAW,IAAA,CAItB,EACF,CACF,IACCxW,EAAA7D,EAAQ,kBAAR,YAAA6D,EAAyB,QACxB3B,EAAA,IAACmX,GAAA,CACC,WAAW,4BACX,kBAAkB,+BAAA,CACpB,KAEAvV,EAAA9D,EAAQ,wBAAR,YAAA8D,EAA+B,UAC/BsE,GAAApE,EAAAhE,EAAQ,4BAAR,YAAAgE,EAAmC,WAAnC,YAAAoE,EAA6C,SAC7ClG,EAAA,IAAC8X,GAAA,CACC,cAAcpR,EAAA5I,EAAQ,wBAAR,YAAA4I,EAA+B,MAC7C,YAAYE,GAAAH,EAAA3I,EAAQ,4BAAR,YAAA2I,EAAmC,aAAnC,YAAAG,EAA+C,MAC3D,YAAYC,GAAAF,EAAA7I,EAAQ,4BAAR,YAAA6I,EAAmC,WAAnC,YAAAE,EAA6C,MACzD,cAAetG,GACbwG,GAAAD,EAAAhJ,EAAQ,4BAAR,YAAAgJ,EAAmC,aAAnC,YAAAC,EAA+C,KACjD,CAAA,CACF,EAEDmR,GACClY,EAAA,IAACkX,GAAA,CACC,MAAOgB,EAAgB,gBAAgB,IAAKE,GAAQ,OAAA,OAClD,GAAIA,EAAG,GACP,UAAU7W,EAAA6W,EAAG,QAAH,YAAA7W,EAAU,IACpB,iBAAkB6W,EAAG,aACrB,KAAMA,EAAG,KACT,MAAOA,EAAG,KAAA,EACV,CAAA,CACJ,EAEDpY,EAAAA,IAAAsT,EAAA,CAAY,YAAaxV,EAAQ,eAAiB,CAAA,CACrD,CAAA,CAAA,CAEJ,ECnGaua,GAAsB,cAEtB3M,GAAiB5N,GACrBA,EAAQ,YAAY,SAASua,EAAmB,ECE5CC,GAAsC,CAAC,CAAE,QAAAxa,KAAc,CAC5D,MAAAya,EAAcza,EAAQ,YAAY,cAEpC,OAACya,GAAA,MAAAA,EAAa,OAKhBvY,EAAAA,IAAC,MAAI,CAAA,UAAU,iCACb,SAAAA,MAAC,MAAI,CAAA,UAAU,iEACZ,SAAAuY,EAAY,IAAK/C,cAChB/W,OAAAA,EAAA,KAAC,IAAA,CAEC,KAAM,MAAI+C,GAAAF,GAAAC,EAAAiU,EAAK,OAAL,YAAAjU,EAAW,gBAAX,YAAAD,EAA0B,YAA1B,YAAAE,EAAqC,QAAS,EAAE,GAC1D,UAAU,yGACV,aAAY,eAAegU,EAAK,IAAI,GAEpC,SAAA,CAAAxV,EAAA,IAAC,KAAG,CAAA,UAAU,2CAA4C,SAAAwV,EAAK,KAAK,EACpExV,EAAAA,IAACuW,GAAU,CAAA,UAAU,qFAAsF,CAAA,CAAA,CAAA,EANtGf,EAAK,IAAA,EAQb,EACH,CACF,CAAA,EAlBO,IAoBX,EClBMgD,GAAcC,GACXA,EAAK,QAAQ,oBAAqB,EAAE,EAGvCC,GAAa,CAAC,CAAE,QAAA5a,KAAgC,SAChD,OAAAwD,GAAAC,EAAAzD,GAAA,YAAAA,EAAS,YAAT,YAAAyD,EAAoB,gBAApB,MAAAD,EAAmC,IAEnCtB,EAAA,IAACsR,GAAA,CACC,KAAMxT,EAAQ,KACd,YAAa,CACX,MAAO,0DAA0D0a,GAAW1a,EAAQ,SAAS,KAAK,CAAC,QACnG,iBAAkB,sBAClB,YAAa,CACX,UAAW,EACb,CACF,EACA,MAAO,CACL,iBAAkB,qBAClB,MAAO,GACP,YAAa,IACf,EACA,MAAOA,EAAQ,UACf,gBAAiB,CACf,iBAAkB,qBAClB,MAAO,kBACT,EACA,iBAAkB,CAChB,iBAAkB,kBAClB,MAAO,EACT,EACA,OAAQ,EAAA,CAAA,EAIP,IACT,EAEM6a,GAAa,CAAC,CAAE,QAAA7a,KAChBA,EAAQ,gBAAgB,MAExBkC,EAAA,IAAC+S,GAAA,CACC,KAAM,CACJ,MAAO,yBAAyBjV,EAAQ,gBAAgB,KAAK,SAC7D,iBAAkB,sBAClB,YAAa,CACX,UAAW,EACb,CACF,EACA,gBAAiB,CACf,iBAAkB,qBAClB,MAAO,SACT,EACA,cAAe,CACb,iBAAkB,kBAClB,MAAO,EACT,EACA,YAAa,CAAC,QAAS,WAAW,EAClC,YAAa,CACX,GAAI,KACJ,UAAW,GACX,IAAK,EACP,EACA,KAAMA,EAAQ,KACd,QAASA,EAAQ,OAAA,CAAA,EAKd,KAIE8a,GAA0C,CAAC,CAAE,QAAA9a,KACnDA,EASDW,EAAA,KAAAwB,WAAA,CAAA,SAAA,CAACD,EAAAA,IAAA,MAAA,CAAI,UAAU,4BAA6B,CAAA,EAC5CA,MAAC0Y,IAAW,QAAA5a,EAAkB,EAC9BkC,MAAC2Y,IAAW,QAAA7a,EAAkB,EAC9BkC,MAACsY,IAAU,QAAAxa,EAAkB,QAC5BwV,EAAY,CAAA,YAAaxV,EAAQ,gBAAiB,YAAa,GAAM,CACxE,CAAA,CAAA,EAbSkC,EAAA,IAAAC,WAAA,CAAA,CAAA,ECrFA4Y,GAAsB,CAAC,cAAe,mBAAoB,UAAU,EAEpE/L,GAAiBhP,GACrBA,EAAQ,YAAY,KAAMiB,GAAS8Z,GAAoB,SAAS9Z,CAAI,CAAC,ECJxE+Z,GAAU,+BAEHC,GAAgCC,GACpC5P,GAAM,OAAO,CAClB,QAAS,CACP,kBAAmB,KACnB,GAAG4P,GAAA,YAAAA,EAAQ,OACb,EACA,QAASF,GACT,GAAGE,CAAA,CACJ,ECJUC,GAAyB,MAAQC,IAE3B,MADFH,KACe,IAAI,GAAG,mBAAmBG,CAAS,CAAC,GAAI,CACpE,OAAQ,CACN,OAAQ,GACV,CAAA,CACD,GACe,KCFZC,GAAiBhZ,GAA4E,CAC/F,MAAMrC,EAAUsb,GAAkC,CAAC,GAAGjZ,EAAM,SAAS,EAAE,EAAG,IAAM8Y,GAAuB9Y,EAAM,SAAS,CAAC,EAEvH,OAAKrC,EAKDkC,EAAA,IAAC,MAAI,CAAA,UAAU,mBACV,SAAA8V,GAAkBhY,EAAQ,KAAM,GAAOqC,EAAM,mBAAmB,CACrE,CAAA,EANO,IAQf,EAEMkZ,GAAwBlZ,GAElBH,EAAAA,IAAAsZ,GAAA,CAAoB,OAAQC,GAChC,SAACvZ,EAAAA,IAAAmZ,GAAA,CAAc,UAAWhZ,EAAM,UAAW,oBAAqBA,EAAM,mBAAA,CAAqB,CAC/F,CAAA,ECzBEiR,GAAgBtI,EAAU,EAE1B0Q,GAA8B,CAClChH,EACAiH,IACG,QACClY,EAAAiR,EAAK,QAAL,MAAAjR,EAAakY,IACVjH,EAAA,MAAM,eAAeiH,CAAW,EAElCjH,EAAA,WAAW,QAASE,GAAuB,CAC9C8G,GAA4B9G,EAAO+G,CAAW,CAAA,CAC/C,CACH,EAEMC,GAAyC,CAC7ClH,EACAmH,IAEKnH,GAAA,MAAAA,EAAM,QAIPA,EAAK,QAAQmH,CAAa,EACrB,GAEFnH,EAAK,WACR,MAAM,KAAKA,EAAK,UAAU,EAAE,KAAME,GAChCgH,GAAuChH,EAAOiH,CAAa,CAE7D,EAAA,GAVK,GAaLC,GAAoC,CACxCpH,EACAqH,IAGErH,EAAK,WAAW,OAAS,GACzB,MAAM,KAAKA,EAAK,UAAU,EAAE,KACzBE,GAAuBA,EAAM,WAAamH,CAAA,EAGtC,GAEFrH,EAAK,WACR,MAAM,KAAKA,EAAK,UAAU,EAAE,KAAME,GAChCkH,GAAkClH,EAAOmH,CAAQ,CAEnD,EAAA,GAGAC,GAAiC,CACrCtH,EACAxR,IACG,OACH,OAAIO,EAAAiR,EAAK,YAAL,MAAAjR,EAAgB,SAASP,GACpB,GAEFwR,EAAK,WACR,MAAM,KAAKA,EAAK,UAAU,EAAE,KAAME,GAChCoH,GAA+BpH,EAAO1R,CAAS,CAEjD,EAAA,EACN,EAEAoQ,GAAc,QAAQ,2BAA6BoB,GAAsB,kEACnEjR,EAAAiR,EAAK,QAAL,MAAAjR,EAAY,aACTiR,EAAA,MAAM,eAAe,aAAa,EAClCA,EAAA,MAAM,eAAe,WAAW,EAChCA,EAAA,MAAM,eAAe,kBAAkB,GAG1CA,EAAK,WAAa,MACfA,EAAA,aACH,QACA,wFAAA,EAIAA,EAAK,WAAa,MACfA,EAAA,aACH,QACA,wFAAA,EAIAA,EAAK,WAAa,MACfA,EAAA,aACH,QACA,oGAAA,EAIAA,EAAK,WAAa,MACfA,EAAA,aACH,QACA,qEAAA,EAIAA,EAAK,WAAa,MACfA,EAAA,aACH,QACA,uEAAA,EAIAA,EAAK,WAAa,MACfA,EAAA,MAAM,eAAe,OAAO,EAC5BA,EAAA,aAAa,QAAS,0CAA0C,IAIrEA,EAAK,WAAa,OAClBoH,GAAkCpH,EAAM,KAAK,MAEzClR,EAAAkR,EAAK,QAAL,MAAAlR,EAAY,QACTkR,EAAA,UAAU,OAAO,YAAY,EAC7BA,EAAA,UAAU,OAAO,MAAM,EACvBA,EAAA,UAAU,OAAO,eAAe,EAChCA,EAAA,UAAU,OAAO,eAAe,GAChChR,EAAAgR,EAAA,gBAAA,MAAAhR,EAAe,UAAU,OAAO,oBAGnCC,EAAA+Q,EAAK,QAAL,YAAA/Q,EAAY,SAAU,SACnB+Q,EAAA,UAAU,IAAI,MAAM,EACpBA,EAAA,UAAU,IAAI,MAAM,KAGvB9Q,EAAA8Q,EAAK,QAAL,YAAA9Q,EAAY,SAAU,UACnB8Q,EAAA,UAAU,IAAI,MAAM,EACpBA,EAAA,UAAU,IAAI,MAAM,GAIzBA,EAAK,UAAU,SAAS,YAAY,GACpCsH,GAA+BtH,EAAM,YAAY,EAE5CA,EAAA,UAAU,IAAI,QAAQ,EAEtBA,EAAA,UAAU,IAAI,eAAe,IAKpCA,EAAK,WAAa,UAClBoH,GAAkCpH,EAAM,QAAQ,MAE3C7Q,EAAA6Q,EAAA,YAAA,MAAA7Q,EAAW,IAAI,WACfC,EAAA4Q,EAAA,YAAA,MAAA5Q,EAAW,IAAI,mBAGlB4Q,EAAK,WAAa,eACfA,EAAA,aACH,QACA,gHAAA,EAEGA,EAAA,WAAW,QAASE,GAAuB,QACxCnR,EAAAmR,EAAA,QAAA,MAAAnR,EAAO,eAAe,cAC5BiY,GAA4B9G,EAAO,WAAW,CAAA,CAC/C,IAGCF,EAAK,WAAa,MAAQA,EAAK,WAAa,OACzCA,EAAA,aACH,QACA,sEAAA,EAIAA,EAAK,WAAa,QACf1Q,EAAA0Q,EAAA,YAAA,MAAA1Q,EAAW,IAAI,cAGlB0Q,EAAK,WAAa,QACftM,EAAAsM,EAAA,YAAA,MAAAtM,EAAW,IAAI,iBAGlBsM,EAAK,WAAa,QACf9L,EAAA8L,EAAA,YAAA,MAAA9L,EAAW,IAAI,wBACfD,EAAA+L,EAAA,YAAA,MAAA/L,EAAW,IAAI,iBACfG,EAAA4L,EAAA,YAAA,MAAA5L,EAAW,IAAI,6BACf4L,EAAA,MAAM,YAAY,UAAW,WAAW,EACxCA,EAAA,MAAM,YAAY,sBAAuB,MAAM,GAGlDA,EAAK,WAAa,QACf7L,EAAA6L,EAAA,YAAA,MAAA7L,EAAW,IAAI,QAAS,WAE3B6L,EAAK,WAAa,OACf3L,EAAA2L,EAAA,YAAA,MAAA3L,EAAW,IAAI,8BACfC,EAAA0L,EAAA,YAAA,MAAA1L,EAAW,IAAI,iBACfC,EAAAyL,EAAA,YAAA,MAAAzL,EAAW,IAAI,UAGlByL,EAAK,WAAa,SAAWA,EAAK,WAAa,SAC5CxL,EAAAwL,EAAA,YAAA,MAAAxL,EAAW,IAAI,kBAGlBC,EAAAuL,EAAK,YAAL,MAAAvL,EAAgB,SAAS,eACtBC,EAAAsL,EAAA,YAAA,MAAAtL,EAAW,IAAI,kBACfE,EAAAoL,EAAA,YAAA,MAAApL,EAAW,OAAO,cAGrBD,EAAAqL,EAAK,YAAL,MAAArL,EAAgB,SAAS,WACtBqL,EAAA,aACH,QACA,gHAAA,EAEGA,EAAA,WAAW,QAASE,GAAuB,QACxCnR,EAAAmR,EAAA,QAAA,MAAAnR,EAAO,eAAe,cAC5BiY,GAA4B9G,EAAO,WAAW,CAAA,CAC/C,IAGClL,EAAAgL,EAAK,YAAL,MAAAhL,EAAgB,SAAS,YACtBD,EAAAiL,EAAA,YAAA,MAAAjL,EAAW,IAAI,kBACfG,EAAA8K,EAAA,YAAA,MAAA9K,EAAW,IAAI,eACfD,EAAA+K,EAAA,YAAA,MAAA/K,EAAW,IAAI,QACfE,EAAA6K,EAAA,YAAA,MAAA7K,EAAW,IAAI,WACfC,EAAA4K,EAAA,YAAA,MAAA5K,EAAW,OAAO,mBAGrBC,EAAA2K,EAAK,YAAL,MAAA3K,EAAgB,SAAS,mBACtBC,EAAA0K,EAAA,YAAA,MAAA1K,EAAW,IAAI,WACfC,EAAAyK,EAAA,YAAA,MAAAzK,EAAW,IAAI,eAExB,CAAC,EAEDqJ,GAAc,QAAQ,wBAA0BoB,GAAsB,8BAC/DjR,EAAAiR,EAAA,QAAA,MAAAjR,EAAO,eAAe,WAGzBD,EAAAkR,EAAK,YAAL,MAAAlR,EAAgB,SAAS,eACzBwY,GAA+BtH,EAAM,YAAY,GAE5ChR,EAAAgR,EAAA,YAAA,MAAAhR,EAAW,IAAI,WAEpB,CAACkY,GAAuClH,EAAM,SAAS,GACvD,CAACoH,GAAkCpH,EAAM,QAAQ,GACjDA,EAAK,WAAa,WAEb/Q,EAAA+Q,EAAA,YAAA,MAAA/Q,EAAW,IAAI,iBAElB,GAACC,EAAA8Q,EAAK,YAAL,MAAA9Q,EAAgB,SAAS,aAC1B,GAACC,EAAA6Q,EAAK,YAAL,MAAA7Q,EAAgB,SAAS,mBAC1B,GAACC,EAAA4Q,EAAK,YAAL,MAAA5Q,EAAgB,SAAS,eAC1B4Q,EAAK,WAAa,SAEb1Q,EAAA0Q,EAAA,YAAA,MAAA1Q,EAAW,IAAI,SACfoE,EAAAsM,EAAA,YAAA,MAAAtM,EAAW,IAAI,gBAEfQ,EAAA8L,EAAA,YAAA,MAAA9L,EAAW,IAAI,cAGjBD,EAAA+L,EAAA,YAAA,MAAA/L,EAAW,IAAI,mBACfG,EAAA4L,EAAA,YAAA,MAAA5L,EAAW,IAAI,WACf4L,EAAA,aAAa,SAAU,KAAK,EAErC,CAAC,EAED,MAAMuH,GAAwB,CAC5B,kBAAmB,CACjB,yBACE,oFACF,wBAAyB,QAC3B,CACF,EAMMC,GAA8B,CAAC,CAAE,QAAAlc,KAAc,CAC7C,MAAAmc,EAAU7a,EAAM,OAAuB,IAAI,EAC3C,CAAC8a,EAAOC,CAAQ,EAAI/a,EAAM,SAAwB,CAAA,CAAE,EAE1D,OAAAA,EAAM,UAAU,IAAM,CAChB,GAAC6a,EAAQ,SAGTA,EAAQ,QAAS,CACnB,MAAMC,EAAuB,MAAM,KACjCD,EAAQ,QAAQ,iBAAiB,iBAAiB,CAAA,EAEpDE,EAASD,CAAK,CAChB,CAAA,EACC,CAACD,EAAQ,OAAO,CAAC,EAIhBxb,EAAA,KAAAwB,WAAA,CAAA,SAAA,CAAAD,EAAA,IAAC,MAAA,CACC,UAAU,iBACV,IAAKia,EACL,wBAAyB,CACvB,OAAQ7I,GAAc,SAAStT,EAAS,CACtC,aAAc,CACZ,SACA,KACA,KACA,KACA,KACA,KACA,IACA,MACA,aACA,KACA,KACA,KACA,KACA,IACA,OACA,MACA,KACA,QACA,KACA,KACA,KACA,QACF,EACA,aAAc,CAAC,MAAO,OAAQ,QAAS,QAAS,UAAW,OAAO,CAAA,CACnE,CACH,CAAA,CACF,EACCoc,EAAM,IAAKE,GAAc,CAClB,MAAAlB,EAAYkB,EAAU,aAAa,eAAe,EAClDC,EACJra,EAAA,IAACmZ,GAAA,CACC,UAAAD,EACA,oBAAqBa,EAAA,CAAA,EAIlB,OAAAO,GAAA,aAAaD,EAAYD,CAAS,CAAA,CAC1C,CACH,CAAA,CAAA,CAEJ,EC1UMG,GAA4C,CAChDC,EACAC,IACG,CACH,GAAI,CAACD,EACI,OAAA,KAGL,GAAAlO,GAAekO,CAAa,EAC9B,aACG,MAAI,CAAA,UAAU,oCACZ,SAAA1E,GAAkB0E,CAAa,CAClC,CAAA,EAIJ,GAAIA,EAAc,YAAY,CAAC,IAAM,cAC5B,OAAA,KAGH,KAAA,CACJ,UAAW,CAAE,MAAOE,CAAU,EAC9B,SAAU,CAAE,MAAOC,CAAS,EAC5B,aAAc,CAAE,MAAOC,CAAa,EACpC,UAAW,CAAE,cAAeC,CAAU,EACtC,UAAW,CAAE,MAAOC,CAAU,EAC9B,MAAO,CAAE,MAAOC,CAAM,CACpB,EAAAP,EAGF,OAAA/b,EAAA,KAAC,MAAA,CACC,UAAW,GACTgc,EAAc,gBAAkB,EAClC,iDAEC,SAAA,CAAAI,GAAA,MAAAA,EAAW,IACV7a,EAAA,IAAC,MAAA,CACC,IAAK6a,GAAA,YAAAA,EAAW,IAChB,UAAU,2CAAA,CAAA,EAEV,KACJpc,EAAAA,KAAC,MAAI,CAAA,UAAU,sDACb,SAAA,CAACA,EAAAA,KAAA,IAAA,CAAE,UAAU,yCACV,SAAA,CAAAic,EAAU,IAAEC,CAAA,EACf,EACC3a,EAAA,IAAA,IAAA,CAAE,UAAU,cAAe,SAAU8a,EAAA,EACtCrc,EAAAA,KAAC,IAAE,CAAA,UAAU,cAAc,SAAA,CAAA,QAAMmc,CAAA,EAAa,EAC9C5a,EAAA,IAAC,IAAA,CACC,UAAU,yCACV,KAAM,UAAU+a,CAAK,GAEpB,SAAAA,CAAA,CACH,CAAA,EACF,CAAA,CAAA,CAAA,CAGN,EAEMC,GAAyC7a,GAA8B,CACrE,KAAA,CACJ,iCAAA8a,EACA,mCAAAC,EACA,4BAAAC,CACE,EAAAhb,EAGF,OAAAH,EAAAA,IAAC,MAAI,CAAA,UAAU,yBAEb,SAAAvB,EAAA,KAAC,MAAA,CACC,UAAW,0KAEV,SAAA,CACCwc,GAAAjb,EAAA,IAAC,MAAA,CACC,UAAW,GACT,CAACkb,GACD,CAACC,EACG,gBACA,EACN,gBAEC,SAAAZ,GACCU,EACA,EACF,CAAA,CACF,GAEDC,GAAA,YAAAA,EAAoC,gBAClClb,MAAA,MAAA,CAAI,UAAU,eACZ,SAAAua,GACCW,CAAA,EAEJ,GAGDC,GAAA,YAAAA,EAA6B,gBAC5Bnb,EAAA,IAAC,MAAA,CACC,UAAW,GACTkb,GACA,CAACD,EACG,gBACA,EACN,qBAEA,SAAAjb,EAAAA,IAAC,OAAI,UAAU,2CACb,eAACsT,EAAY,CAAA,YAAa6H,EAA6B,CACzD,CAAA,CAAA,CACF,CAAA,CAAA,CAGN,CAAA,CAAA,CAEJ,EC1HMC,GAAiBC,GAA0B,CAC/C,KAAM,CAACC,EAAaC,CAAc,EAAI/X,EAAAA,SAAS,OAAO,UAAU,EAEhEO,OAAAA,EAAAA,UAAU,IAAM,CACd,MAAMyX,EAAe,IAAM,CACvBD,EAAe,OAAO,UAAU,CAAA,EAG7B,cAAA,iBAAiB,SAAUC,CAAY,EAGvC,IAAM,CACJ,OAAA,oBAAoB,SAAUA,CAAY,CAAA,CAErD,EAAG,CAAE,CAAA,EAEEF,EAAcD,CACvB,ECNA,SAASI,GAAWC,EAA2B,CACvC,MAAAC,EAAO,IAAI,KAAKD,CAAS,EAGzB5W,EAAsC,CAC1C,IAAK,UACL,MAAO,QACP,KAAM,SAAA,EAIR,OAAO6W,EAAK,mBAAmB,QAAS7W,CAAO,EAAE,QAAQ,KAAM,EAAE,CACnE,CAEA,MAAM4T,GAAa,CAAC,CAAE,QAAA5a,KAAgC,SAE9C,MAAAsW,EAAWgH,GAAc,GAAG,EAE9B,OAAA9Z,GAAAC,EAAAzD,GAAA,YAAAA,EAAS,YAAT,YAAAyD,EAAoB,gBAApB,MAAAD,EAAmC,IAEnCtB,EAAA,IAACsR,GAAA,CACC,KAAMxT,EAAQ,KACd,aAAa,QACb,gBAAiBA,EAAQ,oBACzB,YAAa,CACX,MAAOA,EAAQ,UAAU,MACzB,iBAAkB,sBAClB,YAAa,CACX,UAAW,EACb,CACF,EACA,MAAO,CACL,iBAAkB,qBAClB,MAAOA,EAAQ,KACf,YAAa,IACf,EACA,MAAOA,EAAQ,UACf,gBAAiB,CACf,iBAAkB,qBAClB,MAAO,kBACT,EACA,kBAAmBsW,EACnB,yBAA0BA,EAAW,MAAQ,IAAA,CAAA,EAI/C3V,EAAA,KAAC,MAAI,CAAA,UAAU,2BACb,SAAA,CAACA,EAAAA,KAAA,IAAA,CAAE,UAAU,mDAAmD,SAAA,CAACuB,EAAAA,IAAA,IAAA,CAAG,WAAQ,mBAAoB,CAAA,EAAI,IAAEyb,GAAW3d,EAAQ,YAAY,CAAA,EAAE,EACtIkC,EAAA,IAAA,KAAA,CAAG,UAAU,0EAA2E,WAAQ,KAAK,QACrG,IAAE,CAAA,UAAU,gFAAiF,SAAAlC,EAAQ,UAAU,MAAM,CACxH,CAAA,CAAA,CAGN,EAGa8d,GAA0C,CAAC,CAAE,QAAA9d,KAAc,SACtE,OAAKA,EAKHW,EAAA,KAAC,MAAI,CAAA,UAAU,8BAIb,SAAA,CAACuB,EAAAA,IAAA,MAAA,CAAI,UAAU,4BAA6B,CAAA,EAE5CA,MAAC0Y,IAAW,QAAA5a,EAAkB,EAC7BkC,EAAA,IAAAga,GAAA,CAAS,QAASlc,EAAQ,SAAS,MAAO,EAC3CkC,EAAA,IAACgb,GAAA,CACC,kCAAkCzZ,EAAAzD,EAAQ,iCAAiC,gBAAzC,YAAAyD,EAAyD,GAC3F,4BAA6BzD,EAAQ,4BACrC,oCAAoCwD,EAAAxD,EAAQ,mCAAmC,gBAA3C,YAAAwD,EAA2D,EAAC,CAClG,EACCxD,EAAQ,6BAA6B,OAASA,EAAQ,6BAA6B,cAC/EkC,EAAAA,IAAA,MAAA,CAAI,UAAU,OAAO,eAACsT,EAAY,CAAA,YAAaxV,EAAQ,4BAAA,CAA8B,CAAE,CAAA,EACxF,IACN,CAAA,CAAA,EApBSkC,EAAA,IAAAC,WAAA,CAAA,CAAA,CAsBb,EC9Ea4b,GAAgD,CAAC,CAAE,YAAAC,KAAkB,CAI5E,GAHA,CAACA,GAGD,CAACA,EAAY,YACR,OAAA,KAGL,GAAAje,GAAYie,CAAW,EAClB,OAAA9b,EAAA,IAAC+W,GAAU,CAAA,QAAS+E,CAAa,CAAA,EAGtC,GAAApQ,GAAcoQ,CAAW,EACpB,OAAA9b,EAAA,IAAC4Y,GAAY,CAAA,QAASkD,CAAY,CAAA,EAGvC,GAAAhP,GAAcgP,CAAW,EACpB,OAAA9b,EAAA,IAAC4b,GAAY,CAAA,QAASE,CAAY,CAAA,EAGvC,GAAAxQ,GAAqBwQ,CAAW,EAC3B,OAAA9b,EAAA,IAAC+X,GAAmB,CAAA,QAAS+D,CAAY,CAAA,CAEpD,EChCaC,GAAW,CAAC,CAAE,OAAAC,KAAiC,CAClD,MAAAle,EAAUsb,GAAkC,CAAC,SAAS,EAAG,IAAMH,GAAuB+C,CAAM,CAAC,EAEnG,OAAKle,EAKDkC,EAAA,IAAC,OAAI,UAAU,mBACX,eAAC6b,GAAe,CAAA,YAAa/d,EAAQ,IAAM,CAAA,CAC/C,CAAA,EANO,IAQf,ECZMme,GAAc,SAAS,eAAe,eAAe,EAE3D,GAAIA,GAAa,CACP,MAAAC,EAAMC,GAAWF,EAAW,EAC5BD,EAASC,GAAY,QAAQ,cAEnC,GAAI,CAACD,EAAc,MAAA,IAAI,MAAM,kBAAkB,EAC3CE,EAAA,aACC5C,GAAoB,CAAA,OAAQC,GACzB,SAACvZ,EAAA,IAAA+b,GAAA,CAAS,OAAAC,CAAgB,CAAA,EAC9B,CAAA,CAER"}