handsontable
Version:
Handsontable is a JavaScript Spreadsheet Component available for React, Angular and Vue.
22 lines (19 loc) • 882 B
JavaScript
import "core-js/modules/es.array.slice.js";
import * as C from "../../../i18n/constants.mjs";
import { registerOperation } from "../logicalOperationRegisterer.mjs";
export var OPERATION_ID = 'disjunctionWithExtraCondition';
export var SHORT_NAME_FOR_COMPONENT = C.FILTERS_LABELS_DISJUNCTION; // ((p OR q OR w OR x OR...) AND z) === TRUE?
/**
* @param {Array} conditions An array with values to check.
* @param {*} value The comparable value.
* @returns {boolean}
*/
export function operationResult(conditions, value) {
if (conditions.length < 3) {
throw Error('Operation doesn\'t work on less then three conditions.');
}
return conditions.slice(0, conditions.length - 1).some(function (condition) {
return condition.func(value);
}) && conditions[conditions.length - 1].func(value);
}
registerOperation(OPERATION_ID, SHORT_NAME_FOR_COMPONENT, operationResult);