mirror of
https://github.com/grafana/grafana.git
synced 2025-09-24 19:23:51 +08:00

* Add and configure eslint-plugin-import * Fix the lint:ts npm command * Autofix + prettier all the files * Manually fix remaining files * Move jquery code in jest-setup to external file to safely reorder imports * Resolve issue caused by circular dependencies within Prometheus * Update .betterer.results * Fix missing // @ts-ignore * ignore iconBundle.ts * Fix missing // @ts-ignore
30 lines
933 B
TypeScript
30 lines
933 B
TypeScript
import { FeatureLike } from 'ol/Feature';
|
|
|
|
import { FeatureRuleConfig, ComparisonOperation } from '../types';
|
|
|
|
/**
|
|
* Check whether feature has property value that matches rule
|
|
* @param rule - style rule with an operation, property, and value
|
|
* @param feature - feature with properties and values
|
|
* @returns boolean
|
|
*/
|
|
export const checkFeatureMatchesStyleRule = (rule: FeatureRuleConfig, feature: FeatureLike) => {
|
|
const val = feature.get(rule.property);
|
|
switch (rule.operation) {
|
|
case ComparisonOperation.EQ:
|
|
return `${val}` === `${rule.value}`;
|
|
case ComparisonOperation.NEQ:
|
|
return val !== rule.value;
|
|
case ComparisonOperation.GT:
|
|
return val > rule.value;
|
|
case ComparisonOperation.GTE:
|
|
return val >= rule.value;
|
|
case ComparisonOperation.LT:
|
|
return val < rule.value;
|
|
case ComparisonOperation.LTE:
|
|
return val <= rule.value;
|
|
default:
|
|
return false;
|
|
}
|
|
};
|