import Vue from "vue"; Vue.directive("trim-indents", { bind(el, binding) { const withoutStartEndWhitespace = el.innerHTML.replace(/(^\n+|\n+$)/g, ""); const mode = binding.value != null ? binding.value : "start"; let spacesToTrim; if (mode === "start") { const match = withoutStartEndWhitespace.match(/^\s+/); spacesToTrim = match ? match[0].length : 0; } else if (mode === "end") { const match = withoutStartEndWhitespace.match(/\s+$/); spacesToTrim = match ? match[0].length : 0; } else { spacesToTrim = parseInt(mode, 10); } el.innerHTML = withoutStartEndWhitespace .split("\n") .map(line => line.slice(spacesToTrim)) .join("\n"); }, });