{"version":3,"file":"index-Bi4HGF4Q.js","sources":["../../src/scripts/modules/react-modules/RelatedBlogsAndNewsSliderGraphQL/RelatedBlogsAndNewsSlider.tsx","../../src/scripts/modules/react-modules/RelatedBlogsAndNewsSliderGraphQL/index.tsx"],"sourcesContent":["import React from 'react';\r\nimport { GraphQLClient } from 'graphql-request';\r\nimport { useQuery } from '@tanstack/react-query';\r\nimport {\r\n  GetRelatedBlogsAndNewsByTagDocument,\r\n  GetRelatedBlogsAndNewsByTagQuery\r\n} from '../../../../codegenGenerated/optigraphql/generated';\r\nimport { Swiper, SwiperSlide } from 'swiper/react';\r\nimport { Navigation, Pagination } from 'swiper/modules';\r\nimport Loader from '../Loader';\r\nimport { getEnvGQLUrl } from '../../../helpers';\r\nimport 'swiper/css/bundle';\r\n\r\nconst useGetRelatedBlogAndNews = (endpoint: string, tag: string, currentPageId: number) => {\r\n  const graphQLClient = new GraphQLClient(endpoint);\r\n\r\n  const { isError, error, isFetching, data } = useQuery({\r\n    queryKey: ['GetRelatedBlogAndNewsByTag', { tag: tag, currentPageId: currentPageId }],\r\n    queryFn: async () =>\r\n      graphQLClient.request(GetRelatedBlogsAndNewsByTagDocument, {\r\n        tag: tag,\r\n        currentPageId: currentPageId\r\n      }) as GetRelatedBlogsAndNewsByTagQuery,\r\n    refetchOnWindowFocus: false\r\n  });\r\n\r\n  return {\r\n    status: isError ? 'error' : isFetching ? 'loading' : 'success',\r\n    error: error as Error,\r\n    results: data && data.ArticleDetailPage?.items ? data.ArticleDetailPage.items : []\r\n  };\r\n};\r\n\r\nexport type RelatedBlogAndNewsSliderProps = {\r\n  title: string;\r\n  tag: string;\r\n  currentPageId: string;\r\n  imgFallback: string;\r\n  noBackground?: string;\r\n};\r\n\r\nexport const RelatedBlogsAndNewsSlider = ({\r\n  title,\r\n  tag,\r\n  currentPageId,\r\n  imgFallback,\r\n  noBackground\r\n}: RelatedBlogAndNewsSliderProps) => {\r\n  const { status, results } = useGetRelatedBlogAndNews(\r\n    getEnvGQLUrl(),\r\n    tag,\r\n    parseInt(currentPageId)\r\n  );\r\n\r\n  if (status === 'loading') {\r\n    return <Loader />;\r\n  }\r\n\r\n  return (\r\n    <>\r\n      {status === 'error' && <></>}\r\n      {results.length === 0 && <></>}\r\n      {results.length > 1 && (\r\n        <>\r\n          <div\r\n            className={`module-header ${noBackground === 'true' ? 'module-header--no-background' : ''}`}\r\n          >\r\n            <div className=\"container\">\r\n              <h2 className=\"module-header__title\">{title ? title : ''}</h2>\r\n            </div>\r\n          </div>\r\n          <div className=\"container\">\r\n            <Swiper\r\n              className={'related-blogs-and-news-slider__carousel'}\r\n              modules={[Navigation, Pagination]}\r\n              slidesPerView={1}\r\n              spaceBetween={40}\r\n              autoHeight={true}\r\n              loop={true}\r\n              navigation={{\r\n                nextEl: '.swiper-button-next',\r\n                prevEl: '.swiper-button-prev'\r\n              }}\r\n              watchOverflow={true}\r\n              pagination={{\r\n                el: '.swiper-scrollbar',\r\n                type: 'progressbar'\r\n              }}\r\n              breakpoints={{\r\n                767: {\r\n                  slidesPerView: 2,\r\n                  spaceBetween: 40\r\n                },\r\n                1024: {\r\n                  slidesPerView: 2.5,\r\n                  spaceBetween: 40\r\n                }\r\n              }}\r\n            >\r\n              {results.map(result => {\r\n                const dateString = result && result.Date ? result.Date : '';\r\n                const date = new Date(dateString);\r\n\r\n                const formattedDate = date.toLocaleDateString('en-US', {\r\n                  year: 'numeric',\r\n                  month: 'short',\r\n                  day: 'numeric'\r\n                });\r\n                return (\r\n                  result && (\r\n                    <SwiperSlide key={result._id}>\r\n                      <a\r\n                        href={(result.OverrideCardLink?.Href as string) ?? result.Url}\r\n                        title={(result.OverrideCardLink?.Title as string) ?? result.Title}\r\n                        target={(result.OverrideCardLink?.Target as string) ?? ''}\r\n                        className=\"generic-image-card__link-container\"\r\n                      >\r\n                        <article className=\"generic-image-card generic-image-card--news\">\r\n                          <div className=\"picture generic-image-card__inner-picture\">\r\n                            <img\r\n                              className=\"resources-menu__news-card-image\"\r\n                              src={result?.BlogAndNewsImage?.Url ?? imgFallback}\r\n                              alt=\"about-card-image\"\r\n                              loading=\"lazy\"\r\n                              width=\"208\"\r\n                              height=\"150\"\r\n                            />\r\n                          </div>\r\n                          ∑\r\n                          <div className=\"generic-image-card__info-container\">\r\n                            <div className=\"generic-image-card__info-container-inner\">\r\n                              <h3 className=\"generic-image-card__title\">\r\n                                {result.Title ? result.Title : ''}\r\n                              </h3>\r\n                              <div className=\"generic-image-card__date-and-read-time\">\r\n                                <time className=\"generic-image-card__date\" dateTime={formattedDate}>\r\n                                  {formattedDate}\r\n                                </time>\r\n                                <span className=\"generic-image-card__read-time\">\r\n                                  {result.ReadTime ? result.ReadTime : ''}\r\n                                </span>\r\n                              </div>\r\n                            </div>\r\n                          </div>\r\n                        </article>\r\n                      </a>\r\n                    </SwiperSlide>\r\n                  )\r\n                );\r\n              })}\r\n              <div className=\"related-blogs-and-news-slider__controls\">\r\n                <div className=\"related-blogs-and-news-slider__scrollbar-wrapper\">\r\n                  <div className=\"swiper-scrollbar\"></div>\r\n                </div>\r\n                <div className=\"related-blogs-and-news-slider__buttons\">\r\n                  <div className=\"swiper-button-prev\">\r\n                    <svg className=\"related-blogs-and-news-slider__button-icon\" role=\"presentation\">\r\n                      <use xlinkHref=\"#chevron-left\"></use>\r\n                    </svg>\r\n                  </div>\r\n                  <div className=\"swiper-button-next\">\r\n                    <svg className=\"related-blogs-and-news-slider__button-icon\" role=\"presentation\">\r\n                      <use xlinkHref=\"#chevron-right\"></use>\r\n                    </svg>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            </Swiper>\r\n          </div>\r\n        </>\r\n      )}\r\n    </>\r\n  );\r\n};\r\n","import React from 'react';\r\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\r\nimport {\r\n  RelatedBlogsAndNewsSlider,\r\n  RelatedBlogAndNewsSliderProps\r\n} from './RelatedBlogsAndNewsSlider';\r\nconst defaultQueryClient = new QueryClient();\r\n\r\nconst RelatedBlogAndNewsSliderGraphQL = ({\r\n  title,\r\n  tag,\r\n  currentPageId,\r\n  imgFallback,\r\n  noBackground\r\n}: RelatedBlogAndNewsSliderProps) => {\r\n  return (\r\n    <QueryClientProvider client={defaultQueryClient}>\r\n      <RelatedBlogsAndNewsSlider\r\n        title={title}\r\n        tag={tag}\r\n        currentPageId={currentPageId}\r\n        imgFallback={imgFallback}\r\n        noBackground={noBackground}\r\n      />\r\n    </QueryClientProvider>\r\n  );\r\n};\r\n\r\nexport default RelatedBlogAndNewsSliderGraphQL;\r\n"],"names":["useGetRelatedBlogAndNews","endpoint","tag","currentPageId","graphQLClient","GraphQLClient","isError","error","isFetching","data","useQuery","GetRelatedBlogsAndNewsByTagDocument","_a","RelatedBlogsAndNewsSlider","title","imgFallback","noBackground","status","results","getEnvGQLUrl","Loader","React","Swiper","Navigation","Pagination","result","dateString","formattedDate","SwiperSlide","_b","_c","_d","defaultQueryClient","QueryClient","RelatedBlogAndNewsSliderGraphQL","QueryClientProvider"],"mappings":"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"}