vega-encode
Advanced tools
Comparing version 4.8.2 to 4.8.3
(function (global, factory) { | ||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vega-dataflow'), require('vega-scale'), require('vega-util'), require('d3-array'), require('d3-interpolate')) : | ||
typeof define === 'function' && define.amd ? define(['exports', 'vega-dataflow', 'vega-scale', 'vega-util', 'd3-array', 'd3-interpolate'], factory) : | ||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.vega = global.vega || {}, global.vega.transforms = {}), global.vega, global.vega, global.vega, global.d3, global.d3)); | ||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.vega = {}, global.vega, global.vega, global.vega, global.d3, global.d3)); | ||
}(this, (function (exports, vegaDataflow, vegaScale, vegaUtil, d3Array, d3Interpolate) { 'use strict'; | ||
@@ -23,6 +23,6 @@ | ||
*/ | ||
function AxisTicks(params) { | ||
vegaDataflow.Transform.call(this, null, params); | ||
} | ||
vegaUtil.inherits(AxisTicks, vegaDataflow.Transform, { | ||
@@ -38,17 +38,13 @@ transform(_, pulse) { | ||
scale = _.scale, | ||
tally = _.count == null ? (_.values ? _.values.length : 10) : _.count, | ||
tally = _.count == null ? _.values ? _.values.length : 10 : _.count, | ||
count = vegaScale.tickCount(scale, tally, _.minstep), | ||
format = _.format || vegaScale.tickFormat(locale, scale, count, _.formatSpecifier, _.formatType, !!_.values), | ||
values = _.values ? vegaScale.validTicks(scale, _.values, count) : vegaScale.tickValues(scale, count); | ||
if (ticks) out.rem = ticks; | ||
ticks = values.map((value, i) => vegaDataflow.ingest({ | ||
index: i / (values.length - 1 || 1), | ||
value: value, | ||
label: format(value) | ||
})); | ||
ticks = values.map((value, i) => | ||
vegaDataflow.ingest({ | ||
index: i / (values.length - 1 || 1), | ||
value: value, | ||
label: format(value) | ||
}) | ||
); | ||
if (_.extra && ticks.length) { | ||
@@ -59,3 +55,5 @@ // add an extra tick pegged to the initial domain value | ||
index: -1, | ||
extra: {value: ticks[0].value}, | ||
extra: { | ||
value: ticks[0].value | ||
}, | ||
label: '' | ||
@@ -68,5 +66,5 @@ })); | ||
this.value = ticks; | ||
return out; | ||
} | ||
}); | ||
@@ -81,2 +79,3 @@ | ||
*/ | ||
function DataJoin(params) { | ||
@@ -92,3 +91,5 @@ vegaDataflow.Transform.call(this, null, params); | ||
const map = vegaUtil.fastmap().test(t => t.exit); | ||
map.lookup = t => map.get(key(t)); | ||
return map; | ||
@@ -103,6 +104,5 @@ } | ||
key = _.key || vegaDataflow.tupleid, | ||
map = this.value; | ||
map = this.value; // prevent transient (e.g., hover) requests from | ||
// cascading across marks derived from marks | ||
// prevent transient (e.g., hover) requests from | ||
// cascading across marks derived from marks | ||
if (vegaUtil.isArray(out.encode)) { | ||
@@ -141,3 +141,2 @@ out.encode = null; | ||
}); | ||
pulse.visit(pulse.MOD, t => { | ||
@@ -152,3 +151,2 @@ const k = key(t), | ||
}); | ||
pulse.visit(pulse.REM, t => { | ||
@@ -164,3 +162,2 @@ const k = key(t), | ||
}); | ||
if (pulse.changed(pulse.ADD_MOD)) out.modifies('datum'); | ||
@@ -174,2 +171,3 @@ | ||
} | ||
}); | ||
@@ -189,6 +187,6 @@ | ||
*/ | ||
function Encode(params) { | ||
vegaDataflow.Transform.call(this, null, params); | ||
} | ||
vegaUtil.inherits(Encode, vegaDataflow.Transform, { | ||
@@ -199,7 +197,6 @@ transform(_, pulse) { | ||
encoders = _.encoders, | ||
encode = pulse.encode; | ||
// if an array, the encode directive includes additional sets | ||
encode = pulse.encode; // if an array, the encode directive includes additional sets | ||
// that must be defined in order for the primary set to be invoked | ||
// e.g., only run the update set if the hover set is defined | ||
if (vegaUtil.isArray(encode)) { | ||
@@ -212,5 +209,5 @@ if (out.changed() || encode.every(e => encoders[e])) { | ||
} | ||
} | ||
} // marshall encoder functions | ||
// marshall encoder functions | ||
var reenter = encode === 'enter', | ||
@@ -223,7 +220,13 @@ update = encoders.update || vegaUtil.falsy, | ||
if (pulse.changed(pulse.ADD)) { | ||
pulse.visit(pulse.ADD, t => { enter(t, _); update(t, _); }); | ||
pulse.visit(pulse.ADD, t => { | ||
enter(t, _); | ||
update(t, _); | ||
}); | ||
out.modifies(enter.output); | ||
out.modifies(update.output); | ||
if (set !== vegaUtil.falsy && set !== update) { | ||
pulse.visit(pulse.ADD, t => { set(t, _); }); | ||
pulse.visit(pulse.ADD, t => { | ||
set(t, _); | ||
}); | ||
out.modifies(set.output); | ||
@@ -234,3 +237,5 @@ } | ||
if (pulse.changed(pulse.REM) && exit !== vegaUtil.falsy) { | ||
pulse.visit(pulse.REM, t => { exit(t, _); }); | ||
pulse.visit(pulse.REM, t => { | ||
exit(t, _); | ||
}); | ||
out.modifies(exit.output); | ||
@@ -240,6 +245,7 @@ } | ||
if (reenter || set !== vegaUtil.falsy) { | ||
var flag = pulse.MOD | (_.modified() ? pulse.REFLOW : 0); | ||
const flag = pulse.MOD | (_.modified() ? pulse.REFLOW : 0); | ||
if (reenter) { | ||
pulse.visit(flag, t => { | ||
var mod = enter(t, _) || fmod; | ||
const mod = enter(t, _) || fmod; | ||
if (set(t, _) || mod) out.mod.push(t); | ||
@@ -253,2 +259,3 @@ }); | ||
} | ||
if (out.mod.length) out.modifies(set.output); | ||
@@ -259,2 +266,3 @@ } | ||
} | ||
}); | ||
@@ -280,6 +288,6 @@ | ||
*/ | ||
function LegendEntries(params) { | ||
vegaDataflow.Transform.call(this, [], params); | ||
} | ||
vegaUtil.inherits(LegendEntries, vegaDataflow.Transform, { | ||
@@ -294,3 +302,3 @@ transform(_, pulse) { | ||
items = this.value, | ||
type = _.type || vegaScale.SymbolLegend, | ||
type = _.type || vegaScale.SymbolLegend, | ||
scale = _.scale, | ||
@@ -302,4 +310,7 @@ limit = +_.limit, | ||
values = _.values || vegaScale.labelValues(scale, count), | ||
domain, fraction, size, offset, ellipsis; | ||
domain, | ||
fraction, | ||
size, | ||
offset, | ||
ellipsis; | ||
if (items) out.rem = items; | ||
@@ -320,4 +331,5 @@ | ||
items = items.slice(1); | ||
} | ||
// compute size offset for legend entries | ||
} // compute size offset for legend entries | ||
offset = items.reduce((max, value) => Math.max(max, size(value, _)), 0); | ||
@@ -328,11 +340,9 @@ } else { | ||
items = items.map((value, index) => | ||
vegaDataflow.ingest({ | ||
index: index, | ||
label: format(value, index, items), | ||
value: value, | ||
offset: offset, | ||
size: size(value, _) | ||
}) | ||
); | ||
items = items.map((value, index) => vegaDataflow.ingest({ | ||
index: index, | ||
label: format(value, index, items), | ||
value: value, | ||
offset: offset, | ||
size: size(value, _) | ||
})); | ||
@@ -342,17 +352,13 @@ if (ellipsis) { | ||
items.push(vegaDataflow.ingest({ | ||
index: items.length, | ||
label: `\u2026${values.length-items.length} entries`, | ||
value: ellipsis, | ||
offset: offset, | ||
size: size(ellipsis, _) | ||
index: items.length, | ||
label: `\u2026${values.length - items.length} entries`, | ||
value: ellipsis, | ||
offset: offset, | ||
size: size(ellipsis, _) | ||
})); | ||
} | ||
} | ||
} else if (type === vegaScale.GradientLegend) { | ||
domain = scale.domain(), fraction = vegaScale.scaleFraction(scale, domain[0], vegaUtil.peek(domain)); // if automatic label generation produces 2 or fewer values, | ||
// use the domain end points instead (fixes vega/vega#1364) | ||
else if (type === vegaScale.GradientLegend) { | ||
domain = scale.domain(), | ||
fraction = vegaScale.scaleFraction(scale, domain[0], vegaUtil.peek(domain)); | ||
// if automatic label generation produces 2 or fewer values, | ||
// use the domain end points instead (fixes vega/vega#1364) | ||
if (values.length < 3 && !_.values && domain[0] !== vegaUtil.peek(domain)) { | ||
@@ -362,25 +368,18 @@ values = [domain[0], vegaUtil.peek(domain)]; | ||
items = values.map((value, index) => | ||
vegaDataflow.ingest({ | ||
index: index, | ||
label: format(value, index, values), | ||
value: value, | ||
perc: fraction(value) | ||
}) | ||
); | ||
} | ||
else { | ||
items = values.map((value, index) => vegaDataflow.ingest({ | ||
index: index, | ||
label: format(value, index, values), | ||
value: value, | ||
perc: fraction(value) | ||
})); | ||
} else { | ||
size = values.length - 1; | ||
fraction = vegaScale.labelFraction(scale); | ||
items = values.map((value, index) => | ||
vegaDataflow.ingest({ | ||
index: index, | ||
label: format(value, index, values), | ||
value: value, | ||
perc: index ? fraction(value) : 0, | ||
perc2: index === size ? 1 : fraction(values[index+1]) | ||
}) | ||
); | ||
items = values.map((value, index) => vegaDataflow.ingest({ | ||
index: index, | ||
label: format(value, index, values), | ||
value: value, | ||
perc: index ? fraction(value) : 0, | ||
perc2: index === size ? 1 : fraction(values[index + 1]) | ||
})); | ||
} | ||
@@ -391,38 +390,64 @@ | ||
this.value = items; | ||
return out; | ||
} | ||
}); | ||
const sourceX = t => t.source.x; | ||
const sourceY = t => t.source.y; | ||
const targetX = t => t.target.x; | ||
const targetY = t => t.target.y; | ||
/** | ||
* Layout paths linking source and target elements. | ||
* @constructor | ||
* @param {object} params - The parameters for this operator. | ||
*/ | ||
/** | ||
* Layout paths linking source and target elements. | ||
* @constructor | ||
* @param {object} params - The parameters for this operator. | ||
*/ | ||
function LinkPath(params) { | ||
vegaDataflow.Transform.call(this, {}, params); | ||
} | ||
LinkPath.Definition = { | ||
'type': 'LinkPath', | ||
'metadata': {'modifies': true}, | ||
'params': [ | ||
{ 'name': 'sourceX', 'type': 'field', 'default': 'source.x' }, | ||
{ 'name': 'sourceY', 'type': 'field', 'default': 'source.y' }, | ||
{ 'name': 'targetX', 'type': 'field', 'default': 'target.x' }, | ||
{ 'name': 'targetY', 'type': 'field', 'default': 'target.y' }, | ||
{ 'name': 'orient', 'type': 'enum', 'default': 'vertical', | ||
'values': ['horizontal', 'vertical', 'radial'] }, | ||
{ 'name': 'shape', 'type': 'enum', 'default': 'line', | ||
'values': ['line', 'arc', 'curve', 'diagonal', 'orthogonal'] }, | ||
{ 'name': 'require', 'type': 'signal' }, | ||
{ 'name': 'as', 'type': 'string', 'default': 'path' } | ||
] | ||
'metadata': { | ||
'modifies': true | ||
}, | ||
'params': [{ | ||
'name': 'sourceX', | ||
'type': 'field', | ||
'default': 'source.x' | ||
}, { | ||
'name': 'sourceY', | ||
'type': 'field', | ||
'default': 'source.y' | ||
}, { | ||
'name': 'targetX', | ||
'type': 'field', | ||
'default': 'target.x' | ||
}, { | ||
'name': 'targetY', | ||
'type': 'field', | ||
'default': 'target.y' | ||
}, { | ||
'name': 'orient', | ||
'type': 'enum', | ||
'default': 'vertical', | ||
'values': ['horizontal', 'vertical', 'radial'] | ||
}, { | ||
'name': 'shape', | ||
'type': 'enum', | ||
'default': 'line', | ||
'values': ['line', 'arc', 'curve', 'diagonal', 'orthogonal'] | ||
}, { | ||
'name': 'require', | ||
'type': 'signal' | ||
}, { | ||
'name': 'as', | ||
'type': 'string', | ||
'default': 'path' | ||
}] | ||
}; | ||
vegaUtil.inherits(LinkPath, vegaDataflow.Transform, { | ||
@@ -440,4 +465,3 @@ transform(_, pulse) { | ||
if (!path) { | ||
vegaUtil.error('LinkPath unsupported type: ' + _.shape | ||
+ (_.orient ? '-' + _.orient : '')); | ||
vegaUtil.error('LinkPath unsupported type: ' + _.shape + (_.orient ? '-' + _.orient : '')); | ||
} | ||
@@ -448,15 +472,10 @@ | ||
}); | ||
return pulse.reflow(_.modified()).modifies(as); | ||
} | ||
}); | ||
const line = (sx, sy, tx, ty) => | ||
'M' + sx + ',' + sy + | ||
'L' + tx + ',' + ty; | ||
const line = (sx, sy, tx, ty) => 'M' + sx + ',' + sy + 'L' + tx + ',' + ty; | ||
const lineR= (sa, sr, ta, tr) => line( | ||
sr * Math.cos(sa), sr * Math.sin(sa), | ||
tr * Math.cos(ta), tr * Math.sin(ta) | ||
); | ||
const lineR = (sa, sr, ta, tr) => line(sr * Math.cos(sa), sr * Math.sin(sa), tr * Math.cos(ta), tr * Math.sin(ta)); | ||
@@ -468,12 +487,6 @@ const arc = (sx, sy, tx, ty) => { | ||
ra = 180 * Math.atan2(dy, dx) / Math.PI; | ||
return 'M' + sx + ',' + sy + | ||
'A' + rr + ',' + rr + | ||
' ' + ra + ' 0 1' + | ||
' ' + tx + ',' + ty; | ||
return 'M' + sx + ',' + sy + 'A' + rr + ',' + rr + ' ' + ra + ' 0 1' + ' ' + tx + ',' + ty; | ||
}; | ||
const arcR = (sa, sr, ta, tr) => arc( | ||
sr * Math.cos(sa), sr * Math.sin(sa), | ||
tr * Math.cos(ta), tr * Math.sin(ta) | ||
); | ||
const arcR = (sa, sr, ta, tr) => arc(sr * Math.cos(sa), sr * Math.sin(sa), tr * Math.cos(ta), tr * Math.sin(ta)); | ||
@@ -485,20 +498,10 @@ const curve = (sx, sy, tx, ty) => { | ||
iy = 0.2 * (dy - dx); | ||
return 'M' + sx + ',' + sy + | ||
'C' + (sx+ix) + ',' + (sy+iy) + | ||
' ' + (tx+iy) + ',' + (ty-ix) + | ||
' ' + tx + ',' + ty; | ||
return 'M' + sx + ',' + sy + 'C' + (sx + ix) + ',' + (sy + iy) + ' ' + (tx + iy) + ',' + (ty - ix) + ' ' + tx + ',' + ty; | ||
}; | ||
const curveR = (sa, sr, ta, tr) => curve( | ||
sr * Math.cos(sa), sr * Math.sin(sa), | ||
tr * Math.cos(ta), tr * Math.sin(ta) | ||
); | ||
const curveR = (sa, sr, ta, tr) => curve(sr * Math.cos(sa), sr * Math.sin(sa), tr * Math.cos(ta), tr * Math.sin(ta)); | ||
const orthoX = (sx, sy, tx, ty) => | ||
'M' + sx + ',' + sy + | ||
'V' + ty + 'H' + tx; | ||
const orthoX = (sx, sy, tx, ty) => 'M' + sx + ',' + sy + 'V' + ty + 'H' + tx; | ||
const orthoY = (sx, sy, tx, ty) => | ||
'M' + sx + ',' + sy + | ||
'H' + tx + 'V' + ty; | ||
const orthoY = (sx, sy, tx, ty) => 'M' + sx + ',' + sy + 'H' + tx + 'V' + ty; | ||
@@ -511,6 +514,3 @@ const orthoR = (sa, sr, ta, tr) => { | ||
sf = Math.abs(ta - sa) > Math.PI ? ta <= sa : ta > sa; | ||
return 'M' + (sr*sc) + ',' + (sr*ss) + | ||
'A' + sr + ',' + sr + ' 0 0,' + (sf?1:0) + | ||
' ' + (sr*tc) + ',' + (sr*ts) + | ||
'L' + (tr*tc) + ',' + (tr*ts); | ||
return 'M' + sr * sc + ',' + sr * ss + 'A' + sr + ',' + sr + ' 0 0,' + (sf ? 1 : 0) + ' ' + sr * tc + ',' + sr * ts + 'L' + tr * tc + ',' + tr * ts; | ||
}; | ||
@@ -520,6 +520,3 @@ | ||
const m = (sx + tx) / 2; | ||
return 'M' + sx + ',' + sy + | ||
'C' + m + ',' + sy + | ||
' ' + m + ',' + ty + | ||
' ' + tx + ',' + ty; | ||
return 'M' + sx + ',' + sy + 'C' + m + ',' + sy + ' ' + m + ',' + ty + ' ' + tx + ',' + ty; | ||
}; | ||
@@ -529,6 +526,3 @@ | ||
const m = (sy + ty) / 2; | ||
return 'M' + sx + ',' + sy + | ||
'C' + sx + ',' + m + | ||
' ' + tx + ',' + m + | ||
' ' + tx + ',' + ty; | ||
return 'M' + sx + ',' + sy + 'C' + sx + ',' + m + ' ' + tx + ',' + m + ' ' + tx + ',' + ty; | ||
}; | ||
@@ -542,6 +536,3 @@ | ||
mr = (sr + tr) / 2; | ||
return 'M' + (sr*sc) + ',' + (sr*ss) + | ||
'C' + (mr*sc) + ',' + (mr*ss) + | ||
' ' + (mr*tc) + ',' + (mr*ts) + | ||
' ' + (tr*tc) + ',' + (tr*ts); | ||
return 'M' + sr * sc + ',' + sr * ss + 'C' + mr * sc + ',' + mr * ss + ' ' + mr * tc + ',' + mr * ts + ' ' + tr * tc + ',' + tr * ts; | ||
}; | ||
@@ -573,18 +564,34 @@ | ||
*/ | ||
function Pie(params) { | ||
vegaDataflow.Transform.call(this, null, params); | ||
} | ||
Pie.Definition = { | ||
'type': 'Pie', | ||
'metadata': {'modifies': true}, | ||
'params': [ | ||
{ 'name': 'field', 'type': 'field' }, | ||
{ 'name': 'startAngle', 'type': 'number', 'default': 0 }, | ||
{ 'name': 'endAngle', 'type': 'number', 'default': 6.283185307179586 }, | ||
{ 'name': 'sort', 'type': 'boolean', 'default': false }, | ||
{ 'name': 'as', 'type': 'string', 'array': true, 'length': 2, 'default': ['startAngle', 'endAngle'] } | ||
] | ||
'metadata': { | ||
'modifies': true | ||
}, | ||
'params': [{ | ||
'name': 'field', | ||
'type': 'field' | ||
}, { | ||
'name': 'startAngle', | ||
'type': 'number', | ||
'default': 0 | ||
}, { | ||
'name': 'endAngle', | ||
'type': 'number', | ||
'default': 6.283185307179586 | ||
}, { | ||
'name': 'sort', | ||
'type': 'boolean', | ||
'default': false | ||
}, { | ||
'name': 'as', | ||
'type': 'string', | ||
'array': true, | ||
'length': 2, | ||
'default': ['startAngle', 'endAngle'] | ||
}] | ||
}; | ||
vegaUtil.inherits(Pie, vegaDataflow.Transform, { | ||
@@ -604,3 +611,5 @@ transform(_, pulse) { | ||
index = d3Array.range(n), | ||
i, t, v; | ||
i, | ||
t, | ||
v; | ||
@@ -611,7 +620,7 @@ if (_.sort) { | ||
for (i=0; i<n; ++i) { | ||
for (i = 0; i < n; ++i) { | ||
v = values[index[i]]; | ||
t = data[index[i]]; | ||
t[startAngle] = a; | ||
t[endAngle] = (a += v * k); | ||
t[endAngle] = a += v * k; | ||
} | ||
@@ -622,2 +631,3 @@ | ||
} | ||
}); | ||
@@ -629,5 +639,3 @@ | ||
const type = scale.type; | ||
return !scale.bins && ( | ||
type === vegaScale.Linear || type === vegaScale.Pow || type === vegaScale.Sqrt | ||
); | ||
return !scale.bins && (type === vegaScale.Linear || type === vegaScale.Pow || type === vegaScale.Sqrt); | ||
} | ||
@@ -639,9 +647,3 @@ | ||
const SKIP = vegaUtil.toSet([ | ||
'set', 'modified', 'clear', 'type', 'scheme', 'schemeExtent', 'schemeCount', | ||
'domain', 'domainMin', 'domainMid', 'domainMax', | ||
'domainRaw', 'domainImplicit', 'nice', 'zero', 'bins', | ||
'range', 'rangeStep', 'round', 'reverse', 'interpolate', 'interpolateGamma' | ||
]); | ||
const SKIP = vegaUtil.toSet(['set', 'modified', 'clear', 'type', 'scheme', 'schemeExtent', 'schemeCount', 'domain', 'domainMin', 'domainMid', 'domainMax', 'domainRaw', 'domainImplicit', 'nice', 'zero', 'bins', 'range', 'rangeStep', 'round', 'reverse', 'interpolate', 'interpolateGamma']); | ||
/** | ||
@@ -652,2 +654,3 @@ * Maintains a scale function mapping data values to visual channels. | ||
*/ | ||
function Scale(params) { | ||
@@ -657,3 +660,2 @@ vegaDataflow.Transform.call(this, null, params); | ||
} | ||
vegaUtil.inherits(Scale, vegaDataflow.Transform, { | ||
@@ -671,33 +673,26 @@ transform(_, pulse) { | ||
// padding is a scale property for band/point but not others | ||
if (key === 'padding' && includePad(scale.type)) continue; | ||
// invoke scale property setter, raise warning if not found | ||
vegaUtil.isFunction(scale[key]) | ||
? scale[key](_[key]) | ||
: df.warn('Unsupported scale property: ' + key); | ||
if (key === 'padding' && includePad(scale.type)) continue; // invoke scale property setter, raise warning if not found | ||
vegaUtil.isFunction(scale[key]) ? scale[key](_[key]) : df.warn('Unsupported scale property: ' + key); | ||
} | ||
configureRange(scale, _, | ||
configureBins(scale, _, configureDomain(scale, _, df)) | ||
); | ||
configureRange(scale, _, configureBins(scale, _, configureDomain(scale, _, df))); | ||
return pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS); | ||
} | ||
}); | ||
function scaleKey(_) { | ||
var t = _.type, d = '', n; | ||
var t = _.type, | ||
d = '', | ||
n; // backwards compatibility pre Vega 5. | ||
// backwards compatibility pre Vega 5. | ||
if (t === vegaScale.Sequential) return vegaScale.Sequential + '-' + vegaScale.Linear; | ||
if (isContinuousColor(_)) { | ||
n = _.rawDomain ? _.rawDomain.length | ||
: _.domain ? _.domain.length + +(_.domainMid != null) | ||
: 0; | ||
d = n === 2 ? vegaScale.Sequential + '-' | ||
: n === 3 ? vegaScale.Diverging + '-' | ||
: ''; | ||
n = _.rawDomain ? _.rawDomain.length : _.domain ? _.domain.length + +(_.domainMid != null) : 0; | ||
d = n === 2 ? vegaScale.Sequential + '-' : n === 3 ? vegaScale.Diverging + '-' : ''; | ||
} | ||
return ((d + t) || vegaScale.Linear).toLowerCase(); | ||
return (d + t || vegaScale.Linear).toLowerCase(); | ||
} | ||
@@ -707,5 +702,3 @@ | ||
const t = _.type; | ||
return vegaScale.isContinuous(t) && t !== vegaScale.Time && t !== vegaScale.UTC && ( | ||
_.scheme || _.range && _.range.length && _.range.every(vegaUtil.isString) | ||
); | ||
return vegaScale.isContinuous(t) && t !== vegaScale.Time && t !== vegaScale.UTC && (_.scheme || _.range && _.range.length && _.range.every(vegaUtil.isString)); | ||
} | ||
@@ -715,20 +708,19 @@ | ||
// check raw domain, if provided use that and exit early | ||
var raw = rawDomain(scale, _.domainRaw, df); | ||
const raw = rawDomain(scale, _.domainRaw, df); | ||
if (raw > -1) return raw; | ||
var domain = _.domain, | ||
type = scale.type, | ||
zero = _.zero || (_.zero === undefined && includeZero(scale)), | ||
n, mid; | ||
zero = _.zero || _.zero === undefined && includeZero(scale), | ||
n, | ||
mid; | ||
if (!domain) return 0; // adjust continuous domain for minimum pixel padding | ||
if (!domain) return 0; | ||
// adjust continuous domain for minimum pixel padding | ||
if (includePad(type) && _.padding && domain[0] !== vegaUtil.peek(domain)) { | ||
domain = padDomain(type, domain, _.range, _.padding, _.exponent, _.constant); | ||
} | ||
} // adjust domain based on zero, min, max settings | ||
// adjust domain based on zero, min, max settings | ||
if (zero || _.domainMin != null || _.domainMax != null || _.domainMid != null) { | ||
n = ((domain = domain.slice()).length - 1) || 1; | ||
n = (domain = domain.slice()).length - 1 || 1; | ||
if (zero) { | ||
@@ -738,2 +730,3 @@ if (domain[0] > 0) domain[0] = 0; | ||
} | ||
if (_.domainMin != null) domain[0] = _.domainMin; | ||
@@ -748,19 +741,18 @@ if (_.domainMax != null) domain[n] = _.domainMax; | ||
} | ||
} | ||
} // set the scale domain | ||
// set the scale domain | ||
scale.domain(domainCheck(type, domain, df)); | ||
// if ordinal scale domain is defined, prevent implicit | ||
scale.domain(domainCheck(type, domain, df)); // if ordinal scale domain is defined, prevent implicit | ||
// domain construction as side-effect of scale lookup | ||
if (type === vegaScale.Ordinal) { | ||
scale.unknown(_.domainImplicit ? vegaScale.scaleImplicit : undefined); | ||
} | ||
} // perform 'nice' adjustment as requested | ||
// perform 'nice' adjustment as requested | ||
if (_.nice && scale.nice) { | ||
scale.nice((_.nice !== true && vegaScale.tickCount(scale, _.nice)) || null); | ||
} | ||
scale.nice(_.nice !== true && vegaScale.tickCount(scale, _.nice) || null); | ||
} // return the cardinality of the domain | ||
// return the cardinality of the domain | ||
return domain.length; | ||
@@ -781,11 +773,6 @@ } | ||
frac = span / (span - 2 * pad), | ||
d = type === vegaScale.Log ? vegaUtil.zoomLog(domain, null, frac) | ||
: type === vegaScale.Sqrt ? vegaUtil.zoomPow(domain, null, frac, 0.5) | ||
: type === vegaScale.Pow ? vegaUtil.zoomPow(domain, null, frac, exponent || 1) | ||
: type === vegaScale.Symlog ? vegaUtil.zoomSymlog(domain, null, frac, constant || 1) | ||
: vegaUtil.zoomLinear(domain, null, frac); | ||
d = type === vegaScale.Log ? vegaUtil.zoomLog(domain, null, frac) : type === vegaScale.Sqrt ? vegaUtil.zoomPow(domain, null, frac, 0.5) : type === vegaScale.Pow ? vegaUtil.zoomPow(domain, null, frac, exponent || 1) : type === vegaScale.Symlog ? vegaUtil.zoomSymlog(domain, null, frac, constant || 1) : vegaUtil.zoomLinear(domain, null, frac); | ||
domain = domain.slice(); | ||
domain[0] = d[0]; | ||
domain[domain.length-1] = d[1]; | ||
domain[domain.length - 1] = d[1]; | ||
return domain; | ||
@@ -804,2 +791,3 @@ } | ||
} | ||
return domain; | ||
@@ -817,6 +805,4 @@ } | ||
step = bins.step; | ||
let start = bins.start == null ? lo : bins.start, | ||
stop = bins.stop == null ? hi : bins.stop; | ||
if (!step) vegaUtil.error('Scale bins parameter missing step property.'); | ||
@@ -834,5 +820,5 @@ if (start < lo) start = step * Math.ceil(lo / step); | ||
delete scale.bins; | ||
} | ||
} // special handling for bin-ordinal scales | ||
// special handling for bin-ordinal scales | ||
if (scale.type === vegaScale.BinOrdinal) { | ||
@@ -847,5 +833,5 @@ if (!bins) { | ||
} | ||
} | ||
} // return domain cardinality | ||
// return domain cardinality | ||
return count; | ||
@@ -857,29 +843,25 @@ } | ||
round = _.round || false, | ||
range = _.range; | ||
range = _.range; // if range step specified, calculate full range extent | ||
// if range step specified, calculate full range extent | ||
if (_.rangeStep != null) { | ||
range = configureRangeStep(type, _, count); | ||
} | ||
} // else if a range scheme is defined, use that | ||
else if (_.scheme) { | ||
range = configureScheme(type, _, count); | ||
// else if a range scheme is defined, use that | ||
else if (_.scheme) { | ||
range = configureScheme(type, _, count); | ||
if (vegaUtil.isFunction(range)) { | ||
if (scale.interpolator) { | ||
return scale.interpolator(range); | ||
} else { | ||
vegaUtil.error(`Scale type ${type} does not support interpolating color schemes.`); | ||
if (vegaUtil.isFunction(range)) { | ||
if (scale.interpolator) { | ||
return scale.interpolator(range); | ||
} else { | ||
vegaUtil.error(`Scale type ${type} does not support interpolating color schemes.`); | ||
} | ||
} | ||
} | ||
} | ||
} // given a range array for an interpolating scale, convert to interpolator | ||
// given a range array for an interpolating scale, convert to interpolator | ||
if (range && vegaScale.isInterpolating(type)) { | ||
return scale.interpolator( | ||
vegaScale.interpolateColors(flip(range, _.reverse), _.interpolate, _.interpolateGamma) | ||
); | ||
} | ||
return scale.interpolator(vegaScale.interpolateColors(flip(range, _.reverse), _.interpolate, _.interpolateGamma)); | ||
} // configure rounding / interpolation | ||
// configure rounding / interpolation | ||
if (range && _.interpolate && scale.interpolate) { | ||
@@ -899,8 +881,7 @@ scale.interpolate(vegaScale.interpolate(_.interpolate, _.interpolateGamma)); | ||
vegaUtil.error('Only band and point scales support rangeStep.'); | ||
} | ||
} // calculate full range based on requested step size and padding | ||
// calculate full range based on requested step size and padding | ||
var outer = (_.paddingOuter != null ? _.paddingOuter : _.padding) || 0, | ||
inner = type === vegaScale.Point ? 1 | ||
: ((_.paddingInner != null ? _.paddingInner : _.padding) || 0); | ||
inner = type === vegaScale.Point ? 1 : (_.paddingInner != null ? _.paddingInner : _.padding) || 0; | ||
return [0, _.rangeStep * vegaScale.bandSpace(count, inner, outer)]; | ||
@@ -911,3 +892,4 @@ } | ||
var extent = _.schemeExtent, | ||
name, scheme; | ||
name, | ||
scheme; | ||
@@ -920,20 +902,12 @@ if (vegaUtil.isArray(_.scheme)) { | ||
if (!scheme) vegaUtil.error(`Unrecognized scheme name: ${_.scheme}`); | ||
} | ||
} // determine size for potential discrete range | ||
// determine size for potential discrete range | ||
count = (type === vegaScale.Threshold) ? count + 1 | ||
: (type === vegaScale.BinOrdinal) ? count - 1 | ||
: (type === vegaScale.Quantile || type === vegaScale.Quantize) ? (+_.schemeCount || DEFAULT_COUNT) | ||
: count; | ||
// adjust and/or quantize scheme as appropriate | ||
return vegaScale.isInterpolating(type) ? adjustScheme(scheme, extent, _.reverse) | ||
: vegaUtil.isFunction(scheme) ? vegaScale.quantizeInterpolator(adjustScheme(scheme, extent), count) | ||
: type === vegaScale.Ordinal ? scheme : scheme.slice(0, count); | ||
count = type === vegaScale.Threshold ? count + 1 : type === vegaScale.BinOrdinal ? count - 1 : type === vegaScale.Quantile || type === vegaScale.Quantize ? +_.schemeCount || DEFAULT_COUNT : count; // adjust and/or quantize scheme as appropriate | ||
return vegaScale.isInterpolating(type) ? adjustScheme(scheme, extent, _.reverse) : vegaUtil.isFunction(scheme) ? vegaScale.quantizeInterpolator(adjustScheme(scheme, extent), count) : type === vegaScale.Ordinal ? scheme : scheme.slice(0, count); | ||
} | ||
function adjustScheme(scheme, extent, reverse) { | ||
return (vegaUtil.isFunction(scheme) && (extent || reverse)) | ||
? vegaScale.interpolateRange(scheme, flip(extent || [0, 1], reverse)) | ||
: scheme; | ||
return vegaUtil.isFunction(scheme) && (extent || reverse) ? vegaScale.interpolateRange(scheme, flip(extent || [0, 1], reverse)) : scheme; | ||
} | ||
@@ -952,18 +926,14 @@ | ||
*/ | ||
function SortItems(params) { | ||
vegaDataflow.Transform.call(this, null, params); | ||
} | ||
vegaUtil.inherits(SortItems, vegaDataflow.Transform, { | ||
transform(_, pulse) { | ||
const mod = _.modified('sort') | ||
|| pulse.changed(pulse.ADD) | ||
|| pulse.modified(_.sort.fields) | ||
|| pulse.modified('datum'); | ||
const mod = _.modified('sort') || pulse.changed(pulse.ADD) || pulse.modified(_.sort.fields) || pulse.modified('datum'); | ||
if (mod) pulse.source.sort(vegaDataflow.stableCompare(_.sort)); | ||
this.modified(mod); | ||
return pulse; | ||
} | ||
}); | ||
@@ -975,3 +945,2 @@ | ||
DefOutput = ['y0', 'y1']; | ||
/** | ||
@@ -986,18 +955,34 @@ * Stack layout for visualization elements. | ||
*/ | ||
function Stack(params) { | ||
vegaDataflow.Transform.call(this, null, params); | ||
} | ||
Stack.Definition = { | ||
'type': 'Stack', | ||
'metadata': {'modifies': true}, | ||
'params': [ | ||
{ 'name': 'field', 'type': 'field' }, | ||
{ 'name': 'groupby', 'type': 'field', 'array': true }, | ||
{ 'name': 'sort', 'type': 'compare' }, | ||
{ 'name': 'offset', 'type': 'enum', 'default': Zero, 'values': [Zero, Center, Normalize] }, | ||
{ 'name': 'as', 'type': 'string', 'array': true, 'length': 2, 'default': DefOutput } | ||
] | ||
'metadata': { | ||
'modifies': true | ||
}, | ||
'params': [{ | ||
'name': 'field', | ||
'type': 'field' | ||
}, { | ||
'name': 'groupby', | ||
'type': 'field', | ||
'array': true | ||
}, { | ||
'name': 'sort', | ||
'type': 'compare' | ||
}, { | ||
'name': 'offset', | ||
'type': 'enum', | ||
'default': Zero, | ||
'values': [Zero, Center, Normalize] | ||
}, { | ||
'name': 'as', | ||
'type': 'string', | ||
'array': true, | ||
'length': 2, | ||
'default': DefOutput | ||
}] | ||
}; | ||
vegaUtil.inherits(Stack, vegaDataflow.Transform, { | ||
@@ -1010,12 +995,11 @@ transform(_, pulse) { | ||
field = _.field || vegaUtil.one, | ||
stack = _.offset === Center ? stackCenter | ||
: _.offset === Normalize ? stackNormalize | ||
: stackZero, | ||
groups, i, n, max; | ||
stack = _.offset === Center ? stackCenter : _.offset === Normalize ? stackNormalize : stackZero, | ||
groups, | ||
i, | ||
n, | ||
max; // partition, sum, and sort the stack groups | ||
// partition, sum, and sort the stack groups | ||
groups = partition(pulse.source, _.groupby, sort, field); | ||
groups = partition(pulse.source, _.groupby, sort, field); // compute stack layouts per group | ||
// compute stack layouts per group | ||
for (i=0, n=groups.length, max=groups.max; i<n; ++i) { | ||
for (i = 0, n = groups.length, max = groups.max; i < n; ++i) { | ||
stack(groups[i], max, field, y0, y1); | ||
@@ -1026,2 +1010,3 @@ } | ||
} | ||
}); | ||
@@ -1032,8 +1017,9 @@ | ||
m = group.length, | ||
j = 0, t; | ||
j = 0, | ||
t; | ||
for (; j<m; ++j) { | ||
for (; j < m; ++j) { | ||
t = group[j]; | ||
t[y0] = last; | ||
t[y1] = (last += Math.abs(field(t))); | ||
t[y1] = last += Math.abs(field(t)); | ||
} | ||
@@ -1046,5 +1032,7 @@ } | ||
m = group.length, | ||
j = 0, v = 0, t; | ||
j = 0, | ||
v = 0, | ||
t; | ||
for (; j<m; ++j) { | ||
for (; j < m; ++j) { | ||
t = group[j]; | ||
@@ -1060,13 +1048,16 @@ t[y0] = last; | ||
m = group.length, | ||
j = 0, v, t; | ||
j = 0, | ||
v, | ||
t; | ||
for (; j<m; ++j) { | ||
for (; j < m; ++j) { | ||
t = group[j]; | ||
v = +field(t); | ||
if (v < 0) { | ||
t[y0] = lastNeg; | ||
t[y1] = (lastNeg += v); | ||
t[y1] = lastNeg += v; | ||
} else { | ||
t[y0] = lastPos; | ||
t[y1] = (lastPos += v); | ||
t[y1] = lastPos += v; | ||
} | ||
@@ -1079,26 +1070,38 @@ } | ||
get = f => f(t), | ||
map, i, n, m, t, k, g, s, max; | ||
map, | ||
i, | ||
n, | ||
m, | ||
t, | ||
k, | ||
g, | ||
s, | ||
max; // partition data points into stack groups | ||
// partition data points into stack groups | ||
if (groupby == null) { | ||
groups.push(data.slice()); | ||
} else { | ||
for (map={}, i=0, n=data.length; i<n; ++i) { | ||
for (map = {}, i = 0, n = data.length; i < n; ++i) { | ||
t = data[i]; | ||
k = groupby.map(get); | ||
g = map[k]; | ||
if (!g) { | ||
map[k] = (g = []); | ||
map[k] = g = []; | ||
groups.push(g); | ||
} | ||
g.push(t); | ||
} | ||
} | ||
} // compute sums of groups, sort groups as needed | ||
// compute sums of groups, sort groups as needed | ||
for (k=0, max=0, m=groups.length; k<m; ++k) { | ||
for (k = 0, max = 0, m = groups.length; k < m; ++k) { | ||
g = groups[k]; | ||
for (i=0, s=0, n=g.length; i<n; ++i) { | ||
for (i = 0, s = 0, n = g.length; i < n; ++i) { | ||
s += Math.abs(field(g[i])); | ||
} | ||
g.sum = s; | ||
@@ -1108,4 +1111,4 @@ if (s > max) max = s; | ||
} | ||
groups.max = max; | ||
return groups; | ||
@@ -1112,0 +1115,0 @@ } |
@@ -1,1 +0,2 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vega-dataflow"),require("vega-scale"),require("vega-util"),require("d3-array"),require("d3-interpolate")):"function"==typeof define&&define.amd?define(["exports","vega-dataflow","vega-scale","vega-util","d3-array","d3-interpolate"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).vega=e.vega||{},e.vega.transforms={}),e.vega,e.vega,e.vega,e.d3,e.d3)}(this,(function(e,t,n,a,i,r){"use strict";function o(e){t.Transform.call(this,null,e)}function l(e){t.Transform.call(this,null,e)}function s(){return t.ingest({})}function u(e){t.Transform.call(this,null,e)}function d(e){t.Transform.call(this,[],e)}a.inherits(o,t.Transform,{transform(e,a){if(this.value&&!e.modified())return a.StopPropagation;var i=a.dataflow.locale(),r=a.fork(a.NO_SOURCE|a.NO_FIELDS),o=this.value,l=e.scale,s=null==e.count?e.values?e.values.length:10:e.count,u=n.tickCount(l,s,e.minstep),d=e.format||n.tickFormat(i,l,u,e.formatSpecifier,e.formatType,!!e.values),m=e.values?n.validTicks(l,e.values,u):n.tickValues(l,u);return o&&(r.rem=o),o=m.map((e,n)=>t.ingest({index:n/(m.length-1||1),value:e,label:d(e)})),e.extra&&o.length&&o.push(t.ingest({index:-1,extra:{value:o[0].value},label:""})),r.source=o,r.add=o,this.value=o,r}}),a.inherits(l,t.Transform,{transform(e,n){var i=n.dataflow,r=n.fork(n.NO_SOURCE|n.NO_FIELDS),o=e.item||s,l=e.key||t.tupleid,u=this.value;return a.isArray(r.encode)&&(r.encode=null),u&&(e.modified("key")||n.modified(l))&&a.error("DataJoin does not support modified key function or fields."),u||(n=n.addAll(),this.value=u=function(e){const t=a.fastmap().test(e=>e.exit);return t.lookup=n=>t.get(e(n)),t}(l)),n.visit(n.ADD,e=>{const t=l(e);let n=u.get(t);n?n.exit?(u.empty--,r.add.push(n)):r.mod.push(n):(n=o(e),u.set(t,n),r.add.push(n)),n.datum=e,n.exit=!1}),n.visit(n.MOD,e=>{const t=l(e),n=u.get(t);n&&(n.datum=e,r.mod.push(n))}),n.visit(n.REM,e=>{const t=l(e),n=u.get(t);e!==n.datum||n.exit||(r.rem.push(n),n.exit=!0,++u.empty)}),n.changed(n.ADD_MOD)&&r.modifies("datum"),(n.clean()||e.clean&&u.empty>i.cleanThreshold)&&i.runAfter(u.clean),r}}),a.inherits(u,t.Transform,{transform(e,t){var n=t.fork(t.ADD_REM),i=e.mod||!1,r=e.encoders,o=t.encode;if(a.isArray(o)){if(!n.changed()&&!o.every(e=>r[e]))return t.StopPropagation;o=o[0],n.encode=null}var l="enter"===o,s=r.update||a.falsy,u=r.enter||a.falsy,d=r.exit||a.falsy,m=(o&&!l?r[o]:s)||a.falsy;if(t.changed(t.ADD)&&(t.visit(t.ADD,t=>{u(t,e),s(t,e)}),n.modifies(u.output),n.modifies(s.output),m!==a.falsy&&m!==s&&(t.visit(t.ADD,t=>{m(t,e)}),n.modifies(m.output))),t.changed(t.REM)&&d!==a.falsy&&(t.visit(t.REM,t=>{d(t,e)}),n.modifies(d.output)),l||m!==a.falsy){var c=t.MOD|(e.modified()?t.REFLOW:0);l?(t.visit(c,t=>{var a=u(t,e)||i;(m(t,e)||a)&&n.mod.push(t)}),n.mod.length&&n.modifies(u.output)):t.visit(c,t=>{(m(t,e)||i)&&n.mod.push(t)}),n.mod.length&&n.modifies(m.output)}return n.changed()?n:t.StopPropagation}}),a.inherits(d,t.Transform,{transform(e,i){if(null!=this.value&&!e.modified())return i.StopPropagation;var r,o,l,s,u,d=i.dataflow.locale(),m=i.fork(i.NO_SOURCE|i.NO_FIELDS),c=this.value,f=e.type||n.SymbolLegend,p=e.scale,h=+e.limit,g=n.tickCount(p,null==e.count?5:e.count,e.minstep),v=!!e.values||f===n.SymbolLegend,y=e.format||n.labelFormat(d,p,g,f,e.formatSpecifier,e.formatType,v),M=e.values||n.labelValues(p,g);return c&&(m.rem=c),f===n.SymbolLegend?(h&&M.length>h?(i.dataflow.warn("Symbol legend count exceeds limit, filtering items."),c=M.slice(0,h-1),u=!0):c=M,a.isFunction(l=e.size)?(e.values||0!==p(c[0])||(c=c.slice(1)),s=c.reduce((t,n)=>Math.max(t,l(n,e)),0)):l=a.constant(s=l||8),c=c.map((n,a)=>t.ingest({index:a,label:y(n,a,c),value:n,offset:s,size:l(n,e)})),u&&(u=M[c.length],c.push(t.ingest({index:c.length,label:`…${M.length-c.length} entries`,value:u,offset:s,size:l(u,e)})))):f===n.GradientLegend?(r=p.domain(),o=n.scaleFraction(p,r[0],a.peek(r)),M.length<3&&!e.values&&r[0]!==a.peek(r)&&(M=[r[0],a.peek(r)]),c=M.map((e,n)=>t.ingest({index:n,label:y(e,n,M),value:e,perc:o(e)}))):(l=M.length-1,o=n.labelFraction(p),c=M.map((e,n)=>t.ingest({index:n,label:y(e,n,M),value:e,perc:n?o(e):0,perc2:n===l?1:o(M[n+1])}))),m.source=c,m.add=c,this.value=c,m}});const m=e=>e.source.x,c=e=>e.source.y,f=e=>e.target.x,p=e=>e.target.y;function h(e){t.Transform.call(this,{},e)}h.Definition={type:"LinkPath",metadata:{modifies:!0},params:[{name:"sourceX",type:"field",default:"source.x"},{name:"sourceY",type:"field",default:"source.y"},{name:"targetX",type:"field",default:"target.x"},{name:"targetY",type:"field",default:"target.y"},{name:"orient",type:"enum",default:"vertical",values:["horizontal","vertical","radial"]},{name:"shape",type:"enum",default:"line",values:["line","arc","curve","diagonal","orthogonal"]},{name:"require",type:"signal"},{name:"as",type:"string",default:"path"}]},a.inherits(h,t.Transform,{transform(e,t){var n=e.sourceX||m,i=e.sourceY||c,r=e.targetX||f,o=e.targetY||p,l=e.as||"path",s=e.orient||"vertical",u=e.shape||"line",d=M.get(u+"-"+s)||M.get(u);return d||a.error("LinkPath unsupported type: "+e.shape+(e.orient?"-"+e.orient:"")),t.visit(t.SOURCE,e=>{e[l]=d(n(e),i(e),r(e),o(e))}),t.reflow(e.modified()).modifies(l)}});const g=(e,t,n,a)=>"M"+e+","+t+"L"+n+","+a,v=(e,t,n,a)=>{var i=n-e,r=a-t,o=Math.sqrt(i*i+r*r)/2;return"M"+e+","+t+"A"+o+","+o+" "+180*Math.atan2(r,i)/Math.PI+" 0 1 "+n+","+a},y=(e,t,n,a)=>{const i=n-e,r=a-t,o=.2*(i+r),l=.2*(r-i);return"M"+e+","+t+"C"+(e+o)+","+(t+l)+" "+(n+l)+","+(a-o)+" "+n+","+a},M=a.fastmap({line:g,"line-radial":(e,t,n,a)=>g(t*Math.cos(e),t*Math.sin(e),a*Math.cos(n),a*Math.sin(n)),arc:v,"arc-radial":(e,t,n,a)=>v(t*Math.cos(e),t*Math.sin(e),a*Math.cos(n),a*Math.sin(n)),curve:y,"curve-radial":(e,t,n,a)=>y(t*Math.cos(e),t*Math.sin(e),a*Math.cos(n),a*Math.sin(n)),"orthogonal-horizontal":(e,t,n,a)=>"M"+e+","+t+"V"+a+"H"+n,"orthogonal-vertical":(e,t,n,a)=>"M"+e+","+t+"H"+n+"V"+a,"orthogonal-radial":(e,t,n,a)=>{const i=Math.cos(e),r=Math.sin(e),o=Math.cos(n),l=Math.sin(n);return"M"+t*i+","+t*r+"A"+t+","+t+" 0 0,"+((Math.abs(n-e)>Math.PI?n<=e:n>e)?1:0)+" "+t*o+","+t*l+"L"+a*o+","+a*l},"diagonal-horizontal":(e,t,n,a)=>{const i=(e+n)/2;return"M"+e+","+t+"C"+i+","+t+" "+i+","+a+" "+n+","+a},"diagonal-vertical":(e,t,n,a)=>{const i=(t+a)/2;return"M"+e+","+t+"C"+e+","+i+" "+n+","+i+" "+n+","+a},"diagonal-radial":(e,t,n,a)=>{const i=Math.cos(e),r=Math.sin(e),o=Math.cos(n),l=Math.sin(n),s=(t+a)/2;return"M"+t*i+","+t*r+"C"+s*i+","+s*r+" "+s*o+","+s*l+" "+a*o+","+a*l}});function b(e){t.Transform.call(this,null,e)}b.Definition={type:"Pie",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"startAngle",type:"number",default:0},{name:"endAngle",type:"number",default:6.283185307179586},{name:"sort",type:"boolean",default:!1},{name:"as",type:"string",array:!0,length:2,default:["startAngle","endAngle"]}]},a.inherits(b,t.Transform,{transform(e,t){var n,r,o,l=e.as||["startAngle","endAngle"],s=l[0],u=l[1],d=e.field||a.one,m=e.startAngle||0,c=null!=e.endAngle?e.endAngle:2*Math.PI,f=t.source,p=f.map(d),h=p.length,g=m,v=(c-m)/i.sum(p),y=i.range(h);for(e.sort&&y.sort((e,t)=>p[e]-p[t]),n=0;n<h;++n)o=p[y[n]],(r=f[y[n]])[s]=g,r[u]=g+=o*v;return this.value=p,t.reflow(e.modified()).modifies(l)}});function S(e){return n.isContinuous(e)&&e!==n.Sequential}const x=a.toSet(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma"]);function k(e){t.Transform.call(this,null,e),this.modified(!0)}function D(e,t,i){n.isLogarithmic(e)&&(Math.abs(t.reduce((e,t)=>e+(t<0?-1:t>0?1:0),0))!==t.length&&i.warn("Log scale domain includes zero: "+a.stringValue(t)));return t}function T(e,t,i){return a.isFunction(e)&&(t||i)?n.interpolateRange(e,w(t||[0,1],i)):e}function w(e,t){return t?e.slice().reverse():e}function O(e){t.Transform.call(this,null,e)}a.inherits(k,t.Transform,{transform(e,t){var o=t.dataflow,l=this.value,s=function(e){var t,i=e.type,r="";if(i===n.Sequential)return n.Sequential+"-"+n.Linear;(function(e){const t=e.type;return n.isContinuous(t)&&t!==n.Time&&t!==n.UTC&&(e.scheme||e.range&&e.range.length&&e.range.every(a.isString))})(e)&&(r=2===(t=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(null!=e.domainMid):0)?n.Sequential+"-":3===t?n.Diverging+"-":"");return(r+i||n.Linear).toLowerCase()}(e);for(s in l&&s===l.type||(this.value=l=n.scale(s)()),e)if(!x[s]){if("padding"===s&&S(l.type))continue;a.isFunction(l[s])?l[s](e[s]):o.warn("Unsupported scale property: "+s)}return function(e,t,i){var o=e.type,l=t.round||!1,s=t.range;if(null!=t.rangeStep)s=function(e,t,i){e!==n.Band&&e!==n.Point&&a.error("Only band and point scales support rangeStep.");var r=(null!=t.paddingOuter?t.paddingOuter:t.padding)||0,o=e===n.Point?1:(null!=t.paddingInner?t.paddingInner:t.padding)||0;return[0,t.rangeStep*n.bandSpace(i,o,r)]}(o,t,i);else if(t.scheme&&(s=function(e,t,i){var r,o,l=t.schemeExtent;a.isArray(t.scheme)?o=n.interpolateColors(t.scheme,t.interpolate,t.interpolateGamma):(r=t.scheme.toLowerCase(),(o=n.scheme(r))||a.error("Unrecognized scheme name: "+t.scheme));return i=e===n.Threshold?i+1:e===n.BinOrdinal?i-1:e===n.Quantile||e===n.Quantize?+t.schemeCount||5:i,n.isInterpolating(e)?T(o,l,t.reverse):a.isFunction(o)?n.quantizeInterpolator(T(o,l),i):e===n.Ordinal?o:o.slice(0,i)}(o,t,i),a.isFunction(s))){if(e.interpolator)return e.interpolator(s);a.error(`Scale type ${o} does not support interpolating color schemes.`)}if(s&&n.isInterpolating(o))return e.interpolator(n.interpolateColors(w(s,t.reverse),t.interpolate,t.interpolateGamma));s&&t.interpolate&&e.interpolate?e.interpolate(n.interpolate(t.interpolate,t.interpolateGamma)):a.isFunction(e.round)?e.round(l):a.isFunction(e.rangeRound)&&e.interpolate(l?r.interpolateRound:r.interpolate);s&&e.range(w(s,t.reverse))}(l,e,function(e,t,r){let o=t.bins;if(o&&!a.isArray(o)){const t=e.domain(),n=t[0],r=a.peek(t),l=o.step;let s=null==o.start?n:o.start,u=null==o.stop?r:o.stop;l||a.error("Scale bins parameter missing step property."),s<n&&(s=l*Math.ceil(n/l)),u>r&&(u=l*Math.floor(r/l)),o=i.range(s,u+l/2,l)}o?e.bins=o:e.bins&&delete e.bins;e.type===n.BinOrdinal&&(o?t.domain||t.domainRaw||(e.domain(o),r=o.length):e.bins=e.domain());return r}(l,e,function(e,t,i){var r=function(e,t,n){return t?(e.domain(D(e.type,t,n)),t.length):-1}(e,t.domainRaw,i);if(r>-1)return r;var o,l,s=t.domain,u=e.type,d=t.zero||void 0===t.zero&&function(e){const t=e.type;return!e.bins&&(t===n.Linear||t===n.Pow||t===n.Sqrt)}(e);if(!s)return 0;S(u)&&t.padding&&s[0]!==a.peek(s)&&(s=function(e,t,i,r,o,l){var s=Math.abs(a.peek(i)-i[0]),u=s/(s-2*r),d=e===n.Log?a.zoomLog(t,null,u):e===n.Sqrt?a.zoomPow(t,null,u,.5):e===n.Pow?a.zoomPow(t,null,u,o||1):e===n.Symlog?a.zoomSymlog(t,null,u,l||1):a.zoomLinear(t,null,u);return(t=t.slice())[0]=d[0],t[t.length-1]=d[1],t}(u,s,t.range,t.padding,t.exponent,t.constant));if((d||null!=t.domainMin||null!=t.domainMax||null!=t.domainMid)&&(o=(s=s.slice()).length-1||1,d&&(s[0]>0&&(s[0]=0),s[o]<0&&(s[o]=0)),null!=t.domainMin&&(s[0]=t.domainMin),null!=t.domainMax&&(s[o]=t.domainMax),null!=t.domainMid)){const e=(l=t.domainMid)>s[o]?o+1:l<s[0]?0:o;e!==o&&i.warn("Scale domainMid exceeds domain min or max.",l),s.splice(e,0,l)}e.domain(D(u,s,i)),u===n.Ordinal&&e.unknown(t.domainImplicit?n.scaleImplicit:void 0);t.nice&&e.nice&&e.nice(!0!==t.nice&&n.tickCount(e,t.nice)||null);return s.length}(l,e,o))),t.fork(t.NO_SOURCE|t.NO_FIELDS)}}),a.inherits(O,t.Transform,{transform(e,n){const a=e.modified("sort")||n.changed(n.ADD)||n.modified(e.sort.fields)||n.modified("datum");return a&&n.source.sort(t.stableCompare(e.sort)),this.modified(a),n}});const A="zero",C="center",L="normalize",z=["y0","y1"];function P(e){t.Transform.call(this,null,e)}function E(e,t,n,a,i){for(var r,o=(t-e.sum)/2,l=e.length,s=0;s<l;++s)(r=e[s])[a]=o,r[i]=o+=Math.abs(n(r))}function F(e,t,n,a,i){for(var r,o=1/e.sum,l=0,s=e.length,u=0,d=0;u<s;++u)(r=e[u])[a]=l,r[i]=l=o*(d+=Math.abs(n(r)))}function R(e,t,n,a,i){for(var r,o,l=0,s=0,u=e.length,d=0;d<u;++d)(r=+n(o=e[d]))<0?(o[a]=s,o[i]=s+=r):(o[a]=l,o[i]=l+=r)}P.Definition={type:"Stack",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"groupby",type:"field",array:!0},{name:"sort",type:"compare"},{name:"offset",type:"enum",default:A,values:[A,C,L]},{name:"as",type:"string",array:!0,length:2,default:z}]},a.inherits(P,t.Transform,{transform(e,n){var i,r,o,l,s=e.as||z,u=s[0],d=s[1],m=t.stableCompare(e.sort),c=e.field||a.one,f=e.offset===C?E:e.offset===L?F:R;for(i=function(e,t,n,a){var i,r,o,l,s,u,d,m,c,f=[],p=e=>e(s);if(null==t)f.push(e.slice());else for(i={},r=0,o=e.length;r<o;++r)s=e[r],(d=i[u=t.map(p)])||(i[u]=d=[],f.push(d)),d.push(s);for(u=0,c=0,l=f.length;u<l;++u){for(r=0,m=0,o=(d=f[u]).length;r<o;++r)m+=Math.abs(a(d[r]));d.sum=m,m>c&&(c=m),n&&d.sort(n)}return f.max=c,f}(n.source,e.groupby,m,c),r=0,o=i.length,l=i.max;r<o;++r)f(i[r],l,c,u,d);return n.reflow(e.modified()).modifies(s)}}),e.axisticks=o,e.datajoin=l,e.encode=u,e.legendentries=d,e.linkpath=h,e.pie=b,e.scale=k,e.sortitems=O,e.stack=P,Object.defineProperty(e,"__esModule",{value:!0})})); | ||
var vega=function(e,t,n,r){"use strict";function a(e){t.Transform.call(this,null,e)}function i(e){t.Transform.call(this,null,e)}function o(){return t.ingest({})}function l(e){t.Transform.call(this,null,e)}function s(e){t.Transform.call(this,[],e)}r.inherits(a,t.Transform,{transform(e,r){if(this.value&&!e.modified())return r.StopPropagation;var a=r.dataflow.locale(),i=r.fork(r.NO_SOURCE|r.NO_FIELDS),o=this.value,l=e.scale,s=null==e.count?e.values?e.values.length:10:e.count,u=n.tickCount(l,s,e.minstep),c=e.format||n.tickFormat(a,l,u,e.formatSpecifier,e.formatType,!!e.values),d=e.values?n.validTicks(l,e.values,u):n.tickValues(l,u);return o&&(i.rem=o),o=d.map((e,n)=>t.ingest({index:n/(d.length-1||1),value:e,label:c(e)})),e.extra&&o.length&&o.push(t.ingest({index:-1,extra:{value:o[0].value},label:""})),i.source=o,i.add=o,this.value=o,i}}),r.inherits(i,t.Transform,{transform(e,n){var a=n.dataflow,i=n.fork(n.NO_SOURCE|n.NO_FIELDS),l=e.item||o,s=e.key||t.tupleid,u=this.value;return r.isArray(i.encode)&&(i.encode=null),u&&(e.modified("key")||n.modified(s))&&r.error("DataJoin does not support modified key function or fields."),u||(n=n.addAll(),this.value=u=function(e){const t=r.fastmap().test(e=>e.exit);return t.lookup=n=>t.get(e(n)),t}(s)),n.visit(n.ADD,e=>{const t=s(e);let n=u.get(t);n?n.exit?(u.empty--,i.add.push(n)):i.mod.push(n):(n=l(e),u.set(t,n),i.add.push(n)),n.datum=e,n.exit=!1}),n.visit(n.MOD,e=>{const t=s(e),n=u.get(t);n&&(n.datum=e,i.mod.push(n))}),n.visit(n.REM,e=>{const t=s(e),n=u.get(t);e!==n.datum||n.exit||(i.rem.push(n),n.exit=!0,++u.empty)}),n.changed(n.ADD_MOD)&&i.modifies("datum"),(n.clean()||e.clean&&u.empty>a.cleanThreshold)&&a.runAfter(u.clean),i}}),r.inherits(l,t.Transform,{transform(e,t){var n=t.fork(t.ADD_REM),a=e.mod||!1,i=e.encoders,o=t.encode;if(r.isArray(o)){if(!n.changed()&&!o.every(e=>i[e]))return t.StopPropagation;o=o[0],n.encode=null}var l="enter"===o,s=i.update||r.falsy,u=i.enter||r.falsy,c=i.exit||r.falsy,d=(o&&!l?i[o]:s)||r.falsy;if(t.changed(t.ADD)&&(t.visit(t.ADD,t=>{u(t,e),s(t,e)}),n.modifies(u.output),n.modifies(s.output),d!==r.falsy&&d!==s&&(t.visit(t.ADD,t=>{d(t,e)}),n.modifies(d.output))),t.changed(t.REM)&&c!==r.falsy&&(t.visit(t.REM,t=>{c(t,e)}),n.modifies(c.output)),l||d!==r.falsy){const r=t.MOD|(e.modified()?t.REFLOW:0);l?(t.visit(r,t=>{const r=u(t,e)||a;(d(t,e)||r)&&n.mod.push(t)}),n.mod.length&&n.modifies(u.output)):t.visit(r,t=>{(d(t,e)||a)&&n.mod.push(t)}),n.mod.length&&n.modifies(d.output)}return n.changed()?n:t.StopPropagation}}),r.inherits(s,t.Transform,{transform(e,a){if(null!=this.value&&!e.modified())return a.StopPropagation;var i,o,l,s,u,c=a.dataflow.locale(),d=a.fork(a.NO_SOURCE|a.NO_FIELDS),h=this.value,f=e.type||n.SymbolLegend,m=e.scale,g=+e.limit,p=n.tickCount(m,null==e.count?5:e.count,e.minstep),y=!!e.values||f===n.SymbolLegend,v=e.format||n.labelFormat(c,m,p,f,e.formatSpecifier,e.formatType,y),b=e.values||n.labelValues(m,p);return h&&(d.rem=h),f===n.SymbolLegend?(g&&b.length>g?(a.dataflow.warn("Symbol legend count exceeds limit, filtering items."),h=b.slice(0,g-1),u=!0):h=b,r.isFunction(l=e.size)?(e.values||0!==m(h[0])||(h=h.slice(1)),s=h.reduce((t,n)=>Math.max(t,l(n,e)),0)):l=r.constant(s=l||8),h=h.map((n,r)=>t.ingest({index:r,label:v(n,r,h),value:n,offset:s,size:l(n,e)})),u&&(u=b[h.length],h.push(t.ingest({index:h.length,label:"…".concat(b.length-h.length," entries"),value:u,offset:s,size:l(u,e)})))):f===n.GradientLegend?(i=m.domain(),o=n.scaleFraction(m,i[0],r.peek(i)),b.length<3&&!e.values&&i[0]!==r.peek(i)&&(b=[i[0],r.peek(i)]),h=b.map((e,n)=>t.ingest({index:n,label:v(e,n,b),value:e,perc:o(e)}))):(l=b.length-1,o=n.labelFraction(m),h=b.map((e,n)=>t.ingest({index:n,label:v(e,n,b),value:e,perc:n?o(e):0,perc2:n===l?1:o(b[n+1])}))),d.source=h,d.add=h,this.value=h,d}});const u=e=>e.source.x,c=e=>e.source.y,d=e=>e.target.x,h=e=>e.target.y;function f(e){t.Transform.call(this,{},e)}f.Definition={type:"LinkPath",metadata:{modifies:!0},params:[{name:"sourceX",type:"field",default:"source.x"},{name:"sourceY",type:"field",default:"source.y"},{name:"targetX",type:"field",default:"target.x"},{name:"targetY",type:"field",default:"target.y"},{name:"orient",type:"enum",default:"vertical",values:["horizontal","vertical","radial"]},{name:"shape",type:"enum",default:"line",values:["line","arc","curve","diagonal","orthogonal"]},{name:"require",type:"signal"},{name:"as",type:"string",default:"path"}]},r.inherits(f,t.Transform,{transform(e,t){var n=e.sourceX||u,a=e.sourceY||c,i=e.targetX||d,o=e.targetY||h,l=e.as||"path",s=e.orient||"vertical",f=e.shape||"line",m=y.get(f+"-"+s)||y.get(f);return m||r.error("LinkPath unsupported type: "+e.shape+(e.orient?"-"+e.orient:"")),t.visit(t.SOURCE,e=>{e[l]=m(n(e),a(e),i(e),o(e))}),t.reflow(e.modified()).modifies(l)}});const m=(e,t,n,r)=>"M"+e+","+t+"L"+n+","+r,g=(e,t,n,r)=>{var a=n-e,i=r-t,o=Math.sqrt(a*a+i*i)/2;return"M"+e+","+t+"A"+o+","+o+" "+180*Math.atan2(i,a)/Math.PI+" 0 1 "+n+","+r},p=(e,t,n,r)=>{const a=n-e,i=r-t,o=.2*(a+i),l=.2*(i-a);return"M"+e+","+t+"C"+(e+o)+","+(t+l)+" "+(n+l)+","+(r-o)+" "+n+","+r},y=r.fastmap({line:m,"line-radial":(e,t,n,r)=>m(t*Math.cos(e),t*Math.sin(e),r*Math.cos(n),r*Math.sin(n)),arc:g,"arc-radial":(e,t,n,r)=>g(t*Math.cos(e),t*Math.sin(e),r*Math.cos(n),r*Math.sin(n)),curve:p,"curve-radial":(e,t,n,r)=>p(t*Math.cos(e),t*Math.sin(e),r*Math.cos(n),r*Math.sin(n)),"orthogonal-horizontal":(e,t,n,r)=>"M"+e+","+t+"V"+r+"H"+n,"orthogonal-vertical":(e,t,n,r)=>"M"+e+","+t+"H"+n+"V"+r,"orthogonal-radial":(e,t,n,r)=>{const a=Math.cos(e),i=Math.sin(e),o=Math.cos(n),l=Math.sin(n);return"M"+t*a+","+t*i+"A"+t+","+t+" 0 0,"+((Math.abs(n-e)>Math.PI?n<=e:n>e)?1:0)+" "+t*o+","+t*l+"L"+r*o+","+r*l},"diagonal-horizontal":(e,t,n,r)=>{const a=(e+n)/2;return"M"+e+","+t+"C"+a+","+t+" "+a+","+r+" "+n+","+r},"diagonal-vertical":(e,t,n,r)=>{const a=(t+r)/2;return"M"+e+","+t+"C"+e+","+a+" "+n+","+a+" "+n+","+r},"diagonal-radial":(e,t,n,r)=>{const a=Math.cos(e),i=Math.sin(e),o=Math.cos(n),l=Math.sin(n),s=(t+r)/2;return"M"+t*a+","+t*i+"C"+s*a+","+s*i+" "+s*o+","+s*l+" "+r*o+","+r*l}});function v(e,t,n){e=+e,t=+t,n=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+n;for(var r=-1,a=0|Math.max(0,Math.ceil((t-e)/n)),i=new Array(a);++r<a;)i[r]=e+r*n;return i}function b(e){t.Transform.call(this,null,e)}function M(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function w(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function x(){}b.Definition={type:"Pie",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"startAngle",type:"number",default:0},{name:"endAngle",type:"number",default:6.283185307179586},{name:"sort",type:"boolean",default:!1},{name:"as",type:"string",array:!0,length:2,default:["startAngle","endAngle"]}]},r.inherits(b,t.Transform,{transform(e,t){var n,a,i,o=e.as||["startAngle","endAngle"],l=o[0],s=o[1],u=e.field||r.one,c=e.startAngle||0,d=null!=e.endAngle?e.endAngle:2*Math.PI,h=t.source,f=h.map(u),m=f.length,g=c,p=(d-c)/function(e,t){let n=0;if(void 0===t)for(let t of e)(t=+t)&&(n+=t);else{let r=-1;for(let a of e)(a=+t(a,++r,e))&&(n+=a)}return n}(f),y=v(m);for(e.sort&&y.sort((e,t)=>f[e]-f[t]),n=0;n<m;++n)i=f[y[n]],(a=h[y[n]])[l]=g,a[s]=g+=i*p;return this.value=f,t.reflow(e.modified()).modifies(o)}});var k=.7,S=1/k,N="\\s*([+-]?\\d+)\\s*",D="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",A="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",O=/^#([0-9a-f]{3,8})$/,E=new RegExp("^rgb\\("+[N,N,N]+"\\)$"),T=new RegExp("^rgb\\("+[A,A,A]+"\\)$"),R=new RegExp("^rgba\\("+[N,N,N,D]+"\\)$"),C=new RegExp("^rgba\\("+[A,A,A,D]+"\\)$"),L=new RegExp("^hsl\\("+[D,A,A]+"\\)$"),z=new RegExp("^hsla\\("+[D,A,A,D]+"\\)$"),I={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function q(){return this.rgb().formatHex()}function P(){return this.rgb().formatRgb()}function F(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=O.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?_(t):3===n?new V(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?H(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?H(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=E.exec(e))?new V(t[1],t[2],t[3],1):(t=T.exec(e))?new V(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=R.exec(e))?H(t[1],t[2],t[3],t[4]):(t=C.exec(e))?H(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=L.exec(e))?X(t[1],t[2]/100,t[3]/100,1):(t=z.exec(e))?X(t[1],t[2]/100,t[3]/100,t[4]):I.hasOwnProperty(e)?_(I[e]):"transparent"===e?new V(NaN,NaN,NaN,0):null}function _(e){return new V(e>>16&255,e>>8&255,255&e,1)}function H(e,t,n,r){return r<=0&&(e=t=n=NaN),new V(e,t,n,r)}function U(e){return e instanceof x||(e=F(e)),e?new V((e=e.rgb()).r,e.g,e.b,e.opacity):new V}function j(e,t,n,r){return 1===arguments.length?U(e):new V(e,t,n,null==r?1:r)}function V(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function $(){return"#"+B(this.r)+B(this.g)+B(this.b)}function G(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===e?")":", "+e+")")}function B(e){return((e=Math.max(0,Math.min(255,Math.round(e)||0)))<16?"0":"")+e.toString(16)}function X(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Q(e,t,n,r)}function Y(e){if(e instanceof Q)return new Q(e.h,e.s,e.l,e.opacity);if(e instanceof x||(e=F(e)),!e)return new Q;if(e instanceof Q)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,a=Math.min(t,n,r),i=Math.max(t,n,r),o=NaN,l=i-a,s=(i+a)/2;return l?(o=t===i?(n-r)/l+6*(n<r):n===i?(r-t)/l+2:(t-n)/l+4,l/=s<.5?i+a:2-i-a,o*=60):l=s>0&&s<1?0:o,new Q(o,l,s,e.opacity)}function Q(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function J(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}M(x,F,{copy:function(e){return Object.assign(new this.constructor,this,e)},displayable:function(){return this.rgb().displayable()},hex:q,formatHex:q,formatHsl:function(){return Y(this).formatHsl()},formatRgb:P,toString:P}),M(V,j,w(x,{brighter:function(e){return e=null==e?S:Math.pow(S,e),new V(this.r*e,this.g*e,this.b*e,this.opacity)},darker:function(e){return e=null==e?k:Math.pow(k,e),new V(this.r*e,this.g*e,this.b*e,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:$,formatHex:$,formatRgb:G,toString:G})),M(Q,(function(e,t,n,r){return 1===arguments.length?Y(e):new Q(e,t,n,null==r?1:r)}),w(x,{brighter:function(e){return e=null==e?S:Math.pow(S,e),new Q(this.h,this.s,this.l*e,this.opacity)},darker:function(e){return e=null==e?k:Math.pow(k,e),new Q(this.h,this.s,this.l*e,this.opacity)},rgb:function(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,a=2*n-r;return new V(J(e>=240?e-240:e+120,a,r),J(e,a,r),J(e<120?e+240:e-120,a,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===e?")":", "+e+")")}}));var W=e=>()=>e;function K(e){return 1==(e=+e)?Z:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):W(isNaN(t)?n:t)}}function Z(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):W(isNaN(e)?t:e)}var ee=function e(t){var n=K(t);function r(e,t){var r=n((e=j(e)).r,(t=j(t)).r),a=n(e.g,t.g),i=n(e.b,t.b),o=Z(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=a(t),e.b=i(t),e.opacity=o(t),e+""}}return r.gamma=e,r}(1);function te(e,t){t||(t=[]);var n,r=e?Math.min(t.length,e.length):0,a=t.slice();return function(i){for(n=0;n<r;++n)a[n]=e[n]*(1-i)+t[n]*i;return a}}function ne(e,t){var n,r=t?t.length:0,a=e?Math.min(r,e.length):0,i=new Array(a),o=new Array(r);for(n=0;n<a;++n)i[n]=ue(e[n],t[n]);for(;n<r;++n)o[n]=t[n];return function(e){for(n=0;n<a;++n)o[n]=i[n](e);return o}}function re(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function ae(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function ie(e,t){var n,r={},a={};for(n in null!==e&&"object"==typeof e||(e={}),null!==t&&"object"==typeof t||(t={}),t)n in e?r[n]=ue(e[n],t[n]):a[n]=t[n];return function(e){for(n in r)a[n]=r[n](e);return a}}var oe=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,le=new RegExp(oe.source,"g");function se(e,t){var n,r,a,i=oe.lastIndex=le.lastIndex=0,o=-1,l=[],s=[];for(e+="",t+="";(n=oe.exec(e))&&(r=le.exec(t));)(a=r.index)>i&&(a=t.slice(i,a),l[o]?l[o]+=a:l[++o]=a),(n=n[0])===(r=r[0])?l[o]?l[o]+=r:l[++o]=r:(l[++o]=null,s.push({i:o,x:ae(n,r)})),i=le.lastIndex;return i<t.length&&(a=t.slice(i),l[o]?l[o]+=a:l[++o]=a),l.length<2?s[0]?function(e){return function(t){return e(t)+""}}(s[0].x):function(e){return function(){return e}}(t):(t=s.length,function(e){for(var n,r=0;r<t;++r)l[(n=s[r]).i]=n.x(e);return l.join("")})}function ue(e,t){var n,r,a=typeof t;return null==t||"boolean"===a?W(t):("number"===a?ae:"string"===a?(n=F(t))?(t=n,ee):se:t instanceof F?ee:t instanceof Date?re:(r=t,!ArrayBuffer.isView(r)||r instanceof DataView?Array.isArray(t)?ne:"function"!=typeof t.valueOf&&"function"!=typeof t.toString||isNaN(t)?ie:ae:te))(e,t)}function ce(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}function de(e){return n.isContinuous(e)&&e!==n.Sequential}const he=r.toSet(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma"]);function fe(e){t.Transform.call(this,null,e),this.modified(!0)}function me(e,t,a){n.isLogarithmic(e)&&(Math.abs(t.reduce((e,t)=>e+(t<0?-1:t>0?1:0),0))!==t.length&&a.warn("Log scale domain includes zero: "+r.stringValue(t)));return t}function ge(e,t,a){return r.isFunction(e)&&(t||a)?n.interpolateRange(e,pe(t||[0,1],a)):e}function pe(e,t){return t?e.slice().reverse():e}function ye(e){t.Transform.call(this,null,e)}r.inherits(fe,t.Transform,{transform(e,t){var a=t.dataflow,i=this.value,o=function(e){var t,a=e.type,i="";if(a===n.Sequential)return n.Sequential+"-"+n.Linear;(function(e){const t=e.type;return n.isContinuous(t)&&t!==n.Time&&t!==n.UTC&&(e.scheme||e.range&&e.range.length&&e.range.every(r.isString))})(e)&&(i=2===(t=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(null!=e.domainMid):0)?n.Sequential+"-":3===t?n.Diverging+"-":"");return(i+a||n.Linear).toLowerCase()}(e);for(o in i&&o===i.type||(this.value=i=n.scale(o)()),e)if(!he[o]){if("padding"===o&&de(i.type))continue;r.isFunction(i[o])?i[o](e[o]):a.warn("Unsupported scale property: "+o)}return function(e,t,a){var i=e.type,o=t.round||!1,l=t.range;if(null!=t.rangeStep)l=function(e,t,a){e!==n.Band&&e!==n.Point&&r.error("Only band and point scales support rangeStep.");var i=(null!=t.paddingOuter?t.paddingOuter:t.padding)||0,o=e===n.Point?1:(null!=t.paddingInner?t.paddingInner:t.padding)||0;return[0,t.rangeStep*n.bandSpace(a,o,i)]}(i,t,a);else if(t.scheme&&(l=function(e,t,a){var i,o,l=t.schemeExtent;r.isArray(t.scheme)?o=n.interpolateColors(t.scheme,t.interpolate,t.interpolateGamma):(i=t.scheme.toLowerCase(),(o=n.scheme(i))||r.error("Unrecognized scheme name: ".concat(t.scheme)));return a=e===n.Threshold?a+1:e===n.BinOrdinal?a-1:e===n.Quantile||e===n.Quantize?+t.schemeCount||5:a,n.isInterpolating(e)?ge(o,l,t.reverse):r.isFunction(o)?n.quantizeInterpolator(ge(o,l),a):e===n.Ordinal?o:o.slice(0,a)}(i,t,a),r.isFunction(l))){if(e.interpolator)return e.interpolator(l);r.error("Scale type ".concat(i," does not support interpolating color schemes."))}if(l&&n.isInterpolating(i))return e.interpolator(n.interpolateColors(pe(l,t.reverse),t.interpolate,t.interpolateGamma));l&&t.interpolate&&e.interpolate?e.interpolate(n.interpolate(t.interpolate,t.interpolateGamma)):r.isFunction(e.round)?e.round(o):r.isFunction(e.rangeRound)&&e.interpolate(o?ce:ue);l&&e.range(pe(l,t.reverse))}(i,e,function(e,t,a){let i=t.bins;if(i&&!r.isArray(i)){const t=e.domain(),n=t[0],a=r.peek(t),o=i.step;let l=null==i.start?n:i.start,s=null==i.stop?a:i.stop;o||r.error("Scale bins parameter missing step property."),l<n&&(l=o*Math.ceil(n/o)),s>a&&(s=o*Math.floor(a/o)),i=v(l,s+o/2,o)}i?e.bins=i:e.bins&&delete e.bins;e.type===n.BinOrdinal&&(i?t.domain||t.domainRaw||(e.domain(i),a=i.length):e.bins=e.domain());return a}(i,e,function(e,t,a){const i=function(e,t,n){return t?(e.domain(me(e.type,t,n)),t.length):-1}(e,t.domainRaw,a);if(i>-1)return i;var o,l,s=t.domain,u=e.type,c=t.zero||void 0===t.zero&&function(e){const t=e.type;return!e.bins&&(t===n.Linear||t===n.Pow||t===n.Sqrt)}(e);if(!s)return 0;de(u)&&t.padding&&s[0]!==r.peek(s)&&(s=function(e,t,a,i,o,l){var s=Math.abs(r.peek(a)-a[0]),u=s/(s-2*i),c=e===n.Log?r.zoomLog(t,null,u):e===n.Sqrt?r.zoomPow(t,null,u,.5):e===n.Pow?r.zoomPow(t,null,u,o||1):e===n.Symlog?r.zoomSymlog(t,null,u,l||1):r.zoomLinear(t,null,u);return(t=t.slice())[0]=c[0],t[t.length-1]=c[1],t}(u,s,t.range,t.padding,t.exponent,t.constant));if((c||null!=t.domainMin||null!=t.domainMax||null!=t.domainMid)&&(o=(s=s.slice()).length-1||1,c&&(s[0]>0&&(s[0]=0),s[o]<0&&(s[o]=0)),null!=t.domainMin&&(s[0]=t.domainMin),null!=t.domainMax&&(s[o]=t.domainMax),null!=t.domainMid)){const e=(l=t.domainMid)>s[o]?o+1:l<s[0]?0:o;e!==o&&a.warn("Scale domainMid exceeds domain min or max.",l),s.splice(e,0,l)}e.domain(me(u,s,a)),u===n.Ordinal&&e.unknown(t.domainImplicit?n.scaleImplicit:void 0);t.nice&&e.nice&&e.nice(!0!==t.nice&&n.tickCount(e,t.nice)||null);return s.length}(i,e,a))),t.fork(t.NO_SOURCE|t.NO_FIELDS)}}),r.inherits(ye,t.Transform,{transform(e,n){const r=e.modified("sort")||n.changed(n.ADD)||n.modified(e.sort.fields)||n.modified("datum");return r&&n.source.sort(t.stableCompare(e.sort)),this.modified(r),n}});const ve="zero",be="center",Me="normalize",we=["y0","y1"];function xe(e){t.Transform.call(this,null,e)}function ke(e,t,n,r,a){for(var i,o=(t-e.sum)/2,l=e.length,s=0;s<l;++s)(i=e[s])[r]=o,i[a]=o+=Math.abs(n(i))}function Se(e,t,n,r,a){for(var i,o=1/e.sum,l=0,s=e.length,u=0,c=0;u<s;++u)(i=e[u])[r]=l,i[a]=l=o*(c+=Math.abs(n(i)))}function Ne(e,t,n,r,a){for(var i,o,l=0,s=0,u=e.length,c=0;c<u;++c)(i=+n(o=e[c]))<0?(o[r]=s,o[a]=s+=i):(o[r]=l,o[a]=l+=i)}return xe.Definition={type:"Stack",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"groupby",type:"field",array:!0},{name:"sort",type:"compare"},{name:"offset",type:"enum",default:ve,values:[ve,be,Me]},{name:"as",type:"string",array:!0,length:2,default:we}]},r.inherits(xe,t.Transform,{transform(e,n){var a,i,o,l,s=e.as||we,u=s[0],c=s[1],d=t.stableCompare(e.sort),h=e.field||r.one,f=e.offset===be?ke:e.offset===Me?Se:Ne;for(a=function(e,t,n,r){var a,i,o,l,s,u,c,d,h,f=[],m=e=>e(s);if(null==t)f.push(e.slice());else for(a={},i=0,o=e.length;i<o;++i)s=e[i],(c=a[u=t.map(m)])||(a[u]=c=[],f.push(c)),c.push(s);for(u=0,h=0,l=f.length;u<l;++u){for(i=0,d=0,o=(c=f[u]).length;i<o;++i)d+=Math.abs(r(c[i]));c.sum=d,d>h&&(h=d),n&&c.sort(n)}return f.max=h,f}(n.source,e.groupby,d,h),i=0,o=a.length,l=a.max;i<o;++i)f(a[i],l,h,u,c);return n.reflow(e.modified()).modifies(s)}}),e.axisticks=a,e.datajoin=i,e.encode=l,e.legendentries=s,e.linkpath=f,e.pie=b,e.scale=fe,e.sortitems=ye,e.stack=xe,e}({},vega,vega,vega); | ||
//# sourceMappingURL=vega-encode.min.js.map |
{ | ||
"name": "vega-encode", | ||
"version": "4.8.2", | ||
"version": "4.8.3", | ||
"description": "Visual encoding transforms for Vega dataflows.", | ||
@@ -14,20 +14,18 @@ "keywords": [ | ||
"main": "build/vega-encode.js", | ||
"module": "index", | ||
"module": "build/vega-encode.module.js", | ||
"unpkg": "build/vega-encode.min.js", | ||
"repository": "vega/vega", | ||
"scripts": { | ||
"rollup": "rollup -g d3-array:d3,d3-interpolate:d3,vega-dataflow:vega,vega-scale:vega,vega-util:vega -f umd -n vega.transforms -o build/vega-encode.js -- index.js", | ||
"prebuild": "rimraf build && mkdir build", | ||
"build": "yarn rollup", | ||
"postbuild": "terser build/vega-encode.js -c -m -o build/vega-encode.min.js", | ||
"pretest": "yarn prebuild && yarn rollup", | ||
"prebuild": "rimraf build", | ||
"build": "rollup -c", | ||
"pretest": "yarn build --config-test", | ||
"test": "tape 'test/**/*-test.js'", | ||
"prepublishOnly": "yarn test && yarn build", | ||
"postpublish": "git push && git push --tags" | ||
"prepublishOnly": "yarn test && yarn build" | ||
}, | ||
"dependencies": { | ||
"d3-array": "^2.7.0", | ||
"d3-array": "^2.7.1", | ||
"d3-interpolate": "^2.0.1", | ||
"vega-dataflow": "^5.7.2", | ||
"vega-scale": "^7.0.2", | ||
"vega-util": "^1.15.1" | ||
"vega-dataflow": "^5.7.3", | ||
"vega-scale": "^7.0.3", | ||
"vega-util": "^1.15.2" | ||
}, | ||
@@ -37,3 +35,3 @@ "devDependencies": { | ||
}, | ||
"gitHead": "8d6793f4ca7eaaf2d22186764e9ce2dae687cf52" | ||
"gitHead": "4affcbedb9d14815dbb6d3b250ed231b54fc95c0" | ||
} |
@@ -62,6 +62,6 @@ import {Transform} from 'vega-dataflow'; | ||
if (reenter || set !== falsy) { | ||
var flag = pulse.MOD | (_.modified() ? pulse.REFLOW : 0); | ||
const flag = pulse.MOD | (_.modified() ? pulse.REFLOW : 0); | ||
if (reenter) { | ||
pulse.visit(flag, t => { | ||
var mod = enter(t, _) || fmod; | ||
const mod = enter(t, _) || fmod; | ||
if (set(t, _) || mod) out.mod.push(t); | ||
@@ -68,0 +68,0 @@ }); |
@@ -129,3 +129,3 @@ import {Transform} from 'vega-dataflow'; | ||
// check raw domain, if provided use that and exit early | ||
var raw = rawDomain(scale, _.domainRaw, df); | ||
const raw = rawDomain(scale, _.domainRaw, df); | ||
if (raw > -1) return raw; | ||
@@ -132,0 +132,0 @@ |
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
210180
18
2838
1
Updatedd3-array@^2.7.1
Updatedvega-dataflow@^5.7.3
Updatedvega-scale@^7.0.3
Updatedvega-util@^1.15.2