UNPKG

molstar

Version:

A comprehensive macromolecular library.

89 lines (88 loc) 3.21 kB
/** * Copyright (c) 2018-2019 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> * @author David Sehnal <david.sehnal@gmail.com> */ import { __spreadArray } from "tslib"; var reLine = /^/mg; export function indentString(str, count, indent) { return count === 0 ? str : str.replace(reLine, indent.repeat(count)); } /** Add space between camelCase text. */ export function splitCamelCase(str, separator) { if (separator === void 0) { separator = ' '; } return str.replace(/([a-z\xE0-\xFF])([A-Z\xC0\xDF])/g, "$1".concat(separator, "$2")); } /** Split camelCase text and capitalize. */ export function camelCaseToWords(str) { return capitalize(splitCamelCase(str)); } export var lowerCase = function (str) { return str.toLowerCase(); }; export var upperCase = function (str) { return str.toUpperCase(); }; /** Return upper case if string, otherwise return empty string */ export function upperCaseAny(value) { if (!value) return ''; return typeof value === 'string' ? value.toUpperCase() : "".concat(value).toUpperCase(); } /** Uppercase the first character of each word. */ export function capitalize(str) { return str.toLowerCase().replace(/^\w|\s\w/g, upperCase); } export function splitSnakeCase(str) { return str.replace(/_/g, ' '); } export function snakeCaseToWords(str) { return capitalize(splitSnakeCase(str)); } export function splitKebabCase(str) { return str.replace(/-/g, ' '); } export function kebabCaseToWords(str) { return capitalize(splitKebabCase(str)); } export function stringToWords(str) { return capitalize(splitCamelCase(splitSnakeCase(splitKebabCase(str)))); } export function substringStartsWith(str, start, end, target) { var len = target.length; if (len > end - start) return false; for (var i = 0; i < len; i++) { if (str.charCodeAt(start + i) !== target.charCodeAt(i)) return false; } return true; } export function interpolate(str, params) { var names = Object.keys(params); var values = Object.values(params); return new (Function.bind.apply(Function, __spreadArray(__spreadArray([void 0], names, false), ["return `".concat(str, "`;")], false)))().apply(void 0, values); } export function trimChar(str, char) { var start = 0; var end = str.length; while (start < end && str[start] === char) ++start; while (end > start && str[end - 1] === char) --end; return (start > 0 || end < str.length) ? str.substring(start, end) : str; } export function trimCharStart(str, char) { var start = 0; var end = str.length; while (start < end && str[start] === char) ++start; return (start > 0) ? str.substring(start, end) : str; } export function trimCharEnd(str, char) { var end = str.length; while (end > 0 && str[end - 1] === char) --end; return (end < str.length) ? str.substring(0, end) : str; } /** Simple function to strip tags from a string */ export function stripTags(str) { return str.replace(/<\/?[^>]+>/g, ''); }