UNPKG

@eccenca/gui-elements

Version:

GUI elements based on other libraries, usable in React application, written in Typescript.

29 lines 2.16 kB
import React from "react"; import { ContentBlobToggler, Markdown } from "./../index.js"; /** Version of the content toggler for text only content. */ export function StringPreviewContentBlobToggler(_a) { var _b = _a.className, className = _b === void 0 ? "" : _b, previewMaxLength = _a.previewMaxLength, toggleExtendText = _a.toggleExtendText, toggleReduceText = _a.toggleReduceText, content = _a.content, fullviewContent = _a.fullviewContent, startExtended = _a.startExtended, firstNonEmptyLineOnly = _a.firstNonEmptyLineOnly, _c = _a.renderPreviewAsMarkdown, renderPreviewAsMarkdown = _c === void 0 ? false : _c, allowedHtmlElementsInPreview = _a.allowedHtmlElementsInPreview, noTogglerContentSuffix = _a.noTogglerContentSuffix; var previewMaybeFirstLine = firstNonEmptyLineOnly ? firstNonEmptyLine(content) : content; var previewString = previewMaxLength ? previewMaybeFirstLine.substr(0, previewMaxLength) : previewMaybeFirstLine; var enableToggler = previewString !== content; var previewContent = renderPreviewAsMarkdown ? (React.createElement(Markdown, { key: "markdown-content", allowedElements: allowedHtmlElementsInPreview }, previewString)) : (previewString); if (!enableToggler && noTogglerContentSuffix) { previewContent = (React.createElement(React.Fragment, null, previewContent, noTogglerContentSuffix)); } return (React.createElement(ContentBlobToggler, { className: className, previewContent: previewContent, toggleExtendText: toggleExtendText, toggleReduceText: toggleReduceText, fullviewContent: fullviewContent, startExtended: startExtended, enableToggler: enableToggler })); } var newLineRegex = new RegExp("\r|\n"); // eslint-disable-line /** * Takes the first non-empty line from a preview string. */ function firstNonEmptyLine(preview) { var previewString = preview.trim(); var result = newLineRegex.exec(previewString); return result !== null ? previewString.substr(0, result.index) : previewString; } export var stringPreviewContentBlobTogglerUtils = { firstNonEmptyLine: firstNonEmptyLine, }; //# sourceMappingURL=StringPreviewContentBlobToggler.js.map