逐步完成前后端服务器
This commit is contained in:
257
frontend/node_modules/echarts/lib/util/conditionalExpression.js
generated
vendored
Normal file
257
frontend/node_modules/echarts/lib/util/conditionalExpression.js
generated
vendored
Normal file
@ -0,0 +1,257 @@
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* AUTO-GENERATED FILE. DO NOT MODIFY.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
import { keys, isArray, map, isObject, isString, isRegExp, isArrayLike, hasOwn, isNumber } from 'zrender/lib/core/util.js';
|
||||
import { throwError, makePrintable } from './log.js';
|
||||
import { getRawValueParser, createFilterComparator } from '../data/helper/dataValueHelper.js';
|
||||
;
|
||||
var RELATIONAL_EXPRESSION_OP_ALIAS_MAP = {
|
||||
value: 'eq',
|
||||
// PENDING: not good for literal semantic?
|
||||
'<': 'lt',
|
||||
'<=': 'lte',
|
||||
'>': 'gt',
|
||||
'>=': 'gte',
|
||||
'=': 'eq',
|
||||
'!=': 'ne',
|
||||
'<>': 'ne'
|
||||
// Might be misleading for sake of the difference between '==' and '===',
|
||||
// so don't support them.
|
||||
// '==': 'eq',
|
||||
// '===': 'seq',
|
||||
// '!==': 'sne'
|
||||
// PENDING: Whether support some common alias "ge", "le", "neq"?
|
||||
// ge: 'gte',
|
||||
// le: 'lte',
|
||||
// neq: 'ne',
|
||||
};
|
||||
// type RelationalExpressionOpEvaluate = (tarVal: unknown, condVal: unknown) => boolean;
|
||||
var RegExpEvaluator = /** @class */function () {
|
||||
function RegExpEvaluator(rVal) {
|
||||
// Support condVal: RegExp | string
|
||||
var condValue = this._condVal = isString(rVal) ? new RegExp(rVal) : isRegExp(rVal) ? rVal : null;
|
||||
if (condValue == null) {
|
||||
var errMsg = '';
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
errMsg = makePrintable('Illegal regexp', rVal, 'in');
|
||||
}
|
||||
throwError(errMsg);
|
||||
}
|
||||
}
|
||||
RegExpEvaluator.prototype.evaluate = function (lVal) {
|
||||
var type = typeof lVal;
|
||||
return isString(type) ? this._condVal.test(lVal) : isNumber(type) ? this._condVal.test(lVal + '') : false;
|
||||
};
|
||||
return RegExpEvaluator;
|
||||
}();
|
||||
var ConstConditionInternal = /** @class */function () {
|
||||
function ConstConditionInternal() {}
|
||||
ConstConditionInternal.prototype.evaluate = function () {
|
||||
return this.value;
|
||||
};
|
||||
return ConstConditionInternal;
|
||||
}();
|
||||
var AndConditionInternal = /** @class */function () {
|
||||
function AndConditionInternal() {}
|
||||
AndConditionInternal.prototype.evaluate = function () {
|
||||
var children = this.children;
|
||||
for (var i = 0; i < children.length; i++) {
|
||||
if (!children[i].evaluate()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
};
|
||||
return AndConditionInternal;
|
||||
}();
|
||||
var OrConditionInternal = /** @class */function () {
|
||||
function OrConditionInternal() {}
|
||||
OrConditionInternal.prototype.evaluate = function () {
|
||||
var children = this.children;
|
||||
for (var i = 0; i < children.length; i++) {
|
||||
if (children[i].evaluate()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
return OrConditionInternal;
|
||||
}();
|
||||
var NotConditionInternal = /** @class */function () {
|
||||
function NotConditionInternal() {}
|
||||
NotConditionInternal.prototype.evaluate = function () {
|
||||
return !this.child.evaluate();
|
||||
};
|
||||
return NotConditionInternal;
|
||||
}();
|
||||
var RelationalConditionInternal = /** @class */function () {
|
||||
function RelationalConditionInternal() {}
|
||||
RelationalConditionInternal.prototype.evaluate = function () {
|
||||
var needParse = !!this.valueParser;
|
||||
// Call getValue with no `this`.
|
||||
var getValue = this.getValue;
|
||||
var tarValRaw = getValue(this.valueGetterParam);
|
||||
var tarValParsed = needParse ? this.valueParser(tarValRaw) : null;
|
||||
// Relational cond follow "and" logic internally.
|
||||
for (var i = 0; i < this.subCondList.length; i++) {
|
||||
if (!this.subCondList[i].evaluate(needParse ? tarValParsed : tarValRaw)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
};
|
||||
return RelationalConditionInternal;
|
||||
}();
|
||||
function parseOption(exprOption, getters) {
|
||||
if (exprOption === true || exprOption === false) {
|
||||
var cond = new ConstConditionInternal();
|
||||
cond.value = exprOption;
|
||||
return cond;
|
||||
}
|
||||
var errMsg = '';
|
||||
if (!isObjectNotArray(exprOption)) {
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
errMsg = makePrintable('Illegal config. Expect a plain object but actually', exprOption);
|
||||
}
|
||||
throwError(errMsg);
|
||||
}
|
||||
if (exprOption.and) {
|
||||
return parseAndOrOption('and', exprOption, getters);
|
||||
} else if (exprOption.or) {
|
||||
return parseAndOrOption('or', exprOption, getters);
|
||||
} else if (exprOption.not) {
|
||||
return parseNotOption(exprOption, getters);
|
||||
}
|
||||
return parseRelationalOption(exprOption, getters);
|
||||
}
|
||||
function parseAndOrOption(op, exprOption, getters) {
|
||||
var subOptionArr = exprOption[op];
|
||||
var errMsg = '';
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
errMsg = makePrintable('"and"/"or" condition should only be `' + op + ': [...]` and must not be empty array.', 'Illegal condition:', exprOption);
|
||||
}
|
||||
if (!isArray(subOptionArr)) {
|
||||
throwError(errMsg);
|
||||
}
|
||||
if (!subOptionArr.length) {
|
||||
throwError(errMsg);
|
||||
}
|
||||
var cond = op === 'and' ? new AndConditionInternal() : new OrConditionInternal();
|
||||
cond.children = map(subOptionArr, function (subOption) {
|
||||
return parseOption(subOption, getters);
|
||||
});
|
||||
if (!cond.children.length) {
|
||||
throwError(errMsg);
|
||||
}
|
||||
return cond;
|
||||
}
|
||||
function parseNotOption(exprOption, getters) {
|
||||
var subOption = exprOption.not;
|
||||
var errMsg = '';
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
errMsg = makePrintable('"not" condition should only be `not: {}`.', 'Illegal condition:', exprOption);
|
||||
}
|
||||
if (!isObjectNotArray(subOption)) {
|
||||
throwError(errMsg);
|
||||
}
|
||||
var cond = new NotConditionInternal();
|
||||
cond.child = parseOption(subOption, getters);
|
||||
if (!cond.child) {
|
||||
throwError(errMsg);
|
||||
}
|
||||
return cond;
|
||||
}
|
||||
function parseRelationalOption(exprOption, getters) {
|
||||
var errMsg = '';
|
||||
var valueGetterParam = getters.prepareGetValue(exprOption);
|
||||
var subCondList = [];
|
||||
var exprKeys = keys(exprOption);
|
||||
var parserName = exprOption.parser;
|
||||
var valueParser = parserName ? getRawValueParser(parserName) : null;
|
||||
for (var i = 0; i < exprKeys.length; i++) {
|
||||
var keyRaw = exprKeys[i];
|
||||
if (keyRaw === 'parser' || getters.valueGetterAttrMap.get(keyRaw)) {
|
||||
continue;
|
||||
}
|
||||
var op = hasOwn(RELATIONAL_EXPRESSION_OP_ALIAS_MAP, keyRaw) ? RELATIONAL_EXPRESSION_OP_ALIAS_MAP[keyRaw] : keyRaw;
|
||||
var condValueRaw = exprOption[keyRaw];
|
||||
var condValueParsed = valueParser ? valueParser(condValueRaw) : condValueRaw;
|
||||
var evaluator = createFilterComparator(op, condValueParsed) || op === 'reg' && new RegExpEvaluator(condValueParsed);
|
||||
if (!evaluator) {
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
errMsg = makePrintable('Illegal relational operation: "' + keyRaw + '" in condition:', exprOption);
|
||||
}
|
||||
throwError(errMsg);
|
||||
}
|
||||
subCondList.push(evaluator);
|
||||
}
|
||||
if (!subCondList.length) {
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
errMsg = makePrintable('Relational condition must have at least one operator.', 'Illegal condition:', exprOption);
|
||||
}
|
||||
// No relational operator always disabled in case of dangers result.
|
||||
throwError(errMsg);
|
||||
}
|
||||
var cond = new RelationalConditionInternal();
|
||||
cond.valueGetterParam = valueGetterParam;
|
||||
cond.valueParser = valueParser;
|
||||
cond.getValue = getters.getValue;
|
||||
cond.subCondList = subCondList;
|
||||
return cond;
|
||||
}
|
||||
function isObjectNotArray(val) {
|
||||
return isObject(val) && !isArrayLike(val);
|
||||
}
|
||||
var ConditionalExpressionParsed = /** @class */function () {
|
||||
function ConditionalExpressionParsed(exprOption, getters) {
|
||||
this._cond = parseOption(exprOption, getters);
|
||||
}
|
||||
ConditionalExpressionParsed.prototype.evaluate = function () {
|
||||
return this._cond.evaluate();
|
||||
};
|
||||
return ConditionalExpressionParsed;
|
||||
}();
|
||||
;
|
||||
export function parseConditionalExpression(exprOption, getters) {
|
||||
return new ConditionalExpressionParsed(exprOption, getters);
|
||||
}
|
Reference in New Issue
Block a user