MCPcopy Index your code
hub / github.com/plotly/plotly.js / getFilterFunc

Function getFilterFunc

src/transforms/filter.js:222–323  ·  view source on GitHub ↗
(opts, d2c, targetCalendar)

Source from the content-addressed store, hash-verified

220};
221
222function getFilterFunc(opts, d2c, targetCalendar) {
223 var operation = opts.operation;
224 var value = opts.value;
225 var hasArrayValue = Lib.isArrayOrTypedArray(value);
226
227 function isOperationIn(array) {
228 return array.indexOf(operation) !== -1;
229 }
230
231 var d2cValue = function(v) { return d2c(v, 0, opts.valuecalendar); };
232 var d2cTarget = function(v) { return d2c(v, 0, targetCalendar); };
233
234 var coercedValue;
235
236 if(isOperationIn(COMPARISON_OPS)) {
237 coercedValue = hasArrayValue ? d2cValue(value[0]) : d2cValue(value);
238 } else if(isOperationIn(INTERVAL_OPS)) {
239 coercedValue = hasArrayValue ?
240 [d2cValue(value[0]), d2cValue(value[1])] :
241 [d2cValue(value), d2cValue(value)];
242 } else if(isOperationIn(SET_OPS)) {
243 coercedValue = hasArrayValue ? value.map(d2cValue) : [d2cValue(value)];
244 }
245
246 switch(operation) {
247 case '=':
248 return function(v) { return d2cTarget(v) === coercedValue; };
249
250 case '!=':
251 return function(v) { return d2cTarget(v) !== coercedValue; };
252
253 case '<':
254 return function(v) { return d2cTarget(v) < coercedValue; };
255
256 case '<=':
257 return function(v) { return d2cTarget(v) <= coercedValue; };
258
259 case '>':
260 return function(v) { return d2cTarget(v) > coercedValue; };
261
262 case '>=':
263 return function(v) { return d2cTarget(v) >= coercedValue; };
264
265 case '[]':
266 return function(v) {
267 var cv = d2cTarget(v);
268 return cv >= coercedValue[0] && cv <= coercedValue[1];
269 };
270
271 case '()':
272 return function(v) {
273 var cv = d2cTarget(v);
274 return cv > coercedValue[0] && cv < coercedValue[1];
275 };
276
277 case '[)':
278 return function(v) {
279 var cv = d2cTarget(v);

Callers 1

filter.jsFile · 0.85

Calls 3

isOperationInFunction · 0.85
d2cValueFunction · 0.85
d2cTargetFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…