1"use strict";
2var __importDefault = (this && this.__importDefault) || function (mod) {
3    return (mod && mod.__esModule) ? mod : { "default": mod };
4};
5Object.defineProperty(exports, "__esModule", { value: true });
6exports.LogBoxMessage = void 0;
7/**
8 * Copyright (c) 650 Industries.
9 * Copyright (c) Meta Platforms, Inc. and affiliates.
10 *
11 * This source code is licensed under the MIT license found in the
12 * LICENSE file in the root directory of this source tree.
13 */
14const react_1 = __importDefault(require("react"));
15const react_native_1 = require("react-native");
16const cleanContent = (content) => content.replace(/^(TransformError |Warning: (Warning: )?|Error: )/g, '');
17function LogBoxMessage(props) {
18    const { content, substitutions } = props.message;
19    if (props.plaintext === true) {
20        return react_1.default.createElement(react_native_1.Text, null, cleanContent(content));
21    }
22    const maxLength = props.maxLength != null ? props.maxLength : Infinity;
23    const substitutionStyle = props.style;
24    const elements = [];
25    let length = 0;
26    const createUnderLength = (key, message, style) => {
27        let cleanMessage = cleanContent(message);
28        if (props.maxLength != null) {
29            cleanMessage = cleanMessage.slice(0, props.maxLength - length);
30        }
31        if (length < maxLength) {
32            elements.push(react_1.default.createElement(react_native_1.Text, { key: key, style: style }, cleanMessage));
33        }
34        length += cleanMessage.length;
35    };
36    const lastOffset = substitutions.reduce((prevOffset, substitution, index) => {
37        const key = String(index);
38        if (substitution.offset > prevOffset) {
39            const prevPart = content.substr(prevOffset, substitution.offset - prevOffset);
40            createUnderLength(key, prevPart);
41        }
42        const substititionPart = content.substr(substitution.offset, substitution.length);
43        createUnderLength(key + '.5', substititionPart, substitutionStyle);
44        return substitution.offset + substitution.length;
45    }, 0);
46    if (lastOffset < content.length) {
47        const lastPart = content.substr(lastOffset);
48        createUnderLength('-1', lastPart);
49    }
50    return react_1.default.createElement(react_1.default.Fragment, null, elements);
51}
52exports.LogBoxMessage = LogBoxMessage;
53//# sourceMappingURL=LogBoxMessage.js.map