"use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
function _export(target, all) {
    for(var name in all)Object.defineProperty(target, name, {
        enumerable: true,
        get: Object.getOwnPropertyDescriptor(all, name).get
    });
}
_export(exports, {
    get getCompareFunctionFactory () {
        return getCompareFunctionFactory;
    },
    get getRootComparator () {
        return getRootComparator;
    },
    get registerRootComparator () {
        return registerRootComparator;
    }
});
const _default = require("../sortFunction/default");
const _numeric = require("../sortFunction/numeric");
const _checkbox = require("../sortFunction/checkbox");
const _date = require("../sortFunction/date");
const _intlDate = require("../sortFunction/intlDate");
const _time = require("../sortFunction/time");
const _intlTime = require("../sortFunction/intlTime");
const _staticRegister = require("../../../utils/staticRegister");
const { register: registerCompareFunctionFactory, getItem: getGloballyCompareFunctionFactory, hasItem: hasGloballyCompareFunctionFactory } = (0, _staticRegister.staticRegister)('sorting.compareFunctionFactory');
const { register: registerRootComparator, getItem: getRootComparator } = (0, _staticRegister.staticRegister)('sorting.mainSortComparator');
function getCompareFunctionFactory(type) {
    if (hasGloballyCompareFunctionFactory(type)) {
        return getGloballyCompareFunctionFactory(type);
    }
    return getGloballyCompareFunctionFactory(_default.COLUMN_DATA_TYPE);
}
registerCompareFunctionFactory(_checkbox.COLUMN_DATA_TYPE, _checkbox.compareFunctionFactory);
registerCompareFunctionFactory(_date.COLUMN_DATA_TYPE, _date.compareFunctionFactory);
registerCompareFunctionFactory(_intlDate.COLUMN_DATA_TYPE, _intlDate.compareFunctionFactory);
registerCompareFunctionFactory(_default.COLUMN_DATA_TYPE, _default.compareFunctionFactory);
registerCompareFunctionFactory(_numeric.COLUMN_DATA_TYPE, _numeric.compareFunctionFactory);
registerCompareFunctionFactory(_time.COLUMN_DATA_TYPE, _time.compareFunctionFactory);
registerCompareFunctionFactory(_intlTime.COLUMN_DATA_TYPE, _intlTime.compareFunctionFactory);
