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

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = exports.EMPTY_2_SPACES = void 0;

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

var _Dom = _interopRequireDefault(require("absol/src/HTML5/Dom"));

var _EmojiPicker = _interopRequireDefault(require("../EmojiPicker"));

var _utils = require("../utils");

var _tiutils = require("./tiutils");


var EMPTY_2_SPACES = String.fromCharCode(0x2003);
exports.EMPTY_2_SPACES = EMPTY_2_SPACES;
var emojiCSSLoaded = false;

function loadEmojiCSS() {
  if (emojiCSSLoaded) return;
  emojiCSSLoaded = true;

  _Dom.default.documentReady.then(() => {
    var styleSheet = {};

    for (var name in _EmojiAnims.EmojiAnimByIdent) {
      styleSheet['.as-emoji-token[data-text="' + name + '"]'] = {
        'background-image': 'url(' + _EmojiPicker.default.assetRoot + '/static/x20/' + _EmojiAnims.EmojiAnimByIdent[name][1] + ')'
      };
    }

    (0, _utils.buildCss)(styleSheet);
  });
}
/***
 *
 * @param {TokenizeHyperInput} elt
 * @constructor
 */


function TITextController(elt) {
  loadEmojiCSS();
  this.elt = elt;
}

TITextController.prototype.setText = function (text) {
  this.elt.clearChild();
  this.elt.addChild((0, _tiutils.text2ContentElements)(text, {
    tagMap: this.elt.tagMap
  }));
  this.elt.addChild(this.elt.$br);
};

TITextController.prototype.getText = function () {
  var nodes = Array.prototype.slice.call(this.elt.childNodes);

  if ((0, _tiutils.isNewLine)(nodes[nodes.length - 1])) {
    nodes.pop();
  }

  return nodes.map(node => {
    if ((0, _tiutils.isText)(node)) {
      return node.data;
    } else if ((0, _tiutils.isToken)(node)) {
      return node.getAttribute('data-text') || '';
    } else if ((0, _tiutils.isNewLine)(node)) return '\n';
  }).join('');
};
/***
 *
 * @param {Range=} range default: previous selected range
 */


TITextController.prototype.getTextByRange = function (range) {
  range = range || this.elt.selectionCtrl.prevRange;
  if (!range) return this.getText();
  var nodes = Array.prototype.slice.call(this.elt.childNodes);
  if ((0, _tiutils.isNewLine)(nodes[nodes.length - 1])) nodes.pop();
  var startCtn = range.startContainer;
  var startOffset = range.startOffset;
  var endCtn = range.endContainer;
  var endOffset = range.endOffset;

  if (startCtn === this.elt) {
    startCtn = this.elt.childNodes[startOffset - 1];
    startOffset = 0;
  } else if ((0, _tiutils.isTokenText)(startCtn)) {
    startCtn = startCtn.parentElement;
  }

  if (endCtn === this.elt) {
    endCtn = this.elt.childNodes[endOffset];
    endOffset = 0;
  } else if ((0, _tiutils.isTokenText)(endCtn)) {
    endCtn = endCtn.parentElement;
  }

  if (startCtn === endCtn) {
    if ((0, _tiutils.isToken)(startCtn)) {
      return startCtn.getAttribute('data-text');
    } else if ((0, _tiutils.isText)(startCtn)) {
      return startCtn.data.substring(startOffset, endOffset);
    }

    return '';
  }

  var res = '';
  var node;
  var started = false;

  for (var i = 0; i < nodes.length; ++i) {
    node = nodes[i];

    if (started) {
      if (endCtn === node) {
        if ((0, _tiutils.isToken)(endCtn)) {
          res += node.getAttribute('data-text');
        } else if ((0, _tiutils.isText)(node)) {
          res += node.data.substring(0, endOffset);
        }

        break;
      } else {
        if ((0, _tiutils.isToken)(node)) {
          res += node.getAttribute('data-text');
        } else if ((0, _tiutils.isText)(node)) {
          res += node.data;
        } else if ((0, _tiutils.isNewLine)(node)) {
          res += '\n';
        }
      }
    } else {
      if (startCtn === node) {
        started = true;

        if ((0, _tiutils.isText)(node)) {
          res += node.data.substring(startOffset);
        } else if ((0, _tiutils.isToken)(node)) {
          if (startOffset === 0) {
            res += node.getAttribute('data-text');
          }
        }
      }
    }
  }

  return res;
};

TITextController.prototype.applyData = function (text, offset) {
  this.setText(text);
  this.elt.selectionCtrl.setRangeByOffset(offset);
};

TITextController.prototype.insertText = function (text) {
  var range = document.getSelection().getRangeAt(0);
  range.deleteContents();
  this.elt.selectionCtrl.onSelect();
  range = document.getSelection().getRangeAt(0);
  var eltChain = (0, _tiutils.text2ContentElements)(text, {
    tagMap: this.elt.tagMap
  });
  var startCtn = range.startContainer;
  var at;

  if ((0, _tiutils.isTokenText)(startCtn)) {
    at = startCtn.parentElement;
  } else if (startCtn === this.elt) {
    at = this.elt.childNodes[range.startOffset - 1];
  }

  var newNode;

  while (eltChain.length > 0) {
    newNode = eltChain.shift();

    if (!at) {
      this.elt.addChildBefore(newNode, this.elt.firstChild);
      at = newNode;
    } else if ((0, _tiutils.isText)(at) && (0, _tiutils.isText)(newNode)) {
      at.data += newNode.data;
    } else {
      this.elt.addChildAfter(newNode, at);
      at = newNode;
    }
  }
};

var _default = TITextController;
exports.default = _default;

VaKeR 2022