{"version":3,"file":"static/chunks/pages/library-f3936ef11e4e7b4d.js","mappings":"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","sources":["webpack://_N_E/./src/graphql/categories/queries/categories.graphql","webpack://_N_E/?09ea","webpack://_N_E/./src/components/common/Masonry/index.tsx","webpack://_N_E/./src/components/common/NoData/images/minion.png","webpack://_N_E/./src/components/common/NoData/index.tsx","webpack://_N_E/./src/components/widget/MaterialExtension/index.tsx","webpack://_N_E/./src/components/library/ContentCard/index.tsx","webpack://_N_E/./src/components/widget/ContentTypeIcon/index.tsx","webpack://_N_E/./src/hooks/categories/useCategories.ts","webpack://_N_E/./src/hooks/utils/useMediaQueries.ts","webpack://_N_E/./src/components/library/LibrarySlider/index.tsx","webpack://_N_E/./src/components/library/ContentFilters/index.tsx","webpack://_N_E/./src/components/library/ContentList/index.tsx","webpack://_N_E/./src/components/library/ContentListContainer/index.tsx","webpack://_N_E/./src/pages/library/index.tsx","webpack://_N_E/./src/components/common/Masonry/Masonry.module.scss","webpack://_N_E/./src/components/common/NoData/NoData.module.scss","webpack://_N_E/./src/components/library/ContentCard/ContentCard.module.scss","webpack://_N_E/./src/components/library/ContentFilters/ContentFilters.module.scss","webpack://_N_E/./src/components/library/LibrarySlider/LibrarySlider.module.scss","webpack://_N_E/./src/components/widget/ContentTypeIcon/ContentTypeIcon.module.scss","webpack://_N_E/./src/components/widget/MaterialExtension/MaterialExtension.module.scss","webpack://_N_E/./src/pages/library/library.module.scss","webpack://_N_E/./node_modules/react-masonry-css/dist/react-masonry-css.module.js"],"sourcesContent":["\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetCategories\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"categories\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Category\"},\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":100}};\n doc.loc.source = {\"body\":\"#import \\\"../fragments/category.graphql\\\"\\n\\nquery GetCategories {\\n categories {\\n ...Category\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"../fragments/category.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"GetCategories\"] = oneQuery(doc, \"GetCategories\");\n \n","\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/library\",\n function () {\n return require(\"private-next-pages/library/index.tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/library\"])\n });\n }\n ","import { ReactNode } from 'react';\nimport Masonry from 'react-masonry-css';\n\nimport css from './Masonry.module.scss';\n\nexport type BreakpointColumns =\n | number\n | { default: number; [key: number]: number }\n | { [key: number]: number };\n\ninterface IProps {\n breakpointColumns: BreakpointColumns;\n children: ReactNode;\n}\n\nexport default function MasonryGrid({ breakpointColumns, children }: IProps) {\n return (\n \n {children}\n \n );\n}\n","export default {\"src\":\"https://static.znanierussia.ru/production/_next/static/media/minion.a1acb2f6.png\",\"height\":438,\"width\":419,\"blurDataURL\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAQlBMVEVMaXHs7vPs7vPr7fDt7/Pu8PPt7/Pl5+/s7vLq7PHp7PDn6e7u8PTr7fK7vMLS09uvwvyzxPvv8PLs7vLt7/L09vpPPibrAAAAFHRSTlMA4neRQblP/Cehac0K9Pv6/PuSLRK/nnoAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAA9SURBVAiZBcGJAYAgDATB5Q0BFJWj/1adgXxJoQF+TIpAOvc6HSj2vPpgS2YKk1okyTel9jFyTNTZ3Gn5B1xsAob259IyAAAAAElFTkSuQmCC\"};","import Image from 'next/image';\nimport cn from 'classnames';\nimport { UiTitle, UiButton } from 'znanie-uikit';\n\nimport minionImg from './images/minion.png';\n\nimport css from './NoData.module.scss';\n\ninterface IProps {\n text?: string;\n btnText?: string;\n\n onBtnClick?(): void;\n\n className?: string;\n}\n\nexport default function NoData({\n text = 'Данные не найдены',\n btnText,\n onBtnClick,\n className,\n}: IProps) {\n return (\n
\n
\n
\n \"изображение\n
\n \n {text}\n \n {btnText && (\n
\n {\n onBtnClick && onBtnClick();\n }}\n >\n {btnText}\n \n
\n )}\n
\n
\n );\n}\n","import { UiText } from 'znanie-uikit';\n\nimport css from './MaterialExtension.module.scss';\n\ninterface IMaterialExtension {\n fileName: string;\n}\n\nexport default function MaterialExtension({ fileName }: IMaterialExtension) {\n const extension = fileName.split('.').pop()?.toLocaleUpperCase();\n\n return (\n \n {extension}\n \n );\n}\n","import { MouseEvent } from 'react';\nimport { useRouter } from 'next/router';\nimport dayjs from 'dayjs';\nimport cn from 'classnames';\nimport { UiIcon, UiText } from 'znanie-uikit';\n\nimport { useMediaQueries } from 'hooks/utils/useMediaQueries';\n\nimport { Link } from 'components/common/Link';\nimport Cover from 'components/common/Cover';\n\nimport ContentTypeIcon from 'components/widget/ContentTypeIcon';\nimport ContentSpeakersAvatars from 'components/widget/ContentSpeakersAvatars';\nimport MaterialExtension from 'components/widget/MaterialExtension';\n\nimport { ContentType, ContentTypeEnum, SpeakerType } from 'graphql/types';\n\nimport css from './ContentCard.module.scss';\n\ninterface IProps {\n item: ContentType;\n cardIndex?: number;\n\n onClick?(url: string, item: ContentType): void;\n}\n\nconst ContentCard = ({ item, cardIndex, onClick }: IProps) => {\n const { pathname } = useRouter();\n const { isMobile } = useMediaQueries();\n\n const getBadgeLabel = (type: string) => {\n switch (type) {\n case ContentTypeEnum.Video:\n return 'Видео';\n case ContentTypeEnum.Article:\n return 'Статья';\n case ContentTypeEnum.Material:\n return 'Документ';\n default:\n return '';\n }\n };\n\n const contentCardLink = `/library/${item?.type?.toLocaleLowerCase()}/${\n item.slug\n }`;\n\n // передаем ссылку на видео/статью в Библиотеке знаний или\n // не передаем, если это презентация/документ\n const linkProp = item.type !== ContentTypeEnum.Material && {\n link: contentCardLink,\n };\n\n // обработчик клика на заголовок контента, иконку \"Скачать\" или обложку\n const handleClick = (event: MouseEvent, url: string) => {\n event.preventDefault();\n onClick && onClick(url, item);\n };\n\n return (\n
\n {item.speakers && item.speakers.length > 0 && (\n
\n \n
\n )}\n handleClick(event, linkProp ? linkProp.link : '')}\n >\n \n ) : (\n \n ),\n }}\n />\n {item.type === ContentTypeEnum.Material && (\n // скачиваем файл, если юзер авторизован или зареган,\n // иначе показываем модалку с сообщением о необходимости\n // регистрации/авторизации\n handleClick(event, item.documentUrl || '')}\n >\n \n \n )}\n \n
\n
{getBadgeLabel(item.type || '')}
\n {item.type !== ContentTypeEnum.Material ? (\n handleClick(event, contentCardLink)}\n >\n \n {item.title}\n \n \n ) : (\n handleClick(event, item.documentUrl || '')}\n >\n \n {item.title}\n \n \n )}\n
{dayjs(item.created).fromNow()}
\n
\n
\n );\n};\n\nexport default ContentCard;\n","import { UiIcon } from 'znanie-uikit';\n\nimport { ContentTypeEnum } from 'graphql/types';\n\nimport css from './ContentTypeIcon.module.scss';\n\ninterface IProps {\n type?: string;\n}\n\nconst ContentTypeIcon = ({ type }: IProps) => {\n const getTypeIcon = (type?: string) => {\n switch (type) {\n case ContentTypeEnum.Video:\n return 'movie-play';\n case ContentTypeEnum.Article:\n return 'list';\n default:\n return '';\n }\n };\n\n return (\n
\n \n
\n );\n};\n\nexport default ContentTypeIcon;\n","import { ApolloClient, NormalizedCacheObject, useQuery } from '@apollo/client';\n\nimport CATEGORIES_QUERY from 'graphql/categories/queries/categories.graphql';\n\nimport type { GetCategoriesQuery } from 'graphql/types';\n\nexport const useCategories = () =>\n useQuery(CATEGORIES_QUERY);\n\nexport const getCategoriesSsr = async (\n client: ApolloClient\n) => {\n try {\n return await client.query({\n query: CATEGORIES_QUERY,\n });\n } catch (err) {\n return err;\n }\n};\n","import { useMediaQuery } from 'react-responsive';\n\nexport interface IMediaBreakpoints {\n [key: string]: boolean;\n isMobile: boolean;\n isMobileOrTablet: boolean;\n isTablet: boolean;\n isTabletOrDesktop: boolean;\n isDesktop: boolean;\n}\n\nexport function useMediaQueries(): IMediaBreakpoints {\n const isMobile = useMediaQuery({ maxWidth: 480 });\n const isMobileOrTablet = useMediaQuery({ maxWidth: 989 });\n const isTablet = useMediaQuery({ minWidth: 481, maxWidth: 989 });\n const isTabletOrDesktop = useMediaQuery({ minWidth: 769 });\n const isDesktop = useMediaQuery({ minWidth: 990 });\n\n return {\n isMobile,\n isMobileOrTablet,\n isTablet,\n isTabletOrDesktop,\n isDesktop,\n };\n}\n","import { useMediaQueries } from 'hooks/utils/useMediaQueries';\n\nimport Cover from 'components/common/Cover';\nimport ContentSpeakersAvatars from 'components/widget/ContentSpeakersAvatars';\nimport ContentTypeIcon from 'components/widget/ContentTypeIcon';\n\nimport { AnalyticsEvent, trackAnalyticsData } from 'utils/analytics';\n\nimport { ContentType, SpeakerType } from 'graphql/types';\n\nimport css from './LibrarySlider.module.scss';\n\ninterface IProps {\n items: ContentType[];\n}\n\nexport default function LibrarySlider({ items }: IProps) {\n const { isMobile, isTabletOrDesktop } = useMediaQueries();\n\n const onTrack = (item: ContentType) => {\n const { slug, created, speakers } = item;\n trackAnalyticsData(AnalyticsEvent.CONTENT_SLIDER_ITEM_CLICK, {\n slug,\n created,\n speakers: speakers?.map((speaker) => speaker?.id) || [],\n });\n };\n\n const getLinkOfContent = (item: ContentType): string =>\n `/library/${item?.type?.toLocaleLowerCase()}/${item.slug}`;\n\n return (\n <>\n {items.length > 0 && (\n
\n
\n
\n
\n
\n\n \n {items.map((item, i) => (\n \n ),\n right: ,\n },\n }}\n imgProxyProps={{\n sourceWidth: isMobile ? 700 : 1260,\n sourceHeight: isMobile ? 340 : 515,\n resizingType: 'fill',\n gravityType: 'ce',\n }}\n >\n onTrack(item)}\n href={getLinkOfContent(item)}\n >\n \n {item.title}\n \n \n \n ))}\n \n
\n )}\n \n );\n}\n","import { UiTags } from 'znanie-uikit';\n\nimport { CategoryType } from 'graphql/types';\n\nimport css from './ContentFilters.module.scss';\n\ntype TTagItem = {\n label: string;\n value: string;\n};\n\ninterface IProps {\n categories: CategoryType[];\n selectedCategory: string;\n onFiltersChange({ tag }: { tag?: string }): void;\n}\n\nexport default function ContentFilters({\n categories = [],\n onFiltersChange,\n selectedCategory,\n}: IProps) {\n const allItem: TTagItem = {\n value: '-1',\n label: 'Все',\n };\n const tags = [allItem].concat(\n categories.map((c) => ({ value: c.id, label: c.name })) as TTagItem[]\n );\n\n const handleSelectedTag = (tag: string) => {\n onFiltersChange({ tag });\n };\n\n return (\n
\n \n
\n );\n}\n","import InfiniteScroll from 'react-infinite-scroller';\nimport { useRouter } from 'next/router';\n\nimport MasonryGrid from 'components/common/Masonry';\n\nimport ContentCard from '../ContentCard';\n\nimport { ContentType } from 'graphql/types';\n\nimport { trackAnalyticsData, AnalyticsEvent } from 'utils/analytics';\nimport { masonryBreakpointCols } from 'utils/constants';\n\ninterface IProps {\n data: ContentType[];\n\n onLoadMore(page: number): void;\n}\n\nexport default function ContentList(props: IProps) {\n const { data, onLoadMore } = props;\n\n const router = useRouter();\n\n const onContentCardClick = async (url: string, card: ContentType) => {\n const { created, slug, speakers, type } = card;\n\n await router.push(url);\n trackAnalyticsData(AnalyticsEvent.CONTENT_ITEM_CLICK, {\n created,\n slug,\n type,\n speakers: speakers?.map((speaker) => speaker?.id) || [],\n });\n };\n\n return (\n <>\n 0}\n threshold={100}\n >\n \n {data.map((item, index) => (\n \n ))}\n \n \n \n );\n}\n","import { UiLoader } from 'znanie-uikit';\n\nimport NoData from 'components/common/NoData';\n\nimport ContentList from 'components/library/ContentList';\n\nimport { useContents } from 'hooks/content/useContents';\n\nimport { ContentType, GetContentsQueryVariables } from 'graphql/types';\n\ninterface IProps {\n filters: GetContentsQueryVariables;\n\n onResetFilters(): void;\n}\n\nexport default function ContentListContainer({\n filters,\n onResetFilters,\n}: IProps) {\n const { loading: contentLoading, data, fetchMore } = useContents(filters);\n const contents = (data?.contents as ContentType[]) || [];\n\n const handleLoadMore = async () => {\n try {\n await fetchMore({\n variables: { ...filters, offset: contents.length },\n });\n } catch (err) {\n console.log(err);\n }\n };\n\n return (\n \n <>\n {contents.length > 0 ? (\n \n ) : (\n \n )}\n \n \n );\n}\n","import { useEffect, useMemo, useState } from 'react';\nimport { GetServerSidePropsContext } from 'next';\nimport { useRouter } from 'next/router';\nimport { ParsedUrlQuery } from 'querystring';\nimport initializeApollo, { addApolloState } from 'apollo-client';\nimport { UiTitle } from 'znanie-uikit';\n\nimport LayoutConfines from 'components/layout/LayoutConfines';\nimport PageMeta from 'components/layout/PageMeta';\n\nimport LibrarySlider from 'components/library/LibrarySlider';\nimport ContentFilters from 'components/library/ContentFilters';\nimport ContentListContainer from 'components/library/ContentListContainer';\n\nimport { getContentsSsr, useContents } from 'hooks/content/useContents';\nimport {\n getCategoriesSsr,\n useCategories,\n} from 'hooks/categories/useCategories';\n\nimport { getMetaInfo } from 'utils/helpers';\n\nimport {\n CategoryType,\n ContentType,\n ContentTypeEnum,\n GetContentsQueryVariables,\n} from 'graphql/types';\n\nimport { trackAnalyticsData, AnalyticsEvent } from 'utils/analytics';\n\nimport css from './library.module.scss';\n\nconst defaultPromotedContentFilters = {\n promoted: true,\n};\nconst defaultFilters = {\n category: '-1',\n};\n\nconst CONTENT_PER_PAGE = 9;\nconst createContentsFiltersParams = (category?: string, offset?: number) => {\n const params: GetContentsQueryVariables = {\n offset: offset || 0,\n limit: CONTENT_PER_PAGE,\n promoted: category ? null : false,\n type: ContentTypeEnum.Video,\n };\n\n if (category) {\n params.category = category;\n }\n\n return params;\n};\n\nexport default function Library() {\n const router = useRouter();\n const { category } = router.query;\n\n const [filters, setFilters] = useState({\n category: (category as string) || defaultFilters.category,\n });\n\n const { loading: promotedContentLoading, data: promotedData } = useContents(\n defaultPromotedContentFilters\n );\n const { loading: categoriesLoading, data: categoriesData } = useCategories();\n\n const contents = (promotedData?.contents as ContentType[]) || [];\n const categories = (categoriesData?.categories as CategoryType[]) || [];\n\n const categoryTitle = useMemo(() => {\n const categoryName = categories.find(\n (category) => category.id === filters.category\n )?.name;\n\n return categoryName ? `(${categoryName})` : '';\n }, [filters.category]);\n\n const handleFilterChange = ({ tag }: { tag?: string }) => {\n setFilters((oldFilters) => ({\n category: tag || oldFilters.category,\n }));\n trackAnalyticsData(AnalyticsEvent.CONTENT_FILTER_SELECT, {\n category: tag || null,\n });\n };\n\n const handleResetFilters = (): void => setFilters(defaultFilters);\n\n useEffect(() => {\n (async () => {\n const { category } = filters;\n const routeParams: ParsedUrlQuery = {};\n\n if (category !== '-1') {\n routeParams.category = category;\n }\n\n await router.push({ query: routeParams }, '', { shallow: true });\n })();\n }, [filters]);\n\n return (\n <>\n \n {contents && contents.length > 0 && !promotedContentLoading && (\n \n )}\n \n \n Библиотека знаний Российского общества Знание{' '}\n {filters.category && (\n \n {categoryTitle}\n \n )}\n \n {!categoriesLoading && (\n \n )}\n \n \n \n );\n}\n\nexport async function getServerSideProps(ctx: GetServerSidePropsContext) {\n const apolloClient = initializeApollo();\n const { category } = ctx.query;\n\n await getContentsSsr(\n ctx,\n apolloClient,\n createContentsFiltersParams(category as string)\n );\n\n await getContentsSsr(ctx, apolloClient, defaultPromotedContentFilters);\n\n await getCategoriesSsr(apolloClient);\n\n return addApolloState(apolloClient, {\n props: {},\n });\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"grid\":\"Masonry_grid__3G6pj\",\"gridColumn\":\"Masonry_gridColumn__42Yzw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"block\":\"NoData_block__2Z5G_\",\"content\":\"NoData_content__3igT3\",\"img\":\"NoData_img__vThq3\",\"title\":\"NoData_title__TBBR2\",\"btn\":\"NoData_btn__N4Bsh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"block\":\"ContentCard_block__Z3hXJ\",\"img\":\"ContentCard_img__5Z4sB\",\"header\":\"ContentCard_header__fS7EQ\",\"imgSmall\":\"ContentCard_imgSmall__ajJ7_\",\"imgBig\":\"ContentCard_imgBig__qvWxr\",\"info\":\"ContentCard_info__MXz1A\",\"typeBadge\":\"ContentCard_typeBadge__M9tpc\",\"title\":\"ContentCard_title__0eKkW\",\"date\":\"ContentCard_date__uDZIg\",\"downloadLink\":\"ContentCard_downloadLink__1Ldn_\",\"downloadIcon\":\"ContentCard_downloadIcon__cmcxm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"block\":\"ContentFilters_block__hD1Vn\",\"categories\":\"ContentFilters_categories__yB8E_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"section\":\"LibrarySlider_section__MCzos\",\"cover\":\"LibrarySlider_cover__J5KZN\",\"sliderItem\":\"LibrarySlider_sliderItem__2XifU\",\"sliderItemTopWidgets\":\"LibrarySlider_sliderItemTopWidgets__nGMf7\",\"sliderItemTitle\":\"LibrarySlider_sliderItemTitle__jY3qK\",\"leftRightBackgroundWrapper\":\"LibrarySlider_leftRightBackgroundWrapper__SeQtc\",\"leftBackground\":\"LibrarySlider_leftBackground__yQ0xR\",\"rightBackground\":\"LibrarySlider_rightBackground__E_nz3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"icon\":\"ContentTypeIcon_icon__mg4ix\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"extension\":\"MaterialExtension_extension__qUIaE\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"categoryTitle\":\"library_categoryTitle__t007e\"};","import React from 'react';\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nconst defaultProps = {\n breakpointCols: undefined,\n // optional, number or object { default: number, [key: number]: number }\n className: undefined,\n // required, string\n columnClassName: undefined,\n // optional, string\n // Any React children. Typically an array of JSX items\n children: undefined,\n // Custom attributes, however it is advised against\n // using these to prevent unintended issues and future conflicts\n // ...any other attribute, will be added to the container\n columnAttrs: undefined,\n // object, added to the columns\n // Deprecated props\n // The column property is deprecated.\n // It is an alias of the `columnAttrs` property\n column: undefined\n};\nconst DEFAULT_COLUMNS = 2;\n\nclass Masonry extends React.Component {\n constructor(props) {\n super(props); // Correct scope for when methods are accessed externally\n\n this.reCalculateColumnCount = this.reCalculateColumnCount.bind(this);\n this.reCalculateColumnCountDebounce = this.reCalculateColumnCountDebounce.bind(this); // default state\n\n let columnCount;\n\n if (this.props.breakpointCols && this.props.breakpointCols.default) {\n columnCount = this.props.breakpointCols.default;\n } else {\n columnCount = parseInt(this.props.breakpointCols) || DEFAULT_COLUMNS;\n }\n\n this.state = {\n columnCount\n };\n }\n\n componentDidMount() {\n this.reCalculateColumnCount(); // window may not be available in some environments\n\n if (window) {\n window.addEventListener('resize', this.reCalculateColumnCountDebounce);\n }\n }\n\n componentDidUpdate() {\n this.reCalculateColumnCount();\n }\n\n componentWillUnmount() {\n if (window) {\n window.removeEventListener('resize', this.reCalculateColumnCountDebounce);\n }\n }\n\n reCalculateColumnCountDebounce() {\n if (!window || !window.requestAnimationFrame) {\n // IE10+\n this.reCalculateColumnCount();\n return;\n }\n\n if (window.cancelAnimationFrame) {\n // IE10+\n window.cancelAnimationFrame(this._lastRecalculateAnimationFrame);\n }\n\n this._lastRecalculateAnimationFrame = window.requestAnimationFrame(() => {\n this.reCalculateColumnCount();\n });\n }\n\n reCalculateColumnCount() {\n const windowWidth = window && window.innerWidth || Infinity;\n let breakpointColsObject = this.props.breakpointCols; // Allow passing a single number to `breakpointCols` instead of an object\n\n if (typeof breakpointColsObject !== 'object') {\n breakpointColsObject = {\n default: parseInt(breakpointColsObject) || DEFAULT_COLUMNS\n };\n }\n\n let matchedBreakpoint = Infinity;\n let columns = breakpointColsObject.default || DEFAULT_COLUMNS;\n\n for (let breakpoint in breakpointColsObject) {\n const optBreakpoint = parseInt(breakpoint);\n const isCurrentBreakpoint = optBreakpoint > 0 && windowWidth <= optBreakpoint;\n\n if (isCurrentBreakpoint && optBreakpoint < matchedBreakpoint) {\n matchedBreakpoint = optBreakpoint;\n columns = breakpointColsObject[breakpoint];\n }\n }\n\n columns = Math.max(1, parseInt(columns) || 1);\n\n if (this.state.columnCount !== columns) {\n this.setState({\n columnCount: columns\n });\n }\n }\n\n itemsInColumns() {\n const currentColumnCount = this.state.columnCount;\n const itemsInColumns = new Array(currentColumnCount); // Force children to be handled as an array\n\n const items = React.Children.toArray(this.props.children);\n\n for (let i = 0; i < items.length; i++) {\n const columnIndex = i % currentColumnCount;\n\n if (!itemsInColumns[columnIndex]) {\n itemsInColumns[columnIndex] = [];\n }\n\n itemsInColumns[columnIndex].push(items[i]);\n }\n\n return itemsInColumns;\n }\n\n renderColumns() {\n const {\n column,\n columnAttrs = {},\n columnClassName\n } = this.props;\n const childrenInColumns = this.itemsInColumns();\n const columnWidth = `${100 / childrenInColumns.length}%`;\n let className = columnClassName;\n\n if (className && typeof className !== 'string') {\n this.logDeprecated('The property \"columnClassName\" requires a string'); // This is a deprecated default and will be removed soon.\n\n if (typeof className === 'undefined') {\n className = 'my-masonry-grid_column';\n }\n }\n\n const columnAttributes = _objectSpread(_objectSpread(_objectSpread({}, column), columnAttrs), {}, {\n style: _objectSpread(_objectSpread({}, columnAttrs.style), {}, {\n width: columnWidth\n }),\n className\n });\n\n return childrenInColumns.map((items, i) => {\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, columnAttributes, {\n key: i\n }), items);\n });\n }\n\n logDeprecated(message) {\n console.error('[Masonry]', message);\n }\n\n render() {\n const _this$props = this.props,\n {\n // ignored\n children,\n breakpointCols,\n columnClassName,\n columnAttrs,\n column,\n // used\n className\n } = _this$props,\n rest = _objectWithoutProperties(_this$props, [\"children\", \"breakpointCols\", \"columnClassName\", \"columnAttrs\", \"column\", \"className\"]);\n\n let classNameOutput = className;\n\n if (typeof className !== 'string') {\n this.logDeprecated('The property \"className\" requires a string'); // This is a deprecated default and will be removed soon.\n\n if (typeof className === 'undefined') {\n classNameOutput = 'my-masonry-grid';\n }\n }\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, rest, {\n className: classNameOutput\n }), this.renderColumns());\n }\n\n}\n\nMasonry.defaultProps = defaultProps;\n\nexport default Masonry;\n"],"names":["doc","loc","source","names","collectFragmentReferences","node","refs","kind","add","name","value","type","selectionSet","selections","forEach","selection","variableDefinitions","def","definitions","concat","filter","definitionRefs","findOperation","i","length","element","Set","module","exports","operationName","newDoc","hasOwnProperty","opRefs","allRefs","newRefs","refName","size","prevRefs","has","childRef","op","push","oneQuery","window","__NEXT_P","MasonryGrid","breakpointColumns","children","Masonry","breakpointCols","className","css","columnClassName","NoData","text","btnText","onBtnClick","div","cn","Image","src","minionImg","layout","alt","UiTitle","as","align","UiButton","fluid","weight","variant","onClick","MaterialExtension","fileName","extension","split","pop","toLocaleUpperCase","UiText","color","item","cardIndex","useRouter","pathname","useMediaQueries","isMobile","contentCardLink","toLocaleLowerCase","slug","linkProp","ContentTypeEnum","link","handleClick","event","url","preventDefault","speakers","ContentSpeakersAvatars","Cover","vertical","background","coverUrl","imgProxyProps","sourceWidth","sourceHeight","resizingType","gravityType","widgets","right","ContentTypeIcon","documentUrl","Link","href","UiIcon","getBadgeLabel","truncateProps","clamp","useNativeClamp","title","dayjs","created","fromNow","getTypeIcon","useCategories","useQuery","CATEGORIES_QUERY","client","query","useMediaQuery","maxWidth","isMobileOrTablet","isTablet","minWidth","isTabletOrDesktop","isDesktop","LibrarySlider","items","getLinkOfContent","section","sliderSettings","dots","arrows","dotsReverse","autoplaySpeed","wrapperClassName","map","topWidgetsClassName","top","left","invertedColor","trackAnalyticsData","AnalyticsEvent","speaker","id","onTrack","ContentFilters","categories","onFiltersChange","selectedCategory","tags","label","c","UiTags","selected","onTagClick","tag","ContentList","props","data","onLoadMore","router","onContentCardClick","card","InfiniteScroll","loadMore","hasMore","threshold","masonryBreakpointCols","index","ContentCard","ContentListContainer","filters","onResetFilters","useContents","loading","fetchMore","contents","handleLoadMore","variables","offset","console","log","UiLoader","contentLoading","defaultPromotedContentFilters","promoted","defaultFilters","category","createContentsFiltersParams","params","limit","Library","useState","promotedData","categoriesData","categoryTitle","useMemo","categoryName","find","useEffect","routeParams","shallow","PageMeta","getMetaInfo","promotedContentLoading","LayoutConfines","categoriesLoading","setFilters","oldFilters","_objectWithoutProperties","excluded","key","target","sourceKeys","Object","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","prototype","propertyIsEnumerable","call","_extends","assign","arguments","apply","this","ownKeys","object","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","configurable","writable","defaultProps","undefined","columnAttrs","column","constructor","columnCount","super","reCalculateColumnCount","bind","reCalculateColumnCountDebounce","default","parseInt","state","componentDidMount","addEventListener","componentDidUpdate","componentWillUnmount","removeEventListener","requestAnimationFrame","cancelAnimationFrame","_lastRecalculateAnimationFrame","windowWidth","innerWidth","Infinity","breakpointColsObject","matchedBreakpoint","columns","breakpoint","optBreakpoint","Math","max","setState","itemsInColumns","currentColumnCount","Array","columnIndex","renderColumns","childrenInColumns","columnWidth","logDeprecated","columnAttributes","style","width","message","error","render","_this$props","rest","classNameOutput"],"sourceRoot":""}