import { normalizeEmployeeObject } from './normalize-employee-object';
import { findEmployeeLabel } from '../display/employee-select-display-utils';
/**
 * 标准化单个人员值，如果 value 是字符串/数字且存在 options，会从 options 中查找对应的 label 并设置 nickName
 */
function normalizeSingleEmployeeValue(value, options) {
    const normalized = normalizeEmployeeObject(value);
    // 如果 value 是字符串/数字，从 options 中查找 label 并设置 nickName
    if ((typeof value === 'string' || typeof value === 'number') && options) {
        const label = findEmployeeLabel(value, options);
        if (label) {
            normalized.nickName = label;
        }
    }
    return normalized;
}
/**
 * 标准化人员/部门选择器的值
 * 如果 value 是字符串/数字且存在 options，会从 options 中查找对应的 label 并设置 nickName
 */
export function normalizeEmployeeValue(value, componentProps, options) {
    const isMultiple = (componentProps === null || componentProps === void 0 ? void 0 : componentProps.mode) === 'multiple';
    if (isMultiple) {
        // 多选：返回数组
        if (!Array.isArray(value)) {
            return [normalizeSingleEmployeeValue(value, options)];
        }
        return value.map((item) => normalizeSingleEmployeeValue(item, options));
    }
    else {
        // 单选：返回单个值
        const actualValue = Array.isArray(value) ? (value.length > 0 ? value[0] : undefined) : value;
        if (actualValue === undefined || actualValue === null) {
            return undefined;
        }
        return normalizeSingleEmployeeValue(actualValue, options);
    }
}
