{"version":3,"file":"static/js/blocks20.acedf93a.chunk.js","mappings":"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","sources":["blocks/components/NewsSlider/components/Carousel/helpers/getInViewChildren.ts","webpack://@danishagro/cms/./src/blocks/components/NewsSlider/components/Carousel/Carousel.module.scss?ca9c","blocks/components/NewsSlider/components/Carousel/Carousel.tsx","blocks/components/NewsSlider/hooks/useAlignment.hook.ts","webpack://@danishagro/cms/./src/blocks/components/NewsSlider/NewsSlider.module.scss?5db2","blocks/components/NewsSlider/NewsSlider.component.tsx","blocks/components/NewsSlider/hooks/useItems.hook.ts","blocks/components/NewsSlider/components/News/hooks/useTags.hook.ts","webpack://@danishagro/cms/./src/blocks/components/NewsSlider/components/News/News.module.scss?f303","blocks/components/NewsSlider/components/News/News.component.tsx","../../../node_modules/src/observe.ts","../../../node_modules/src/InView.tsx","../../../node_modules/src/useInView.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const getInViewChildren = (listElementRef: any) => {\n const result: number[] = [];\n\n if (listElementRef) {\n const children = listElementRef.children;\n\n for (let i = 0; i < children.length; i++) {\n const isInView = children[i].classList.contains(\"in_view\");\n\n if (isInView) {\n result.push(i);\n }\n }\n }\n\n return result;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"Carousel_wrapper__lUXm4\",\"list\":\"Carousel_list__3Mnn6\",\"pagination\":\"Carousel_pagination__LCxkA\",\"buttonWrapper\":\"Carousel_buttonWrapper__bSwT8\",\"previous\":\"Carousel_previous__glDgM\",\"next\":\"Carousel_next__snzAT\",\"link\":\"Carousel_link__qiQxR\"};","import React, { useEffect, useRef, useState } from \"react\";\nimport { DA_IconNames } from \"@danishagro/shared/src/components/atoms/Icon/Icon.component\";\nimport { DA_InlineLink } from \"@danishagro/shared/src/components/atoms/InlineLink/InlineLink.component\";\nimport { DA_Button } from \"@danishagro/shared/src/components/atoms/Button/Button.component\";\nimport { CarouselProps } from \"./CarouselProps\";\nimport { getInViewChildren } from \"./helpers/getInViewChildren\";\nimport S from \"./Carousel.module.scss\";\n\nexport const Carousel = (props: CarouselProps) => {\n const listElementRef = useRef(null);\n\n const [showPagination, setShowPagination] = useState(true);\n\n const onPreviousClick = () => {\n const inViewIndexes = getInViewChildren(listElementRef.current);\n\n if (inViewIndexes && inViewIndexes?.length > 0) {\n const currentIndex = inViewIndexes?.[0];\n\n if (listElementRef.current && typeof currentIndex !== \"undefined\" && currentIndex < 2) {\n listElementRef.current.scrollLeft = 0;\n } else if (listElementRef.current && currentIndex) {\n const previousElement = listElementRef.current.children?.[\n currentIndex - 1\n ] as HTMLElement;\n listElementRef.current.scrollTo({\n left: previousElement.offsetLeft,\n top: 0,\n behavior: \"smooth\",\n });\n }\n }\n };\n\n const onNextClick = () => {\n const inViewIndexes = getInViewChildren(listElementRef.current);\n\n if (inViewIndexes && inViewIndexes?.length > 0) {\n const currentIndex = inViewIndexes[inViewIndexes.length - 1];\n\n if (\n listElementRef.current &&\n currentIndex === listElementRef.current.children.length - 1\n ) {\n listElementRef.current.scrollLeft = listElementRef.current.scrollWidth;\n } else if (listElementRef.current) {\n const nextElement = listElementRef.current.children?.[\n currentIndex + 1\n ] as HTMLElement;\n listElementRef.current.scrollTo({\n left: nextElement.offsetLeft,\n top: 0,\n behavior: \"smooth\",\n });\n }\n }\n };\n\n useEffect(() => {\n const updatePaginationVisibility = () => {\n const totalItems = React.Children.toArray(props.children).length;\n const inViewIndexes = getInViewChildren(listElementRef.current);\n const allItemsInView = inViewIndexes.length === totalItems;\n\n setShowPagination(!allItemsInView);\n };\n\n const observer = new MutationObserver(updatePaginationVisibility);\n if (listElementRef.current) {\n observer.observe(listElementRef.current, {\n childList: true, // Observe direct children additions/removals\n subtree: true, // Observe all descendants\n attributes: true, // Observe attributes changes\n characterData: true, // Observe text changes\n });\n }\n\n updatePaginationVisibility(); // Initial check\n window.addEventListener(\"resize\", updatePaginationVisibility);\n\n return () => {\n observer.disconnect();\n window.removeEventListener(\"resize\", updatePaginationVisibility);\n };\n }, [props.children]);\n\n return (\n
\n {/* List */}\n
\n {props.children}\n
\n\n {/* Pagination */}\n {showPagination && (\n
\n
\n onPreviousClick()}\n icon={DA_IconNames.ChevronLeft}\n className={S.previous}\n isGhost\n />\n\n onNextClick()}\n icon={DA_IconNames.ChevronRight}\n className={S.next}\n isGhost\n />\n
\n\n {props.link?.url ? (\n \n ) : null}\n
\n )}\n
\n );\n};\n","import { useMemo } from \"react\";\n\nexport const useAlignment = (alignment: string, S: { [key: string]: string }) => {\n const alignmentClass = useMemo(() => {\n switch (alignment) {\n case \"ALIGNMENT_LEFT\":\n return S.alignmentLeft;\n }\n }, [alignment, S]);\n\n return {\n alignmentClass,\n };\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"NewsSlider_wrapper__RNuGx\",\"inner\":\"NewsSlider_inner__bE6Cn\",\"header\":\"NewsSlider_header__Fv1tD\",\"alignmentLeft\":\"NewsSlider_alignmentLeft__EZpYw\",\"tagline\":\"NewsSlider_tagline__oC2Qq\",\"item\":\"NewsSlider_item__PLiYQ\",\"item-3\":\"NewsSlider_item-3__KdYzD\",\"item-2\":\"NewsSlider_item-2__OTFPw\",\"item-1\":\"NewsSlider_item-1__4UKzt\"};","import React from \"react\";\nimport { DA_Container } from \"@danishagro/shared/src/components/atoms/Container/Container.component\";\nimport {\n DA_Title,\n DA_TitleTag,\n} from \"@danishagro/shared/src/components/atoms/Title/Title.component\";\nimport { DA_Text } from \"@danishagro/shared/src/components/atoms/Text/Text.component\";\nimport { useBackgroundColor } from \"src/blocks/hooks/useBackgroundColor/useBackgroundColor.hook\";\nimport { usePadding } from \"src/blocks/hooks/usePadding/usePadding.hook\";\nimport { cn } from \"@danishagro/shared/src/helpers/classNames.helper\";\nimport { NewsSliderProps } from \"./NewsSlider.interface\";\nimport { Carousel } from \"./components/Carousel/Carousel\";\nimport { useItems } from \"./hooks/useItems.hook\";\nimport News from \"./components/News/News.component\";\n// eslint-disable-next-line css-modules/no-unused-class\nimport { useAlignment } from \"./hooks/useAlignment.hook\";\nimport S from \"./NewsSlider.module.scss\";\n\nconst NewsSlider = (props: NewsSliderProps) => {\n const { backgroundColorClass, hasBackgroundColor } = useBackgroundColor(props.backgroundColor);\n const { paddingClass } = usePadding(props.isCompact, hasBackgroundColor);\n const { alignmentClass } = useAlignment(props.alignment, S);\n\n const { items, viewState } = useItems();\n\n // Function to get item class based on item count\n const getItemClassName = (itemCount: number) => {\n switch (itemCount) {\n case 1:\n return `${S.item} ${S[\"item-1\"]}`;\n case 2:\n return `${S.item} ${S[\"item-2\"]}`;\n case 3:\n return `${S.item} ${S[\"item-3\"]}`;\n default:\n return S.item;\n }\n };\n\n return (\n
\n \n {/** Content */}\n
\n {/** Content */}\n
\n {/** Tagline */}\n {props.tagline ? {props.tagline} : null}\n\n {/** Title */}\n {props.headline ? (\n \n {props.headline}\n \n ) : null}\n\n {/** Text */}\n {props.text ? : null}\n {/* TODO: Set width of Items based on items amount (Create switch with class names) */}\n
\n\n {viewState === \"DONE\" ? (\n \n {items.map((item, key) => (\n \n ))}\n \n ) : null}\n
\n
\n
\n );\n};\n\nexport default NewsSlider;\n","import { useCallback, useEffect, useState } from \"react\";\nimport { getAbsoluteUrl } from \"@helpers/getAbsoluteUrl.helper\";\nimport { NewsSliderProps } from \"../NewsSlider.interface\";\n\nexport const useItems = () => {\n const [items, setItems] = useState(undefined);\n const [viewState, setViewState] = useState(\"INIT\");\n\n const fetchItems = useCallback(async () => {\n const cultureCode = globalThis?.cultures[0]?.alias;\n\n try {\n const url = getAbsoluteUrl(\"/getnewslist\", \"SPA\", {\n rootNodeId: globalThis.rootNodeId,\n });\n\n const request = await fetch(`${url}&cultureCode=${cultureCode}`);\n\n if (request) {\n const response = await request.json();\n return response;\n }\n } catch {\n // Empty\n }\n }, []);\n\n const getItems = useCallback(async () => {\n try {\n const response = await fetchItems();\n\n if (response) {\n setItems(response);\n setViewState(\"DONE\");\n } else {\n throw new Error();\n }\n } catch {\n setItems(undefined);\n setViewState(\"ERROR\");\n }\n }, [fetchItems]);\n\n // Init\n\n useEffect(() => {\n getItems();\n }, [getItems]);\n\n return {\n items,\n viewState,\n };\n};\n","import { useMemo } from \"react\";\n\nexport const useTags = (tag: string, S: { [key: string]: string }) => {\n const tagClass = useMemo(() => {\n switch (tag) {\n case \"News\":\n return S.tagNews;\n case \"Press\":\n return S.tagPress;\n case \"Partnership\":\n return S.tagPartnership;\n }\n }, [tag, S]);\n\n return {\n tagClass,\n };\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"News_wrapper__J-YiG\",\"imageWrapper\":\"News_imageWrapper__zhI9+\",\"tags\":\"News_tags__rgZAw\",\"tag\":\"News_tag__gR21b\",\"tagNews\":\"News_tagNews__vP4eB\",\"tagPress\":\"News_tagPress__58VRo\",\"tagPartnership\":\"News_tagPartnership__bELQG\",\"inner\":\"News_inner__Nna6K\",\"image\":\"News_image__YsaXE\",\"textWrapper\":\"News_textWrapper__1sftk\",\"title\":\"News_title__Jz1Ea\"};","import React from \"react\";\nimport { useInView } from \"react-intersection-observer\";\nimport {\n DA_Title,\n DA_TitleTag,\n} from \"@danishagro/shared/src/components/atoms/Title/Title.component\";\nimport { cn } from \"@danishagro/shared/src/helpers/classNames.helper\";\nimport { DA_Button } from \"@danishagro/shared/src/components/atoms/Button/Button.component\";\nimport { getAbsoluteUrl } from \"@helpers/getAbsoluteUrl.helper\";\nimport { useTranslations } from \"@danishagro/shared/src/contexts/translations/translations.context\";\nimport useFormattedCultureDate from \"@hooks/useFormattedCultureDate.hook\";\nimport { ImageViewer } from \"../../../../../components/ImageViewer/ImageViewer.component\";\nimport { NewsProps } from \"./News.interface\";\nimport { useTags } from \"./hooks/useTags.hook\";\n// eslint-disable-next-line css-modules/no-unused-class\nimport S from \"./News.module.scss\";\n\nconst News = (props: NewsProps) => {\n const { getDictionaryString } = useTranslations();\n\n const [wrapperElementRef, inView] = useInView({\n triggerOnce: false,\n threshold: 0.3,\n rootMargin: \"0px -80px 0px 0px\",\n });\n const isInViewClass = inView === true ? \"in_view\" : undefined;\n\n const { tagClass } = useTags(props.tags[0], S);\n\n //use dateCulture from Umbraco global settings\n const publishedDate = useFormattedCultureDate(props?.publishedDate);\n\n return (\n \n
\n
\n {/** Image */}\n {props.thumbnail ? (\n \n ) : null}\n\n {/**Tags*/}\n {props.tags ? (\n
\n {props.tags.map((tag, index) => (\n
\n {tag}\n
\n ))}\n
\n ) : null}\n
\n {/**Content */}\n
\n {/** publishedDate */}\n {props.publishedDate ? {publishedDate} : null}\n\n {/** Title */}\n {props.title ? (\n
\n \n {props.title}\n \n
\n ) : null}\n\n {/** Button */}\n {/*// News open in new tab*/}\n {props.url ? (\n
\n \n
\n ) : null}\n
\n
\n \n );\n};\n\nexport default News;\n","import type { ObserverInstanceCallback } from './index';\n\nconst observerMap = new Map<\n string,\n {\n id: string;\n observer: IntersectionObserver;\n elements: Map>;\n }\n>();\n\nconst RootIds: WeakMap = new WeakMap();\nlet rootId = 0;\n\nlet unsupportedValue: boolean | undefined = undefined;\n\n/**\n * What should be the default behavior if the IntersectionObserver is unsupported?\n * Ideally the polyfill has been loaded, you can have the following happen:\n * - `undefined`: Throw an error\n * - `true` or `false`: Set the `inView` value to this regardless of intersection state\n * **/\nexport function defaultFallbackInView(inView: boolean | undefined) {\n unsupportedValue = inView;\n}\n\n/**\n * Generate a unique ID for the root element\n * @param root\n */\nfunction getRootId(root: IntersectionObserverInit['root']) {\n if (!root) return '0';\n if (RootIds.has(root)) return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\n\n/**\n * Convert the options to a string Id, based on the values.\n * Ensures we can reuse the same observer when observing elements with the same options.\n * @param options\n */\nexport function optionsToId(options: IntersectionObserverInit) {\n return Object.keys(options)\n .sort()\n .filter(\n (key) => options[key as keyof IntersectionObserverInit] !== undefined,\n )\n .map((key) => {\n return `${key}_${\n key === 'root'\n ? getRootId(options.root)\n : options[key as keyof IntersectionObserverInit]\n }`;\n })\n .toString();\n}\n\nfunction createObserver(options: IntersectionObserverInit) {\n // Create a unique ID for this observer instance, based on the root, root margin and threshold.\n let id = optionsToId(options);\n let instance = observerMap.get(id);\n\n if (!instance) {\n // Create a map of elements this observer is going to observe. Each element has a list of callbacks that should be triggered, once it comes into view.\n const elements = new Map>();\n let thresholds: number[] | readonly number[];\n\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n // While it would be nice if you could just look at isIntersecting to determine if the component is inside the viewport, browsers can't agree on how to use it.\n // -Firefox ignores `threshold` when considering `isIntersecting`, so it will never be false again if `threshold` is > 0\n const inView =\n entry.isIntersecting &&\n thresholds.some((threshold) => entry.intersectionRatio >= threshold);\n\n // @ts-ignore support IntersectionObserver v2\n if (options.trackVisibility && typeof entry.isVisible === 'undefined') {\n // The browser doesn't support Intersection Observer v2, falling back to v1 behavior.\n // @ts-ignore\n entry.isVisible = inView;\n }\n\n elements.get(entry.target)?.forEach((callback) => {\n callback(inView, entry);\n });\n });\n }, options);\n\n // Ensure we have a valid thresholds array. If not, use the threshold from the options\n thresholds =\n observer.thresholds ||\n (Array.isArray(options.threshold)\n ? options.threshold\n : [options.threshold || 0]);\n\n instance = {\n id,\n observer,\n elements,\n };\n\n observerMap.set(id, instance);\n }\n\n return instance;\n}\n\n/**\n * @param element - DOM Element to observe\n * @param callback - Callback function to trigger when intersection status changes\n * @param options - Intersection Observer options\n * @param fallbackInView - Fallback inView value.\n * @return Function - Cleanup function that should be triggered to unregister the observer\n */\nexport function observe(\n element: Element,\n callback: ObserverInstanceCallback,\n options: IntersectionObserverInit = {},\n fallbackInView = unsupportedValue,\n) {\n if (\n typeof window.IntersectionObserver === 'undefined' &&\n fallbackInView !== undefined\n ) {\n const bounds = element.getBoundingClientRect();\n callback(fallbackInView, {\n isIntersecting: fallbackInView,\n target: element,\n intersectionRatio:\n typeof options.threshold === 'number' ? options.threshold : 0,\n time: 0,\n boundingClientRect: bounds,\n intersectionRect: bounds,\n rootBounds: bounds,\n });\n return () => {\n // Nothing to cleanup\n };\n }\n // An observer with the same options can be reused, so lets use this fact\n const { id, observer, elements } = createObserver(options);\n\n // Register the callback listener for this element\n let callbacks = elements.get(element) || [];\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n\n callbacks.push(callback);\n observer.observe(element);\n\n return function unobserve() {\n // Remove the callback from the callback list\n callbacks.splice(callbacks.indexOf(callback), 1);\n\n if (callbacks.length === 0) {\n // No more callback exists for element, so destroy it\n elements.delete(element);\n observer.unobserve(element);\n }\n\n if (elements.size === 0) {\n // No more elements are being observer by this instance, so destroy it\n observer.disconnect();\n observerMap.delete(id);\n }\n };\n}\n","import * as React from 'react';\nimport type { IntersectionObserverProps, PlainChildrenProps } from './index';\nimport { observe } from './observe';\n\ntype State = {\n inView: boolean;\n entry?: IntersectionObserverEntry;\n};\n\nfunction isPlainChildren(\n props: IntersectionObserverProps | PlainChildrenProps,\n): props is PlainChildrenProps {\n return typeof props.children !== 'function';\n}\n\n/**\n ## Render props\n\n To use the `` component, you pass it a function. It will be called\n whenever the state changes, with the new value of `inView`. In addition to the\n `inView` prop, children also receive a `ref` that should be set on the\n containing DOM element. This is the element that the IntersectionObserver will\n monitor.\n\n If you need it, you can also access the\n [`IntersectionObserverEntry`](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry)\n on `entry`, giving you access to all the details about the current intersection\n state.\n\n ```jsx\n import { InView } from 'react-intersection-observer';\n\n const Component = () => (\n \n {({ inView, ref, entry }) => (\n
\n

{`Header inside viewport ${inView}.`}

\n
\n )}\n
\n );\n\n export default Component;\n ```\n\n ## Plain children\n\n You can pass any element to the ``, and it will handle creating the\n wrapping DOM element. Add a handler to the `onChange` method, and control the\n state in your own component. Any extra props you add to `` will be\n passed to the HTML element, allowing you set the `className`, `style`, etc.\n\n ```jsx\n import { InView } from 'react-intersection-observer';\n\n const Component = () => (\n console.log('Inview:', inView)}>\n

Plain children are always rendered. Use onChange to monitor state.

\n
\n );\n\n export default Component;\n ```\n */\nexport class InView extends React.Component<\n IntersectionObserverProps | PlainChildrenProps,\n State\n> {\n constructor(props: IntersectionObserverProps | PlainChildrenProps) {\n super(props);\n this.state = {\n inView: !!props.initialInView,\n entry: undefined,\n };\n }\n\n componentDidUpdate(prevProps: IntersectionObserverProps) {\n // If a IntersectionObserver option changed, reinit the observer\n if (\n prevProps.rootMargin !== this.props.rootMargin ||\n prevProps.root !== this.props.root ||\n prevProps.threshold !== this.props.threshold ||\n prevProps.skip !== this.props.skip ||\n prevProps.trackVisibility !== this.props.trackVisibility ||\n prevProps.delay !== this.props.delay\n ) {\n this.unobserve();\n this.observeNode();\n }\n }\n\n componentWillUnmount() {\n this.unobserve();\n this.node = null;\n }\n\n node: Element | null = null;\n _unobserveCb: (() => void) | null = null;\n\n observeNode() {\n if (!this.node || this.props.skip) return;\n const {\n threshold,\n root,\n rootMargin,\n trackVisibility,\n delay,\n fallbackInView,\n } = this.props;\n\n this._unobserveCb = observe(\n this.node,\n this.handleChange,\n {\n threshold,\n root,\n rootMargin,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay,\n },\n fallbackInView,\n );\n }\n\n unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n this._unobserveCb = null;\n }\n }\n\n handleNode = (node?: Element | null) => {\n if (this.node) {\n // Clear the old observer, before we start observing a new element\n this.unobserve();\n\n if (!node && !this.props.triggerOnce && !this.props.skip) {\n // Reset the state if we get a new node, and we aren't ignoring updates\n this.setState({ inView: !!this.props.initialInView, entry: undefined });\n }\n }\n\n this.node = node ? node : null;\n this.observeNode();\n };\n\n handleChange = (inView: boolean, entry: IntersectionObserverEntry) => {\n if (inView && this.props.triggerOnce) {\n // If `triggerOnce` is true, we should stop observing the element.\n this.unobserve();\n }\n if (!isPlainChildren(this.props)) {\n // Store the current State, so we can pass it to the children in the next render update\n // There's no reason to update the state for plain children, since it's not used in the rendering.\n this.setState({ inView, entry });\n }\n if (this.props.onChange) {\n // If the user is actively listening for onChange, always trigger it\n this.props.onChange(inView, entry);\n }\n };\n\n render() {\n const { children } = this.props;\n if (typeof children === 'function') {\n const { inView, entry } = this.state;\n return children({ inView, entry, ref: this.handleNode });\n }\n\n const {\n as,\n triggerOnce,\n threshold,\n root,\n rootMargin,\n onChange,\n skip,\n trackVisibility,\n delay,\n initialInView,\n fallbackInView,\n ...props\n } = this.props as PlainChildrenProps;\n\n return React.createElement(\n as || 'div',\n { ref: this.handleNode, ...props },\n children,\n );\n }\n}\n","import * as React from 'react';\nimport type { InViewHookResponse, IntersectionOptions } from './index';\nimport { observe } from './observe';\n\ntype State = {\n inView: boolean;\n entry?: IntersectionObserverEntry;\n};\n\n/**\n * React Hooks make it easy to monitor the `inView` state of your components. Call\n * the `useInView` hook with the (optional) [options](#options) you need. It will\n * return an array containing a `ref`, the `inView` status and the current\n * [`entry`](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry).\n * Assign the `ref` to the DOM element you want to monitor, and the hook will\n * report the status.\n *\n * @example\n * ```jsx\n * import React from 'react';\n * import { useInView } from 'react-intersection-observer';\n *\n * const Component = () => {\n * const { ref, inView, entry } = useInView({\n * threshold: 0,\n * });\n *\n * return (\n *
\n *

{`Header inside viewport ${inView}.`}

\n *
\n * );\n * };\n * ```\n */\nexport function useInView({\n threshold,\n delay,\n trackVisibility,\n rootMargin,\n root,\n triggerOnce,\n skip,\n initialInView,\n fallbackInView,\n onChange,\n}: IntersectionOptions = {}): InViewHookResponse {\n const [ref, setRef] = React.useState(null);\n const callback = React.useRef();\n const [state, setState] = React.useState({\n inView: !!initialInView,\n entry: undefined,\n });\n\n // Store the onChange callback in a `ref`, so we can access the latest instance\n // inside the `useEffect`, but without triggering a rerender.\n callback.current = onChange;\n\n React.useEffect(\n () => {\n // Ensure we have node ref, and that we shouldn't skip observing\n if (skip || !ref) return;\n\n let unobserve: (() => void) | undefined;\n unobserve = observe(\n ref,\n (inView, entry) => {\n setState({\n inView,\n entry,\n });\n if (callback.current) callback.current(inView, entry);\n\n if (entry.isIntersecting && triggerOnce && unobserve) {\n // If it should only trigger once, unobserve the element after it's inView\n unobserve();\n unobserve = undefined;\n }\n },\n {\n root,\n rootMargin,\n threshold,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay,\n },\n fallbackInView,\n );\n\n return () => {\n if (unobserve) {\n unobserve();\n }\n };\n },\n // We break the rule here, because we aren't including the actual `threshold` variable\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n // If the threshold is an array, convert it to a string, so it won't change between renders.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n Array.isArray(threshold) ? threshold.toString() : threshold,\n ref,\n root,\n rootMargin,\n triggerOnce,\n skip,\n trackVisibility,\n fallbackInView,\n delay,\n ],\n );\n\n const entryTarget = state.entry?.target;\n const previousEntryTarget = React.useRef();\n if (\n !ref &&\n entryTarget &&\n !triggerOnce &&\n !skip &&\n previousEntryTarget.current !== entryTarget\n ) {\n // If we don't have a node ref, then reset the state (unless the hook is set to only `triggerOnce` or `skip`)\n // This ensures we correctly reflect the current state - If you aren't observing anything, then nothing is inView\n previousEntryTarget.current = entryTarget;\n setState({\n inView: !!initialInView,\n entry: undefined,\n });\n }\n\n const result = [setRef, state.inView, state.entry] as InViewHookResponse;\n\n // Support object destructuring, by adding the specific values.\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n\n return result;\n}\n"],"names":["getInViewChildren","listElementRef","result","children","i","length","classList","contains","push","Carousel","props","_props$link","_props$link2","useRef","showPagination","setShowPagination","useState","useEffect","updatePaginationVisibility","totalItems","React","toArray","allItemsInView","current","observer","MutationObserver","observe","childList","subtree","attributes","characterData","window","addEventListener","disconnect","removeEventListener","_jsxs","className","S","_jsx","ref","DA_Button","onClick","onPreviousClick","inViewIndexes","currentIndex","scrollLeft","_listElementRef$curre","previousElement","scrollTo","left","offsetLeft","top","behavior","icon","DA_IconNames","ChevronLeft","isGhost","onNextClick","scrollWidth","_listElementRef$curre2","nextElement","ChevronRight","link","url","DA_InlineLink","title","label","href","ArrowRight","target","backgroundColorClass","hasBackgroundColor","useBackgroundColor","backgroundColor","paddingClass","usePadding","isCompact","alignmentClass","alignment","useMemo","alignmentLeft","useAlignment","items","viewState","useItems","setItems","undefined","setViewState","fetchItems","useCallback","async","_globalThis$cultures$","cultureCode","globalThis","cultures","alias","getAbsoluteUrl","rootNodeId","request","fetch","json","getItems","response","Error","getItemClassName","itemCount","item","cn","wrapper","DA_Container","noVerticalPadding","inner","header","tagline","headline","DA_Title","h3","tag","DA_TitleTag","H3","noMargin","fullWidth","text","DA_Text","html","noPadding","map","key","News","_props$thumbnail","getDictionaryString","useTranslations","wrapperElementRef","inView","useInView","triggerOnce","threshold","rootMargin","isInViewClass","tagClass","tags","tagNews","tagPress","tagPartnership","useTags","publishedDate","useFormattedCultureDate","imageWrapper","thumbnail","ImageViewer","src","image","forceWidth","index","textWrapper","observerMap","Map","RootIds","WeakMap","rootId","unsupportedValue","optionsToId","options","Object","keys","sort","filter","root","has","set","toString","get","element","callback","arguments","fallbackInView","IntersectionObserver","bounds","getBoundingClientRect","isIntersecting","intersectionRatio","time","boundingClientRect","intersectionRect","rootBounds","id","elements","instance","thresholds","entries","forEach","entry","_a","some","trackVisibility","isVisible","Array","isArray","createObserver","callbacks","splice","indexOf","delete","unobserve","size","delay","skip","initialInView","onChange","setRef","React2","state","setState","entryTarget","previousEntryTarget"],"sourceRoot":""}