{"version":3,"sources":["components/errors/ApiLoaderFallback.tsx","components/loading/ApiLoader.tsx","components/shared/HelmetComponent.tsx","components/shared/CustomClose.tsx","api/wordpress/post/index.ts","utils/combineMultipleQueries.ts","api/wordpress/post/news/index.ts","../node_modules/@restart/hooks/esm/useTimeout.js","components/pages/newsItem/NewsLatest.tsx","../node_modules/@restart/hooks/esm/useUpdateEffect.js","../node_modules/react-bootstrap/esm/CarouselCaption.js","../node_modules/react-bootstrap/esm/CarouselItem.js","../node_modules/react-bootstrap/esm/ElementChildren.js","../node_modules/react-bootstrap/esm/Carousel.js","components/pages/newsItem/NewsImageGallery.tsx","images/icons/news-arrow.svg","images/icons/share.svg","components/pages/newsItem/index.tsx"],"names":["ApiLoaderFallback","className","dictData","errApiLoader","ApiLoader","status","errorCodes","children","find","e","code","to","routeList","notFound","exact","Loader","HelmetComponent","title","description","imageURL","contentDescription","url","useLocation","titleTemplate","helmet","default_title","defaultTitle","lang","decode","name","content","default_description","property","default_img","pathname","CustomClose","ariaLabel","iconColor","disabled","onClick","_noop","classNames","aria-label","ariaLabelClose","xmlns","viewBox","width","height","id","transform","d","fill","strokeWidth","strokeLinecap","getPosts","type","params","a","axios","get","controllers","cms","dataController","payload","data","parseError","usePosts","options","useQuery","getPost","key","usePost","slug","queryKey","getCustomApiPosts","customCms","useCustomApiPosts","combineMultipleQueries","statusList","errorsList","reduce","finalStatus","currentStatus","errors","finalErrors","currentErrors","length","undefined","useNews","useSingleNews","MAX_DELAY_MS","Math","pow","setChainedTimeout","handleRef","fn","timeoutAtMs","delayMs","Date","now","current","setTimeout","useTimeout","isMounted","useMounted","useRef","useWillUnmount","clearTimeout","useMemo","clear","set","NewsLatest","latestQuery","routeParams","useParams","latestNews","elements","filter","el","slice","news","latest","Row","map","Col","xs","md","newsItem","data-srcset","acf","image","sizes","medium_large","data-sizes","alt","format","date","excerpt","readMore","useUpdateEffect","deps","isFirst","useEffect","createWithBsPrefix","func","index","React","Children","child","isValidElement","propTypes","bsPrefix","PropTypes","string","as","elementType","slide","bool","fade","controls","indicators","activeIndex","number","onSelect","onSlide","onSlid","interval","keyboard","pause","oneOf","wrap","touch","prevIcon","node","prevLabel","nextIcon","nextLabel","defaultProps","defaultActiveIndex","createElement","Carousel","forwardRef","uncontrolledProps","ref","_useUncontrolled","useUncontrolled","_useUncontrolled$as","Component","onKeyDown","onMouseOver","onMouseOut","onTouchStart","onTouchMove","onTouchEnd","props","_objectWithoutPropertiesLoose","prefix","useBootstrapPrefix","nextDirectionRef","_useState","useState","direction","setDirection","_useState2","isSliding","setIsSliding","_useState3","renderedActiveIndex","setRenderedActiveIndex","numChildren","toArray","prev","useCallback","event","nextActiveIndex","next","useEventCallback","elementRef","useImperativeHandle","element","nextWhenVisible","document","hidden","style","parentNode","elementStyle","getComputedStyle","display","visibility","isVisible","slideDirection","orderClassName","directionalClassName","handleEnter","triggerBrowserReflow","handleEntered","handleKeyDown","test","target","tagName","preventDefault","_useState4","pausedOnHover","setPausedOnHover","handleMouseOver","handleMouseOut","touchStartXRef","touchDeltaXRef","_useState5","pausedOnTouch","setPausedOnTouch","touchUnpauseTimeout","handleTouchStart","touches","clientX","handleTouchMove","handleTouchEnd","touchDeltaX","abs","shouldPlay","intervalHandleRef","window","setInterval","visibilityState","clearInterval","indicatorOnClicks","Array","from","_","_extends","_child","isActive","Transition","in","onEnter","onEntered","addEndListener","transitionEnd","cloneElement","Fragment","SafeAnchor","displayName","Caption","CarouselCaption","Item","CarouselItem","NewsImageGallery","galleryData","setActiveIndex","modalState","setModalState","toggle","imageCount","slides","idx","data-src","medium","large","Modal","show","onHide","centered","backdropClassName","Body","selectedIndex","sm","thumbnail","NewsItem","singleQuery","per_page","page","order","order_by","query","error","news_title","dangerouslySetInnerHTML","__html","sanitizer","responsive","gallery","FB","ui","method","href","location","src","share","previous","arrow","aria-hidden","previousNews","nextNews"],"mappings":"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","file":"static/js/20.797a6fcf.chunk.js","sourcesContent":["import React from 'react';\nimport dictData from 'dictionary';\n\nconst ApiLoaderFallback: React.FC = () => {\n  return (\n    <div className=\"content-wrapper text-center my-auto\">\n      <p className=\"api-loader-error\">\n        <strong>\n          {dictData.errApiLoader['loader-error-000']}\n          <br />\n          {dictData.errApiLoader['loader-error-001']}\n        </strong>\n      </p>\n    </div>\n  );\n};\n\nexport default ApiLoaderFallback;\n","import React, { PropsWithChildren } from 'react';\nimport { Redirect } from 'react-router-dom';\nimport Loader from 'components/loading/Loader';\nimport routeList from 'routes/routeList';\nimport ApiLoaderFallback from 'components/errors/ApiLoaderFallback';\nimport { IServerError } from 'api';\n\ninterface IProps {\n  status: string;\n  errorCodes?: IServerError[] | null;\n}\n\nconst ApiLoader: React.FC<PropsWithChildren<IProps>> = ({ status, errorCodes, children }) => {\n  switch (status) {\n    case 'error':\n      return errorCodes?.find((e) => e.code === 'ose-public-002') ? (\n        <Redirect to={routeList.notFound} exact />\n      ) : (\n        <ApiLoaderFallback />\n      );\n    case 'fetching':\n    case 'idle':\n    case 'loading':\n      return <Loader />;\n    default:\n      return <>{children}</>;\n  }\n};\n\nexport default ApiLoader;\n","import React from 'react';\nimport { decode } from 'html-entities';\nimport { Helmet } from 'react-helmet';\nimport { useLocation } from 'react-router-dom';\nimport dictData from 'dictionary';\n\ninterface IProps {\n  title?: string;\n  description?: string;\n  imageURL?: string;\n  contentDescription?: string;\n}\n\nconst HelmetComponent: React.FC<IProps> = ({ title, description, imageURL, contentDescription }) => {\n  const url = useLocation();\n\n  return (\n    <Helmet titleTemplate={`%s - ${dictData.helmet.default_title}`} defaultTitle={`${dictData.helmet.default_title}`}>\n      <html lang=\"pl\" />\n      {title && <title>{decode(title)}</title>}\n      <meta name=\"description\" content={description ? description : dictData.helmet.default_description} />\n      <meta property=\"og:title\" content={`${dictData.helmet.default_title} - ${title}`} />\n      <meta property=\"og:image\" content={imageURL ? imageURL : dictData.helmet.default_img} />\n      <meta\n        property=\"og:description\"\n        content={contentDescription ? contentDescription : dictData.helmet.default_description}\n      />\n      <meta property=\"og:url\" content={url.pathname} />\n      <meta name=\"twitter:card\" content=\"summary\" />\n      <meta property=\"twitter:url\" content={url.pathname} />\n      <meta property=\"twitter:title\" content={`${dictData.helmet.default_title} - ${title}`} />\n      <meta\n        property=\"twitter:description\"\n        content={contentDescription ? contentDescription : dictData.helmet.default_description}\n      />\n      <meta property=\"twitter:image\" content={imageURL ? imageURL : dictData.helmet.default_img} />\n    </Helmet>\n  );\n};\n\nexport default HelmetComponent;\n","import React from 'react';\nimport classNames from 'classnames';\nimport _noop from 'lodash/noop';\nimport dictData from 'dictionary';\n\ninterface IProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n  className?: string;\n  ariaLabel?: string;\n  iconColor: 'secondary' | 'light' | 'error';\n  disabled?: boolean;\n}\n\nconst CustomClose: React.FC<IProps> = ({ className, ariaLabel, iconColor, disabled, onClick = _noop }) => {\n  const handleClick = (e: React.MouseEvent) => onClick(e);\n\n  return (\n    <button\n      className={classNames('custom-close-btn', className, { disabled: disabled })}\n      aria-label={ariaLabel || dictData.ariaLabelClose}\n      onClick={handleClick}\n      disabled={disabled}\n    >\n      <svg\n        className={classNames('ose-close', iconColor, { disabled: disabled })}\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 19.3 19.3\"\n        width=\"19.3\"\n        height=\"19.3\"\n      >\n        <g id=\"Group_5004\" transform=\"translate(-1177.671 -892.777)\">\n          <path id=\"Path_10311\" d=\"M1180.5,895.6l13.7,13.7\" fill=\"none\" strokeWidth=\"4\" strokeLinecap=\"round\" />\n          <path id=\"Path_10312\" d=\"M1194.2,895.6l-13.7,13.7\" fill=\"none\" strokeWidth=\"4\" strokeLinecap=\"round\" />\n        </g>\n      </svg>\n    </button>\n  );\n};\n\nexport default CustomClose;\n","import axios from 'axios';\nimport { UseQueryOptions, useQuery, UseQueryResult, QueryFunctionContext } from 'react-query';\nimport { IListParameters, IPayload, ISingleParameters, ITranslations } from 'api/wordpress/baseTypes';\nimport { controllers, IServerErrorObject, parseError } from 'api';\n\nexport interface IPostCategories<ACF> {\n  acf: ACF;\n  count: number;\n  description: string;\n  id: number;\n  name: string;\n  slug: string;\n}\n\nexport interface IPostPayload<ACF> {\n  id: number;\n  date: string;\n  slug: string;\n  title: string;\n  template: string;\n  type: string;\n  tags: IPostCategories<string>[];\n  categories: IPostCategories<string>[];\n  excerpt?: string;\n  acf: ACF;\n  translations?: ITranslations;\n  previous?: {\n    slug: string;\n  };\n  next?: {\n    slug: string;\n  };\n}\n\n/* POSTS */\n\nexport const getPosts = async <ACF>(type: string, params?: IListParameters): Promise<IPayload<IPostPayload<ACF>>> => {\n  try {\n    const payload = await axios.get<IPayload<IPostPayload<ACF>>>(`${controllers.cms.dataController}${type}`, {\n      params\n    });\n    return payload.data;\n  } catch (reason) {\n    throw parseError(reason);\n  }\n};\n\nexport const usePosts = <ACF>(\n  type: string,\n  params?: IListParameters,\n  options?: UseQueryOptions<IPayload<IPostPayload<ACF>>, IServerErrorObject>\n): UseQueryResult<IPayload<IPostPayload<ACF>>, IServerErrorObject> => {\n  return useQuery([type, params], (): Promise<IPayload<IPostPayload<ACF>>> => getPosts<ACF>(type, params), options);\n};\n\n/* SINGLE POST */\n\nexport const getPost = async <ACF>(key: string, params?: IListParameters): Promise<IPostPayload<ACF>> => {\n  try {\n    const payload = await axios.get<IPostPayload<ACF>>(`${controllers.cms.dataController}${key}`, {\n      params\n    });\n    return payload.data;\n  } catch (reason) {\n    throw parseError(reason);\n  }\n};\n\nexport const usePost = <ACF>(\n  type: string,\n  slug: string,\n  params?: ISingleParameters,\n  options?: UseQueryOptions<IPostPayload<ACF>, IServerErrorObject>\n): UseQueryResult<IPostPayload<ACF>, IServerErrorObject> => {\n  return useQuery<IPostPayload<ACF>, IServerErrorObject, IPostPayload<ACF>>(\n    [`${type}/${slug}`, params],\n    ({ queryKey }: QueryFunctionContext<[string, ISingleParameters | undefined]>): Promise<IPostPayload<ACF>> =>\n      getPost<ACF>(queryKey[0], queryKey[1]),\n    options\n  );\n};\n\n/* FAQ CUSTOM API */\n\nexport const getCustomApiPosts = async <ACF>(\n  type: string,\n  params?: IListParameters\n): Promise<IPayload<IPostPayload<ACF>>> => {\n  try {\n    const payload = await axios.get(`${controllers.customCms.dataController}${type}`, {\n      params\n    });\n    return payload.data;\n  } catch (reason) {\n    throw parseError(reason);\n  }\n};\n\nexport const useCustomApiPosts = <ACF>(\n  type: string,\n  params?: IListParameters,\n  options?: UseQueryOptions<IPayload<IPostPayload<ACF>>, IServerErrorObject>\n): UseQueryResult<IPayload<IPostPayload<ACF>>, IServerErrorObject> => {\n  return useQuery<IPayload<IPostPayload<ACF>>, IServerErrorObject, IPayload<IPostPayload<ACF>>>(\n    [type, params],\n    (): Promise<IPayload<IPostPayload<ACF>>> => getCustomApiPosts<ACF>(type, params),\n    options\n  );\n};\n","import { IServerError } from 'api';\n\ninterface IMultipleQueries {\n  status: string;\n  errors?: IServerError[];\n}\n\nexport const combineMultipleQueries = (\n  statusList: string[],\n  errorsList: (IServerError[] | undefined)[]\n): IMultipleQueries => {\n  const status = statusList.reduce((finalStatus, currentStatus) => {\n    if (currentStatus !== 'success') finalStatus = currentStatus;\n    return finalStatus;\n  }, 'success');\n\n  const errors = errorsList.reduce<IServerError[]>((finalErrors, currentErrors) => {\n    if (currentErrors) {\n      finalErrors = [...finalErrors, ...currentErrors];\n    }\n    return finalErrors;\n  }, []);\n\n  return {\n    status: status,\n    errors: !!errors.length ? errors : undefined\n  };\n};\n","import { UseQueryOptions, UseQueryResult } from 'react-query';\nimport { IListParameters, IPayload, ISingleParameters, IImageItem } from 'api/wordpress/baseTypes';\nimport { IPostPayload, usePost, usePosts } from 'api/wordpress/post/index';\nimport { IServerErrorObject } from 'api';\n\nexport interface INewsAcf {\n  image: IImageItem;\n  excerpt: string;\n  content: string;\n  gallery: IImageItem[];\n}\n\nexport const useNews = (\n  params: IListParameters,\n  options?: UseQueryOptions<IPayload<IPostPayload<INewsAcf>>, IServerErrorObject>\n): UseQueryResult<IPayload<IPostPayload<INewsAcf>>, IServerErrorObject> => {\n  return usePosts<INewsAcf>('news', params, options);\n};\n\nexport const useSingleNews = (\n  slug: string,\n  params?: ISingleParameters\n): UseQueryResult<IPostPayload<INewsAcf>, IServerErrorObject> => {\n  return usePost<INewsAcf>('news', slug, params);\n};\n","import { useMemo, useRef } from 'react';\nimport useMounted from './useMounted';\nimport useWillUnmount from './useWillUnmount';\n/*\n * Browsers including Internet Explorer, Chrome, Safari, and Firefox store the\n * delay as a 32-bit signed integer internally. This causes an integer overflow\n * when using delays larger than 2,147,483,647 ms (about 24.8 days),\n * resulting in the timeout being executed immediately.\n *\n * via: https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout\n */\n\nvar MAX_DELAY_MS = Math.pow(2, 31) - 1;\n\nfunction setChainedTimeout(handleRef, fn, timeoutAtMs) {\n  var delayMs = timeoutAtMs - Date.now();\n  handleRef.current = delayMs <= MAX_DELAY_MS ? setTimeout(fn, delayMs) : setTimeout(function () {\n    return setChainedTimeout(handleRef, fn, timeoutAtMs);\n  }, MAX_DELAY_MS);\n}\n/**\n * Returns a controller object for setting a timeout that is properly cleaned up\n * once the component unmounts. New timeouts cancel and replace existing ones.\n */\n\n\nexport default function useTimeout() {\n  var isMounted = useMounted(); // types are confused between node and web here IDK\n\n  var handleRef = useRef();\n  useWillUnmount(function () {\n    return clearTimeout(handleRef.current);\n  });\n  return useMemo(function () {\n    var clear = function clear() {\n      return clearTimeout(handleRef.current);\n    };\n\n    function set(fn, delayMs) {\n      if (delayMs === void 0) {\n        delayMs = 0;\n      }\n\n      if (!isMounted()) return;\n      clear();\n\n      if (delayMs <= MAX_DELAY_MS) {\n        // For simplicity, if the timeout is short, just set a normal timeout.\n        handleRef.current = setTimeout(fn, delayMs);\n      } else {\n        setChainedTimeout(handleRef, fn, Date.now() + delayMs);\n      }\n    }\n\n    return {\n      set: set,\n      clear: clear\n    };\n  }, []);\n}","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\nimport { Link, useParams } from 'react-router-dom';\nimport format from 'date-fns/format';\nimport dictData from 'dictionary';\nimport { INewsAcf } from 'api/wordpress/post/news';\nimport { IPostPayload } from 'api/wordpress/post';\nimport { IPayload } from 'api/wordpress/baseTypes';\nimport routeList from 'routes/routeList';\n\ninterface IProps {\n  latestQuery: IPayload<IPostPayload<INewsAcf>>;\n}\n\nconst NewsLatest: React.FC<IProps> = ({ latestQuery }) => {\n  const routeParams = useParams<{ slug: string }>();\n\n  const latestNews = latestQuery.elements\n    .filter((el: IPostPayload<INewsAcf>) => el.slug !== routeParams.slug)\n    .slice(0, 2);\n\n  return (\n    <>\n      {!!latestNews.length && (\n        <section className=\"content-wrapper page-content-bottom-padding\">\n          <div className=\"header-underline newstitem-latest-header\">\n            <h3>{dictData.news.latest}</h3>\n          </div>\n          <Row>\n            {latestNews.map((el: IPostPayload<INewsAcf>) => (\n              <Col xs={12} md={6} className=\"text-bigger\" key={el.id}>\n                <Link to={`${routeList.newsItem}/${el.slug}`} className=\"newstitem-latest-article\">\n                  <div className=\"newsitem-latest-img\">\n                    <img\n                      data-srcset={`${el.acf.image.sizes['news-latest'].url} ${el.acf.image.sizes['news-latest'].width}w, ${el.acf.image.sizes.medium_large.url} ${el.acf.image.sizes.medium_large.width}w`}\n                      data-sizes=\"auto\"\n                      alt={el.acf.image.alt}\n                      className=\"lazyload img-fluid\"\n                    />\n                  </div>\n                  <p className=\"text-primary newstitem-latest-date\">{format(new Date(el.date), 'dd.MM.yyyy')}</p>\n                  <div className=\"newstitem-latest-desc\">\n                    <h4>{el.title}</h4>\n                    <p className=\"mb-0\">{el.acf.excerpt}</p>\n                    <p className=\"text-primary mb-0\">{dictData.news.readMore}</p>\n                  </div>\n                </Link>\n              </Col>\n            ))}\n          </Row>\n        </section>\n      )}\n    </>\n  );\n};\n\nexport default NewsLatest;\n","import { useEffect, useRef } from 'react';\n/**\n * Runs an effect only when the dependencies have changed, skipping the\n * initial \"on mount\" run. Caution, if the dependency list never changes,\n * the effect is **never run**\n *\n * ```ts\n *  const ref = useRef<HTMLInput>(null);\n *\n *  // focuses an element only if the focus changes, and not on mount\n *  useUpdateEffect(() => {\n *    const element = ref.current?.children[focusedIdx] as HTMLElement\n *\n *    element?.focus()\n *\n *  }, [focusedIndex])\n * ```\n * @param effect An effect to run on mount\n *\n * @category effects\n */\n\nfunction useUpdateEffect(fn, deps) {\n  var isFirst = useRef(true);\n  useEffect(function () {\n    if (isFirst.current) {\n      isFirst.current = false;\n      return;\n    }\n\n    return fn();\n  }, deps);\n}\n\nexport default useUpdateEffect;","import createWithBsPrefix from './createWithBsPrefix';\nexport default createWithBsPrefix('carousel-caption');","import createWithBsPrefix from './createWithBsPrefix';\nexport default createWithBsPrefix('carousel-item');","import React from 'react';\n/**\n * Iterates through children that are typically specified as `props.children`,\n * but only maps over children that are \"valid elements\".\n *\n * The mapFunction provided index will be normalised to the components mapped,\n * so an invalid component would not increase the index.\n *\n */\n\nfunction map(children, func) {\n  var index = 0;\n  return React.Children.map(children, function (child) {\n    return React.isValidElement(child) ? func(child, index++) : child;\n  });\n}\n/**\n * Iterates through children that are \"valid elements\".\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child with the index reflecting the position relative to \"valid components\".\n */\n\n\nfunction forEach(children, func) {\n  var index = 0;\n  React.Children.forEach(children, function (child) {\n    if (React.isValidElement(child)) func(child, index++);\n  });\n}\n\nexport { map, forEach };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport useUpdateEffect from '@restart/hooks/useUpdateEffect';\nimport useTimeout from '@restart/hooks/useTimeout';\nimport classNames from 'classnames';\nimport transitionEnd from 'dom-helpers/transitionEnd';\nimport Transition from 'react-transition-group/Transition';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { useUncontrolled } from 'uncontrollable';\nimport CarouselCaption from './CarouselCaption';\nimport CarouselItem from './CarouselItem';\nimport { map } from './ElementChildren';\nimport SafeAnchor from './SafeAnchor';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport triggerBrowserReflow from './triggerBrowserReflow';\nvar SWIPE_THRESHOLD = 40;\nvar propTypes = {\n  /**\n   * @default 'carousel'\n   */\n  bsPrefix: PropTypes.string,\n  as: PropTypes.elementType,\n\n  /**\n   * Enables animation on the Carousel as it transitions between slides.\n   */\n  slide: PropTypes.bool,\n\n  /** Cross fade slides instead of the default slide animation */\n  fade: PropTypes.bool,\n\n  /**\n   * Show the Carousel previous and next arrows for changing the current slide\n   */\n  controls: PropTypes.bool,\n\n  /**\n   * Show a set of slide position indicators\n   */\n  indicators: PropTypes.bool,\n\n  /**\n   * Controls the current visible slide\n   *\n   * @controllable onSelect\n   */\n  activeIndex: PropTypes.number,\n\n  /**\n   * Callback fired when the active item changes.\n   *\n   * ```js\n   * (eventKey: number, event: Object | null) => void\n   * ```\n   *\n   * @controllable activeIndex\n   */\n  onSelect: PropTypes.func,\n\n  /**\n   * Callback fired when a slide transition starts.\n   *\n   * ```js\n   * (eventKey: number, direction: 'left' | 'right') => void\n   */\n  onSlide: PropTypes.func,\n\n  /**\n   * Callback fired when a slide transition ends.\n   *\n   * ```js\n   * (eventKey: number, direction: 'left' | 'right') => void\n   */\n  onSlid: PropTypes.func,\n\n  /**\n   * The amount of time to delay between automatically cycling an item. If `null`, carousel will not automatically cycle.\n   */\n  interval: PropTypes.number,\n\n  /** Whether the carousel should react to keyboard events. */\n  keyboard: PropTypes.bool,\n\n  /**\n   * If set to `\"hover\"`, pauses the cycling of the carousel on `mouseenter` and resumes the cycling of the carousel on `mouseleave`. If set to `false`, hovering over the carousel won't pause it.\n   *\n   * On touch-enabled devices, when set to `\"hover\"`, cycling will pause on `touchend` (once the user finished interacting with the carousel) for two intervals, before automatically resuming. Note that this is in addition to the above mouse behavior.\n   */\n  pause: PropTypes.oneOf(['hover', false]),\n\n  /** Whether the carousel should cycle continuously or have hard stops. */\n  wrap: PropTypes.bool,\n\n  /**\n   * Whether the carousel should support left/right swipe interactions on touchscreen devices.\n   */\n  touch: PropTypes.bool,\n\n  /** Override the default button icon for the \"previous\" control */\n  prevIcon: PropTypes.node,\n\n  /**\n   * Label shown to screen readers only, can be used to show the previous element\n   * in the carousel.\n   * Set to null to deactivate.\n   */\n  prevLabel: PropTypes.string,\n\n  /** Override the default button icon for the \"next\" control */\n  nextIcon: PropTypes.node,\n\n  /**\n   * Label shown to screen readers only, can be used to show the next element\n   * in the carousel.\n   * Set to null to deactivate.\n   */\n  nextLabel: PropTypes.string\n};\nvar defaultProps = {\n  slide: true,\n  fade: false,\n  controls: true,\n  indicators: true,\n  defaultActiveIndex: 0,\n  interval: 5000,\n  keyboard: true,\n  pause: 'hover',\n  wrap: true,\n  touch: true,\n  prevIcon: /*#__PURE__*/React.createElement(\"span\", {\n    \"aria-hidden\": \"true\",\n    className: \"carousel-control-prev-icon\"\n  }),\n  prevLabel: 'Previous',\n  nextIcon: /*#__PURE__*/React.createElement(\"span\", {\n    \"aria-hidden\": \"true\",\n    className: \"carousel-control-next-icon\"\n  }),\n  nextLabel: 'Next'\n};\n\nfunction isVisible(element) {\n  if (!element || !element.style || !element.parentNode || !element.parentNode.style) {\n    return false;\n  }\n\n  var elementStyle = getComputedStyle(element);\n  return elementStyle.display !== 'none' && elementStyle.visibility !== 'hidden' && getComputedStyle(element.parentNode).display !== 'none';\n}\n\nfunction CarouselFunc(uncontrolledProps, ref) {\n  var _useUncontrolled = useUncontrolled(uncontrolledProps, {\n    activeIndex: 'onSelect'\n  }),\n      _useUncontrolled$as = _useUncontrolled.as,\n      Component = _useUncontrolled$as === void 0 ? 'div' : _useUncontrolled$as,\n      bsPrefix = _useUncontrolled.bsPrefix,\n      slide = _useUncontrolled.slide,\n      fade = _useUncontrolled.fade,\n      controls = _useUncontrolled.controls,\n      indicators = _useUncontrolled.indicators,\n      activeIndex = _useUncontrolled.activeIndex,\n      onSelect = _useUncontrolled.onSelect,\n      onSlide = _useUncontrolled.onSlide,\n      onSlid = _useUncontrolled.onSlid,\n      interval = _useUncontrolled.interval,\n      keyboard = _useUncontrolled.keyboard,\n      onKeyDown = _useUncontrolled.onKeyDown,\n      pause = _useUncontrolled.pause,\n      onMouseOver = _useUncontrolled.onMouseOver,\n      onMouseOut = _useUncontrolled.onMouseOut,\n      wrap = _useUncontrolled.wrap,\n      touch = _useUncontrolled.touch,\n      onTouchStart = _useUncontrolled.onTouchStart,\n      onTouchMove = _useUncontrolled.onTouchMove,\n      onTouchEnd = _useUncontrolled.onTouchEnd,\n      prevIcon = _useUncontrolled.prevIcon,\n      prevLabel = _useUncontrolled.prevLabel,\n      nextIcon = _useUncontrolled.nextIcon,\n      nextLabel = _useUncontrolled.nextLabel,\n      className = _useUncontrolled.className,\n      children = _useUncontrolled.children,\n      props = _objectWithoutPropertiesLoose(_useUncontrolled, [\"as\", \"bsPrefix\", \"slide\", \"fade\", \"controls\", \"indicators\", \"activeIndex\", \"onSelect\", \"onSlide\", \"onSlid\", \"interval\", \"keyboard\", \"onKeyDown\", \"pause\", \"onMouseOver\", \"onMouseOut\", \"wrap\", \"touch\", \"onTouchStart\", \"onTouchMove\", \"onTouchEnd\", \"prevIcon\", \"prevLabel\", \"nextIcon\", \"nextLabel\", \"className\", \"children\"]);\n\n  var prefix = useBootstrapPrefix(bsPrefix, 'carousel');\n  var nextDirectionRef = useRef(null);\n\n  var _useState = useState('next'),\n      direction = _useState[0],\n      setDirection = _useState[1];\n\n  var _useState2 = useState(false),\n      isSliding = _useState2[0],\n      setIsSliding = _useState2[1];\n\n  var _useState3 = useState(activeIndex || 0),\n      renderedActiveIndex = _useState3[0],\n      setRenderedActiveIndex = _useState3[1];\n\n  if (!isSliding && activeIndex !== renderedActiveIndex) {\n    if (nextDirectionRef.current) {\n      setDirection(nextDirectionRef.current);\n      nextDirectionRef.current = null;\n    } else {\n      setDirection((activeIndex || 0) > renderedActiveIndex ? 'next' : 'prev');\n    }\n\n    if (slide) {\n      setIsSliding(true);\n    }\n\n    setRenderedActiveIndex(activeIndex || 0);\n  }\n\n  var numChildren = React.Children.toArray(children).filter(React.isValidElement).length;\n  var prev = useCallback(function (event) {\n    if (isSliding) {\n      return;\n    }\n\n    var nextActiveIndex = renderedActiveIndex - 1;\n\n    if (nextActiveIndex < 0) {\n      if (!wrap) {\n        return;\n      }\n\n      nextActiveIndex = numChildren - 1;\n    }\n\n    nextDirectionRef.current = 'prev';\n\n    if (onSelect) {\n      onSelect(nextActiveIndex, event);\n    }\n  }, [isSliding, renderedActiveIndex, onSelect, wrap, numChildren]); // This is used in the setInterval, so it should not invalidate.\n\n  var next = useEventCallback(function (event) {\n    if (isSliding) {\n      return;\n    }\n\n    var nextActiveIndex = renderedActiveIndex + 1;\n\n    if (nextActiveIndex >= numChildren) {\n      if (!wrap) {\n        return;\n      }\n\n      nextActiveIndex = 0;\n    }\n\n    nextDirectionRef.current = 'next';\n\n    if (onSelect) {\n      onSelect(nextActiveIndex, event);\n    }\n  });\n  var elementRef = useRef();\n  useImperativeHandle(ref, function () {\n    return {\n      element: elementRef.current,\n      prev: prev,\n      next: next\n    };\n  }); // This is used in the setInterval, so it should not invalidate.\n\n  var nextWhenVisible = useEventCallback(function () {\n    if (!document.hidden && isVisible(elementRef.current)) {\n      next();\n    }\n  });\n  var slideDirection = direction === 'next' ? 'left' : 'right';\n  useUpdateEffect(function () {\n    if (slide) {\n      // These callbacks will be handled by the <Transition> callbacks.\n      return;\n    }\n\n    if (onSlide) {\n      onSlide(renderedActiveIndex, slideDirection);\n    }\n\n    if (onSlid) {\n      onSlid(renderedActiveIndex, slideDirection);\n    }\n  }, [renderedActiveIndex]);\n  var orderClassName = prefix + \"-item-\" + direction;\n  var directionalClassName = prefix + \"-item-\" + slideDirection;\n  var handleEnter = useCallback(function (node) {\n    triggerBrowserReflow(node);\n\n    if (onSlide) {\n      onSlide(renderedActiveIndex, slideDirection);\n    }\n  }, [onSlide, renderedActiveIndex, slideDirection]);\n  var handleEntered = useCallback(function () {\n    setIsSliding(false);\n\n    if (onSlid) {\n      onSlid(renderedActiveIndex, slideDirection);\n    }\n  }, [onSlid, renderedActiveIndex, slideDirection]);\n  var handleKeyDown = useCallback(function (event) {\n    if (keyboard && !/input|textarea/i.test(event.target.tagName)) {\n      switch (event.key) {\n        case 'ArrowLeft':\n          event.preventDefault();\n          prev(event);\n          return;\n\n        case 'ArrowRight':\n          event.preventDefault();\n          next(event);\n          return;\n\n        default:\n      }\n    }\n\n    if (onKeyDown) {\n      onKeyDown(event);\n    }\n  }, [keyboard, onKeyDown, prev, next]);\n\n  var _useState4 = useState(false),\n      pausedOnHover = _useState4[0],\n      setPausedOnHover = _useState4[1];\n\n  var handleMouseOver = useCallback(function (event) {\n    if (pause === 'hover') {\n      setPausedOnHover(true);\n    }\n\n    if (onMouseOver) {\n      onMouseOver(event);\n    }\n  }, [pause, onMouseOver]);\n  var handleMouseOut = useCallback(function (event) {\n    setPausedOnHover(false);\n\n    if (onMouseOut) {\n      onMouseOut(event);\n    }\n  }, [onMouseOut]);\n  var touchStartXRef = useRef(0);\n  var touchDeltaXRef = useRef(0);\n\n  var _useState5 = useState(false),\n      pausedOnTouch = _useState5[0],\n      setPausedOnTouch = _useState5[1];\n\n  var touchUnpauseTimeout = useTimeout();\n  var handleTouchStart = useCallback(function (event) {\n    touchStartXRef.current = event.touches[0].clientX;\n    touchDeltaXRef.current = 0;\n\n    if (touch) {\n      setPausedOnTouch(true);\n    }\n\n    if (onTouchStart) {\n      onTouchStart(event);\n    }\n  }, [touch, onTouchStart]);\n  var handleTouchMove = useCallback(function (event) {\n    if (event.touches && event.touches.length > 1) {\n      touchDeltaXRef.current = 0;\n    } else {\n      touchDeltaXRef.current = event.touches[0].clientX - touchStartXRef.current;\n    }\n\n    if (onTouchMove) {\n      onTouchMove(event);\n    }\n  }, [onTouchMove]);\n  var handleTouchEnd = useCallback(function (event) {\n    if (touch) {\n      var touchDeltaX = touchDeltaXRef.current;\n\n      if (Math.abs(touchDeltaX) <= SWIPE_THRESHOLD) {\n        return;\n      }\n\n      if (touchDeltaX > 0) {\n        prev(event);\n      } else {\n        next(event);\n      }\n    }\n\n    touchUnpauseTimeout.set(function () {\n      setPausedOnTouch(false);\n    }, interval || undefined);\n\n    if (onTouchEnd) {\n      onTouchEnd(event);\n    }\n  }, [touch, prev, next, touchUnpauseTimeout, interval, onTouchEnd]);\n  var shouldPlay = interval != null && !pausedOnHover && !pausedOnTouch && !isSliding;\n  var intervalHandleRef = useRef();\n  useEffect(function () {\n    if (!shouldPlay) {\n      return undefined;\n    }\n\n    intervalHandleRef.current = window.setInterval(document.visibilityState ? nextWhenVisible : next, interval || undefined);\n    return function () {\n      if (intervalHandleRef.current !== null) {\n        clearInterval(intervalHandleRef.current);\n      }\n    };\n  }, [shouldPlay, next, interval, nextWhenVisible]);\n  var indicatorOnClicks = useMemo(function () {\n    return indicators && Array.from({\n      length: numChildren\n    }, function (_, index) {\n      return function (event) {\n        if (onSelect) {\n          onSelect(index, event);\n        }\n      };\n    });\n  }, [indicators, numChildren, onSelect]);\n  return /*#__PURE__*/React.createElement(Component, _extends({\n    ref: elementRef\n  }, props, {\n    onKeyDown: handleKeyDown,\n    onMouseOver: handleMouseOver,\n    onMouseOut: handleMouseOut,\n    onTouchStart: handleTouchStart,\n    onTouchMove: handleTouchMove,\n    onTouchEnd: handleTouchEnd,\n    className: classNames(className, prefix, slide && 'slide', fade && prefix + \"-fade\")\n  }), indicators && /*#__PURE__*/React.createElement(\"ol\", {\n    className: prefix + \"-indicators\"\n  }, map(children, function (_child, index) {\n    return /*#__PURE__*/React.createElement(\"li\", {\n      key: index,\n      className: index === renderedActiveIndex ? 'active' : undefined,\n      onClick: indicatorOnClicks ? indicatorOnClicks[index] : undefined\n    });\n  })), /*#__PURE__*/React.createElement(\"div\", {\n    className: prefix + \"-inner\"\n  }, map(children, function (child, index) {\n    var isActive = index === renderedActiveIndex;\n    return slide ? /*#__PURE__*/React.createElement(Transition, {\n      in: isActive,\n      onEnter: isActive ? handleEnter : undefined,\n      onEntered: isActive ? handleEntered : undefined,\n      addEndListener: transitionEnd\n    }, function (status) {\n      return React.cloneElement(child, {\n        className: classNames(child.props.className, isActive && status !== 'entered' && orderClassName, (status === 'entered' || status === 'exiting') && 'active', (status === 'entering' || status === 'exiting') && directionalClassName)\n      });\n    }) : React.cloneElement(child, {\n      className: classNames(child.props.className, isActive && 'active')\n    });\n  })), controls && /*#__PURE__*/React.createElement(React.Fragment, null, (wrap || activeIndex !== 0) && /*#__PURE__*/React.createElement(SafeAnchor, {\n    className: prefix + \"-control-prev\",\n    onClick: prev\n  }, prevIcon, prevLabel && /*#__PURE__*/React.createElement(\"span\", {\n    className: \"sr-only\"\n  }, prevLabel)), (wrap || activeIndex !== numChildren - 1) && /*#__PURE__*/React.createElement(SafeAnchor, {\n    className: prefix + \"-control-next\",\n    onClick: next\n  }, nextIcon, nextLabel && /*#__PURE__*/React.createElement(\"span\", {\n    className: \"sr-only\"\n  }, nextLabel))));\n}\n\nvar Carousel = React.forwardRef(CarouselFunc);\nCarousel.displayName = 'Carousel';\nCarousel.propTypes = propTypes;\nCarousel.defaultProps = defaultProps;\nCarousel.Caption = CarouselCaption;\nCarousel.Item = CarouselItem;\nexport default Carousel;","import React, { useState } from 'react';\nimport { Row, Col, Modal, Carousel } from 'react-bootstrap';\nimport { IImageItem } from 'api/wordpress/baseTypes';\nimport CustomClose from 'components/shared/CustomClose';\n\ninterface IProps {\n  galleryData: IImageItem[];\n}\n\nconst NewsImageGallery: React.FC<IProps> = ({ galleryData }) => {\n  const [activeIndex, setActiveIndex] = useState<number>(0);\n  const [modalState, setModalState] = useState<boolean>(false);\n  const toggle = () => setModalState(!modalState);\n  const imageCount = galleryData.length;\n\n  const slides = galleryData.map((el, idx) => (\n    <Carousel.Item key={idx}>\n      <img\n        data-src={el.sizes.medium.url}\n        data-srcset={`${el.sizes.large.url} ${el.sizes.large.width}w, ${el.sizes.medium_large.url} ${el.sizes.medium_large.width}w, ${el.sizes.medium.url} ${el.sizes.medium.width}w`}\n        data-sizes=\"auto\"\n        alt={el.alt}\n        className=\"lazyload img-fluid\"\n      />\n    </Carousel.Item>\n  ));\n\n  const handleSelect = (selectedIndex: number) => {\n    setActiveIndex(selectedIndex);\n  };\n\n  return (\n    <>\n      <Modal\n        show={modalState}\n        onHide={toggle}\n        centered\n        className=\"news-gallery-modal\"\n        backdropClassName=\"news-gallery-backdrop\"\n      >\n        <Modal.Body className=\"news-gallery-modal-container\">\n          <div className=\"news-gallery-modal-header\">\n            <span className=\"news-image-counter\">\n              {activeIndex + 1}/{imageCount}\n            </span>\n            <div className=\"news-gallery-modal-header-close\">\n              <CustomClose className=\"news-image-close-btn\" onClick={toggle} iconColor=\"light\" />\n            </div>\n          </div>\n          <Carousel activeIndex={activeIndex} onSelect={handleSelect} interval={null} indicators={false}>\n            {slides}\n          </Carousel>\n        </Modal.Body>\n      </Modal>\n\n      <Row className=\"newsitem-gallery\">\n        {galleryData.map((el, index) => (\n          <Col xs={12} sm={6} md={3} className=\"newsitem-gallery-thumbnail\" key={el.url}>\n            <div className=\"newsitem-gallery-frame\">\n              <button\n                className=\"newsitem-gallery-photo\"\n                onClick={() => {\n                  setActiveIndex(index);\n                  setModalState(!modalState);\n                }}\n              >\n                <img\n                  data-src={el.sizes.thumbnail.url}\n                  data-srcset={`${el.sizes.thumbnail.url} ${el.sizes.thumbnail.width}w, ${el.sizes.medium_large.url} ${el.sizes.medium_large.width}w`}\n                  data-sizes=\"auto\"\n                  alt={el.alt}\n                  className=\"lazyload img-fluid\"\n                />\n              </button>\n            </div>\n          </Col>\n        ))}\n      </Row>\n    </>\n  );\n};\n\nexport default NewsImageGallery;\n","export default __webpack_public_path__ + \"static/media/news-arrow.0e0f0b42.svg\";","export default __webpack_public_path__ + \"static/media/share.cbce7bab.svg\";","import React from 'react';\nimport { Link, useParams } from 'react-router-dom';\n\nimport format from 'date-fns/format';\nimport { useSingleNews, useNews } from 'api/wordpress/post/news';\nimport HelmetComponent from 'components/shared/HelmetComponent';\nimport NewsLatest from 'components/pages/newsItem/NewsLatest';\nimport NewsImageGallery from 'components/pages/newsItem/NewsImageGallery';\nimport dictData from 'dictionary';\nimport ApiLoader from 'components/loading/ApiLoader';\nimport { combineMultipleQueries } from 'utils/combineMultipleQueries';\nimport { sanitizer } from 'utils/sanitizer';\nimport routeList from 'routes/routeList';\nimport arrow from 'images/icons/news-arrow.svg';\nimport share from 'images/icons/share.svg';\n\nconst NewsItem: React.FC = () => {\n  const routeParams = useParams<{ slug: string }>();\n\n  const singleQuery = useSingleNews(routeParams.slug);\n\n  const latestQuery = useNews({\n    per_page: 3,\n    page: 1,\n    order: 'desc',\n    order_by: 'date'\n  });\n\n  const shareArticle = () => {\n    window.FB.ui({\n      display: 'popup',\n      method: 'share',\n      href: window.location.href\n    });\n  };\n\n  const query = combineMultipleQueries(\n    [singleQuery.status, latestQuery.status],\n    [singleQuery.error?.errors, latestQuery.error?.errors]\n  );\n\n  return (\n    <>\n      <ApiLoader status={query.status} errorCodes={query.errors}>\n        {singleQuery.data && (\n          <>\n            <HelmetComponent\n              title={singleQuery.data.title && `${dictData.helmet.news_title} - ${singleQuery.data.title}`}\n              imageURL={singleQuery.data.acf.image.url}\n              contentDescription={singleQuery.data.acf.excerpt}\n            />\n            <section className=\"newsitem-headline\">\n              <div\n                className=\"newsitem-headline-bg\"\n                dangerouslySetInnerHTML={{ __html: sanitizer(singleQuery.data.acf.image.responsive || '') }}\n              />\n              <div className=\"newsitem-headline-title content-wrapper text-no-overflow\">\n                <h1>{singleQuery.data.title}</h1>\n              </div>\n            </section>\n            <section className=\"content-wrapper\">\n              <div className=\"newsitem-content-wrapper\">\n                <div className=\"text-bigger newsitem-excerpt\">{singleQuery.data.acf.excerpt}</div>\n                <div\n                  className=\"newsitem-content\"\n                  dangerouslySetInnerHTML={{ __html: sanitizer(singleQuery.data.acf.content || '') }}\n                />\n                {!!singleQuery.data.acf.gallery.length && (\n                  <NewsImageGallery galleryData={singleQuery.data.acf.gallery} />\n                )}\n\n                <div className=\"newsitem-meta text-bigger\">\n                  <button className=\"newsitem-share\" onClick={shareArticle}>\n                    <img src={share} alt={dictData.news.share} aria-label={dictData.news.share} />\n                  </button>\n                  <span>{format(new Date(singleQuery.data.date), 'dd.MM.yyyy')}</span>\n                </div>\n              </div>\n              <div className=\"newsitem-pagination\">\n                <div className=\"newsitem-pagination-link prev\">\n                  {singleQuery.data.previous && (\n                    <Link to={`${routeList.newsItem}/${singleQuery.data.previous.slug}`}>\n                      <img src={arrow} alt=\"\" aria-hidden={true} />\n                      <span>{dictData.news.previousNews}</span>\n                    </Link>\n                  )}\n                </div>\n                <div className=\"newsitem-pagination-link next\">\n                  {singleQuery.data.next && (\n                    <Link to={`${routeList.newsItem}/${singleQuery.data.next.slug}`}>\n                      <span>{dictData.news.nextNews}</span>\n                      <img src={arrow} alt=\"\" aria-hidden={true} />\n                    </Link>\n                  )}\n                </div>\n              </div>\n            </section>\n          </>\n        )}\n        {latestQuery.data && <NewsLatest latestQuery={latestQuery.data} />}\n      </ApiLoader>\n    </>\n  );\n};\n\nexport default NewsItem;\n"],"sourceRoot":""}