{"version":3,"file":"javascripts/chunks/321bf1e35b8ee6df3229.11.js","mappings":"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","sources":["webpack:///./components/divider/Divider.jsx","webpack:///./components/filter-list/FilterList.tsx","webpack:///./components/filter-list/FilterListItem.tsx","webpack:///./components/icon/Icon.jsx","webpack:///./components/link/Link.jsx","webpack:///./components/search-teaser/SearchTeaser.tsx","webpack:///./components/spinner/Spinner.jsx","webpack:///./components/tag/Tag.jsx","webpack:///./components/text/Text.jsx","webpack:///./components/watchlist/javascripts/hooks/useStore.js","webpack:///./twig-extensions/filter/withModifier.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Text from '../text/Text.jsx';\n\nconst Divider = ({ label, className, pushed }) => (\n <div className={`divider ${pushed ? 'divider--pushed' : ''} ${className}`}>\n {label && (\n <Text tag=\"span\" variant=\"copy-label\">\n {label}\n </Text>\n )}\n </div>\n);\n\nDivider.propTypes = {\n label: PropTypes.string,\n pushed: PropTypes.bool,\n className: PropTypes.string\n};\n\nDivider.defaultProps = {\n label: undefined,\n pushed: false,\n className: ''\n};\n\nexport default Divider;\n","import * as React from 'react';\n\nconst FilterList = (props: JSX.IntrinsicElements['div']) => (\n <div className=\"filter-list\" {...props} />\n);\n\nexport default FilterList;\n","import * as React from 'react';\nimport clsx from 'clsx';\n\nimport Text from '../text/Text.jsx';\n\nexport type FilterListItemProps<T> = {\n label: string;\n value: T;\n isActive?: boolean;\n onClick: (value: T) => void;\n};\n\nconst FilterListItem = <T,>({\n label,\n value,\n isActive,\n onClick\n}: FilterListItemProps<T>) => (\n <button\n key={label}\n type=\"button\"\n onClick={() => onClick(value)}\n className={clsx('filter-list__item', {\n 'filter-list__item--active': isActive\n })}\n >\n <Text variant=\"copy-label\" tag=\"span\">\n {label}\n </Text>\n </button>\n);\n\nexport default FilterListItem;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nconst Icon = ({ className, size, id }) => (\n <svg\n className={`icon icon--${id} ${size ? `icon--${size}` : ''} ${className}`}\n >\n <use xlinkHref={`#${id}`} />\n </svg>\n);\n\nIcon.propTypes = {\n className: PropTypes.string,\n size: PropTypes.string,\n id: PropTypes.string.isRequired\n};\n\nIcon.defaultProps = {\n className: '',\n size: 'small'\n};\n\nexport default Icon;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport withModifier from '../../twig-extensions/filter/withModifier';\n\nimport Text from '../text/Text.jsx';\nimport Icon from '../icon/Icon.jsx';\n\nconst Link = ({\n className,\n modifiers,\n href,\n label,\n html,\n icon,\n hiddenLabel,\n target,\n variant,\n hasArrow,\n externalIcon\n}) => {\n const Tag = href ? 'a' : 'span';\n\n return (\n <Tag\n href={href}\n target={target}\n title={label}\n className={`link ${className} ${withModifier('link', modifiers)}`}\n >\n {icon && (\n <span className=\"link__icon-wrapper\">\n <Icon id={icon} className=\"link__icon\" aria-hidden=\"true\" />\n </span>\n )}\n\n {!hiddenLabel && (\n <>\n {html ? (\n <Text html={html} variant={variant} tag=\"span\" />\n ) : (\n <Text variant={variant} tag=\"span\">\n {label}\n </Text>\n )}\n </>\n )}\n\n {externalIcon && target === '_blank' &&\n <span className=\"link__icon-wrapper\">\n \n <Icon id=\"external\" className=\"link__arrow-icon\"/>\n </span>\n }\n\n {hasArrow && (\n <span className=\"link__icon-wrapper\">\n \n <Icon id=\"arrowRight\" className=\"link__arrow-icon\"/>\n </span>\n )}\n </Tag>\n );\n};\n\nLink.propTypes = {\n className: PropTypes.string,\n modifiers: PropTypes.arrayOf(PropTypes.string),\n href: PropTypes.string,\n label: PropTypes.string.isRequired,\n icon: PropTypes.string,\n hiddenLabel: PropTypes.bool,\n target: PropTypes.string,\n hasArrow: PropTypes.bool,\n externalIcon: PropTypes.bool,\n variant: PropTypes.string\n};\n\nLink.defaultProps = {\n className: '',\n modifiers: [],\n href: null,\n icon: null,\n hiddenLabel: false,\n target: undefined,\n variant: 'button',\n hasArrow: false,\n externalIcon: false,\n};\n\nexport default Link;\n","import * as React from 'react';\n\nimport dayjs from 'dayjs';\n\nimport Text from '../text/Text.jsx';\nimport Link from '../link/Link.jsx';\nimport Icon from '../icon/Icon.jsx';\nimport Tag from '../tag/Tag.jsx';\n\ndayjs.locale(document.documentElement.lang);\n\nexport type SearchTeaserProps = {\n title: string;\n highlightedTitle: React.ReactNode;\n description: React.ReactNode;\n className?: string;\n startDate?: number | null;\n tags?: string[] | null;\n image?: string;\n type: string;\n link: string;\n onCopy?: (link: string) => void;\n onDelete?: () => void;\n onAdd?: () => void;\n onClickLink?: React.MouseEventHandler<HTMLAnchorElement>;\n labels: {\n copy?: string;\n copied?: string;\n delete?: string;\n deleted?: string;\n undo?: string;\n show?: string;\n added?: string;\n add?: string;\n close?: string;\n };\n};\n\nconst SearchTeaser = ({\n link,\n title,\n highlightedTitle,\n className = '',\n startDate,\n description,\n tags,\n type,\n image,\n onCopy,\n onDelete,\n onAdd,\n onClickLink,\n labels\n}: SearchTeaserProps) => {\n const [open, setOpen] = React.useState(false);\n const [toggledSharing, setToggleSharing] = React.useState(false);\n const encodedTitle = encodeURIComponent(title);\n\n const [state, setState] = React.useState<\n 'copied' | 'deleted' | 'added' | undefined\n >(undefined);\n\n const handleCopy = () => {\n if (onCopy) onCopy(link);\n navigator.clipboard.writeText(link);\n\n setState('copied');\n };\n\n const handleDelete = () => setState('deleted');\n const handleAdd = () => setState('added');\n\n React.useEffect(() => {\n if (!state) return;\n\n let timeout: number | null = null;\n setOpen(false);\n setToggleSharing(false);\n\n timeout = setTimeout(() => {\n if (state === 'deleted' && onDelete) onDelete();\n if (state === 'added' && onAdd) onAdd();\n\n setState(undefined);\n }, 3000);\n\n // eslint-disable-next-line consistent-return\n return () => {\n if (timeout) clearTimeout(timeout);\n };\n }, [state]);\n\n const hasImage = image && type !== 'events';\n\n const deleted = state === 'deleted';\n const copied = state === 'copied';\n const added = state === 'added';\n\n return (\n <article\n className={`search-teaser search-teaser--${type} ${\n hasImage ? 'search-teaser--has-image' : ''\n } ${className}`}\n >\n <a\n href={link}\n aria-hidden={deleted}\n onClick={onClickLink}\n onAuxClick={onClickLink}\n >\n <div className=\"search-teaser__media\">\n {image && type !== 'events' && <img src={image} alt={title} />}\n\n {type === 'events' && startDate && (\n <Text\n tag=\"div\"\n className=\"search-teaser__date\"\n variant=\"copy-bold-slab\"\n >\n <Icon id=\"calendar\" />\n <span>{dayjs(startDate).format('dd')}</span>\n <span>{dayjs(startDate).format('DD. MMM')}</span>\n <span>{dayjs(startDate).format('HH:mm')}</span>\n </Text>\n )}\n </div>\n\n <div className=\"search-teaser__content\">\n {tags && (\n <div className=\"search-teaser__tags\">\n {tags.map((tag) => (\n <Tag key={tag} label={tag} size=\"small\" />\n ))}\n </div>\n )}\n\n <Text tag=\"h3\" variant=\"headline-5\">\n {highlightedTitle || title}\n </Text>\n\n {description && <Text>{description}</Text>}\n </div>\n </a>\n\n <button\n type=\"button\"\n onClick={() => setOpen(true)}\n className=\"search-teaser__menu\"\n title={labels.show}\n >\n <Icon id=\"dotted-menu\" />\n </button>\n\n <div\n className=\"search-teaser__actions search-teaser__actions--menu\"\n aria-hidden={!open || copied}\n >\n <button\n type=\"button\"\n onClick={() => setToggleSharing(!toggledSharing)}\n title={labels.copy}\n >\n {!toggledSharing ? <Icon id=\"sharing\" /> : <Icon id=\"close\" />}\n </button>\n\n {onDelete && (\n <button type=\"button\" onClick={handleDelete} title={labels.delete}>\n <Icon id=\"watchlist-minus\" />\n </button>\n )}\n\n {onAdd && (\n <button type=\"button\" onClick={handleAdd} title={labels.add}>\n <Icon id=\"watchlist-plus\" />\n </button>\n )}\n\n <button type=\"button\" onClick={handleCopy} title={labels.copy}>\n <Icon id=\"copy-link\" />\n </button>\n\n <button\n type=\"button\"\n onClick={() => setOpen(false)}\n title={labels.close}\n >\n <Icon id=\"close\" />\n </button>\n </div>\n\n <div\n className=\"search-teaser__actions search-teaser__actions--sharing\"\n aria-hidden={!toggledSharing}\n >\n <Link\n href={`https://www.linkedin.com/shareArticle?mini=true&title=${encodedTitle}&url=${link}`}\n target=\"_blank\"\n icon=\"social-linkedin\"\n label=\"Linkedin Sharing\"\n hiddenLabel\n />\n <Link\n href={`https://www.facebook.com/sharer.php?t=${encodedTitle}&u=${link}`}\n target=\"_blank\"\n icon=\"social-facebook\"\n label=\"Facebook Sharing\"\n hiddenLabel\n />\n <Link\n href={`https://twitter.com/intent/tweet?text=${encodedTitle}&url=${link}`}\n target=\"_blank\"\n icon=\"social-twitter\"\n label=\"Twitter Sharing\"\n hiddenLabel\n />\n <Link\n href={`https://www.xing.com/spi/shares/new?url=${link}`}\n target=\"_blank\"\n icon=\"social-xing\"\n label=\"Xing Sharing\"\n hiddenLabel\n />\n </div>\n\n <div\n className=\"search-teaser__actions search-teaser__actions--copied\"\n aria-hidden={open || !copied}\n >\n <Text variant=\"form-label\" tag=\"span\">\n {labels.copied}\n </Text>\n </div>\n\n <div\n className=\"search-teaser__actions search-teaser__actions--deleted\"\n aria-hidden={open || !deleted}\n >\n <Text variant=\"form-label\" tag=\"span\">\n {labels.deleted}\n </Text>\n\n <button\n type=\"button\"\n onClick={() => setState(undefined)}\n title={labels.undo}\n >\n <Icon id=\"watchlist-undo\" />\n </button>\n </div>\n\n <div\n className=\"search-teaser__actions search-teaser__actions--added\"\n aria-hidden={open || !added}\n >\n <Text variant=\"form-label\" tag=\"span\">\n {labels.added}\n </Text>\n\n <button\n type=\"button\"\n onClick={() => setState(undefined)}\n title={labels.undo}\n >\n <Icon id=\"watchlist-undo\" />\n </button>\n </div>\n </article>\n );\n};\n\nexport default SearchTeaser;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst Spinner = ({ className }) => (\n <div className={`spinner ${className}`}>\n <svg\n width=\"52\"\n height=\"52\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <g fill=\"none\">\n <path\n d=\"m5.486 10.05-.078.077c.164-.23.58-.729 1.246-1.498.999-1.154 2.134-2.437 3.507-3.466 4.319-3.235 9.56-5.179 15.754-5.2 13.834-.046 25.82 11.648 26.08 25.566.27 14.468-11.584 26.815-26.448 26.425a4.526 4.526 0 0 1-4.414-4.637 4.528 4.528 0 0 1 4.652-4.4c9.59.251 17.32-7.8 17.144-17.22-.168-8.98-8.105-16.723-16.983-16.693-4.128.013-7.422 1.406-10.251 3.525-.912.683-1.69 1.42-2.408 2.193l-.248.295-1.044 1.197-.123.132c-1.77 1.765-4.773 1.633-6.544-.132-1.77-1.765-1.612-4.4.158-6.165Z\"\n fill=\"#e30613\"\n />\n <path\n d=\"M25.915-.037a24.626 24.626 0 0 1 5.294.56C43.072 2.933 52 13.424 52 26l-.001.253-.002.141L52 26a26.463 26.463 0 0 1-.049 1.6c-.452 7.447-4.038 14.048-9.457 18.5a25.535 25.535 0 0 1-10.634 5.238 14.438 14.438 0 0 1-.342.075A26.073 26.073 0 0 1 26 52C11.64 52 0 40.36 0 26a25.88 25.88 0 0 1 4.616-14.794c.188-.347.425-.68.709-.989l.065-.07.018-.02.076-.076-.094.096c-.266.347-.524.7-.774 1.06-.886 1.632-.702 3.597.712 5.007 1.77 1.765 4.774 1.897 6.544.132l.123-.132.765-.878a17.008 17.008 0 0 1 9.118-5.833l.132-.032c.467-.114.948-.209 1.441-.282l.102-.014A17.198 17.198 0 0 1 26 9c9.389 0 17 7.611 17 17s-7.611 17-17 17c-.346 0-.69-.01-1.03-.03.265-.043.537-.06.815-.053 9.59.251 17.32-7.8 17.144-17.22-.168-8.98-8.105-16.723-16.983-16.693a17.504 17.504 0 0 0-2.495.185l.102-.014a16.922 16.922 0 0 0-1.675.328l.132-.032-.235.058.103-.026c-2.323.586-4.35 1.654-6.183 3.026-.912.683-1.69 1.42-2.408 2.193l-.248.295-.279.319A16.929 16.929 0 0 0 9 26c0 9.043 7.06 16.436 15.97 16.97a4.524 4.524 0 0 0-3.837 4.347 4.526 4.526 0 0 0 4.414 4.637 25.581 25.581 0 0 0 6.258-.604l-.287.063.342-.075-.055.012a25.909 25.909 0 0 0 10.689-5.25c5.434-4.488 9.005-11.143 9.457-18.5a25.26 25.26 0 0 0 .036-.775l.01-.395.002-.177c.002-.241.001-.482-.004-.724C51.77 13.425 42.675 3.004 31.21.522A26.083 26.083 0 0 0 26 0C18.295 0 11.372 3.352 6.611 8.677c-.408.472-.718.84-.932 1.102l-.18.228-.091.12a26.075 26.075 0 0 1 1.203-1.45l.043-.048c.999-1.154 2.134-2.437 3.507-3.466 4.319-3.235 9.56-5.179 15.754-5.2Z\"\n fill=\"#F3F3F3\"\n />\n </g>\n </svg>\n </div>\n);\n\nSpinner.propTypes = {\n className: PropTypes.string\n};\n\nSpinner.defaultProps = {\n className: ''\n};\n\nexport default Spinner;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Icon from '../icon/Icon.jsx';\nimport Text from '../text/Text.jsx';\n\nconst Tag = ({\n label,\n onClick,\n href,\n target,\n size,\n variant,\n icon,\n className\n}) => {\n const textVariant = size === 'large' ? 'button' : 'copy-label';\n\n const classes = `tag tag--${size} tag--${variant} ${\n icon ? `tag--has-icon` : ''\n } ${className}`;\n\n if (href) {\n return (\n <a href={href} className={classes} title={label} target={target}>\n <Text tag=\"span\" variant={textVariant}>\n {label}\n </Text>\n {icon && <Icon id={icon} />}\n </a>\n );\n }\n\n if (onClick) {\n return (\n <button type=\"button\" className={classes} onClick={onClick} title={label}>\n <Text tag=\"span\" variant={textVariant}>\n {label}\n </Text>\n {icon && <Icon id={icon} />}\n </button>\n );\n }\n\n return (\n <div className={classes}>\n <Text tag=\"span\" variant={textVariant}>\n {label}\n </Text>\n {icon && <Icon id={icon} />}\n </div>\n );\n};\n\nTag.propTypes = {\n label: PropTypes.string.isRequired,\n href: PropTypes.string,\n className: PropTypes.string,\n icon: PropTypes.string,\n onClick: PropTypes.func,\n target: PropTypes.string,\n variant: PropTypes.oneOf(['primary', 'secondary']),\n size: PropTypes.oneOf(['small', 'large'])\n};\n\nTag.defaultProps = {\n href: undefined,\n icon: undefined,\n target: undefined,\n onClick: undefined,\n variant: 'primary',\n size: 'large',\n className: ''\n};\n\nexport default Tag;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport withModifier from '../../twig-extensions/filter/withModifier';\n\nconst Text = React.forwardRef(\n ({ className, modifiers = [], children, html, tag, variant }, ref) => {\n const Tag = tag;\n\n if (html) {\n return (\n <Tag\n ref={ref}\n className={`${withModifier('text', [\n ...modifiers,\n variant\n ])} ${className}`}\n dangerouslySetInnerHTML={{ __html: html }}\n />\n );\n }\n\n return (\n <Tag\n ref={ref}\n className={`${withModifier('text', [\n ...modifiers,\n variant\n ])} ${className}`}\n >\n {children}\n </Tag>\n );\n }\n);\n\nText.propTypes = {\n className: PropTypes.string,\n modifiers: PropTypes.arrayOf(PropTypes.string),\n children: PropTypes.node,\n html: PropTypes.string,\n variant: PropTypes.string,\n tag: PropTypes.oneOf([\n 'p',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h5',\n 'h6',\n 'span',\n 'figcaption',\n 'cite',\n 'label',\n 'legend',\n 'small',\n 'div'\n ])\n};\n\nText.defaultProps = {\n className: '',\n modifiers: [],\n children: null,\n html: null,\n variant: 'copy',\n tag: 'p'\n};\n\nexport default Text;\n","import create from 'zustand';\n\nimport watchlist from '../../../../store/watchlist';\n\nconst useWatchlistStore = create(watchlist);\n\nexport default useWatchlistStore;\n","/**\n * Creates a class-set with BEM modifiers for a component\n * @param {string} prefix Prefix classname for the component\n * @param {Array} modifier Array with modifiers\n * @return {string} Classnames in BEM format\n */\nexport default function myFunctionName(prefix, modifier) {\n const flattenArray = (arr) => {\n return arr.reduce(\n (acc, val) =>\n Array.isArray(val) ? acc.concat(flattenArray(val)) : acc.concat(val),\n []\n );\n };\n\n let classes = [prefix];\n const modifiers = flattenArray(modifier || []);\n\n const uniqueModifiers = modifiers.filter((m, i) => {\n return modifiers.indexOf(m) === i;\n });\n\n classes = [\n ...classes,\n ...uniqueModifiers\n .filter((suffix) => suffix)\n .map((suffix) => `${prefix}--${suffix}`)\n ];\n\n return classes.join(' ');\n}\n"],"names":["Divider","label","className","pushed","tag","variant","propTypes","PropTypes","defaultProps","undefined","props","value","isActive","onClick","key","type","clsx","Icon","size","id","xlinkHref","Link","modifiers","href","html","icon","hiddenLabel","target","hasArrow","externalIcon","Tag","title","withModifier","dayjs","document","documentElement","lang","link","highlightedTitle","startDate","description","tags","image","onCopy","onDelete","onAdd","onClickLink","labels","React","open","setOpen","toggledSharing","setToggleSharing","encodedTitle","encodeURIComponent","state","setState","timeout","setTimeout","clearTimeout","hasImage","deleted","copied","added","onAuxClick","src","alt","format","map","show","copy","delete","add","navigator","clipboard","writeText","close","undo","Spinner","width","height","xmlns","viewBox","fill","d","textVariant","classes","Text","ref","children","dangerouslySetInnerHTML","__html","create","watchlist","myFunctionName","prefix","modifier","flattenArray","arr","reduce","acc","val","Array","isArray","concat","uniqueModifiers","filter","m","i","indexOf","suffix","join"],"sourceRoot":""}