![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/html/libs/absol-full/dist/js/ |
Upload File : |
/*** module: node_modules/absol/src/HTML5/LanguageSystem.js ***/ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.textNodeLanguageChangeHandler = textNodeLanguageChangeHandler; exports.elementLanguageChangeHandler = elementLanguageChangeHandler; exports.default = exports.LangSys = void 0; var _ResizeSystem = _interopRequireDefault(require("./ResizeSystem")); var _safeThrow = _interopRequireDefault(require("../Code/safeThrow")); /*** * @typedef LanguageSystemExtension * @property {function(key: string, code?: string): (string | null)} getText */ /**** * * @constructor */ function LanguageSystem() { this.data = {}; this.code = navigator.language || navigator.userLanguage; /*** * * @type {LanguageSystemExtension[]} * @private */ this._extensions = []; } LanguageSystem.prototype.notifyLanguageChange = function () { var sizeChange = false; function visit(elt) { if (elt.onlanguagechange) { try { elt.onlanguagechange(); sizeChange = true; } catch (err) { (0, _safeThrow.default)(err); } if (elt.childNodes && elt.childNodes.length > 0) { Array.prototype.forEach.call(elt.childNodes, visit); } } } visit(document.body); if (sizeChange) _ResizeSystem.default.update(); }; /*** * * @param {ChildNode | Text | HTMLElement | Element} node */ LanguageSystem.prototype.bind = function (node, key) { if (node.nodeType === 1) { this.bindTextNode(node, key); } else if (node.nodeType === 3) { this.bindElement(node, key); } }; /*** * * @param {Text | {__as_language_key: string}} node * @param {string} key */ LanguageSystem.prototype.bindTextNode = function (node, key) { node.__as_language_key = key; node.onlanguagechange = textNodeLanguageChangeHandler; }; /*** * * @param {ChildNode | HTMLElement | Element | {__as_language_key: string}} node * @param {string} key */ LanguageSystem.prototype.bindElement = function (node, key) { node.__as_language_key = key; node.onlanguagechange = elementLanguageChangeHandler; }; /*** * * @param {string} key * @param {string} [code] */ LanguageSystem.prototype.getText = function (key, code) { var code = code || this.code; var res; var ex; for (var i = this._extensions.length - 1; i >= 0; --i) { ex = this._extensions[i]; res = ex.getText && ex.getText.apply(ex, arguments); if (res) break; } if (!res) { res = this.data[code] && this.data[code][key]; } return res || null; }; /*** * * @param {LanguageSystemExtension} ex */ LanguageSystem.prototype.addExtension = function (ex) { this._extensions.push(ex); }; var LangSys = new LanguageSystem(); exports.LangSys = LangSys; LangSys.getText = function () { if (window.LanguageModule && window.LanguageModule.text) { LangSys.addExtension({ getText: function () { var text = window.LanguageModule.text.apply(window.LanguageModule, arguments); if (text && text.startsWith('[key:') && text.charAt(text.length - 1) === ']') return null; return text || null; } }); LangSys.getText = LanguageSystem.prototype.getText; return this.getText.apply(this, arguments); } return LanguageSystem.prototype.getText.apply(this, arguments); }; function textNodeLanguageChangeHandler() { if (this.__as_language_key) { var newText = LangSys.getText(this.__as_language_key); if (newText && newText.trim) { this.data = newText; } } } function elementLanguageChangeHandler() { if (this.__as_language_key) { var newText = LangSys.getText(this.__as_language_key); if (newText && newText.trim) { var textNode; for (var i = 0; i < this.childNodes.length; ++i) { if (this.childNodes[i].nodeType === 1) { textNode = this.childNodes[i]; break; } } if (!textNode) { textNode = document.createTextNode(''); } textNode.data = newText; } } } var _default = LangSys; exports.default = _default;