@eccenca/gui-elements
Version:
GUI elements based on other libraries, usable in React application, written in Typescript.
35 lines • 2.22 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.stringPreviewContentBlobTogglerUtils = void 0;
exports.StringPreviewContentBlobToggler = StringPreviewContentBlobToggler;
const react_1 = __importDefault(require("react"));
const __1 = require("./..");
/** Version of the content toggler for text only content. */
function StringPreviewContentBlobToggler({ className = "", previewMaxLength, toggleExtendText, toggleReduceText, content, fullviewContent, startExtended, firstNonEmptyLineOnly, renderPreviewAsMarkdown = false, allowedHtmlElementsInPreview, noTogglerContentSuffix, }) {
const previewMaybeFirstLine = firstNonEmptyLineOnly ? firstNonEmptyLine(content) : content;
const previewString = previewMaxLength ? previewMaybeFirstLine.substr(0, previewMaxLength) : previewMaybeFirstLine;
const enableToggler = previewString !== content;
let previewContent = renderPreviewAsMarkdown ? (react_1.default.createElement(__1.Markdown, { key: "markdown-content", allowedElements: allowedHtmlElementsInPreview }, previewString)) : (previewString);
if (!enableToggler && noTogglerContentSuffix) {
previewContent = (react_1.default.createElement(react_1.default.Fragment, null,
previewContent,
noTogglerContentSuffix));
}
return (react_1.default.createElement(__1.ContentBlobToggler, { className: className, previewContent: previewContent, toggleExtendText: toggleExtendText, toggleReduceText: toggleReduceText, fullviewContent: fullviewContent, startExtended: startExtended, enableToggler: enableToggler }));
}
const newLineRegex = new RegExp("\r|\n"); // eslint-disable-line
/**
* Takes the first non-empty line from a preview string.
*/
function firstNonEmptyLine(preview) {
const previewString = preview.trim();
const result = newLineRegex.exec(previewString);
return result !== null ? previewString.substr(0, result.index) : previewString;
}
exports.stringPreviewContentBlobTogglerUtils = {
firstNonEmptyLine,
};
//# sourceMappingURL=StringPreviewContentBlobToggler.js.map