{"version":3,"file":"index.js","mappings":"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","sources":["webpack://popups-core/webpack/runtime/load script","webpack://popups-core/./node_modules/@tj-dev/shared-core/dist/index-npm.js","webpack://popups-core/./src/adapter/__mocks__/social-api.ts","webpack://popups-core/./src/adapter/__mocks__/mercury-api.ts","webpack://popups-core/./src/presents/achievement-popup/util/get-date-published-period.ts","webpack://popups-core/./src/adapter/mercury-api.ts","webpack://popups-core/./src/adapter/index.ts","webpack://popups-core/./src/adapter/social-api.ts","webpack://popups-core/./src/constants.ts","webpack://popups-core/./src/util/http-api.ts","webpack://popups-core/./src/util/get-cookie.ts","webpack://popups-core/./src/util/shared-core-v3.ts","webpack://popups-core/./node_modules/react-dom/client.js","webpack://popups-core/external var \"LIBS.react\"","webpack://popups-core/external var \"LIBS[\\\"react-dom\\\"]\"","webpack://popups-core/webpack/bootstrap","webpack://popups-core/webpack/runtime/compat get default export","webpack://popups-core/webpack/runtime/define property getters","webpack://popups-core/webpack/runtime/ensure chunk","webpack://popups-core/webpack/runtime/get javascript chunk filename","webpack://popups-core/webpack/runtime/get mini-css chunk filename","webpack://popups-core/webpack/runtime/global","webpack://popups-core/webpack/runtime/hasOwnProperty shorthand","webpack://popups-core/webpack/runtime/make namespace object","webpack://popups-core/webpack/runtime/publicPath","webpack://popups-core/webpack/runtime/css loading","webpack://popups-core/webpack/runtime/jsonp chunk loading","webpack://popups-core/./src/presents/index.tsx","webpack://popups-core/./src/controllers/achievement-popup.ts","webpack://popups-core/./src/controllers/ban-popup.ts","webpack://popups-core/./src/init.ts","webpack://popups-core/./src/util/window.ts","webpack://popups-core/./src/index.ts"],"sourcesContent":["var inProgress = {};\nvar dataWebpackPrefix = \"popups-core:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","(()=>{\"use strict\";var e={595:(e,r)=>{function o(e=i()){var r;return Boolean(null===(r=null==e?void 0:e.tjlib)||void 0===r?void 0:r.core)}function i(){return\"undefined\"!=typeof window?window:null}Object.defineProperty(r,\"__esModule\",{value:!0}),r.getCore=r.setCore=r.isCoreInitialized=void 0,r.isCoreInitialized=o,r.setCore=function(e,r=i()){if(!r)throw new Error(\"unable to initialize shared core without holder\");if(o(r))throw new Error(\"tjlib.core is already initialized\");r.tjlib=r.tjlib||{},r.tjlib.core=e},r.getCore=function(e=i()){var r;return null===(r=null==e?void 0:e.tjlib)||void 0===r?void 0:r.core}}},r={};function o(i){var t=r[i];if(void 0!==t)return t.exports;var n=r[i]={exports:{}};return e[i](n,n.exports,o),n.exports}var i={};(()=>{var e=i;Object.defineProperty(e,\"__esModule\",{value:!0}),e.getCore=void 0;var r=o(595);Object.defineProperty(e,\"getCore\",{enumerable:!0,get:function(){return r.getCore}})})(),module.exports=i})();","import type { SocialApiAdapter } from '../social-api';\nimport achievementResponse from './data/achievements.json';\nimport featureFlagsResponse from './data/feature-flags.json';\nimport userResponse from './data/user.json';\nimport achievementWithoutUserResponse from './data/achievement-without-user.json';\nimport type { components } from '../types/social-api-types';\nimport type { User } from '../../types';\n\nasync function getUserAchievementBySlug() {\n return Promise.resolve(\n achievementResponse as components['schemas']['ProfileAchievementDetail']\n );\n}\n\nasync function markAchievementAsShown() {\n return Promise.resolve();\n}\n\nasync function getFeatureFlags() {\n return Promise.resolve(\n featureFlagsResponse as components['schemas']['FeatureFlagsResponse']\n );\n}\n\nasync function getUser() {\n return Promise.resolve(userResponse as User);\n}\n\nfunction banUser() {\n return Promise.resolve(null);\n}\n\nfunction banUserPrivate() {\n return Promise.resolve({\n current_ban: null,\n } as components['schemas']['PrivateUserCurrentBan']);\n}\n\nfunction unbanUser() {\n return Promise.resolve(null);\n}\n\nfunction unbanUserPrivate() {\n return Promise.resolve({ current_ban: null });\n}\n\nfunction getAccessToken() {\n return Promise.resolve({\n access_token: 'token',\n });\n}\n\nfunction getAchievementBySlug() {\n return Promise.resolve(\n achievementWithoutUserResponse as components['schemas']['Achievements']\n );\n}\nfunction getAchievementsByGroup() {\n return Promise.resolve([\n achievementWithoutUserResponse,\n {\n ...achievementWithoutUserResponse,\n slug: 'achievement-2',\n },\n ] as components['schemas']['Achievements'][]);\n}\n\nfunction getUserAchievementsByGroup() {\n return Promise.resolve([\n achievementResponse,\n {\n ...achievementResponse,\n slug: 'achievement-2',\n },\n ] as components['schemas']['ProfileAchievementDetail'][]);\n}\n\nconst mockSocialAdapter: SocialApiAdapter = {\n getUserAchievementBySlug,\n getUserAchievementsByGroup,\n markAchievementAsShown,\n getFeatureFlags,\n getUser,\n banUser,\n banUserPrivate,\n unbanUser,\n unbanUserPrivate,\n getAccessToken,\n getAchievementBySlug,\n getAchievementsByGroup,\n};\n\nexport default mockSocialAdapter;\n","import flowResponse from './data/flows-images.json';\nimport articleCardsResponse from './data/article-cards.json';\nimport articlesCardDiscussResponse from './data/articles-discuss-flow.json';\nimport type { MercuryAdapter } from '../mercury-api';\nimport type { components } from '../types/mercury-api-types';\n\nasync function getFlowsImagesBySlug(slugsString: string) {\n return Promise.resolve(flowResponse);\n}\n\nasync function getArticleCardsBySlugs(slugs: string[]) {\n return Promise.resolve(\n articleCardsResponse as components['schemas']['FlowCard'][]\n );\n}\n\nasync function getMostCommentedArticlesFromDiscussFlow() {\n return Promise.resolve(\n articlesCardDiscussResponse as components['schemas']['FlowCard'][]\n );\n}\n\nasync function getMostCommentedArticles() {\n return Promise.resolve(\n articleCardsResponse as components['schemas']['FlowCard'][]\n );\n}\n\nconst mockMercuryApiAdapter: MercuryAdapter = {\n getFlowsImagesBySlug,\n getArticleCardsBySlugs,\n getMostCommentedArticlesFromDiscussFlow,\n getMostCommentedArticles,\n};\n\nexport default mockMercuryApiAdapter;\n","export function getDatePublishedPeriod(period = 7) {\n const date = new Date();\n date.setDate(date.getDate() - period);\n\n return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;\n}\n","import { mercuryApi } from '../util/http-api';\nimport type { components } from './types/mercury-api-types';\nimport { getDatePublishedPeriod } from '../presents/achievement-popup/util/get-date-published-period';\n\nexport type FlowBySlug = components['schemas']['Flow'] &\n NonNullable>;\n\n// * Принимает slug'и через запятую\nasync function getFlowsImagesBySlug(slugsString: string) {\n let response;\n try {\n response = await mercuryApi.get(\n `/flows/?slugs=${slugsString}&fields=kind,image&limit=300`\n );\n } catch (err) {\n console.error(err);\n }\n\n return (\n response?.reduce((acc, item) => {\n if (item.slug) {\n acc[item.slug] = item.image?.files.original.filepath;\n }\n return acc;\n }, {} as Record) ?? {}\n );\n}\n\nasync function getArticlesCards(\n params?: URLSearchParams\n): Promise {\n try {\n const response = await mercuryApi.get<\n components['schemas']['FlowCardCachedList']\n >(`/articles/cards?${params?.toString() || ''}`, true);\n return response.data;\n } catch (e) {\n console.error(e);\n throw e;\n }\n}\n\nasync function getArticleCardsBySlugs(\n slugs: string[],\n sortByPublicationDate: 'oldest' | 'newest' = 'oldest'\n): Promise {\n const params = new URLSearchParams({\n slugs: slugs.join(','),\n limit: slugs.length.toString(),\n orderby:\n sortByPublicationDate === 'oldest' ? 'date_published' : '-date_published',\n });\n\n return getArticlesCards(params);\n}\n\nasync function getMostCommentedArticlesFromDiscussFlow(): Promise<\n components['schemas']['FlowCard'][]\n> {\n const params = new URLSearchParams({\n limit: '5',\n orderBy: '-comments',\n flows: 'discuss',\n from_date_published: getDatePublishedPeriod(7),\n });\n\n return getArticlesCards(params);\n}\n\nasync function getMostCommentedArticles(): Promise<\n components['schemas']['FlowCard'][]\n> {\n const params = new URLSearchParams({\n limit: '5',\n orderBy: '-comments',\n from_date_published: getDatePublishedPeriod(7),\n });\n\n return getArticlesCards(params);\n}\n\nconst mercuryApiAdapter = {\n getFlowsImagesBySlug,\n getArticleCardsBySlugs,\n getMostCommentedArticles,\n getMostCommentedArticlesFromDiscussFlow,\n};\n\nexport default mercuryApiAdapter;\n\nexport type MercuryAdapter = typeof mercuryApiAdapter;\n","import socialApiAdapter from './social-api';\nimport socialMockAdapter from './__mocks__/social-api';\nimport mockMercuryApiAdapter from './__mocks__/mercury-api';\nimport mercuryApiAdapter from './mercury-api';\n\nconst isMock = Boolean(process.env.MOCK ?? false);\n\nexport const socialApi = isMock ? socialMockAdapter : socialApiAdapter;\nexport const mercuryApi = isMock ? mockMercuryApiAdapter : mercuryApiAdapter;\n","import { socialApi, socialApiPrivate } from '../util/http-api';\nimport type { components } from './types/social-api-types';\nimport type { User } from '../types';\n\nasync function getAchievementBySlug(slug: string) {\n return socialApi.get(\n `/achievements/${slug}/`\n );\n}\n\nasync function getAchievementsByGroup(group: string) {\n const achievements = await socialApi.get<\n components['schemas']['AccountUserAchievement'][]\n >(`/achievements/?group=${group}`);\n\n const slugs = achievements\n .sort((a, b) => a.target - b.target)\n .map((a) => a.slug);\n\n return Promise.all(slugs.map((slug) => getAchievementBySlug(slug)));\n}\n\nasync function getUserAchievementBySlug(slug: string, userId: number) {\n return socialApi.get(\n `/profiles/${userId}/achievements/${slug}/`\n );\n}\n\nasync function getUserAchievementsByGroup(group: string, userId: number) {\n const achievements = await socialApi.get<\n components['schemas']['AccountUserAchievement'][]\n >(`/profiles/${userId}/achievements/?group=${group}`);\n\n const slugs = achievements\n .sort((a, b) => a.target - b.target)\n .map((a) => a.slug);\n\n return Promise.all(\n slugs.map((slug) => getUserAchievementBySlug(slug, userId))\n );\n}\n\nasync function markAchievementAsShown(slug: string) {\n return socialApi.post(`/account/achievements/${slug}/mark_as_shown/`, {});\n}\n\nasync function getFeatureFlags() {\n return socialApi.get(\n '/flags/'\n );\n}\n\nfunction getUser(id: number): Promise {\n return socialApi.get(`/profiles/${id}/`);\n}\n\nfunction banUser(\n id: number,\n ban: components['schemas']['BanUserRequestRequest']\n): Promise {\n return socialApi.post(`/profiles/${id}/ban/`, ban);\n}\n\nfunction banUserPrivate(\n id: number,\n ban: components['schemas']['PrivateCreateBanRequestRequest']\n): Promise {\n return socialApiPrivate.post(`/users/${id}/ban/`, ban);\n}\n\nfunction unbanUser(id: number): Promise {\n return socialApi.post(`/profiles/${id}/unban/`, {});\n}\n\nfunction unbanUserPrivate(\n id: number\n): Promise {\n return socialApiPrivate.post(`/users/${id}/unban/`, {});\n}\n\nfunction getAccessToken(): Promise<{\n access_token: string;\n}> {\n return socialApiPrivate.get(`/me/`);\n}\n\nconst socialApiAdapter = {\n getAchievementBySlug,\n getAchievementsByGroup,\n getUserAchievementBySlug,\n getUserAchievementsByGroup,\n markAchievementAsShown,\n getFeatureFlags,\n getUser,\n banUser,\n banUserPrivate,\n unbanUser,\n unbanUserPrivate,\n getAccessToken,\n};\n\nexport default socialApiAdapter;\n\nexport type SocialApiAdapter = typeof socialApiAdapter;\n","export const ACCESS_TOKEN_SESSION_KEY = 'tj-popups-core-access-token';\n","import { getCookie } from './get-cookie';\nimport { ACCESS_TOKEN_SESSION_KEY } from '../constants';\n\ntype RequestOptions = {\n method: 'GET' | 'POST' | 'DELETE' | 'PUT';\n headers: Record;\n referrerPolicy?: ReferrerPolicy;\n credentials?: RequestCredentials;\n body?: any;\n};\n\nconst { SOCIAL_API_URL, MERCURY_API_URL } = window.CONSTANTS;\nexport const SOCIAL_API = `${SOCIAL_API_URL}/api/v29`;\nexport const SOCIAL_API_PRIVATE = `${SOCIAL_API_URL}/private/v26`;\nexport const MERCURY_API = `${MERCURY_API_URL}/public/v1`;\n\nconst getApi = (api: string, includeToken = false) => ({\n get: get(api, includeToken),\n post: post(api, includeToken),\n put: put(api, includeToken),\n delete: _delete(api, includeToken),\n});\n\nfunction get(\n api: string,\n includeToken: boolean\n): (url: string, fullResponse?: boolean) => Promise {\n return (url: string, fullResponse?: boolean) =>\n fetch(api + url, getRequestOptions(includeToken, 'GET')).then((r) =>\n handleResponse(r, fullResponse)\n );\n}\n\nfunction post(\n api: string,\n includeToken: boolean\n): (url: string, body: T) => Promise {\n return (url: string, body: T) =>\n fetch(api + url, getRequestOptions(includeToken, 'POST', body)).then(\n (r) => handleResponse(r)\n );\n}\n\nfunction put(\n api: string,\n includeToken: boolean\n): (url: string, body?: T) => Promise {\n return (url: string, body?: T) =>\n fetch(api + url, getRequestOptions(includeToken, 'PUT', body)).then(\n (r) => handleResponse(r)\n );\n}\n\nfunction _delete(\n api: string,\n includeToken: boolean\n): (url: string) => Promise {\n return (url: string) =>\n fetch(api + url, getRequestOptions(includeToken, 'DELETE'));\n}\n\n// helper functions\nexport function handleResponse(\n response: Response,\n fullResponse?: boolean\n): Promise {\n return response\n .json()\n .then((data) => {\n if (!response.ok || data.status !== 'ok') {\n const errorText = data?.error?.code || response.statusText;\n throw errorText;\n }\n return fullResponse ? data : data.data;\n })\n .catch((err) => {\n throw String(err);\n });\n}\n\nexport function getRequestOptions(\n includeToken: boolean,\n method: RequestOptions['method'],\n body?: T\n) {\n const requestOptions: RequestOptions = {\n method,\n credentials: 'include',\n // По умолчанию, fetch не отправляет полный Referer при cross-origin\n // запросах. Но у нас он используется, например для аналитики. Поэтому\n // меняем политику на передачу полного Referer'a, кроме HTTP запросов,\n // которых у нас по идее быть не должно\n referrerPolicy: 'no-referrer-when-downgrade',\n headers: {\n 'Content-Type': 'application/json',\n },\n };\n\n // Куку x_csrf подставляет соц.платформа\n // чтобы приложение могло запрашивать/менять данные\n const csrf = getCookie('x_csrf');\n if (csrf) {\n requestOptions.headers['X-CSRFToken'] = csrf;\n }\n\n if (body) {\n requestOptions.body = JSON.stringify(body);\n }\n\n if (includeToken) {\n const token = sessionStorage.getItem(ACCESS_TOKEN_SESSION_KEY);\n if (token) {\n requestOptions.headers.Authorization = `Bearer ${token}`;\n }\n }\n\n return requestOptions;\n}\n\nexport const socialApi = {\n ...getApi(SOCIAL_API),\n};\n\nexport const socialApiPrivate = {\n ...getApi(SOCIAL_API_PRIVATE, true),\n};\n\nexport const mercuryApi = {\n ...getApi(MERCURY_API),\n};\n","export function getCookie(name: string) {\n const value = `; ${document.cookie}`;\n const parts = value.split(`; ${name}=`);\n if (parts && parts.length === 2) {\n return parts.pop()?.split(';').shift();\n }\n}\n","import { getCore } from '@tj-dev/shared-core';\nimport type {\n Profile,\n RecentSocialId,\n RequestLoginParams,\n} from '@tj-dev/shared-core/dist/types';\n\nexport function getProfile(): Profile {\n return getCore()?.profile.get();\n}\n\nexport function subscribeToProfileChange(cb: (profile: Profile) => void) {\n return getCore()?.profile.subscribe(cb);\n}\n\nexport function requestLogin(args: RequestLoginParams) {\n return getCore()?.actions.requestLogin(args);\n}\n\nexport function getRecentSocialId(): RecentSocialId {\n return getCore()?.recentSocialId.get();\n}\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","module.exports = LIBS.react;","module.exports = LIBS[\"react-dom\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","if (typeof document === \"undefined\") return;\nvar createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tif (__webpack_require__.nc) {\n\t\tlinkTag.nonce = __webpack_require__.nc;\n\t}\n\tvar onLinkComplete = (event) => {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && event.type;\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + errorType + \": \" + realHref + \")\");\n\t\t\terr.name = \"ChunkLoadError\";\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = (href, fullhref) => {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = (chunkId) => {\n\treturn new Promise((resolve, reject) => {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t57: 0\n};\n\n__webpack_require__.f.miniCss = (chunkId, promises) => {\n\tvar cssChunks = {\"498\":1,\"705\":1,\"944\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, (e) => {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr\n\n// no prefetching\n\n// no preloaded","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t57: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkpopups_core\"] = self[\"webpackChunkpopups_core\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","import React from 'react';\nimport ReactDOMClient from 'react-dom/client';\n\nexport function present

(\n Component: React.ComponentType

,\n props: P\n) {\n const holder = createHolder();\n const root = ReactDOMClient.createRoot(holder);\n\n root.render();\n\n function unmount() {\n root.unmount();\n holder.remove();\n }\n\n return unmount;\n}\n\nfunction createHolder() {\n const holder = document.createElement('div');\n document.body.appendChild(holder);\n return holder;\n}\n","import { present } from '../presents';\nimport { subscribeToProfileChange } from '../util/shared-core-v3';\nimport { socialApi } from '../adapter';\nimport type { AchievementPopupScreen } from '../types';\nimport type { AchievementPopupContainerProps } from '../presents/achievement-popup';\n\nasync function renderPopup(props: {\n slug: string;\n userId?: number;\n newAchievement?: boolean;\n screen?: AchievementPopupScreen;\n trackingPointOfContact?: string;\n trackingProvider?: string;\n}) {\n const AchievementPopup = (await import('../presents/achievement-popup/index'))\n .default;\n\n return new Promise((resolve) => {\n const unmount = present(AchievementPopup, {\n ...props,\n onClose() {\n unmount();\n resolve();\n },\n });\n });\n}\n\nfunction open(props: {\n slug: string;\n userId?: number;\n screen?: AchievementPopupScreen;\n trackingPointOfContact?: string;\n trackingProvider?: string;\n}) {\n return renderPopup(props);\n}\n\nfunction subscribeToNewUserAchievement() {\n subscribeToProfileChange(async (profile) => {\n if (!profile?.last_obtained_achievement) {\n return;\n }\n\n const pathParts = window.location.pathname.split('/');\n const articleSlug = pathParts[pathParts.length - 1];\n\n try {\n renderPopup({\n slug: profile.last_obtained_achievement.slug,\n userId: profile.id,\n newAchievement: true,\n trackingPointOfContact: 'obtained_achievement',\n trackingProvider: articleSlug,\n });\n socialApi.markAchievementAsShown(profile.last_obtained_achievement.slug);\n } catch (e) {\n console.error(e);\n }\n });\n}\n\nfunction subscribeToHashChange() {\n const listener = (e: HashChangeEvent) => {\n const { hash } = new URL(e.newURL);\n const params = new URLSearchParams(hash.replace('#', '?'));\n const slug = params.get('achievement-popup');\n\n if (slug) {\n try {\n renderPopup({\n slug,\n trackingProvider: params.get('provider') ?? undefined,\n trackingPointOfContact: params.get('pointOfContact') ?? undefined,\n });\n } catch (e) {\n console.error(e);\n }\n }\n };\n window.addEventListener('hashchange', listener);\n}\n\nexport const achievementPopup = {\n open,\n subscribeToNewUserAchievement,\n subscribeToHashChange,\n};\n","import { present } from '../presents';\nimport type { BanPopupProps } from '../presents/ban-popup';\nimport type { BanPopupResponse } from '../types';\n\nasync function renderPopup(props: Omit) {\n const BanPopup = (await import('../presents/ban-popup')).default;\n\n return new Promise((resolve) => {\n const unmount = present(BanPopup, {\n ...props,\n onClose(res) {\n unmount();\n resolve(res);\n },\n });\n }) as Promise;\n}\n\nfunction openBan(\n props: Omit\n) {\n return renderPopup({ ...props, modalType: 'ban' });\n}\n\nfunction openUnban(\n props: Omit\n) {\n return renderPopup({ ...props, modalType: 'unban' });\n}\n\nexport const banPopup = {\n openBan,\n openUnban,\n};\n","import React from 'react';\nimport ReactDOMClient from 'react-dom/client';\nimport { setPopupsCore } from './util/window';\nimport type { PopupsCore } from './types';\nimport { achievementPopup } from './controllers/achievement-popup';\nimport { banPopup } from './controllers/ban-popup';\n\nexport default function init() {\n if (typeof window === 'undefined') {\n return undefined;\n }\n\n if (typeof React === 'undefined' || typeof ReactDOMClient === 'undefined') {\n throw new Error(\n 'facade did not provide LIBS[react, react-dom] required for popups-core'\n );\n }\n\n initCore();\n}\n\nfunction initCore() {\n const core: PopupsCore = {\n achievement: {\n open: achievementPopup.open,\n },\n ban: {\n open: banPopup.openBan,\n },\n unban: {\n open: banPopup.openUnban,\n },\n };\n achievementPopup.subscribeToNewUserAchievement();\n achievementPopup.subscribeToHashChange();\n setPopupsCore(core);\n}\n","import type { PopupsCore, PopupsCoreHolder } from '../types';\n\nexport function getPopupsCore(wnd: PopupsCoreHolder | null = getHolder()) {\n return wnd?.tjlib?.popups;\n}\n\nfunction getHolder() {\n return window as PopupsCoreHolder;\n}\n\nexport function setPopupsCore(core: PopupsCore) {\n const wnd = getHolder();\n wnd.tjlib = wnd.tjlib || {};\n wnd.tjlib.popups = core;\n}\n","import init from './init';\n\ninit();\n"],"names":["inProgress","dataWebpackPrefix","e","r","o","i","Boolean","tjlib","core","window","Object","defineProperty","value","getCore","setCore","isCoreInitialized","Error","t","exports","n","enumerable","get","module","getUserAchievementBySlug","async","Promise","resolve","achievementResponse","getUserAchievementsByGroup","slug","markAchievementAsShown","getFeatureFlags","featureFlagsResponse","getUser","userResponse","banUser","banUserPrivate","current_ban","unbanUser","unbanUserPrivate","getAccessToken","access_token","getAchievementBySlug","achievementWithoutUserResponse","getAchievementsByGroup","getFlowsImagesBySlug","slugsString","flowResponse","getArticleCardsBySlugs","slugs","articleCardsResponse","getMostCommentedArticlesFromDiscussFlow","articlesCardDiscussResponse","getMostCommentedArticles","getDatePublishedPeriod","period","date","Date","setDate","getDate","getFullYear","getMonth","getArticlesCards","params","mercuryApi","toString","data","console","error","response","err","reduce","acc","item","image","files","original","filepath","sortByPublicationDate","URLSearchParams","join","limit","length","orderby","orderBy","from_date_published","flows","isMock","process","socialApi","socialMockAdapter","socialApiAdapter","mockMercuryApiAdapter","mercuryApiAdapter","userId","group","sort","a","b","target","map","all","post","id","ban","socialApiPrivate","ACCESS_TOKEN_SESSION_KEY","SOCIAL_API_URL","MERCURY_API_URL","CONSTANTS","SOCIAL_API_PRIVATE","MERCURY_API","getApi","api","includeToken","put","delete","_delete","url","fullResponse","fetch","getRequestOptions","then","handleResponse","body","json","ok","status","code","statusText","catch","String","method","requestOptions","credentials","referrerPolicy","headers","csrf","parts","document","cookie","split","pop","shift","getCookie","JSON","stringify","token","sessionStorage","getItem","Authorization","subscribeToProfileChange","cb","profile","subscribe","getRecentSocialId","recentSocialId","m","createRoot","hydrateRoot","LIBS","react","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","__esModule","d","definition","key","f","chunkId","keys","promises","u","miniCssF","g","globalThis","this","Function","obj","prop","prototype","hasOwnProperty","call","l","done","push","script","needAttach","scripts","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","fn","setTimeout","bind","type","head","appendChild","Symbol","toStringTag","scriptUrl","importScripts","location","currentScript","tagName","toUpperCase","test","replace","p","installedCssChunks","miniCss","reject","href","fullhref","existingLinkTags","dataHref","tag","rel","existingStyleTags","findStylesheet","oldTag","linkTag","nonce","errorType","realHref","name","request","createStylesheet","loadStylesheet","installedChunks","j","installedChunkData","promise","realSrc","message","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","self","present","Component","props","holder","createHolder","root","ReactDOMClient","render","React","unmount","remove","renderPopup","AchievementPopup","default","onClose","achievementPopup","open","subscribeToNewUserAchievement","last_obtained_achievement","pathParts","pathname","articleSlug","newAchievement","trackingPointOfContact","trackingProvider","subscribeToHashChange","addEventListener","hash","URL","newURL","BanPopup","res","banPopup","openBan","modalType","openUnban","achievement","unban","wnd","popups","setPopupsCore","initCore","init"],"sourceRoot":""}