{"version":3,"file":"ShareButton.chunk.298e9e006bbe496ce79e.js","mappings":"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","sources":["webpack://Kristiania.Web/./Features/Partials/Modal/Modal.module.css?303f","webpack://Kristiania.Web/./Features/Partials/Modal/Modal.tsx","webpack://Kristiania.Web/./Features/Utils/Hooks/useSafariFullScreenStylesAdjustments.ts","webpack://Kristiania.Web/./Features/Partials/Modal/PopupDialog/PopupDialog.module.css?3dfe","webpack://Kristiania.Web/./Features/Partials/Modal/PopupDialog/PopupDialog.tsx","webpack://Kristiania.Web/./Features/Partials/Modal/ClientSidePortal.tsx","webpack://Kristiania.Web/./Features/Partials/Modal/Portal.tsx","webpack://Kristiania.Web/./Features/Partials/ShareButton/ShareButton.tsx","webpack://Kristiania.Web/./Features/Partials/ShareButton/ShareButton.module.css?5098","webpack://Kristiania.Web/./Features/Utils/Hooks/useIsMounted.ts","webpack://Kristiania.Web/./Features/Utils/ScrollLock/ScrollLock.tsx","webpack://Kristiania.Web/./Features/Utils/ScrollLock/ScrollLock.module.css?3254","webpack://Kristiania.Web/./Features/Utils/ScrollLock/ScrollLockUpdated.ts"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"Modal\":\"A_FWqzJaZpuCrU1AV5Xg\",\"Variant--centered\":\"M_cM41J0WnU7WPrtPh4C\",\"Variant--centeredWithoutScroll\":\"w1nTmTWurnzZt4hRah55\",\"Inner\":\"u8sCgqz2v0iVrNNsqK2W\",\"Inner--withWrapper\":\"QawYGnmUUC_528mleE1K\",\"Content\":\"IJncJpwy1yfgLAu0mEwc\",\"CloseUnderlay\":\"mFsNVlRmbqcOxhg7uY8h\",\"Variant--fullScreen\":\"TMNX5Gnc0p27yuRMORqG\",\"Variant--rounded\":\"AS6ynSYtqcXMnvRPUSSs\"};","import classNames from 'classnames';\nimport type { Options as FocusTrapOptions } from 'focus-trap';\nimport { FocusTrap } from 'focus-trap-react';\nimport * as React from 'react';\nimport { useTheme } from '~/Features/Layouts/Theme/Context/ThemeContextProvider';\nimport { useSafariFullScreenStylesAdjustments } from '~/Utils/Hooks/useSafariFullScreenStylesAdjustments';\nimport { ScrollLock } from '~/Utils/ScrollLock/ScrollLock';\nimport type { Theme } from '~/Utils/Theme';\nimport styles from './Modal.module.css';\nimport type { ModalVariant } from './ModalVariant';\nimport { Portal } from './Portal';\n\nexport interface ModalProps {\n isOpen: boolean;\n onClose: () => void;\n variant: ModalVariant;\n withWrapper?: boolean;\n className?: string;\n contentClassName?: string;\n theme?: Pick;\n}\n\nexport const Modal: React.FC> = props => {\n const contextualTheme = useTheme();\n const {\n isOpen,\n onClose,\n children,\n variant,\n withWrapper,\n className,\n contentClassName,\n theme = contextualTheme,\n } = props;\n\n const isFullScreen = variant === 'fullScreen';\n useSafariFullScreenStylesAdjustments(isOpen, `safariModalFix`, isFullScreen);\n const { withRoundedCorners } = theme;\n\n const focusTrapOptions: FocusTrapOptions = isFullScreen\n ? {\n escapeDeactivates: false,\n }\n : {\n escapeDeactivates: true,\n onDeactivate: onClose,\n };\n\n return isOpen ? (\n \n \n \n \n
\n
{children}
\n
\n {!isFullScreen &&
}\n
\n
\n
\n ) : null;\n};\n","import * as React from 'react';\n\nexport function useSafariFullScreenStylesAdjustments(shouldAddClass: boolean, className: string, shouldRunHook = true) {\n React.useEffect(() => {\n const rootElementClassList = document.documentElement.classList;\n const hasClass = rootElementClassList.contains(className);\n const shouldModifyRootElement = shouldRunHook && shouldAddClass && !hasClass;\n\n if (shouldModifyRootElement) {\n rootElementClassList.add(className);\n }\n\n return () => {\n if (shouldModifyRootElement) {\n rootElementClassList.remove(className);\n }\n };\n }, [className, shouldAddClass, shouldRunHook]);\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"ModalContent\":\"ZQmtFzaQ6pYftBwsvPQH\",\"CloseButton\":\"tDIs2_eyOx7ZNumuyOEi\",\"Title\":\"QpUwFYwYUmIqffKkjalH\",\"Variant--modern\":\"tfT4Dh9X8iBeOSeVyJA3\"};","import classNames from 'classnames';\nimport * as React from 'react';\nimport { Modal } from '../Modal';\nimport { Button } from '~/Partials/Button/Button';\nimport { ButtonType } from '~/Partials/Button/ButtonType.csharp';\nimport { SvgIcon } from '~/Partials/SvgIcon/SvgIcon';\nimport styles from './PopupDialog.module.css';\n\nexport interface PopupDialogTranslations {\n closeModal: string;\n}\n\nexport interface PopupDialogProps {\n isOpen: boolean;\n onClose: () => void;\n translations: PopupDialogTranslations;\n title?: string;\n className?: string;\n variant?: 'default' | 'modern';\n}\n\nexport const PopupDialog: React.FC> = props => {\n const { isOpen, onClose, title, translations, children, className, variant = 'default' } = props;\n\n return (\n \n \n {title &&

{title}

}\n {children}\n \n );\n};\n","import * as React from 'react';\nimport { createPortal } from 'react-dom';\n\nconst portalContainerId = 'portal-container';\n\nexport const ClientSidePortal: React.FC = props => {\n const { children } = props;\n\n const portalContainer = document.getElementById(portalContainerId);\n const [isAttachedToDOM, setIsAttachedToDOM] = React.useState(false);\n\n if (!portalContainer) {\n throw new Error(`Portal requires element with id '${portalContainerId}' to be present in DOM`);\n }\n\n const elementReference = React.useRef(null);\n\n if (!elementReference.current) {\n elementReference.current = document.createElement('div');\n }\n\n React.useEffect(() => {\n if (elementReference.current) {\n portalContainer.appendChild(elementReference.current);\n setIsAttachedToDOM(true);\n }\n\n return () => {\n if (elementReference.current) {\n portalContainer.removeChild(elementReference.current);\n setIsAttachedToDOM(false);\n }\n };\n }, [portalContainer]);\n\n const portalContent = isAttachedToDOM && children;\n\n return createPortal(portalContent, elementReference.current);\n};\n","import * as React from 'react';\nimport { useIsMounted } from '~/Utils/Hooks/useIsMounted';\nimport { ClientSidePortal } from './ClientSidePortal';\n\nexport const Portal: React.FC = props => {\n const { children } = props;\n const isMounted = useIsMounted();\n\n return isMounted ? {children} : null;\n};\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport ExecutionContext from '../../ExecutionContext';\nimport { PopupDialog } from '../Modal/PopupDialog/PopupDialog';\nimport { SvgIcon } from '../SvgIcon/SvgIcon';\nimport { copyTextToClipboard, getCurrentUrl } from '../Utils/utils';\nimport { Button } from '~/Partials/Button/Button';\nimport { ButtonSize } from '~/Partials/Button/ButtonSize.csharp';\nimport { ButtonTier } from '~/Partials/Button/ButtonTier.csharp';\nimport { ButtonType } from '~/Partials/Button/ButtonType.csharp';\nimport styles from './ShareButton.module.css';\nimport type { ShareButtonViewModel } from './ShareButtonViewModel.csharp';\n\nexport const ShareButton: React.FunctionComponent> = props => {\n const { translations } = props;\n const [isModalOpened, setIsModalOpened] = React.useState(false);\n\n const copyToClipboard = async () => {\n if (inputEl.current && !ExecutionContext.IsServerSide()) {\n await copyTextToClipboard(inputEl.current.value);\n }\n };\n\n const buttonsProps = {\n size: ButtonSize.Large,\n tier: ButtonTier.LegacyPrimary,\n type: ButtonType.Solid,\n };\n\n const currentUrl = getCurrentUrl();\n const inputEl = React.useRef(null);\n\n return (\n <>\n \n setIsModalOpened(false)}\n title={translations.shareArticle}\n translations={translations}\n >\n
\n {currentUrl && (\n
\n \n \n
\n )}\n
\n \n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"ShareButton\":\"N1B_qBtWOrE4puw0ftgJ\",\"ModalContent\":\"XjjFpntFPoywE7VcibED\",\"CopyLink\":\"yMOognGAQ8R8lGuOpa7F\",\"CopyLinkButton\":\"BWPHzAE1M1Lfh4RMVaJD\"};","import { useEffect, useState } from 'react';\n\nexport const useIsMounted = () => {\n const [isMounted, setIsMounted] = useState(false);\n\n useEffect(() => {\n setIsMounted(true);\n }, []);\n\n return isMounted;\n};\n","import * as React from 'react';\nimport { MessageBroker } from '~/Features/Messaging/MessageBroker';\nimport { ScrollLockUpdated } from '~/Utils/ScrollLock/ScrollLockUpdated';\nimport styles from './ScrollLock.module.css';\n\ninterface ScrollLockProps {\n isLocked: boolean;\n shouldHideMainScrollBar?: boolean;\n}\n\nconst lockedClassName = styles['ScrollLock--enabled'];\nconst hiddenScrollBarClassName = styles['ScrollLock--hiddenScrollBar'];\n\nexport const ScrollLock: React.FC = props => {\n const { isLocked, shouldHideMainScrollBar } = props;\n\n const [scrollPosition, setScrollPosition] = React.useState(undefined);\n const scrollPositionRef = React.useRef();\n\n React.useEffect(() => {\n scrollPositionRef.current = scrollPosition;\n }, [scrollPosition]);\n\n React.useEffect(() => {\n const { body } = document;\n const scrollY = window.scrollY || window.pageYOffset;\n\n const lock = (position: number) => {\n // Calculated before adding locked class, because page might not have a scrollbar before that\n const scrollBarWidth = window.innerWidth - body.offsetWidth;\n\n body.classList.add(lockedClassName);\n body.style.top = `-${position}px`;\n\n if (shouldHideMainScrollBar) {\n body.classList.add(hiddenScrollBarClassName);\n body.style.paddingRight = `${scrollBarWidth}px`;\n\n MessageBroker.publish(\n new ScrollLockUpdated({\n isLocked: true,\n isScrollBarVisible: false,\n scrollBarWidth,\n })\n );\n } else {\n MessageBroker.publish(\n new ScrollLockUpdated({\n isLocked: true,\n isScrollBarVisible: true,\n })\n );\n }\n };\n\n const unlock = (position: number) => {\n body.classList.remove(lockedClassName);\n body.style.top = '';\n\n if (shouldHideMainScrollBar) {\n body.classList.remove(hiddenScrollBarClassName);\n body.style.paddingRight = '';\n }\n\n MessageBroker.publish(new ScrollLockUpdated({ isLocked: false }));\n\n window.scrollTo(0, position);\n };\n\n const shouldLock = isLocked && !body.classList.contains(lockedClassName);\n\n if (shouldLock) {\n lock(scrollY);\n setScrollPosition(scrollY);\n } else {\n if (scrollPosition !== undefined) {\n unlock(scrollPosition);\n }\n\n setScrollPosition(undefined);\n }\n\n return () => {\n if (scrollPositionRef.current !== undefined) {\n unlock(scrollPositionRef.current);\n }\n };\n }, [shouldHideMainScrollBar, isLocked]);\n\n return null;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"ScrollLock--enabled\":\"Q0v9bFNU46mzd2ECi6p_\",\"ScrollLock--hiddenScrollBar\":\"BqUTYZ5JDn6ke9pgViA1\"};","import { Event } from '~/Features/Messaging/types';\n\ninterface LockedWithScrollBar {\n isLocked: true;\n isScrollBarVisible: true;\n}\n\ninterface LockedWithoutScrollBar {\n isLocked: true;\n isScrollBarVisible: false;\n scrollBarWidth: number;\n}\n\ninterface Unlocked {\n isLocked: false;\n}\n\nexport type ScrollLockState = LockedWithScrollBar | LockedWithoutScrollBar | Unlocked;\n\nexport class ScrollLockUpdated extends Event {\n public static readonly id = 'ScrollLockUpdated';\n\n constructor(public readonly state: ScrollLockState) {\n super(ScrollLockUpdated.id);\n }\n}\n"],"names":["Modal","props","contextualTheme","useTheme","isOpen","onClose","children","variant","withWrapper","className","contentClassName","theme","isFullScreen","shouldAddClass","shouldRunHook","arguments","length","undefined","React","rootElementClassList","document","documentElement","classList","hasClass","contains","shouldModifyRootElement","add","remove","useSafariFullScreenStylesAdjustments","withRoundedCorners","focusTrapOptions","escapeDeactivates","onDeactivate","Portal","FocusTrap","active","classNames","styles","concat","ScrollLock","isLocked","shouldHideMainScrollBar","Inner","Content","CloseUnderlay","onClick","PopupDialog","title","translations","ModalContent","Button","type","ButtonType","Clear","CloseButton","SvgIcon","iconName","closeModal","Title","portalContainerId","ClientSidePortal","portalContainer","getElementById","isAttachedToDOM","setIsAttachedToDOM","Error","elementReference","current","createElement","appendChild","removeChild","portalContent","createPortal","useIsMounted","ShareButton","isModalOpened","setIsModalOpened","buttonsProps","size","ButtonSize","Large","tier","ButtonTier","LegacyPrimary","Solid","currentUrl","getCurrentUrl","inputEl","_extends","share","shareArticle","ref","value","async","ExecutionContext","IsServerSide","copyTextToClipboard","copyLink","isMounted","setIsMounted","useState","useEffect","lockedClassName","hiddenScrollBarClassName","scrollPosition","setScrollPosition","scrollPositionRef","body","scrollY","window","pageYOffset","unlock","position","style","top","paddingRight","MessageBroker","publish","ScrollLockUpdated","scrollTo","scrollBarWidth","innerWidth","offsetWidth","isScrollBarVisible","lock","Event","constructor","state","super","id"],"sourceRoot":""}