"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createDateFormat = createDateFormat;
const constants_1 = require("../constants");
const date_1 = require("./utils/date");
function createDateFormat(dateAdapterLocale) {
    return (column) => {
        return {
            cell(val) {
                var _a, _b, _c, _d, _e, _f;
                // 处理带 children 的情况（如日期范围选择器）
                // 直接使用主字段（数组格式），与时间区间组件保持一致
                if (Array.isArray(column === null || column === void 0 ? void 0 : column.children) && column.children.length > 0) {
                    // 使用主字段（数组格式）
                    if (Array.isArray(val) && val.length === 2) {
                        const startFormatted = (0, date_1.formatDate)(val[0], (_a = column === null || column === void 0 ? void 0 : column.dateInterv) !== null && _a !== void 0 ? _a : constants_1.DEFAULT_DATE_INTERV, (_b = column === null || column === void 0 ? void 0 : column.dateFormat) !== null && _b !== void 0 ? _b : constants_1.DEFAULT_DATE_FORMAT, dateAdapterLocale);
                        const endFormatted = (0, date_1.formatDate)(val[1], (_c = column === null || column === void 0 ? void 0 : column.dateInterv) !== null && _c !== void 0 ? _c : constants_1.DEFAULT_DATE_INTERV, (_d = column === null || column === void 0 ? void 0 : column.dateFormat) !== null && _d !== void 0 ? _d : constants_1.DEFAULT_DATE_FORMAT, dateAdapterLocale);
                        return `${startFormatted} - ${endFormatted}`;
                    }
                    return constants_1.EMPTY_VALUE_DISPLAY;
                }
                // 普通日期字段
                if (val) {
                    return (0, date_1.formatDate)(val, (_e = column === null || column === void 0 ? void 0 : column.dateInterv) !== null && _e !== void 0 ? _e : constants_1.DEFAULT_DATE_INTERV, (_f = column === null || column === void 0 ? void 0 : column.dateFormat) !== null && _f !== void 0 ? _f : constants_1.DEFAULT_DATE_FORMAT, dateAdapterLocale);
                }
                return constants_1.EMPTY_VALUE_DISPLAY;
            },
        };
    };
}
