@netdata/charts
Version:
Netdata frontend SDK and chart utilities
54 lines (53 loc) • 2.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.shortForLength = exports["default"] = void 0;
var removeMiddleVowels = function removeMiddleVowels(word) {
if (/\d/.test(word) || word.length < 4) return word;
var middle = word.substring(1, word.length - 1);
return [word.charAt(0), middle.replace(/([aeiou])/gi, ""), word.charAt(word.length - 1)].join("");
};
var removeDuplicateLetters = function removeDuplicateLetters(word) {
return word.replace(/(\w)\1+/g, "$1");
};
var ellipsisInMiddle = function ellipsisInMiddle(text, length) {
var partLength = Math.floor((text.length - length) / 2);
var prefix = text.substring(0, partLength);
var suffix = text.substring(text.length - partLength);
return "".concat(prefix, "...").concat(suffix);
};
var _replaceIfNeeded = function replaceIfNeeded(text, func) {
for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
args[_key - 2] = arguments[_key];
}
if (!text) return "";
return text.replace(/([\w\d].+?)([\s-_@])([\w\d].+)+?/, function (_, word, sep, word2) {
return "".concat(func.apply(void 0, [word].concat(args))).concat(sep).concat(_replaceIfNeeded.apply(void 0, [word2, func].concat(args)));
});
};
var shorten = function shorten(string) {
var round = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
if (!string || typeof string !== "string") return string;
switch (round) {
case 0:
return string.trim();
case 1:
return _replaceIfNeeded(string, removeDuplicateLetters);
case 2:
return _replaceIfNeeded(string, removeMiddleVowels);
default:
return ellipsisInMiddle(string, round);
}
};
var shortForLength = exports.shortForLength = function shortForLength(string) {
var maxLength = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 30;
if (!string || typeof string !== "string") return string;
var round = 0;
while (string.length > maxLength) {
string = shorten(string, round);
round = round + 1;
}
return string;
};
var _default = exports["default"] = shorten;