"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = camelJoinedtoCamelSpace;
/**
 * Convert Camel Joined Text to Camel Spaced Text
 * ==============================================================================
 * @description this function takes a camel cased text without spaces, and returns
 * a camel-case-spaced text
 */
function camelJoinedtoCamelSpace(text) {
    if (!(text === null || text === void 0 ? void 0 : text.match(/./))) {
        return "";
    }
    if (text === null || text === void 0 ? void 0 : text.match(/ /)) {
        return text;
    }
    if (text) {
        let textArray = text.split("");
        let capIndexes = [];
        for (let i = 0; i < textArray.length; i++) {
            const char = textArray[i];
            if (i === 0)
                continue;
            if (char.match(/[A-Z]/)) {
                capIndexes.push(i);
            }
        }
        let textChunks = [
            `${textArray[0].toUpperCase()}${text.substring(1, capIndexes[0])}`,
        ];
        for (let j = 0; j < capIndexes.length; j++) {
            const capIndex = capIndexes[j];
            if (capIndex === 0)
                continue;
            const startIndex = capIndex + 1;
            const endIndex = capIndexes[j + 1];
            textChunks.push(`${textArray[capIndex].toUpperCase()}${text.substring(startIndex, endIndex)}`);
        }
        return textChunks.join(" ");
    }
    else {
        return null;
    }
}