/**
 * 处理翻译接口的响应数据，将 entityInfos 转换为搜索标签格式
 * 参考 @/utils 中的 afterTransformResponse
 * @param result - 翻译接口的响应数据
 * @param lockedFieldKeys - 锁定的字段keys
 * @returns 转换后的搜索标签数组
 */
export function afterTransformResponse(result, lockedFieldKeys = []) {
    var _a, _b, _c, _d, _e;
    if (!(result === null || result === void 0 ? void 0 : result.success) || !(result === null || result === void 0 ? void 0 : result.entityInfos)) {
        return [];
    }
    // 过滤
    const entity = (_a = result.entityInfos) === null || _a === void 0 ? void 0 : _a.map((item) => {
        return {
            ...item,
            name: item.entityChineseKey,
            values: Array.isArray(item.entityValuesNew) ? item.entityValuesNew : [item.entityValuesNew],
            labels: item.entityChineseValuesNew,
            analyzeType: 'FILTER',
            lock: lockedFieldKeys.indexOf(item.entityKey) > -1,
            entityKey: item.entityKey,
            entityType: item.entityType,
            entityValuesNew: item.entityValuesNew,
            entityChineseValuesNew: item.entityChineseValuesNew,
        };
    });
    // 指标
    const select = ((_c = (_b = result.selectInfo) === null || _b === void 0 ? void 0 : _b.selectInfos) === null || _c === void 0 ? void 0 : _c.map((item) => ({
        ...item.columnInfo,
        name: item.columnInfo.entityChineseKey,
        agg: item.agg,
        analyzeType: 'METRIC',
    }))) || [];
    // 纬度
    const group = ((_e = (_d = result.groupInfo) === null || _d === void 0 ? void 0 : _d.groupByColumns) === null || _e === void 0 ? void 0 : _e.map((item) => ({
        ...item,
        name: item.entityChineseKey,
        analyzeType: 'DIMENSION',
    }))) || [];
    return [...entity, ...select, ...group];
}
/**
 * 格式化搜索参数，用于触发 onSearch
 * 参考 @/utils 中的 formatCnFilterProParamsLowcode
 * @param tags - 搜索标签数组
 * @returns 格式化后的搜索参数
 */
export function formatCnFilterProParamsLowcode(tags) {
    const result = {};
    const opKindMap = {};
    tags === null || tags === void 0 ? void 0 : tags.forEach((item) => {
        result[item.entityKey] =
            typeof item.entityValuesNew !== 'undefined' ? item.entityValuesNew : '';
        opKindMap[item.entityKey] = typeof item.opKind !== 'undefined' ? item.opKind : '';
    });
    if (Object.keys(opKindMap).length > 0) {
        result._cnOneSearchResultOpKindMap = opKindMap;
    }
    return result;
}
/**
 * 'true'/'false'强制转换为boolean
 */
function formatResponseDataType(data) {
    if (data === 'true') {
        return true;
    }
    else if (data === 'false') {
        return false;
    }
    else {
        return data;
    }
}
/**
 * 用于前端调用算法接口结果转换，处理成鸟搭getList接口需要的格式
 * @param tags - 搜索标签数组
 * @param schema - schema 配置
 * @returns 格式化后的搜索参数
 */
export function formatCnFilterProParamsNiaoDa(tags, schema) {
    const result = {};
    tags === null || tags === void 0 ? void 0 : tags.forEach((item) => {
        var _a, _b, _c, _d;
        const currentSchema = (_a = schema === null || schema === void 0 ? void 0 : schema.properties) === null || _a === void 0 ? void 0 : _a[item.entityKey];
        const componentType = currentSchema === null || currentSchema === void 0 ? void 0 : currentSchema['x-component'];
        if (['Input', 'CnInput', 'NumberPicker', 'CnNumberPicker', 'CnBatchInput'].includes(componentType)) {
            result[item.entityKey] = (_b = item.entityValuesNew) === null || _b === void 0 ? void 0 : _b[0];
        }
        else if (['EmployeeSelect', 'CnEmployeeSelect'].includes(componentType)) {
            result[item.entityKey] = (_c = item.entityValuesNew) === null || _c === void 0 ? void 0 : _c.map((workNo) => ({ workNo }));
        }
        else if (['RadioGroup', 'CnRadioGroup'].includes(componentType)) {
            result[item.entityKey] = formatResponseDataType((_d = item.entityValuesNew) === null || _d === void 0 ? void 0 : _d[0]);
        }
        else {
            result[item.entityKey] = item.entityValuesNew;
        }
    });
    return result;
}
