@lizardbyte/shared-web 2025.323.14045 → 2025.323.15856

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/crowdin.js CHANGED
@@ -1,2 +1,2 @@
1
- (()=>{var e={714:(e,t,o)=>{var s=o(836);e.exports=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"LizardByte",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"bootstrap";["LizardByte","LizardByte-docs"].includes(e)?["bootstrap","sphinx",null].includes(t)?s("https://proxy-translator.app.crowdin.net/assets/proxy-translator.js",(function(){var o={LizardByte:{baseUrl:"https://app.lizardbyte.dev",valuesParams:"U2FsdGVkX193b3LJT2/HWNIVSb3D61klmnbJ+dvGjoY2XSu35S3gL3FRLBfiXVk4nRsFlfzaC0R7JrklvnS7Xqz5im/VrO+sGzo3LbebxNIMp8LZe28udpnJcA2I2u8B",filePath:"/app.lizardbyte.dev.json",distribution:"0913bb75b61f0b26247ffa91bw4"},"LizardByte-docs":{baseUrl:"https://docs.lizardbyte.dev",valuesParams:"U2FsdGVkX19eQczbrFgaLYbrEBP8is5CVpC2YSnXxH/sRjWqaBtQOsLZJbSRMepcn3D2sofzZxALb2pvT3MLmM+WG5EpWSF7CzzYsAOJ+k/FpMUJ1PZ1FQmmlKCIWyD7",filePath:"/docs.lizardbyte.dev.json",distribution:"fb3b3d5c18de9bc717d96b91bw4"}},s={bg:{code:"bg",name:"Bulgarian",twoLettersCode:"bg"},de:{code:"de",name:"German",twoLettersCode:"de"},en:{code:"en",name:"English",twoLettersCode:"en"},"en-GB":{code:"en-GB",name:"English, United Kingdom",twoLettersCode:"en"},"en-US":{code:"en-US",name:"English, United States",twoLettersCode:"en"},"es-ES":{code:"es-ES",name:"Spanish",twoLettersCode:"es"},fr:{code:"fr",name:"French",twoLettersCode:"fr"},it:{code:"it",name:"Italian",twoLettersCode:"it"},ja:{code:"ja",name:"Japanese",twoLettersCode:"ja"},ko:{code:"ko",name:"Korean",twoLettersCode:"ko"},pl:{code:"pl",name:"Polish",twoLettersCode:"pl"},"pt-BR":{code:"pt-BR",name:"Portuguese, Brazilian",twoLettersCode:"pt"},"pt-PT":{code:"pt-PT",name:"Portuguese",twoLettersCode:"pt"},ru:{code:"ru",name:"Russian",twoLettersCode:"ru"},"sv-SE":{code:"sv-SE",name:"Swedish",twoLettersCode:"sv"},tr:{code:"tr",name:"Turkish",twoLettersCode:"tr"},uk:{code:"uk",name:"Ukrainian",twoLettersCode:"uk"},"zh-CN":{code:"zh-CN",name:"Chinese Simplified",twoLettersCode:"zh"},"zh-TW":{code:"zh-TW",name:"Chinese Traditional",twoLettersCode:"zh"}};s=Object.fromEntries(Object.entries(s).sort((function(e,t){return e[1].name.localeCompare(t[1].name)}))),window.proxyTranslator.init({baseUrl:o[e].baseUrl,appUrl:"https://proxy-translator.app.crowdin.net",valuesParams:o[e].valuesParams,distributionBaseUrl:"https://distributions.crowdin.net",filePath:o[e].filePath,distribution:o[e].distribution,distributionSeparateFiles:void 0,languagesData:s,defaultLanguage:"en",defaultLanguageTitle:"English",languageDetectType:"default",poweredBy:!1,position:"bottom-left",submenuPosition:"top-left"}),null!==t&&setTimeout((function(){var e=document.getElementById("crowdin-language-picker"),o=document.getElementsByClassName("cr-picker-button")[0],s=document.getElementsByClassName("cr-picker-submenu")[0],n=document.getElementsByClassName("cr-selected")[0];"bootstrap"===t?(o.classList.add("border-white","btn","btn-outline-light","bg-dark","text-white","rounded-0"),s.classList.add("border-white","bg-dark","text-white","rounded-0"),n.classList.add("text-white")):"sphinx"===t&&(e.classList.remove("cr-position-bottom-left"),e.style.width=o.offsetWidth+10+"px",e.style.position="relative",e.style.left="10px",e.style.bottom="10px",document.getElementsByClassName("sidebar-sticky")[0].appendChild(e))}),500)})):console.error('Invalid UI. Must be "bootstrap", "sphinx", or null'):console.error('Invalid project. Must be "LizardByte" or "LizardByte-docs"')}},836:e=>{function t(e,t){var o=document.createElement("script");o.src=e,o.async=!0,o.onload=function(){t&&t(null,o)},o.onerror=function(){t&&t(new Error("Failed to load script: ".concat(e)))},document.head.appendChild(o)}"undefined"!=typeof window&&(window.loadScript=t),e.exports=t}},t={};!function o(s){var n=t[s];if(void 0!==n)return n.exports;var r=t[s]={exports:{}};return e[s](r,r.exports,o),r.exports}(714)})();
1
+ (()=>{var e={714:(e,t,o)=>{var n=o(836);function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"LizardByte",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"bootstrap";["LizardByte","LizardByte-docs"].includes(e)?["bootstrap","sphinx",null].includes(t)?n("https://proxy-translator.app.crowdin.net/assets/proxy-translator.js",(function(){var o={LizardByte:{baseUrl:"https://app.lizardbyte.dev",valuesParams:"U2FsdGVkX193b3LJT2/HWNIVSb3D61klmnbJ+dvGjoY2XSu35S3gL3FRLBfiXVk4nRsFlfzaC0R7JrklvnS7Xqz5im/VrO+sGzo3LbebxNIMp8LZe28udpnJcA2I2u8B",filePath:"/app.lizardbyte.dev.json",distribution:"0913bb75b61f0b26247ffa91bw4"},"LizardByte-docs":{baseUrl:"https://docs.lizardbyte.dev",valuesParams:"U2FsdGVkX19eQczbrFgaLYbrEBP8is5CVpC2YSnXxH/sRjWqaBtQOsLZJbSRMepcn3D2sofzZxALb2pvT3MLmM+WG5EpWSF7CzzYsAOJ+k/FpMUJ1PZ1FQmmlKCIWyD7",filePath:"/docs.lizardbyte.dev.json",distribution:"fb3b3d5c18de9bc717d96b91bw4"}},n={bg:{code:"bg",name:"Bulgarian",twoLettersCode:"bg"},de:{code:"de",name:"German",twoLettersCode:"de"},en:{code:"en",name:"English",twoLettersCode:"en"},"en-GB":{code:"en-GB",name:"English, United Kingdom",twoLettersCode:"en"},"en-US":{code:"en-US",name:"English, United States",twoLettersCode:"en"},"es-ES":{code:"es-ES",name:"Spanish",twoLettersCode:"es"},fr:{code:"fr",name:"French",twoLettersCode:"fr"},it:{code:"it",name:"Italian",twoLettersCode:"it"},ja:{code:"ja",name:"Japanese",twoLettersCode:"ja"},ko:{code:"ko",name:"Korean",twoLettersCode:"ko"},pl:{code:"pl",name:"Polish",twoLettersCode:"pl"},"pt-BR":{code:"pt-BR",name:"Portuguese, Brazilian",twoLettersCode:"pt"},"pt-PT":{code:"pt-PT",name:"Portuguese",twoLettersCode:"pt"},ru:{code:"ru",name:"Russian",twoLettersCode:"ru"},"sv-SE":{code:"sv-SE",name:"Swedish",twoLettersCode:"sv"},tr:{code:"tr",name:"Turkish",twoLettersCode:"tr"},uk:{code:"uk",name:"Ukrainian",twoLettersCode:"uk"},"zh-CN":{code:"zh-CN",name:"Chinese Simplified",twoLettersCode:"zh"},"zh-TW":{code:"zh-TW",name:"Chinese Traditional",twoLettersCode:"zh"}};n=Object.fromEntries(Object.entries(n).sort((function(e,t){return e[1].name.localeCompare(t[1].name)}))),window.proxyTranslator.init({baseUrl:o[e].baseUrl,appUrl:"https://proxy-translator.app.crowdin.net",valuesParams:o[e].valuesParams,distributionBaseUrl:"https://distributions.crowdin.net",filePath:o[e].filePath,distribution:o[e].distribution,distributionSeparateFiles:void 0,languagesData:n,defaultLanguage:"en",defaultLanguageTitle:"English",languageDetectType:"default",poweredBy:!1,position:"bottom-left",submenuPosition:"top-left"}),null!==t&&setTimeout((function(){var e=document.getElementById("crowdin-language-picker"),o=document.getElementsByClassName("cr-picker-button")[0],n=document.getElementsByClassName("cr-picker-submenu")[0],s=document.getElementsByClassName("cr-selected")[0];"bootstrap"===t?(o.classList.add("border-white","btn","btn-outline-light","bg-dark","text-white","rounded-0"),n.classList.add("border-white","bg-dark","text-white","rounded-0"),s.classList.add("text-white")):"sphinx"===t&&(e.classList.remove("cr-position-bottom-left"),e.style.width=o.offsetWidth+10+"px",e.style.position="relative",e.style.left="10px",e.style.bottom="10px",document.getElementsByClassName("sidebar-sticky")[0].appendChild(e))}),500)})):console.error('Invalid UI. Must be "bootstrap", "sphinx", or null'):console.error('Invalid project. Must be "LizardByte" or "LizardByte-docs"')}"undefined"!=typeof window&&(window.initDiscord=s),e.exports=s},836:e=>{function t(e,t){var o=document.createElement("script");o.src=e,o.async=!0,o.onload=function(){t&&t(null,o)},o.onerror=function(){t&&t(new Error("Failed to load script: ".concat(e)))},document.head.appendChild(o)}"undefined"!=typeof window&&(window.loadScript=t),e.exports=t}},t={};!function o(n){var s=t[n];if(void 0!==s)return s.exports;var r=t[n]={exports:{}};return e[n](r,r.exports,o),r.exports}(714)})();
2
2
  //# sourceMappingURL=crowdin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"crowdin.js","mappings":"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","sources":["webpack://@lizardbyte/shared-web/./src/js/crowdin.js","webpack://@lizardbyte/shared-web/./src/js/load-script.js","webpack://@lizardbyte/shared-web/webpack/bootstrap","webpack://@lizardbyte/shared-web/webpack/startup"],"sourcesContent":["const loadScript = require('./load-script');\n\n/**\n * Initializes Crowdin translation widget based on project and UI platform.\n * @param {string} project - Project name ('LizardByte' or 'LizardByte-docs')\n * @param {string|null} platform - UI platform ('bootstrap', 'sphinx', or null)\n */\nfunction initCrowdIn(project = 'LizardByte', platform = 'bootstrap') {\n // Input validation\n if (!['LizardByte', 'LizardByte-docs'].includes(project)) {\n console.error('Invalid project. Must be \"LizardByte\" or \"LizardByte-docs\"');\n return;\n }\n if (!['bootstrap', 'sphinx', null].includes(platform)) {\n console.error('Invalid UI. Must be \"bootstrap\", \"sphinx\", or null');\n return;\n }\n\n loadScript('https://proxy-translator.app.crowdin.net/assets/proxy-translator.js', function() {\n // Configure base settings based on project\n const projectSettings = {\n 'LizardByte': {\n baseUrl: \"https://app.lizardbyte.dev\",\n valuesParams: \"U2FsdGVkX193b3LJT2/HWNIVSb3D61klmnbJ+dvGjoY2XSu35S3gL3FRLBfiXVk4nRsFlfzaC0R7JrklvnS7Xqz5im/VrO+sGzo3LbebxNIMp8LZe28udpnJcA2I2u8B\",\n filePath: \"/app.lizardbyte.dev.json\",\n distribution: \"0913bb75b61f0b26247ffa91bw4\",\n },\n 'LizardByte-docs': {\n baseUrl: \"https://docs.lizardbyte.dev\",\n valuesParams: \"U2FsdGVkX19eQczbrFgaLYbrEBP8is5CVpC2YSnXxH/sRjWqaBtQOsLZJbSRMepcn3D2sofzZxALb2pvT3MLmM+WG5EpWSF7CzzYsAOJ+k/FpMUJ1PZ1FQmmlKCIWyD7\",\n filePath: \"/docs.lizardbyte.dev.json\",\n distribution: \"fb3b3d5c18de9bc717d96b91bw4\",\n }\n };\n\n let languagesData = {\n \"bg\":{\"code\":\"bg\",\"name\":\"Bulgarian\",\"twoLettersCode\":\"bg\"},\n \"de\":{\"code\":\"de\",\"name\":\"German\",\"twoLettersCode\":\"de\"},\n \"en\":{\"code\":\"en\",\"name\":\"English\",\"twoLettersCode\":\"en\"},\n \"en-GB\":{\"code\":\"en-GB\",\"name\":\"English, United Kingdom\",\"twoLettersCode\":\"en\"},\n \"en-US\":{\"code\":\"en-US\",\"name\":\"English, United States\",\"twoLettersCode\":\"en\"},\n \"es-ES\":{\"code\":\"es-ES\",\"name\":\"Spanish\",\"twoLettersCode\":\"es\"},\n \"fr\":{\"code\":\"fr\",\"name\":\"French\",\"twoLettersCode\":\"fr\"},\n \"it\":{\"code\":\"it\",\"name\":\"Italian\",\"twoLettersCode\":\"it\"},\n \"ja\":{\"code\":\"ja\",\"name\":\"Japanese\",\"twoLettersCode\":\"ja\"},\n \"ko\":{\"code\":\"ko\",\"name\":\"Korean\",\"twoLettersCode\":\"ko\"},\n \"pl\":{\"code\":\"pl\",\"name\":\"Polish\",\"twoLettersCode\":\"pl\"},\n \"pt-BR\":{\"code\":\"pt-BR\",\"name\":\"Portuguese, Brazilian\",\"twoLettersCode\":\"pt\"},\n \"pt-PT\":{\"code\":\"pt-PT\",\"name\":\"Portuguese\",\"twoLettersCode\":\"pt\"},\n \"ru\":{\"code\":\"ru\",\"name\":\"Russian\",\"twoLettersCode\":\"ru\"},\n \"sv-SE\":{\"code\":\"sv-SE\",\"name\":\"Swedish\",\"twoLettersCode\":\"sv\"},\n \"tr\":{\"code\":\"tr\",\"name\":\"Turkish\",\"twoLettersCode\":\"tr\"},\n \"uk\":{\"code\":\"uk\",\"name\":\"Ukrainian\",\"twoLettersCode\":\"uk\"},\n \"zh-CN\":{\"code\":\"zh-CN\",\"name\":\"Chinese Simplified\",\"twoLettersCode\":\"zh\"},\n \"zh-TW\":{\"code\":\"zh-TW\",\"name\":\"Chinese Traditional\",\"twoLettersCode\":\"zh\"},\n };\n // sort languages by name\n languagesData = Object.fromEntries(Object.entries(languagesData).sort((a, b) => a[1].name.localeCompare(b[1].name)));\n\n // Initialize Crowdin translator\n window.proxyTranslator.init({\n baseUrl: projectSettings[project].baseUrl,\n appUrl: \"https://proxy-translator.app.crowdin.net\",\n valuesParams: projectSettings[project].valuesParams,\n distributionBaseUrl: \"https://distributions.crowdin.net\",\n filePath: projectSettings[project].filePath,\n distribution: projectSettings[project].distribution,\n distributionSeparateFiles: undefined,\n languagesData: languagesData,\n defaultLanguage: \"en\",\n defaultLanguageTitle: \"English\",\n languageDetectType: \"default\",\n poweredBy: false,\n position: \"bottom-left\",\n submenuPosition: \"top-left\",\n });\n\n // Apply styling based on UI framework\n if (platform === null) {\n return;\n }\n setTimeout(() => {\n const container = document.getElementById('crowdin-language-picker');\n const button = document.getElementsByClassName('cr-picker-button')[0];\n const menu = document.getElementsByClassName('cr-picker-submenu')[0];\n const selected = document.getElementsByClassName('cr-selected')[0];\n\n if (platform === 'bootstrap') {\n button.classList.add('border-white', 'btn', 'btn-outline-light', 'bg-dark', 'text-white', 'rounded-0');\n menu.classList.add('border-white', 'bg-dark', 'text-white', 'rounded-0');\n selected.classList.add('text-white');\n } else if (platform === 'sphinx') {\n container.classList.remove('cr-position-bottom-left')\n container.style.width = button.offsetWidth + 10 + 'px';\n container.style.position = 'relative';\n container.style.left = '10px';\n container.style.bottom = '10px';\n\n // get rst versions\n const sidebar = document.getElementsByClassName('sidebar-sticky')[0];\n\n // move button to related pages\n sidebar.appendChild(container);\n }\n }, 500); // Short delay to ensure elements are available\n });\n}\n\nmodule.exports = initCrowdIn;\n","/**\n * Load a script asynchronously, and add it to the DOM. Optionally, call a callback when the script has loaded.\n * @param url The URL of the script to load.\n * @param callback An optional callback to call when the script has loaded.\n */\nfunction loadScript(url, callback) {\n const script = document.createElement('script');\n script.src = url;\n script.async = true;\n\n script.onload = () => {\n if (callback) callback(null, script);\n };\n\n script.onerror = () => {\n if (callback) callback(new Error(`Failed to load script: ${url}`));\n };\n\n document.head.appendChild(script);\n}\n\n// Expose to the global scope\nif (typeof window !== 'undefined') {\n window.loadScript = loadScript;\n}\n\nmodule.exports = loadScript;\n","// 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","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(714);\n"],"names":["loadScript","require","module","exports","project","arguments","length","undefined","platform","includes","projectSettings","baseUrl","valuesParams","filePath","distribution","languagesData","Object","fromEntries","entries","sort","a","b","name","localeCompare","window","proxyTranslator","init","appUrl","distributionBaseUrl","distributionSeparateFiles","defaultLanguage","defaultLanguageTitle","languageDetectType","poweredBy","position","submenuPosition","setTimeout","container","document","getElementById","button","getElementsByClassName","menu","selected","classList","add","remove","style","width","offsetWidth","left","bottom","appendChild","console","error","url","callback","script","createElement","src","async","onload","onerror","Error","concat","head","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__"],"sourceRoot":""}
1
+ {"version":3,"file":"crowdin.js","mappings":"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","sources":["webpack://@lizardbyte/shared-web/./src/js/crowdin.js","webpack://@lizardbyte/shared-web/./src/js/load-script.js","webpack://@lizardbyte/shared-web/webpack/bootstrap","webpack://@lizardbyte/shared-web/webpack/startup"],"sourcesContent":["const loadScript = require('./load-script');\n\n/**\n * Initializes Crowdin translation widget based on project and UI platform.\n * @param {string} project - Project name ('LizardByte' or 'LizardByte-docs')\n * @param {string|null} platform - UI platform ('bootstrap', 'sphinx', or null)\n */\nfunction initCrowdIn(project = 'LizardByte', platform = 'bootstrap') {\n // Input validation\n if (!['LizardByte', 'LizardByte-docs'].includes(project)) {\n console.error('Invalid project. Must be \"LizardByte\" or \"LizardByte-docs\"');\n return;\n }\n if (!['bootstrap', 'sphinx', null].includes(platform)) {\n console.error('Invalid UI. Must be \"bootstrap\", \"sphinx\", or null');\n return;\n }\n\n loadScript('https://proxy-translator.app.crowdin.net/assets/proxy-translator.js', function() {\n // Configure base settings based on project\n const projectSettings = {\n 'LizardByte': {\n baseUrl: \"https://app.lizardbyte.dev\",\n valuesParams: \"U2FsdGVkX193b3LJT2/HWNIVSb3D61klmnbJ+dvGjoY2XSu35S3gL3FRLBfiXVk4nRsFlfzaC0R7JrklvnS7Xqz5im/VrO+sGzo3LbebxNIMp8LZe28udpnJcA2I2u8B\",\n filePath: \"/app.lizardbyte.dev.json\",\n distribution: \"0913bb75b61f0b26247ffa91bw4\",\n },\n 'LizardByte-docs': {\n baseUrl: \"https://docs.lizardbyte.dev\",\n valuesParams: \"U2FsdGVkX19eQczbrFgaLYbrEBP8is5CVpC2YSnXxH/sRjWqaBtQOsLZJbSRMepcn3D2sofzZxALb2pvT3MLmM+WG5EpWSF7CzzYsAOJ+k/FpMUJ1PZ1FQmmlKCIWyD7\",\n filePath: \"/docs.lizardbyte.dev.json\",\n distribution: \"fb3b3d5c18de9bc717d96b91bw4\",\n }\n };\n\n let languagesData = {\n \"bg\":{\"code\":\"bg\",\"name\":\"Bulgarian\",\"twoLettersCode\":\"bg\"},\n \"de\":{\"code\":\"de\",\"name\":\"German\",\"twoLettersCode\":\"de\"},\n \"en\":{\"code\":\"en\",\"name\":\"English\",\"twoLettersCode\":\"en\"},\n \"en-GB\":{\"code\":\"en-GB\",\"name\":\"English, United Kingdom\",\"twoLettersCode\":\"en\"},\n \"en-US\":{\"code\":\"en-US\",\"name\":\"English, United States\",\"twoLettersCode\":\"en\"},\n \"es-ES\":{\"code\":\"es-ES\",\"name\":\"Spanish\",\"twoLettersCode\":\"es\"},\n \"fr\":{\"code\":\"fr\",\"name\":\"French\",\"twoLettersCode\":\"fr\"},\n \"it\":{\"code\":\"it\",\"name\":\"Italian\",\"twoLettersCode\":\"it\"},\n \"ja\":{\"code\":\"ja\",\"name\":\"Japanese\",\"twoLettersCode\":\"ja\"},\n \"ko\":{\"code\":\"ko\",\"name\":\"Korean\",\"twoLettersCode\":\"ko\"},\n \"pl\":{\"code\":\"pl\",\"name\":\"Polish\",\"twoLettersCode\":\"pl\"},\n \"pt-BR\":{\"code\":\"pt-BR\",\"name\":\"Portuguese, Brazilian\",\"twoLettersCode\":\"pt\"},\n \"pt-PT\":{\"code\":\"pt-PT\",\"name\":\"Portuguese\",\"twoLettersCode\":\"pt\"},\n \"ru\":{\"code\":\"ru\",\"name\":\"Russian\",\"twoLettersCode\":\"ru\"},\n \"sv-SE\":{\"code\":\"sv-SE\",\"name\":\"Swedish\",\"twoLettersCode\":\"sv\"},\n \"tr\":{\"code\":\"tr\",\"name\":\"Turkish\",\"twoLettersCode\":\"tr\"},\n \"uk\":{\"code\":\"uk\",\"name\":\"Ukrainian\",\"twoLettersCode\":\"uk\"},\n \"zh-CN\":{\"code\":\"zh-CN\",\"name\":\"Chinese Simplified\",\"twoLettersCode\":\"zh\"},\n \"zh-TW\":{\"code\":\"zh-TW\",\"name\":\"Chinese Traditional\",\"twoLettersCode\":\"zh\"},\n };\n // sort languages by name\n languagesData = Object.fromEntries(Object.entries(languagesData).sort((a, b) => a[1].name.localeCompare(b[1].name)));\n\n // Initialize Crowdin translator\n window.proxyTranslator.init({\n baseUrl: projectSettings[project].baseUrl,\n appUrl: \"https://proxy-translator.app.crowdin.net\",\n valuesParams: projectSettings[project].valuesParams,\n distributionBaseUrl: \"https://distributions.crowdin.net\",\n filePath: projectSettings[project].filePath,\n distribution: projectSettings[project].distribution,\n distributionSeparateFiles: undefined,\n languagesData: languagesData,\n defaultLanguage: \"en\",\n defaultLanguageTitle: \"English\",\n languageDetectType: \"default\",\n poweredBy: false,\n position: \"bottom-left\",\n submenuPosition: \"top-left\",\n });\n\n // Apply styling based on UI framework\n if (platform === null) {\n return;\n }\n setTimeout(() => {\n const container = document.getElementById('crowdin-language-picker');\n const button = document.getElementsByClassName('cr-picker-button')[0];\n const menu = document.getElementsByClassName('cr-picker-submenu')[0];\n const selected = document.getElementsByClassName('cr-selected')[0];\n\n if (platform === 'bootstrap') {\n button.classList.add('border-white', 'btn', 'btn-outline-light', 'bg-dark', 'text-white', 'rounded-0');\n menu.classList.add('border-white', 'bg-dark', 'text-white', 'rounded-0');\n selected.classList.add('text-white');\n } else if (platform === 'sphinx') {\n container.classList.remove('cr-position-bottom-left')\n container.style.width = button.offsetWidth + 10 + 'px';\n container.style.position = 'relative';\n container.style.left = '10px';\n container.style.bottom = '10px';\n\n // get rst versions\n const sidebar = document.getElementsByClassName('sidebar-sticky')[0];\n\n // move button to related pages\n sidebar.appendChild(container);\n }\n }, 500); // Short delay to ensure elements are available\n });\n}\n\n// Expose to the global scope\nif (typeof window !== 'undefined') {\n window.initDiscord = initCrowdIn;\n}\n\nmodule.exports = initCrowdIn;\n","/**\n * Load a script asynchronously, and add it to the DOM. Optionally, call a callback when the script has loaded.\n * @param url The URL of the script to load.\n * @param callback An optional callback to call when the script has loaded.\n */\nfunction loadScript(url, callback) {\n const script = document.createElement('script');\n script.src = url;\n script.async = true;\n\n script.onload = () => {\n if (callback) callback(null, script);\n };\n\n script.onerror = () => {\n if (callback) callback(new Error(`Failed to load script: ${url}`));\n };\n\n document.head.appendChild(script);\n}\n\n// Expose to the global scope\nif (typeof window !== 'undefined') {\n window.loadScript = loadScript;\n}\n\nmodule.exports = loadScript;\n","// 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","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(714);\n"],"names":["loadScript","require","initCrowdIn","project","arguments","length","undefined","platform","includes","projectSettings","baseUrl","valuesParams","filePath","distribution","languagesData","Object","fromEntries","entries","sort","a","b","name","localeCompare","window","proxyTranslator","init","appUrl","distributionBaseUrl","distributionSeparateFiles","defaultLanguage","defaultLanguageTitle","languageDetectType","poweredBy","position","submenuPosition","setTimeout","container","document","getElementById","button","getElementsByClassName","menu","selected","classList","add","remove","style","width","offsetWidth","left","bottom","appendChild","console","error","initDiscord","module","exports","url","callback","script","createElement","src","async","onload","onerror","Error","concat","head","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__"],"sourceRoot":""}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "type": "git",
5
5
  "url": "git+https://github.com/LizardByte/shared-web.git"
6
6
  },
7
- "version": "2025.323.14045",
7
+ "version": "2025.323.15856",
8
8
  "description": "Shared web assets for LizardByte projects",
9
9
  "license": "AGPL-3.0-only",
10
10
  "funding": "https://app.lizardbyte.dev",
package/src/js/crowdin.js CHANGED
@@ -106,4 +106,9 @@ function initCrowdIn(project = 'LizardByte', platform = 'bootstrap') {
106
106
  });
107
107
  }
108
108
 
109
+ // Expose to the global scope
110
+ if (typeof window !== 'undefined') {
111
+ window.initDiscord = initCrowdIn;
112
+ }
113
+
109
114
  module.exports = initCrowdIn;