"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.extractTextValue = extractTextValue;
exports.extractEllipsisText = extractEllipsisText;
exports.extractMultipleTextValue = extractMultipleTextValue;
exports.extractImageTextValue = extractImageTextValue;
const i18n_1 = __importDefault(require("../../../../../../../../locales/i18n.js"));
/**
 * 文本格式提取器
 */
const isNil_1 = __importDefault(require("lodash/isNil"));
/**
 * 普通文本提取器
 */
function extractTextValue(value, 
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- 签名与提取器接口一致
_column, 
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- 签名与提取器接口一致
_record) {
    if ((0, isNil_1.default)(value) || value === '') {
        return '';
    }
    if (typeof value === 'string' || typeof value === 'number') {
        return String(value);
    }
    if (typeof value === 'boolean') {
        return value ? i18n_1.default.get({ id: 'Yes', dm: '是' }) : i18n_1.default.get({ id: 'No', dm: '否' });
    }
    // 对象类型，尝试提取
    if (typeof value === 'object') {
        // 如果有 label 或 text 属性，使用它
        if (value.label)
            return String(value.label);
        if (value.text)
            return String(value.text);
        if (value.name)
            return String(value.name);
        if (value.title)
            return String(value.title);
        if (value.value !== undefined)
            return String(value.value);
        // 数组
        if (Array.isArray(value)) {
            return value
                .map((item) => {
                if (typeof item === 'object' && item !== null) {
                    return item.label || item.text || item.name || item.value || JSON.stringify(item);
                }
                return String(item);
            })
                .join(', ');
        }
        // fallback 到 JSON
        return JSON.stringify(value);
    }
    return String(value);
}
/**
 * 省略号文本提取器（与普通文本相同，只是显示时会截断）
 */
function extractEllipsisText(value, column, record) {
    return extractTextValue(value, column, record);
}
/**
 * 多行文本提取器
 */
function extractMultipleTextValue(value, 
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- 签名与提取器接口一致
_column, 
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- 签名与提取器接口一致
_record) {
    if ((0, isNil_1.default)(value) || value === '') {
        return '';
    }
    if (Array.isArray(value)) {
        return value.filter(Boolean).join('\n');
    }
    return String(value);
}
/**
 * 图文文本提取器（提取文本部分）
 */
function extractImageTextValue(value, 
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- 签名与提取器接口一致
_column, 
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- 签名与提取器接口一致
_record) {
    if ((0, isNil_1.default)(value) || value === '') {
        return '';
    }
    // 如果是对象，提取文本部分
    if (typeof value === 'object' && value !== null) {
        const { text, title, name, description } = value;
        const parts = [title, name, text, description].filter(Boolean);
        return parts.join(' - ') || '';
    }
    return String(value);
}
