vscroll
Version:
Virtual scroll engine
263 lines • 8.27 kB
JavaScript
import { VALIDATORS } from './validation';
import { DatasourceProps as AdapterResetParams } from './datasource';
import { AdapterProcess as Process } from '../processes/misc/enums';
const { INTEGER, INTEGER_UNLIMITED, BOOLEAN, OBJECT, ITEM_LIST, FUNC_WITH_X_ARGUMENTS, FUNC_WITH_X_AND_MORE_ARGUMENTS, FUNC_WITH_X_TO_Y_ARGUMENTS, ONE_OF_MUST, ONE_OF_CAN, OR } = VALIDATORS;
var AdapterNoParams;
(function (AdapterNoParams) {
})(AdapterNoParams || (AdapterNoParams = {}));
const NO_METHOD_PARAMS = {};
const RESET_METHOD_PARAMS = {
[]: {
validators: [FUNC_WITH_X_AND_MORE_ARGUMENTS(2)]
},
[]: {
validators: [OBJECT]
},
[]: {
validators: [OBJECT]
}
};
var AdapterReloadParams;
(function (AdapterReloadParams) {
AdapterReloadParams["reloadIndex"] = "reloadIndex";
})(AdapterReloadParams || (AdapterReloadParams = {}));
const RELOAD_METHOD_PARAMS = {
[]: {
validators: [INTEGER]
}
};
var AdapterPrependParams;
(function (AdapterPrependParams) {
AdapterPrependParams["items"] = "items";
AdapterPrependParams["bof"] = "bof";
AdapterPrependParams["increase"] = "increase";
AdapterPrependParams["virtualize"] = "virtualize";
})(AdapterPrependParams || (AdapterPrependParams = {}));
const PREPEND_METHOD_PARAMS = {
[]: {
validators: [ITEM_LIST],
mandatory: true
},
[]: {
validators: [BOOLEAN, ONE_OF_CAN([AdapterPrependParams.virtualize])],
defaultValue: false
},
[]: {
validators: [BOOLEAN],
defaultValue: false
},
[]: {
validators: [BOOLEAN, ONE_OF_CAN([AdapterPrependParams.bof])],
defaultValue: false
}
};
var AdapterAppendParams;
(function (AdapterAppendParams) {
AdapterAppendParams["items"] = "items";
AdapterAppendParams["eof"] = "eof";
AdapterAppendParams["decrease"] = "decrease";
AdapterAppendParams["virtualize"] = "virtualize";
})(AdapterAppendParams || (AdapterAppendParams = {}));
const APPEND_METHOD_PARAMS = {
[]: {
validators: [ITEM_LIST],
mandatory: true
},
[]: {
validators: [BOOLEAN, ONE_OF_CAN([AdapterAppendParams.virtualize])],
defaultValue: false
},
[]: {
validators: [BOOLEAN],
defaultValue: false
},
[]: {
validators: [BOOLEAN, ONE_OF_CAN([AdapterAppendParams.eof])],
defaultValue: false
}
};
var AdapterRemoveParams;
(function (AdapterRemoveParams) {
AdapterRemoveParams["predicate"] = "predicate";
AdapterRemoveParams["indexes"] = "indexes";
AdapterRemoveParams["increase"] = "increase";
})(AdapterRemoveParams || (AdapterRemoveParams = {}));
const REMOVE_METHOD_PARAMS = {
[]: {
validators: [FUNC_WITH_X_ARGUMENTS(1), ONE_OF_MUST([AdapterRemoveParams.indexes])]
},
[]: {
validators: [ITEM_LIST, ONE_OF_MUST([AdapterRemoveParams.predicate])]
},
[]: {
validators: [BOOLEAN],
defaultValue: false
}
};
var AdapterClipParams;
(function (AdapterClipParams) {
AdapterClipParams["backwardOnly"] = "backwardOnly";
AdapterClipParams["forwardOnly"] = "forwardOnly";
})(AdapterClipParams || (AdapterClipParams = {}));
const CLIP_METHOD_PARAMS = {
[]: {
validators: [BOOLEAN, ONE_OF_CAN([AdapterClipParams.forwardOnly])],
defaultValue: false
},
[]: {
validators: [BOOLEAN, ONE_OF_CAN([AdapterClipParams.backwardOnly])],
defaultValue: false
}
};
var AdapterInsertParams;
(function (AdapterInsertParams) {
AdapterInsertParams["items"] = "items";
AdapterInsertParams["before"] = "before";
AdapterInsertParams["after"] = "after";
AdapterInsertParams["beforeIndex"] = "beforeIndex";
AdapterInsertParams["afterIndex"] = "afterIndex";
AdapterInsertParams["decrease"] = "decrease";
})(AdapterInsertParams || (AdapterInsertParams = {}));
const INSERT_METHOD_PARAMS = {
[]: {
validators: [ITEM_LIST],
mandatory: true
},
[]: {
validators: [
FUNC_WITH_X_ARGUMENTS(1),
ONE_OF_MUST([
AdapterInsertParams.after,
AdapterInsertParams.beforeIndex,
AdapterInsertParams.afterIndex
])
]
},
[]: {
validators: [
FUNC_WITH_X_ARGUMENTS(1),
ONE_OF_MUST([
AdapterInsertParams.before,
AdapterInsertParams.beforeIndex,
AdapterInsertParams.afterIndex
])
]
},
[]: {
validators: [
INTEGER,
ONE_OF_MUST([
AdapterInsertParams.before,
AdapterInsertParams.after,
AdapterInsertParams.afterIndex
])
]
},
[]: {
validators: [
INTEGER,
ONE_OF_MUST([
AdapterInsertParams.before,
AdapterInsertParams.after,
AdapterInsertParams.beforeIndex
])
]
},
[]: {
validators: [BOOLEAN],
defaultValue: false
}
};
var AdapterReplaceParams;
(function (AdapterReplaceParams) {
AdapterReplaceParams["items"] = "items";
AdapterReplaceParams["predicate"] = "predicate";
AdapterReplaceParams["fixRight"] = "fixRight";
})(AdapterReplaceParams || (AdapterReplaceParams = {}));
const REPLACE_METHOD_PARAMS = {
[]: {
validators: [ITEM_LIST],
mandatory: true
},
[]: {
validators: [FUNC_WITH_X_ARGUMENTS(1)],
mandatory: true
},
[]: {
validators: [BOOLEAN],
defaultValue: false
}
};
var AdapterUpdateParams;
(function (AdapterUpdateParams) {
AdapterUpdateParams["predicate"] = "predicate";
AdapterUpdateParams["fixRight"] = "fixRight";
})(AdapterUpdateParams || (AdapterUpdateParams = {}));
const UPDATE_METHOD_PARAMS = {
[]: {
validators: [FUNC_WITH_X_ARGUMENTS(1)],
mandatory: true
},
[]: {
validators: [BOOLEAN],
defaultValue: false
}
};
var AdapterFixParams;
(function (AdapterFixParams) {
AdapterFixParams["scrollPosition"] = "scrollPosition";
AdapterFixParams["minIndex"] = "minIndex";
AdapterFixParams["maxIndex"] = "maxIndex";
AdapterFixParams["updater"] = "updater";
AdapterFixParams["scrollToItem"] = "scrollToItem";
AdapterFixParams["scrollToItemOpt"] = "scrollToItemOpt";
})(AdapterFixParams || (AdapterFixParams = {}));
const FIX_METHOD_PARAMS = {
[]: {
validators: [INTEGER_UNLIMITED]
},
[]: {
validators: [INTEGER_UNLIMITED]
},
[]: {
validators: [INTEGER_UNLIMITED]
},
[]: {
validators: [FUNC_WITH_X_TO_Y_ARGUMENTS(1, 2)]
},
[]: {
validators: [FUNC_WITH_X_ARGUMENTS(1)]
},
[]: {
validators: [OR([BOOLEAN, OBJECT])]
}
};
export const AdapterMethods = {
[]: AdapterResetParams,
[]: AdapterReloadParams,
[]: AdapterPrependParams,
[]: AdapterAppendParams,
[]: AdapterNoParams,
[]: AdapterRemoveParams,
[]: AdapterClipParams,
[]: AdapterInsertParams,
[]: AdapterReplaceParams,
[]: AdapterUpdateParams,
[]: AdapterNoParams,
[]: AdapterFixParams
};
export const ADAPTER_METHODS = {
[]: RESET_METHOD_PARAMS,
[]: RELOAD_METHOD_PARAMS,
[]: PREPEND_METHOD_PARAMS,
[]: APPEND_METHOD_PARAMS,
[]: NO_METHOD_PARAMS,
[]: REMOVE_METHOD_PARAMS,
[]: CLIP_METHOD_PARAMS,
[]: INSERT_METHOD_PARAMS,
[]: REPLACE_METHOD_PARAMS,
[]: UPDATE_METHOD_PARAMS,
[]: NO_METHOD_PARAMS,
[]: FIX_METHOD_PARAMS
};
//# sourceMappingURL=adapter.js.map