UNPKG

plywood

Version:
55 lines (54 loc) 2.37 kB
import { __extends } from "tslib"; import { generalArraysEqual } from 'immutable-class'; import { handleNullCheckIfNeeded } from '../helper'; import { ChainableExpression, Expression } from './baseExpression'; var MvOverlapExpression = (function (_super) { __extends(MvOverlapExpression, _super); function MvOverlapExpression(parameters) { var _this = _super.call(this, parameters, dummyObject) || this; _this._ensureOp('mvOverlap'); _this._checkOperandTypes('STRING'); _this.mvArray = parameters.mvArray; _this.type = 'BOOLEAN'; return _this; } MvOverlapExpression.fromJS = function (parameters) { var value = ChainableExpression.jsToValue(parameters); value.mvArray = parameters.mvArray; return new MvOverlapExpression(value); }; MvOverlapExpression.prototype.valueOf = function () { var value = _super.prototype.valueOf.call(this); value.mvArray = this.mvArray; return value; }; MvOverlapExpression.prototype.toJS = function () { var js = _super.prototype.toJS.call(this); js.mvArray = this.mvArray; return js; }; MvOverlapExpression.prototype.equals = function (other) { return _super.prototype.equals.call(this, other) && generalArraysEqual(this.mvArray, other.mvArray); }; MvOverlapExpression.prototype._toStringParameters = function (_indent) { return this.mvArray; }; MvOverlapExpression.prototype._calcChainableHelper = function (operandValue) { var _this = this; var operandArray = typeof operandValue === 'string' ? [operandValue] : Array.isArray(operandValue) ? operandValue : null; return operandArray !== null && operandArray.some(function (element) { return _this.mvArray.includes(element); }); }; MvOverlapExpression.prototype._getSQLChainableHelper = function (dialect, operandSQL) { return handleNullCheckIfNeeded(this.mvArray, "".concat(operandSQL, " IS NULL"), 'OR', function (withoutNull) { return dialect.mvOverlapExpression(operandSQL, withoutNull); }); }; MvOverlapExpression.op = 'MvOverlap'; return MvOverlapExpression; }(ChainableExpression)); export { MvOverlapExpression }; Expression.register(MvOverlapExpression);