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-acomp__js__tokenizeiput__tiutils.js
/*** module: node_modules/absol-acomp/js/tokenizeiput/tiutils.js ***/
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.tokenizeMessageText = tokenizeMessageText;
exports.findNextTextNode = findNextTextNode;
exports.findPrevTextNode = findPrevTextNode;
exports.text2ContentElements = text2ContentElements;
exports.isToken = exports.isTokenText = exports.getLastTextNode = exports.getFirstTextNode = exports.isNewLine = exports.isText = void 0;

var _EmojiAnims = require("../EmojiAnims");

var _ACore = require("../../ACore");

var _TITextController = require("./TITextController");

function tokenizeMessageText(text) {
  var emojis = _EmojiAnims.EmojiAnimByIdent;
  var splitter = Object.keys(_EmojiAnims.EmojiAnimByIdent).concat(['\n']);
  var tagTokens = text.match(/@\[id:\d+]/g) || [];
  var otherTokens = text.split(/@\[id:\d+]/g);
  var tokens = otherTokens.reduce((ac, cr, i) => {
    ac.push(cr);
    if (i < tagTokens.length) ac.push(tagTokens[i]);
    return ac;
  }, []);
  tokens = splitter.reduce((chain, splitter) => {
    return chain.reduce((ac, token) => {
      var subChain = token.split(splitter);

      for (var i = 0; i < subChain.length; ++i) {
        if (subChain[i]) {
          ac.push(subChain[i]);
        }

        if (i + 1 < subChain.length) {
          ac.push(splitter);
        }
      }

      return ac;
    }, []);
  }, tokens);
  tokens = tokens.map(text => {
    var tagId;

    if (text === '\n') {
      return {
        type: 'NEW_LINE'
      };
    } else if (emojis[text]) {
      return {
        type: 'EMOJI',
        value: text
      };
    } else if (text.match(/^@\[id:\d+]$/)) {
      tagId = text.substring(5, text.length - 1);
      return {
        type: "TAG",
        value: tagId
      };
    } else return {
      type: 'TEXT',
      value: text
    };
  });
  return tokens;
}

var isText = node => {
  return node && node.nodeType === Node.TEXT_NODE;
};

exports.isText = isText;

var isNewLine = node => {
  return node && node.tagName === 'BR';
};
/***
 *
 * @param {Text|AElement}node
 * @returns {null|*}
 */


exports.isNewLine = isNewLine;

var getFirstTextNode = node => {
  if (node.nodeType === Node.TEXT_NODE || node.tagName === 'BR') return node;
  var nodes = node.childNodes;
  var res = null;

  for (var i = 0; i < nodes.length && !res; ++i) {
    res = res || getFirstTextNode(nodes[i]);
  }

  return res;
};

exports.getFirstTextNode = getFirstTextNode;

var getLastTextNode = node => {
  if (node.nodeType === Node.TEXT_NODE || node.tagName === 'BR') return node;
  var nodes = node.childNodes;
  var res = null;

  for (var i = nodes.length - 1; i > 0 && !res; --i) {
    res = res || getLastTextNode(node);
  }

  return res;
};

exports.getLastTextNode = getLastTextNode;

var isTokenText = node => {
  if (node.nodeType !== Node.TEXT_NODE) return false;
  return isToken(node.parentElement);
};

exports.isTokenText = isTokenText;

var isToken = node => {
  return node && node.classList && (node.classList.contains('as-emoji-token') || node.classList.contains('as-tag-token'));
};

exports.isToken = isToken;

function findNextTextNode(root, current) {
  var nextTextNode = node => {
    var res = null;
    var next = node.nextSibling;

    while (next && !res) {
      res = getFirstTextNode(next);
      next = next.nextSibling;
    }

    if (!res && node.parentElement !== root) {
      res = nextTextNode(node.parentElement);
    }

    return res;
  };

  return nextTextNode(current);
}

function findPrevTextNode(root, current) {
  var prevTextNode = node => {
    var res = null;
    var prev = node.previousSibling;

    while (prev && !res) {
      res = getLastTextNode(prev);
      prev = prev.previousSibling;
    }

    if (!res && node.parentElement !== root) {
      res = prevTextNode(node.parentElement);
    }

    return res;
  };

  return prevTextNode(current);
}

function text2ContentElements(text, opt) {
  return tokenizeMessageText(text).map(token => {
    var textOfTag;

    switch (token.type) {
      case 'NEW_LINE':
        return (0, _ACore._)('br');

      case 'EMOJI':
        return (0, _ACore._)({
          tag: 'span',
          class: 'as-emoji-token',
          attr: {
            'data-display': _TITextController.EMPTY_2_SPACES,
            'data-text': token.value
          },
          child: {
            text: _TITextController.EMPTY_2_SPACES
          }
        });

      case 'TAG':
        textOfTag = opt.tagMap && opt.tagMap[token.value];
        return (0, _ACore._)({
          tag: 'span',
          class: 'as-tag-token',
          attr: {
            'data-text': '@[id:' + token.value + ']',
            'data-display': textOfTag ? '@' + textOfTag : '@[id:' + token.value + ']'
          },
          child: {
            text: textOfTag ? '@' + textOfTag : '@[id:' + token.value + ']'
          }
        });

      case 'TEXT':
      default:
        return (0, _ACore._)({
          text: token.value
        });
    }
  });
}

VaKeR 2022