{"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          &#65279;\n          <Icon id=\"external\" className=\"link__arrow-icon\"/>\n        </span>\n      }\n\n      {hasArrow && (\n        <span className=\"link__icon-wrapper\">\n          &#65279;\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&amp;title=${encodedTitle}&amp;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}&amp;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}&amp;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":""}