UNPKG

@react-slate/core

Version:

Write interactive CLI apps with React

58 lines 1.89 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const react_1 = __importDefault(require("react")); const Paragraph_1 = __importDefault(require("../host/nodes/Paragraph")); const utils_1 = require("../utils"); function View(props) { return ( // @ts-ignore react_1.default.createElement(Paragraph_1.default.TAG, { onLayout: props.onLayout, onClick: props.onClick, onWheel: props.onWheel, style: { color: props.color, bgColor: props.bgColor, modifiers: reduceModifiers(props), } }, react_1.default.Children.map(props.children, child => { if (react_1.default.isValidElement(child)) { return react_1.default.cloneElement(child, { textTransform: props.textTransform, }); } switch (props.textTransform) { case 'capitalize': { return utils_1.capitalize(child.toString()); } case 'lowercase': { return child.toString().toLowerCase(); } case 'uppercase': { return child.toString().toUpperCase(); } case 'none': default: return child; } }))); } exports.default = View; function reduceModifiers(props) { const modifiers = []; if (props.bold) { modifiers.push('bold'); } if (props.italic) { modifiers.push('italic'); } if (props.dim) { modifiers.push('dim'); } if (props.underline) { modifiers.push('underline'); } if (props.lineThrough) { modifiers.push('strikethrough'); } return modifiers.length ? modifiers : undefined; } //# sourceMappingURL=Text.js.map