{"version":3,"names":["ICON_DEFAULT","ICON_PHONE","ICON_MAIL","ICON_DOWNLOAD","ICON_TWITTER","ICON_YOUTUBE","ICON_FACEBOOK","ICON_INSTAGRAM","ICON_LINKEDIN","ICON_PINTEREST","ICON_SNAPCHAT","ICON_SPOTIFY","ICON_CONNECT","ICON_TIKTOK","ICON_LOCATION","ICON_XING","ICON_KUNUNU","ICON_EXTERNAL","LinkIcons","default","phone","mail","download","twitter","youtube","facebook","instagram","linkedin","pinterest","snapchat","spotify","connect","tiktok","location","xing","kununu","external","ComputeLinkIcon","href","type","icon","undefined","target","toLowerCase","startsWith","includes","tempLink","document","createElement","host","window","computeLinkAriaLabel","currentLocalization","label","stringFormat","ariaLabel","replace"],"sources":["src/utils/link-helper.ts"],"sourcesContent":["import { stringFormat } from \"./string-format\";\n\nexport const ICON_DEFAULT = \"arrow_right\";\nexport const ICON_PHONE = \"phone\";\nexport const ICON_MAIL = \"notification\";\nexport const ICON_DOWNLOAD = \"download\";\nexport const ICON_TWITTER = \"social_twitter\";\nexport const ICON_YOUTUBE = \"social_youtube\";\nexport const ICON_FACEBOOK = \"social_facebook\";\nexport const ICON_INSTAGRAM = \"social_instagram\";\nexport const ICON_LINKEDIN = \"social_linked_in\";\nexport const ICON_PINTEREST = \"social_pinterest\";\nexport const ICON_SNAPCHAT = \"social_snapchat\";\nexport const ICON_SPOTIFY = \"social_spotify\";\nexport const ICON_CONNECT = \"social_connect\";\nexport const ICON_TIKTOK = \"social_tiktok\";\nexport const ICON_PLAY = \"play\";\nexport const ICON_VIDEO_REPLAY = \"video_replay\";\nexport const ICON_LOCATION = \"location\";\nexport const ICON_XING = \"social_xing\";\nexport const ICON_KUNUNU = \"social_kununu\";\nexport const ICON_EXTERNAL = \"link_external\";\n\nexport const LINK_ICONS = [\n ICON_DEFAULT,\n ICON_PHONE,\n ICON_MAIL,\n ICON_DOWNLOAD,\n ICON_TWITTER,\n ICON_YOUTUBE,\n ICON_FACEBOOK,\n ICON_INSTAGRAM,\n ICON_LINKEDIN,\n ICON_PINTEREST,\n ICON_SNAPCHAT,\n ICON_SPOTIFY,\n ICON_CONNECT,\n ICON_TIKTOK,\n ICON_LOCATION,\n ICON_XING,\n ICON_KUNUNU,\n ICON_EXTERNAL\n] as const;\n\nexport const LinkIcons = {\n default: ICON_DEFAULT,\n phone: ICON_PHONE,\n mail: ICON_MAIL,\n download: ICON_DOWNLOAD,\n twitter: ICON_TWITTER,\n youtube: ICON_YOUTUBE,\n facebook: ICON_FACEBOOK,\n instagram: ICON_INSTAGRAM,\n linkedin: ICON_LINKEDIN,\n pinterest: ICON_PINTEREST,\n snapchat: ICON_SNAPCHAT,\n spotify: ICON_SPOTIFY,\n connect: ICON_CONNECT,\n tiktok: ICON_TIKTOK,\n location: ICON_LOCATION,\n xing: ICON_XING,\n kununu: ICON_KUNUNU,\n external: ICON_EXTERNAL\n};\n\n/**\n * ComputeLinkIcon will compute the icons\n * on basis of input given to href\n */\nexport const ComputeLinkIcon = (href: string, download, type) => {\n let icon: string = type === \"link\" ? LinkIcons.default : undefined;\n const target = href?.toLowerCase();\n\n if (target && href) {\n if (target.startsWith(\"tel:\")) {\n icon = LinkIcons.phone;\n } else if (target.startsWith(\"mailto:\")) {\n icon = LinkIcons.mail;\n } else if (target.startsWith(\"file://\") || download) {\n icon = LinkIcons.download;\n } else if (target.includes(\"twitter.\")) {\n icon = LinkIcons.twitter;\n } else if (target.includes(\"youtube.\") || target.includes(\"youtu.be\")) {\n icon = LinkIcons.youtube;\n } else if (target.includes(\"facebook.\") || target.includes(\"fb.me\")) {\n icon = LinkIcons.facebook;\n } else if (target.includes(\"instagram.\")) {\n icon = LinkIcons.instagram;\n } else if (target.includes(\"linkedin.\") || target.includes(\"lnkd.in\")) {\n icon = LinkIcons.linkedin;\n } else if (target.includes(\"pinterest.\")) {\n icon = LinkIcons.pinterest;\n } else if (target.includes(\"snapchat.\")) {\n icon = LinkIcons.snapchat;\n } else if (target.includes(\"maps.google\")) {\n icon = LinkIcons.location;\n } else if (target.includes(\"spotify\")) {\n icon = LinkIcons.spotify;\n } else if (target.includes(\"connect.\")) {\n icon = LinkIcons.connect;\n } else if (target.includes(\"tiktok.com\")) {\n icon = LinkIcons.tiktok;\n } else if (target.includes(\"xing.\")) {\n icon = LinkIcons.xing;\n } else if (target.includes(\"kununu.\")) {\n icon = LinkIcons.kununu;\n } else {\n // Check up for external links\n // Always has to be the last check as the external icon should only be shown if no other service matches.\n let tempLink = document.createElement(\"a\");\n tempLink.href = target;\n tempLink.host !== window.location.host && (icon = LinkIcons.external);\n }\n }\n return icon;\n};\n\n/**\n * Specifies the label to use for accessibility.\n */\nexport const computeLinkAriaLabel = (currentLocalization, href: string, download) => {\n let label: string = \"\";\n if (href) {\n if (href.startsWith(\"tel:\")) {\n label = stringFormat(currentLocalization.ariaLabel.phone, href.replace(\"tel:\", \"\"));\n } else if (href.startsWith(\"mailto:\")) {\n label = stringFormat(currentLocalization.ariaLabel.mail, href.replace(\"mailto:\", \"\"));\n } else if (href.startsWith(\"file:\") || download) {\n label = stringFormat(currentLocalization.ariaLabel.download, href.replace(\"file://\", \"\"));\n }\n }\n return label;\n};\n"],"mappings":"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"}