{"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/util/clean-hash.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 flow: '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';\nimport { cleanHash } from '../util/clean-hash';\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 cleanHash();\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","export function cleanHash() {\n window.history.replaceState(\n window.history.state,\n document.title,\n window.location.pathname + window.location.search\n );\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","from_date_published","flow","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","history","replaceState","state","title","pathname","search","achievementPopup","open","subscribeToNewUserAchievement","last_obtained_achievement","pathParts","articleSlug","newAchievement","trackingPointOfContact","trackingProvider","subscribeToHashChange","addEventListener","hash","URL","newURL","BanPopup","res","banPopup","openBan","modalType","openUnban","achievement","unban","wnd","popups","setPopupsCore","initCore","init"],"sourceRoot":""}