{"mappings":"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","sources":["","src/main.js","node_modules/language-observer/dist/index.module.js","node_modules/language-observer/dist/src/index.js","node_modules/resource-injector/dist/index.module.js","node_modules/resource-injector/dist/src/index.ts"],"sourcesContent":["(function () {\nclass $a3c31fda8b913dfa$var$$c38b013c361dbfdf$var$LanguageObserver {\n #lang;\n #observer;\n constructor(){\n this.#initializeObserver();\n this.#checkInitialLanguage();\n }\n static getNestedTranslation(obj, path) {\n return path.split(\".\").reduce((acc, part)=>acc?.[part], obj);\n }\n #checkInitialLanguage() {\n const detectedLang = this.#detectLanguageFromClass();\n this.loadLanguage(detectedLang).then();\n }\n #detectLanguageFromClass() {\n const localeClass = Array.from(document.body.classList).find((cls)=>cls.startsWith(\"locale-\"));\n const lang = localeClass ? localeClass.replace(\"locale-\", \"\") : \"ru\";\n return window.translations[lang] ? lang : \"ru\";\n }\n async loadLanguage(lang) {\n if (window.translations[lang]) this.#lang = lang;\n else this.#lang = \"ru\";\n await this.applyTranslations();\n }\n async applyTranslations() {\n const lang = this.#lang;\n const elements = document.querySelectorAll(\"[data-i18n], [data-i18n-attr]\");\n elements.forEach((el)=>{\n const key = el.getAttribute(\"data-i18n\");\n const attrKeys = el.getAttribute(\"data-i18n-attr\");\n if (key) {\n const translation = $a3c31fda8b913dfa$var$$c38b013c361dbfdf$var$LanguageObserver.getNestedTranslation(window.translations[lang], key);\n if (translation !== undefined) this.#updateElementText(el, translation);\n }\n if (attrKeys) {\n let attrMap;\n try {\n attrMap = JSON.parse(attrKeys);\n } catch {\n return;\n }\n Object.entries(attrMap).forEach(([attr, transKey])=>{\n const attrTranslation = $a3c31fda8b913dfa$var$$c38b013c361dbfdf$var$LanguageObserver.getNestedTranslation(window.translations[lang], transKey);\n if (attrTranslation !== undefined) el.setAttribute(attr, attrTranslation);\n });\n }\n });\n }\n #updateElementText(el, translation) {\n if (el.childNodes.length) el.childNodes.forEach((node)=>{\n if (node.nodeType === Node.TEXT_NODE) node.textContent = translation;\n });\n else el.textContent = translation;\n }\n #initializeObserver() {\n this.#observer = new MutationObserver((mutations)=>{\n mutations.forEach((mutation)=>{\n if (mutation.type === \"attributes\" && mutation.attributeName === \"class\") {\n const detectedLang = this.#detectLanguageFromClass();\n if (detectedLang !== this.#lang) this.loadLanguage(detectedLang).then();\n }\n });\n });\n this.#observer.observe(document.body, {\n attributes: true,\n attributeFilter: [\n \"class\"\n ]\n });\n }\n init({ lang: lang } = {}) {\n if (lang) this.loadLanguage(lang).then();\n }\n updateTranslations() {\n this.applyTranslations();\n }\n async loadTranslations(lang, translationLoader) {\n try {\n const translations = await translationLoader(lang);\n window.translations[lang] = translations;\n if (lang === this.#lang) await this.applyTranslations();\n } catch {}\n }\n}\nvar $a3c31fda8b913dfa$export$2e2bcd8739ae039 = $a3c31fda8b913dfa$var$$c38b013c361dbfdf$var$LanguageObserver;\n\n\nclass $a8f4e19f0ad41bfa$var$$643fcf18b2d2e76f$var$ResourceInjector {\n static #_ = this.loadedResources = new Map();\n constructor(){}\n async loadScript(jsUrl, options = {}, timeout = 10000) {\n if ($a8f4e19f0ad41bfa$var$$643fcf18b2d2e76f$var$ResourceInjector.loadedResources.has(jsUrl)) return $a8f4e19f0ad41bfa$var$$643fcf18b2d2e76f$var$ResourceInjector.loadedResources.get(jsUrl);\n const promise = new Promise((resolve)=>{\n const script = document.createElement(\"script\");\n script.src = jsUrl;\n Object.assign(script, options);\n const timer = setTimeout(()=>{\n resolve();\n }, timeout);\n script.onload = ()=>{\n clearTimeout(timer);\n $a8f4e19f0ad41bfa$var$$643fcf18b2d2e76f$var$ResourceInjector.loadedResources.set(jsUrl, promise);\n resolve();\n };\n script.onerror = ()=>{\n clearTimeout(timer);\n $a8f4e19f0ad41bfa$var$$643fcf18b2d2e76f$var$ResourceInjector.loadedResources.delete(jsUrl);\n resolve();\n };\n document.body.appendChild(script);\n });\n $a8f4e19f0ad41bfa$var$$643fcf18b2d2e76f$var$ResourceInjector.loadedResources.set(jsUrl, promise);\n return promise;\n }\n async loadStyle(cssUrl, options = {}, timeout = 10000) {\n if ($a8f4e19f0ad41bfa$var$$643fcf18b2d2e76f$var$ResourceInjector.loadedResources.has(cssUrl)) return $a8f4e19f0ad41bfa$var$$643fcf18b2d2e76f$var$ResourceInjector.loadedResources.get(cssUrl);\n const promise = new Promise((resolve)=>{\n const link = document.createElement(\"link\");\n link.href = cssUrl;\n link.rel = \"stylesheet\";\n Object.assign(link, options);\n const timer = setTimeout(()=>{\n resolve();\n }, timeout);\n link.onload = ()=>{\n clearTimeout(timer);\n $a8f4e19f0ad41bfa$var$$643fcf18b2d2e76f$var$ResourceInjector.loadedResources.set(cssUrl, promise);\n resolve();\n };\n link.onerror = ()=>{\n clearTimeout(timer);\n $a8f4e19f0ad41bfa$var$$643fcf18b2d2e76f$var$ResourceInjector.loadedResources.delete(cssUrl);\n resolve();\n };\n document.head.appendChild(link);\n });\n $a8f4e19f0ad41bfa$var$$643fcf18b2d2e76f$var$ResourceInjector.loadedResources.set(cssUrl, promise);\n return promise;\n }\n}\nvar $a8f4e19f0ad41bfa$export$2e2bcd8739ae039 = $a8f4e19f0ad41bfa$var$$643fcf18b2d2e76f$var$ResourceInjector;\n\n\nconst $5fbffa87c50562b9$var$App = {\n languageObserver: null,\n initLanguageObserver () {\n this.languageObserver = new (0, $a3c31fda8b913dfa$export$2e2bcd8739ae039)();\n this.languageObserver.init();\n },\n async loadExternalResources () {\n const resourceInjector = new (0, $a8f4e19f0ad41bfa$export$2e2bcd8739ae039)();\n await resourceInjector.loadScript('https://champcasino.ink/common/scripts/signup-form.js', {\n defer: true\n }, 5000);\n },\n async init () {\n await this.loadExternalResources();\n this.initLanguageObserver();\n }\n};\ndocument.addEventListener('DOMContentLoaded', ()=>$5fbffa87c50562b9$var$App.init());\n\n})();\n//# sourceMappingURL=index.79bda400.js.map\n","import LanguageObserver from 'language-observer';\nimport ResourceInjector from 'resource-injector';\n\nconst App = {\n languageObserver: null,\n\n initLanguageObserver() {\n this.languageObserver = new LanguageObserver();\n this.languageObserver.init();\n },\n\n async loadExternalResources() {\n const resourceInjector = new ResourceInjector();\n await resourceInjector.loadScript(\n 'https://champcasino.ink/common/scripts/signup-form.js',\n { defer: true },\n 5000,\n );\n },\n\n async init() {\n await this.loadExternalResources();\n this.initLanguageObserver();\n },\n};\n\ndocument.addEventListener('DOMContentLoaded', () => App.init());\n","class $c38b013c361dbfdf$var$LanguageObserver {\n #lang;\n #observer;\n constructor(){\n this.#initializeObserver();\n this.#checkInitialLanguage();\n }\n static getNestedTranslation(obj, path) {\n return path.split(\".\").reduce((acc, part)=>acc?.[part], obj);\n }\n #checkInitialLanguage() {\n const detectedLang = this.#detectLanguageFromClass();\n this.loadLanguage(detectedLang).then();\n }\n #detectLanguageFromClass() {\n const localeClass = Array.from(document.body.classList).find((cls)=>cls.startsWith(\"locale-\"));\n const lang = localeClass ? localeClass.replace(\"locale-\", \"\") : \"ru\";\n return window.translations[lang] ? lang : \"ru\";\n }\n async loadLanguage(lang) {\n if (window.translations[lang]) this.#lang = lang;\n else this.#lang = \"ru\";\n await this.applyTranslations();\n }\n async applyTranslations() {\n const lang = this.#lang;\n const elements = document.querySelectorAll(\"[data-i18n], [data-i18n-attr]\");\n elements.forEach((el)=>{\n const key = el.getAttribute(\"data-i18n\");\n const attrKeys = el.getAttribute(\"data-i18n-attr\");\n if (key) {\n const translation = $c38b013c361dbfdf$var$LanguageObserver.getNestedTranslation(window.translations[lang], key);\n if (translation !== undefined) this.#updateElementText(el, translation);\n }\n if (attrKeys) {\n let attrMap;\n try {\n attrMap = JSON.parse(attrKeys);\n } catch {\n return;\n }\n Object.entries(attrMap).forEach(([attr, transKey])=>{\n const attrTranslation = $c38b013c361dbfdf$var$LanguageObserver.getNestedTranslation(window.translations[lang], transKey);\n if (attrTranslation !== undefined) el.setAttribute(attr, attrTranslation);\n });\n }\n });\n }\n #updateElementText(el, translation) {\n if (el.childNodes.length) el.childNodes.forEach((node)=>{\n if (node.nodeType === Node.TEXT_NODE) node.textContent = translation;\n });\n else el.textContent = translation;\n }\n #initializeObserver() {\n this.#observer = new MutationObserver((mutations)=>{\n mutations.forEach((mutation)=>{\n if (mutation.type === \"attributes\" && mutation.attributeName === \"class\") {\n const detectedLang = this.#detectLanguageFromClass();\n if (detectedLang !== this.#lang) this.loadLanguage(detectedLang).then();\n }\n });\n });\n this.#observer.observe(document.body, {\n attributes: true,\n attributeFilter: [\n \"class\"\n ]\n });\n }\n init({ lang: lang } = {}) {\n if (lang) this.loadLanguage(lang).then();\n }\n updateTranslations() {\n this.applyTranslations();\n }\n async loadTranslations(lang, translationLoader) {\n try {\n const translations = await translationLoader(lang);\n window.translations[lang] = translations;\n if (lang === this.#lang) await this.applyTranslations();\n } catch {}\n }\n}\nvar $c38b013c361dbfdf$export$2e2bcd8739ae039 = $c38b013c361dbfdf$var$LanguageObserver;\n\n\nexport {$c38b013c361dbfdf$export$2e2bcd8739ae039 as default};\n//# sourceMappingURL=index.module.js.map\n","class LanguageObserver {\n #lang;\n #observer;\n\n constructor() {\n this.#initializeObserver();\n this.#checkInitialLanguage();\n }\n\n static getNestedTranslation(obj, path) {\n return path.split('.').reduce((acc, part) => acc?.[part], obj);\n }\n\n #checkInitialLanguage() {\n const detectedLang = this.#detectLanguageFromClass();\n\n this.loadLanguage(detectedLang).then();\n }\n\n #detectLanguageFromClass() {\n const localeClass = Array.from(document.body.classList).find(cls => cls.startsWith('locale-'));\n const lang = localeClass ? localeClass.replace('locale-', '') : 'ru';\n\n return window.translations[lang] ? lang : 'ru';\n }\n\n async loadLanguage(lang) {\n if (window.translations[lang]) {\n this.#lang = lang;\n } else {\n this.#lang = 'ru';\n }\n\n await this.applyTranslations();\n }\n\n async applyTranslations() {\n const lang = this.#lang;\n const elements = document.querySelectorAll('[data-i18n], [data-i18n-attr]');\n\n elements.forEach(el => {\n const key = el.getAttribute('data-i18n');\n const attrKeys = el.getAttribute('data-i18n-attr');\n\n if (key) {\n const translation = LanguageObserver.getNestedTranslation(window.translations[lang], key);\n\n if (translation !== undefined) {\n this.#updateElementText(el, translation);\n }\n }\n\n if (attrKeys) {\n let attrMap;\n\n try {\n attrMap = JSON.parse(attrKeys);\n } catch {\n return;\n }\n\n Object.entries(attrMap).forEach(([attr, transKey]) => {\n const attrTranslation = LanguageObserver.getNestedTranslation(window.translations[lang], transKey);\n\n if (attrTranslation !== undefined) {\n el.setAttribute(attr, attrTranslation);\n }\n });\n }\n });\n }\n\n #updateElementText(el, translation) {\n if (el.childNodes.length) {\n el.childNodes.forEach(node => {\n if (node.nodeType === Node.TEXT_NODE) {\n node.textContent = translation;\n }\n });\n } else {\n el.textContent = translation;\n }\n }\n\n #initializeObserver() {\n this.#observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (mutation.type === 'attributes' && mutation.attributeName === 'class') {\n const detectedLang = this.#detectLanguageFromClass();\n\n if (detectedLang !== this.#lang) {\n this.loadLanguage(detectedLang).then();\n }\n }\n });\n });\n\n this.#observer.observe(document.body, { attributes: true, attributeFilter: ['class'] });\n }\n\n init({ lang } = {}) {\n if (lang) this.loadLanguage(lang).then();\n }\n\n updateTranslations() {\n this.applyTranslations();\n }\n\n async loadTranslations(lang, translationLoader) {\n try {\n const translations = await translationLoader(lang);\n\n window.translations[lang] = translations;\n\n if (lang === this.#lang) {\n await this.applyTranslations();\n }\n } catch {\n\n }\n }\n}\n\nexport default LanguageObserver;\n","class $643fcf18b2d2e76f$var$ResourceInjector {\n static #_ = this.loadedResources = new Map();\n constructor(){}\n async loadScript(jsUrl, options = {}, timeout = 10000) {\n if ($643fcf18b2d2e76f$var$ResourceInjector.loadedResources.has(jsUrl)) return $643fcf18b2d2e76f$var$ResourceInjector.loadedResources.get(jsUrl);\n const promise = new Promise((resolve)=>{\n const script = document.createElement(\"script\");\n script.src = jsUrl;\n Object.assign(script, options);\n const timer = setTimeout(()=>{\n resolve();\n }, timeout);\n script.onload = ()=>{\n clearTimeout(timer);\n $643fcf18b2d2e76f$var$ResourceInjector.loadedResources.set(jsUrl, promise);\n resolve();\n };\n script.onerror = ()=>{\n clearTimeout(timer);\n $643fcf18b2d2e76f$var$ResourceInjector.loadedResources.delete(jsUrl);\n resolve();\n };\n document.body.appendChild(script);\n });\n $643fcf18b2d2e76f$var$ResourceInjector.loadedResources.set(jsUrl, promise);\n return promise;\n }\n async loadStyle(cssUrl, options = {}, timeout = 10000) {\n if ($643fcf18b2d2e76f$var$ResourceInjector.loadedResources.has(cssUrl)) return $643fcf18b2d2e76f$var$ResourceInjector.loadedResources.get(cssUrl);\n const promise = new Promise((resolve)=>{\n const link = document.createElement(\"link\");\n link.href = cssUrl;\n link.rel = \"stylesheet\";\n Object.assign(link, options);\n const timer = setTimeout(()=>{\n resolve();\n }, timeout);\n link.onload = ()=>{\n clearTimeout(timer);\n $643fcf18b2d2e76f$var$ResourceInjector.loadedResources.set(cssUrl, promise);\n resolve();\n };\n link.onerror = ()=>{\n clearTimeout(timer);\n $643fcf18b2d2e76f$var$ResourceInjector.loadedResources.delete(cssUrl);\n resolve();\n };\n document.head.appendChild(link);\n });\n $643fcf18b2d2e76f$var$ResourceInjector.loadedResources.set(cssUrl, promise);\n return promise;\n }\n}\nvar $643fcf18b2d2e76f$export$2e2bcd8739ae039 = $643fcf18b2d2e76f$var$ResourceInjector;\n\n\nexport {$643fcf18b2d2e76f$export$2e2bcd8739ae039 as default};\n//# sourceMappingURL=index.module.js.map\n","class ResourceInjector {\n private static loadedResources: Map> = new Map();\n\n constructor() {}\n\n async loadScript(\n jsUrl: string,\n options: Partial = {},\n timeout: number = 10000,\n ): Promise {\n if (ResourceInjector.loadedResources.has(jsUrl)) {\n return ResourceInjector.loadedResources.get(jsUrl) as Promise;\n }\n\n const promise: Promise = new Promise((resolve): void => {\n const script: HTMLScriptElement = document.createElement('script');\n\n script.src = jsUrl;\n\n Object.assign(script, options);\n\n const timer: ReturnType = setTimeout((): void => {\n resolve();\n }, timeout);\n\n script.onload = (): void => {\n clearTimeout(timer);\n\n ResourceInjector.loadedResources.set(jsUrl, promise);\n\n resolve();\n };\n\n script.onerror = (): void => {\n clearTimeout(timer);\n\n ResourceInjector.loadedResources.delete(jsUrl);\n\n resolve();\n };\n\n document.body.appendChild(script);\n });\n\n ResourceInjector.loadedResources.set(jsUrl, promise);\n\n return promise;\n }\n\n async loadStyle(\n cssUrl: string,\n options: Partial = {},\n timeout: number = 10000,\n ): Promise {\n if (ResourceInjector.loadedResources.has(cssUrl)) {\n return ResourceInjector.loadedResources.get(cssUrl) as Promise;\n }\n\n const promise: Promise = new Promise((resolve): void => {\n const link: HTMLLinkElement = document.createElement('link');\n\n link.href = cssUrl;\n link.rel = 'stylesheet';\n\n Object.assign(link, options);\n\n const timer: ReturnType = setTimeout((): void => {\n resolve();\n }, timeout);\n\n link.onload = (): void => {\n clearTimeout(timer);\n\n ResourceInjector.loadedResources.set(cssUrl, promise);\n\n resolve();\n };\n\n link.onerror = (): void => {\n clearTimeout(timer);\n\n ResourceInjector.loadedResources.delete(cssUrl);\n\n resolve();\n };\n\n document.head.appendChild(link);\n });\n\n ResourceInjector.loadedResources.set(cssUrl, promise);\n\n return promise;\n }\n}\n\nexport default ResourceInjector;\n"],"names":["$a3c31fda8b913dfa$var$$c38b013c361dbfdf$var$LanguageObserver","constructor","getNestedTranslation","obj","path","split","reduce","acc","part","detectedLang","loadLanguage","then","localeClass","Array","from","document","body","classList","find","cls","startsWith","lang","replace","window","translations","applyTranslations","elements","querySelectorAll","forEach","el","key","getAttribute","attrKeys","translation","undefined","attrMap","JSON","parse","Object","entries","attr","transKey","attrTranslation","setAttribute","childNodes","length","node","nodeType","Node","TEXT_NODE","textContent","MutationObserver","mutations","mutation","type","attributeName","observe","attributes","attributeFilter","init","updateTranslations","loadTranslations","translationLoader","$a8f4e19f0ad41bfa$var$$643fcf18b2d2e76f$var$ResourceInjector","loadedResources","Map","loadScript","jsUrl","options","timeout","has","get","promise","Promise","resolve","script","createElement","src","assign","timer","setTimeout","onload","clearTimeout","set","onerror","delete","appendChild","loadStyle","cssUrl","link","href","rel","head","$5fbffa87c50562b9$var$App","languageObserver","initLanguageObserver","loadExternalResources","resourceInjector","defer","addEventListener"],"version":3,"file":"index.79bda400.js.map"}