storybook
Version:
Storybook: Develop, document, and test UI components in isolation
38 lines (36 loc) • 1.41 kB
JavaScript
// ../node_modules/ts-dedent/esm/index.js
function dedent(templ) {
for (var values = [], _i = 1; _i < arguments.length; _i++)
values[_i - 1] = arguments[_i];
var strings = Array.from(typeof templ == "string" ? [templ] : templ);
strings[strings.length - 1] = strings[strings.length - 1].replace(/\r?\n([\t ]*)$/, "");
var indentLengths = strings.reduce(function(arr, str) {
var matches = str.match(/\n([\t ]+|(?!\s).)/g);
return matches ? arr.concat(matches.map(function(match) {
var _a, _b;
return (_b = (_a = match.match(/[\t ]/g)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
})) : arr;
}, []);
if (indentLengths.length) {
var pattern_1 = new RegExp(`
[ ]{` + Math.min.apply(Math, indentLengths) + "}", "g");
strings = strings.map(function(str) {
return str.replace(pattern_1, `
`);
});
}
strings[0] = strings[0].replace(/^\r?\n/, "");
var string = strings[0];
return values.forEach(function(value, i) {
var endentations = string.match(/(?:^|\n)( *)$/), endentation = endentations ? endentations[1] : "", indentedValue = value;
typeof value == "string" && value.includes(`
`) && (indentedValue = String(value).split(`
`).map(function(str, i2) {
return i2 === 0 ? str : "" + endentation + str;
}).join(`
`)), string += indentedValue + strings[i + 1];
}), string;
}
export {
dedent
};