{"version":3,"file":"static/js/1932.e47f5d20.chunk.js","mappings":"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","sources":["blocks/TextLinkBlock/index.tsx","components/RelativeLink.tsx","hooks/useRelativeLink.ts","helpers/fileHelper.ts"],"sourcesContent":["import Box from \"@mui/material/Box\"\nimport RelativeLink from \"components/RelativeLink\"\nimport Text from \"components/Text\"\nimport React from \"react\"\n\ntype Props = {\n linkText: string\n linkUrl: string\n subText?: string\n}\n\nconst TextLinkBlock = ({ linkText, linkUrl, subText }: Props) => (\n \n ({\n color: palette.branding.grey[800],\n })}\n >\n {linkText}\n \n\n {subText && (\n \n {subText}\n \n )}\n \n)\n\nexport default TextLinkBlock\n","import Text, { TextProps } from \"components/Text\"\nimport useRelativeLink from \"hooks/useRelativeLink\"\nimport React from \"react\"\n\ntype Props = Omit & {\n href: string\n rel?: string\n event?: string\n children?: React.ReactNode\n preventNavigate?: boolean\n onClick?: (...args: any) => void\n}\n\nconst RelativeLink = React.forwardRef(\n ({ href, event, children, preventNavigate, onClick, ...restProps }, ref) => {\n const handleClick = useRelativeLink({\n href,\n onClick,\n event,\n preventNavigate,\n })\n\n return (\n \n {children}\n \n )\n }\n)\n\nexport default RelativeLink\n","import { BASE_URL } from \"@ignite/api/request\"\nimport emitEvent from \"@ignite/utils/eventEmitter\"\nimport { isLocalHost } from \"@ignite/utils/location\"\nimport { downloadFile, isFile } from \"helpers/fileHelper\"\nimport { useCallback, useMemo } from \"react\"\nimport { useNavigate } from \"react-router-dom\"\nimport { isRelativeUrl } from \"utils/url\"\n\ntype Props = {\n href: string\n onClick?: (e: React.MouseEvent) => void\n event?: string\n preventNavigate?: boolean\n}\n\nexport const toRelativeLink = (source: string) => {\n if (!source) {\n return \"\"\n }\n if (isRelativeUrl(source)) {\n return source\n }\n const url = new URL(source)\n const apiRootUrl = new URL(BASE_URL!)\n const windowHostname = window.location.hostname\n const urlHostname = url.hostname\n const isSourceLocalHost = isLocalHost()\n if (\n urlHostname === windowHostname ||\n (isSourceLocalHost &&\n (urlHostname.endsWith(\"episerver.net\") ||\n urlHostname.endsWith(apiRootUrl.hostname)))\n ) {\n return url.pathname + url.searchParams\n }\n\n return source\n}\n\nconst useRelativeLink = ({ href, onClick, event, preventNavigate }: Props) => {\n const target = useMemo(() => toRelativeLink(href), [href])\n const navigate = useNavigate()\n\n const handleClicked = useCallback(\n (e: React.MouseEvent) => {\n onClick?.(e)\n const urlIsFile: boolean = isFile(target)\n if (urlIsFile) {\n downloadFile(target, isRelativeUrl(target))\n e.preventDefault()\n\n return\n }\n if (event) {\n emitEvent(event, { link: target })\n }\n\n if (isRelativeUrl(target)) {\n e.preventDefault()\n\n if (!preventNavigate) {\n navigate(target)\n }\n }\n },\n [onClick, event, preventNavigate, target, navigate]\n )\n\n return handleClicked\n}\n\nexport default useRelativeLink\n","export const isFile = (url: string) => {\n const ext = url.substring(url.lastIndexOf(\".\") + 1, url.length)\n const fileTypes = [\"jpeg\", \"jpg\", \"webp\", \"pdf\", \"csv\"]\n if (ext && fileTypes.find((v) => v === ext)) {\n return true\n }\n return false\n}\n\nexport const downloadFile = (\n url: string,\n isRelativeUrl: boolean | undefined\n) => {\n const link = document.createElement(\"a\")\n link.download = url.substring(url.lastIndexOf(\"/\") + 1, url.length)\n link.href = isRelativeUrl\n ? `${window.location.protocol}//${window.location.host}${url}`\n : url\n link.target = \"_blank\"\n link.click()\n}\n"],"names":["_ref","linkText","linkUrl","subText","_jsxs","Box","children","_jsx","RelativeLink","href","variant","sx","_ref2","color","palette","branding","grey","Text","component","React","ref","event","preventNavigate","onClick","restProps","_objectWithoutProperties","_excluded","handleClick","useRelativeLink","_objectSpread","toRelativeLink","source","isRelativeUrl","url","URL","apiRootUrl","BASE_URL","windowHostname","window","location","hostname","urlHostname","isSourceLocalHost","isLocalHost","endsWith","pathname","searchParams","target","useMemo","navigate","useNavigate","useCallback","e","ext","substring","lastIndexOf","length","find","v","isFile","link","document","createElement","download","concat","protocol","host","click","downloadFile","preventDefault","emitEvent"],"sourceRoot":""}