shadow$provide.module$node_modules$pixi_DOT_js$lib$scene$text$canvas$utils$textTokenization = function(global, require, module, exports) {
  function isNewline(char) {
    return "string" !== typeof char ? !1 : NEWLINES_SET.has(char.charCodeAt(0));
  }
  function isBreakingSpace(char, _nextChar) {
    return "string" !== typeof char ? !1 : BREAKING_SPACES_SET.has(char.charCodeAt(0));
  }
  function isBreakAfterChar(char) {
    return "string" !== typeof char ? !1 : BREAK_AFTER_CHARS_SET.has(char.charCodeAt(0));
  }
  global = [10, 13];
  const NEWLINES_SET = new Set(global);
  require = [9, 32, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8200, 8201, 8202, 8287, 12288];
  const BREAKING_SPACES_SET = new Set(require);
  module = [9, 32];
  const COLLAPSIBLE_SPACES_SET = new Set(module), BREAK_AFTER_CHARS = [45, 8208, 8211, 8212, 173], BREAK_AFTER_CHARS_SET = new Set(BREAK_AFTER_CHARS);
  exports.BREAKING_SPACES = require;
  exports.BREAKING_SPACES_SET = BREAKING_SPACES_SET;
  exports.BREAK_AFTER_CHARS = BREAK_AFTER_CHARS;
  exports.BREAK_AFTER_CHARS_SET = BREAK_AFTER_CHARS_SET;
  exports.COLLAPSIBLE_SPACES = module;
  exports.COLLAPSIBLE_SPACES_SET = COLLAPSIBLE_SPACES_SET;
  exports.NEWLINES = global;
  exports.NEWLINES_SET = NEWLINES_SET;
  exports.NEWLINE_MATCH_REGEX = /(?:\r\n|\r|\n)/;
  exports.NEWLINE_SPLIT_REGEX = /(\r\n|\r|\n)/;
  exports.collapseNewlines = function(whiteSpace) {
    return "normal" === whiteSpace;
  };
  exports.collapseSpaces = function(whiteSpace) {
    return "normal" === whiteSpace || "pre-line" === whiteSpace;
  };
  exports.getCharacterGroups = function(token, breakWords, splitFn, canBreakCharsFn) {
    splitFn = splitFn(token);
    const groups = [];
    for (let j = 0; j < splitFn.length; j++) {
      let char = splitFn[j], lastChar = char, k = 1;
      for (; splitFn[j + k];) {
        const nextChar = splitFn[j + k];
        if (canBreakCharsFn(lastChar, nextChar, token, j, breakWords)) {
          break;
        } else {
          char += nextChar, lastChar = nextChar, k++;
        }
      }
      j += k - 1;
      groups.push(char);
    }
    return groups;
  };
  exports.isBreakAfterChar = isBreakAfterChar;
  exports.isBreakingSpace = isBreakingSpace;
  exports.isCollapsibleSpace = function(char) {
    return "string" !== typeof char ? !1 : COLLAPSIBLE_SPACES_SET.has(char.charCodeAt(0));
  };
  exports.isNewline = isNewline;
  exports.tokenize = function(text) {
    const tokens = [], tokenChars = [];
    if ("string" !== typeof text) {
      return tokens;
    }
    for (let i = 0; i < text.length; i++) {
      const char = text[i], nextChar = text[i + 1];
      isBreakingSpace(char, nextChar) || isNewline(char) ? (0 < tokenChars.length && (tokens.push(tokenChars.join("")), tokenChars.length = 0), "\r" === char && "\n" === nextChar ? (tokens.push("\r\n"), i++) : tokens.push(char)) : (tokenChars.push(char), isBreakAfterChar(char) && nextChar && !isBreakingSpace(nextChar) && !isNewline(nextChar) && (tokens.push(tokenChars.join("")), tokenChars.length = 0));
    }
    0 < tokenChars.length && tokens.push(tokenChars.join(""));
    return tokens;
  };
  exports.trimRight = function(text) {
    if ("string" !== typeof text) {
      return "";
    }
    let i = text.length - 1;
    for (; 0 <= i && isBreakingSpace(text[i]);) {
      i--;
    }
    return i < text.length - 1 ? text.slice(0, i + 1) : text;
  };
};

//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$scene$text$canvas$utils$textTokenization.js.map
