UNPKG

@netdata/charts

Version:

Netdata frontend SDK and chart utilities

54 lines (53 loc) 2.15 kB
"use strict"; 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;