UNPKG

741 BJavaScriptView Raw
1import {Operator} from 'vega-dataflow';
2import {inherits} from 'vega-util';
3
4/**
5 * Computes global min/max extents over a collection of extents.
6 * @constructor
7 * @param {object} params - The parameters for this operator.
8 * @param {Array<Array<number>>} params.extents - The input extents.
9 */
10export default function MultiExtent(params) {
11 Operator.call(this, null, update, params);
12}
13
14inherits(MultiExtent, Operator);
15
16function update(_) {
17 if (this.value && !_.modified()) {
18 return this.value;
19 }
20
21 var min = +Infinity,
22 max = -Infinity,
23 ext = _.extents,
24 i, n, e;
25
26 for (i=0, n=ext.length; i<n; ++i) {
27 e = ext[i];
28 if (e[0] < min) min = e[0];
29 if (e[1] > max) max = e[1];
30 }
31 return [min, max];
32}