"use strict";
/**
 * 翻译接口参数获取工具
 * 用于获取翻译接口请求 payload 中的 componentVersion、language、version 参数
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.getBaseInfoContext = exports.getDefaultVersion = exports.getLanguage = exports.getComponentVersion = void 0;
/**
 * 组件版本号常量
 */
const COMPONENT_VERSION = '1.2.37';
/**
 * 默认搜索类型（查明细）
 */
const DEFAULT_SEARCH_TYPE = 'ENTITY_EXTRACTION';
/**
 * 默认语言
 */
const DEFAULT_LANGUAGE = 'zh-CN';
/**
 * 获取组件版本号
 * @returns {string} 组件版本号，例如 "1.2.37"
 */
const getComponentVersion = () => {
    return COMPONENT_VERSION;
};
exports.getComponentVersion = getComponentVersion;
/**
 * 获取当前语言
 * 优先从 top.$i18n_lowcode?.currentLang 获取，如果不存在则从 window.$i18n_lowcode?.currentLang 获取
 * 如果都不存在，返回默认值 "zh-CN"
 * @returns {string} 当前语言代码，例如 "zh-CN"
 */
const getLanguage = () => {
    var _a, _b;
    let currentLang = DEFAULT_LANGUAGE;
    try {
        // 尝试从 top 窗口获取（iframe 场景）
        currentLang = ((_a = top === null || top === void 0 ? void 0 : top.$i18n_lowcode) === null || _a === void 0 ? void 0 : _a.currentLang) || currentLang;
    }
    catch (e) {
        // 跨域情况下无法访问 top，从当前窗口获取
        currentLang = ((_b = window === null || window === void 0 ? void 0 : window.$i18n_lowcode) === null || _b === void 0 ? void 0 : _b.currentLang) || currentLang;
    }
    return currentLang;
};
exports.getLanguage = getLanguage;
/**
 * 获取默认的搜索类型版本
 * @returns {string} 默认搜索类型，返回 "ENTITY_EXTRACTION"（查明细）
 */
const getDefaultVersion = () => {
    return DEFAULT_SEARCH_TYPE;
};
exports.getDefaultVersion = getDefaultVersion;
/**
 * 获取翻译接口的 baseInfoContext 对象
 * @param {Object} options 配置选项
 * @param {string} options.operator 操作人
 * @param {string} [options.version] 搜索类型版本，可选值：'ENTITY_EXTRACTION' | 'TEXT2SQL'，默认为 'ENTITY_EXTRACTION'
 * @returns {Object} baseInfoContext 对象
 */
const getBaseInfoContext = (options) => {
    const { operator, version } = options;
    const baseInfoContext = {
        operator,
        version: version || (0, exports.getDefaultVersion)(),
        language: (0, exports.getLanguage)(),
        componentVersion: (0, exports.getComponentVersion)(),
    };
    return baseInfoContext;
};
exports.getBaseInfoContext = getBaseInfoContext;
