VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/libs/absol-full/dist/js/mdls__absol__src__HTML5__LanguageSystem.js
/*** 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;

VaKeR 2022