import { debugInfo } from "../../../../Utils/debugUtils";
/**
 * 处理内联代码节点
 * @param currentElement - 当前处理的内联代码元素
 * @returns 返回格式化的内联代码节点对象，支持占位符和初始值
 */ export var handleInlineCode = function(currentElement) {
    var _currentElement_value, _currentElement_value1;
    debugInfo('handleInlineCode - 处理内联代码', {
        value: currentElement.value
    });
    var hasPlaceHolder = (_currentElement_value = currentElement.value) === null || _currentElement_value === void 0 ? void 0 : _currentElement_value.match(/\$\{(.*?)\}/);
    var values = undefined;
    if (hasPlaceHolder) {
        // 使用逗号分割多个键值对，例如：placeholder:目标场景,initialValue:已选择
        var content = hasPlaceHolder[1];
        values = {};
        // 匹配 key:value 格式，支持逗号分隔
        var keyValuePattern = /(\w+):([^,]+)/g;
        var match;
        while((match = keyValuePattern.exec(content)) !== null){
            var key = match[1];
            var value = match[2];
            if (key && value !== undefined && value !== null) {
                values[key] = value;
            }
        }
    }
    var isTag = (_currentElement_value1 = currentElement.value) === null || _currentElement_value1 === void 0 ? void 0 : _currentElement_value1.startsWith('${');
    var result = {
        code: true,
        tag: isTag ? true : false
    };
    // 优先使用 initialValue，其次使用 placeholder，最后使用原始值
    if (values === null || values === void 0 ? void 0 : values.initialValue) {
        result.text = values.initialValue || ' ';
    }
    if (!result.text && (values === null || values === void 0 ? void 0 : values.placeholder)) {
        // 当有 placeholder 时，text 设置为空格，避免空字符串导致 tag 被移除
        result.text = ' ';
    }
    if (!result.text) {
        // 只有当不是 ${ 开头的占位符时，才使用原始值
        if (!isTag) {
            result.text = currentElement.value;
        } else {
            // 如果是 ${ 开头但没有匹配到值，使用空格避免空字符串
            result.text = ' ';
        }
    }
    // 设置 placeholder 和 initialValue
    // 如果是 tag 且值存在，设置实际值；否则设置为 undefined（符合测试期望）
    if (isTag) {
        result.placeholder = values === null || values === void 0 ? void 0 : values.placeholder;
        result.initialValue = values === null || values === void 0 ? void 0 : values.initialValue;
    } else {
        result.placeholder = undefined;
        result.initialValue = undefined;
    }
    debugInfo('handleInlineCode - 内联代码处理完成', {
        code: result.code,
        tag: result.tag,
        text: result.text,
        placeholder: result.placeholder,
        initialValue: result.initialValue
    });
    return result;
};
/**
 * 处理分割线节点
 * @returns 返回格式化的分割线节点对象
 */ export var handleThematicBreak = function() {
    debugInfo('handleThematicBreak - 处理分割线');
    var result = {
        type: 'hr',
        children: [
            {
                text: ''
            }
        ]
    };
    debugInfo('handleThematicBreak - 分割线处理完成', {
        type: result.type
    });
    return result;
};
/**
 * 处理定义节点
 * @param currentElement - 当前处理的定义元素，包含标签和URL
 * @returns 返回格式化的定义段落节点对象
 */ export var handleDefinition = function(currentElement) {
    debugInfo('handleDefinition - 处理定义', {
        label: currentElement.label,
        url: currentElement.url
    });
    var result = {
        type: 'paragraph',
        children: [
            {
                text: "[".concat(currentElement.label, "]: ") + (currentElement.url ? "".concat(currentElement.url) : '')
            }
        ]
    };
    debugInfo('handleDefinition - 定义处理完成', {
        type: result.type,
        text: result.children[0].text
    });
    return result;
};
