/**
 * 判断字段是否应该被保留
 * @param field 字段配置
 * @returns true 表示应该保留，false 表示应该过滤掉
 */
export function shouldKeepField(field) {
    var _a;
    if (!field)
        return false;
    if ((_a = field['x-data']) === null || _a === void 0 ? void 0 : _a.hidden)
        return false;
    // if (field['x-component-props']?.dataOrigin === 'request') return false;
    return true;
}
export function shouldKeepCol(col) {
    if (!col)
        return false;
    if (col === null || col === void 0 ? void 0 : col.hidden)
        return false;
    return true;
}
/**
 * 从数据中提取列配置信息
 * @param fieldMap 字段映射配置
 * @param tableColumns 表格列配置
 * @returns 列元数据
 */
export function getColumnMetadata(fieldMap, tableColumns) {
    return tableColumns === null || tableColumns === void 0 ? void 0 : tableColumns.map((column) => ({ ...column, field: fieldMap === null || fieldMap === void 0 ? void 0 : fieldMap[column.dataIndex] })).filter(({ field }) => shouldKeepField(field)).map(({ dataIndex, title, field }) => ({
        entityKey: dataIndex,
        entityChineseKey: title,
        entityType: field['x-component'] || 'Input',
        entityComponentProps: field['x-component-props'] || {},
        enumDicts: field.enum || [],
    }));
}
