vega-functions 5.18.0 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vega-functions.js","sources":["../src/functions/data.js","../src/functions/encode.js","../src/functions/format.js","../src/constants.js","../src/visitors.js","../src/scales.js","../src/functions/geo.js","../src/functions/inscope.js","../src/functions/log.js","../src/functions/luminance.js","../src/functions/merge.js","../src/functions/modify.js","../src/functions/pinch.js","../src/functions/pluck.js","../src/functions/sequence.js","../src/functions/scale.js","../src/functions/scale-gradient.js","../src/functions/shape.js","../src/functions/tree.js","../src/functions/window.js","../src/functions/intersect.js","../src/functions/lasso.js","../src/codegen.js","../src/parser.js"],"sourcesContent":["import {truthy} from 'vega-util';\n\nexport function data(name) {\n const data = this.context.data[name];\n return data ? data.values.value : [];\n}\n\nexport function indata(name, field, value) {\n const index = this.context.data[name]['index:' + field],\n entry = index ? index.value.get(value) : undefined;\n return entry ? entry.count : entry;\n}\n\nexport function setdata(name, tuples) {\n const df = this.context.dataflow,\n data = this.context.data[name],\n input = data.input;\n\n df.pulse(input, df.changeset().remove(truthy).insert(tuples));\n return 1;\n}\n","export default function(item, name, retval) {\n if (item) {\n const df = this.context.dataflow,\n target = item.mark.source;\n df.pulse(target, df.changeset().encode(item, name));\n }\n return retval !== undefined ? retval : item;\n}\n","const wrap = method => function(value, spec) {\n const locale = this.context.dataflow.locale();\n return value === null ? 'null' : locale[method](spec)(value);\n};\n\nexport const format = wrap('format');\nexport const timeFormat = wrap('timeFormat');\nexport const utcFormat = wrap('utcFormat');\nexport const timeParse = wrap('timeParse');\nexport const utcParse = wrap('utcParse');\n\nconst dateObj = new Date(2000, 0, 1);\n\nfunction time(month, day, specifier) {\n if (!Number.isInteger(month) || !Number.isInteger(day)) return '';\n dateObj.setYear(2000);\n dateObj.setMonth(month);\n dateObj.setDate(day);\n return timeFormat.call(this, dateObj, specifier);\n}\n\nexport function monthFormat(month) {\n return time.call(this, month, 1, '%B');\n}\n\nexport function monthAbbrevFormat(month) {\n return time.call(this, month, 1, '%b');\n}\n\nexport function dayFormat(day) {\n return time.call(this, 0, 2 + day, '%A');\n}\n\nexport function dayAbbrevFormat(day) {\n return time.call(this, 0, 2 + day, '%a');\n}\n","export const DataPrefix = ':';\nexport const IndexPrefix = '@';\nexport const ScalePrefix = '%';\nexport const SignalPrefix = '$';\n","import {DataPrefix, IndexPrefix, ScalePrefix} from './constants.js';\nimport {Literal} from 'vega-expression';\nimport {error, hasOwnProperty} from 'vega-util';\n\nexport function dataVisitor(name, args, scope, params) {\n if (args[0].type !== Literal) {\n error('First argument to data functions must be a string literal.');\n }\n\n const data = args[0].value,\n dataName = DataPrefix + data;\n\n if (!hasOwnProperty(dataName, params)) {\n try {\n params[dataName] = scope.getData(data).tuplesRef();\n } catch (err) {\n // if data set does not exist, there's nothing to track\n }\n }\n}\n\nexport function indataVisitor(name, args, scope, params) {\n if (args[0].type !== Literal) error('First argument to indata must be a string literal.');\n if (args[1].type !== Literal) error('Second argument to indata must be a string literal.');\n\n const data = args[0].value,\n field = args[1].value,\n indexName = IndexPrefix + field;\n\n if (!hasOwnProperty(indexName, params)) {\n params[indexName] = scope.getData(data).indataRef(scope, field);\n }\n}\n\nexport function scaleVisitor(name, args, scope, params) {\n if (args[0].type === Literal) {\n // add scale dependency\n addScaleDependency(scope, params, args[0].value);\n } else {\n // indirect scale lookup; add all scales as parameters\n for (name in scope.scales) {\n addScaleDependency(scope, params, name);\n }\n }\n}\n\nfunction addScaleDependency(scope, params, name) {\n const scaleName = ScalePrefix + name;\n if (!hasOwnProperty(params, scaleName)) {\n try {\n params[scaleName] = scope.scaleRef(name);\n } catch (err) {\n // TODO: error handling? warning?\n }\n }\n}\n","import {ScalePrefix} from './constants.js';\nimport {scaleVisitor} from './visitors.js';\nimport {Literal} from 'vega-expression';\nimport {isFunction, isString, stringValue} from 'vega-util';\nimport {isRegisteredScale} from 'vega-scale';\n\n/**\n * nameOrFunction must be a string or function that was registered.\n * Return undefined if scale is not recognized.\n */\nexport function getScale(nameOrFunction, ctx) {\n\n if (isString(nameOrFunction)) {\n const maybeScale = ctx.scales[nameOrFunction];\n return (maybeScale && isRegisteredScale(maybeScale.value)) ? maybeScale.value : undefined;\n } else if (isFunction(nameOrFunction)) {\n return isRegisteredScale(nameOrFunction) ? nameOrFunction : undefined;\n }\n\n return undefined;\n}\n\nexport function internalScaleFunctions(codegen, fnctx, visitors) {\n // add helper method to the 'this' expression function context\n fnctx.__bandwidth = s => s && s.bandwidth ? s.bandwidth() : 0;\n\n // register AST visitors for internal scale functions\n visitors._bandwidth = scaleVisitor;\n visitors._range = scaleVisitor;\n visitors._scale = scaleVisitor;\n\n // resolve scale reference directly to the signal hash argument\n const ref = arg => '_[' + (\n arg.type === Literal\n ? stringValue(ScalePrefix + arg.value)\n : stringValue(ScalePrefix) + '+' + codegen(arg)\n ) + ']';\n\n // define and return internal scale function code generators\n // these internal functions are called by mark encoders\n return {\n _bandwidth: args => `this.__bandwidth(${ref(args[0])})`,\n _range: args => `${ref(args[0])}.range()`,\n _scale: args => `${ref(args[0])}(${codegen(args[1])})`\n };\n}\n","import {getScale} from '../scales.js';\nimport {\n geoArea as area,\n geoBounds as bounds,\n geoCentroid as centroid\n} from 'd3-geo';\n\nfunction geoMethod(methodName, globalMethod) {\n return function(projection, geojson, group) {\n if (projection) {\n // projection defined, use it\n const p = getScale(projection, (group || this).context);\n return p && p.path[methodName](geojson);\n } else {\n // projection undefined, use global method\n return globalMethod(geojson);\n }\n };\n}\n\nexport const geoArea = geoMethod('area', area);\nexport const geoBounds = geoMethod('bounds', bounds);\nexport const geoCentroid = geoMethod('centroid', centroid);\n\nexport function geoScale(projection, group) {\n const p = getScale(projection, (group || this).context);\n return p && p.scale();\n}\n","export default function(item) {\n const group = this.context.group;\n let value = false;\n\n if (group) while (item) {\n if (item === group) { value = true; break; }\n item = item.mark.group;\n }\n return value;\n}\n","function log(df, method, args) {\n try {\n df[method].apply(df, ['EXPRESSION'].concat([].slice.call(args)));\n } catch (err) {\n df.warn(err);\n }\n return args[args.length-1];\n}\n\nexport function warn() {\n return log(this.context.dataflow, 'warn', arguments);\n}\n\nexport function info() {\n return log(this.context.dataflow, 'info', arguments);\n}\n\nexport function debug() {\n return log(this.context.dataflow, 'debug', arguments);\n}\n","import {rgb} from 'd3-color';\n\n// https://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\nfunction channel_luminance_value(channelValue) {\n const val = channelValue / 255;\n if (val <= 0.03928) {\n return val / 12.92;\n }\n return Math.pow((val + 0.055) / 1.055, 2.4);\n}\n\nexport function luminance(color) {\n const c = rgb(color),\n r = channel_luminance_value(c.r),\n g = channel_luminance_value(c.g),\n b = channel_luminance_value(c.b);\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n}\n\n// https://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef\nexport function contrast(color1, color2) {\n const lum1 = luminance(color1),\n lum2 = luminance(color2),\n lumL = Math.max(lum1, lum2),\n lumD = Math.min(lum1, lum2);\n return (lumL + 0.05) / (lumD + 0.05);\n}\n","import {extend} from 'vega-util';\n\nexport default function() {\n const args = [].slice.call(arguments);\n args.unshift({});\n return extend(...args);\n}\n","import {isTuple} from 'vega-dataflow';\nimport {isArray, isObject, truthy} from 'vega-util';\n\nfunction equal(a, b) {\n return a === b || a !== a && b !== b ? true\n : isArray(a) ? (\n isArray(b) && a.length === b.length ? equalArray(a, b) : false\n )\n : isObject(a) && isObject(b) ? equalObject(a, b)\n : false;\n}\n\nfunction equalArray(a, b) {\n for (let i=0, n=a.length; i<n; ++i) {\n if (!equal(a[i], b[i])) return false;\n }\n return true;\n}\n\nfunction equalObject(a, b) {\n for (const key in a) {\n if (!equal(a[key], b[key])) return false;\n }\n return true;\n}\n\nfunction removePredicate(props) {\n return _ => equalObject(props, _);\n}\n\nexport default function(name, insert, remove, toggle, modify, values) {\n const df = this.context.dataflow,\n data = this.context.data[name],\n input = data.input,\n stamp = df.stamp();\n\n let changes = data.changes,\n predicate, key;\n\n if (df._trigger === false || !(input.value.length || insert || toggle)) {\n // nothing to do!\n return 0;\n }\n\n if (!changes || changes.stamp < stamp) {\n data.changes = (changes = df.changeset());\n changes.stamp = stamp;\n df.runAfter(() => {\n data.modified = true;\n df.pulse(input, changes).run();\n }, true, 1);\n }\n\n if (remove) {\n predicate = remove === true ? truthy\n : (isArray(remove) || isTuple(remove)) ? remove\n : removePredicate(remove);\n changes.remove(predicate);\n }\n\n if (insert) {\n changes.insert(insert);\n }\n\n if (toggle) {\n predicate = removePredicate(toggle);\n if (input.value.some(predicate)) {\n changes.remove(predicate);\n } else {\n changes.insert(toggle);\n }\n }\n\n if (modify) {\n for (key in values) {\n changes.modify(modify, key, values[key]);\n }\n }\n\n return 1;\n}\n","export function pinchDistance(event) {\n const t = event.touches,\n dx = t[0].clientX - t[1].clientX,\n dy = t[0].clientY - t[1].clientY;\n return Math.hypot(dx, dy);\n}\n\nexport function pinchAngle(event) {\n const t = event.touches;\n return Math.atan2(\n t[0].clientY - t[1].clientY,\n t[0].clientX - t[1].clientX\n );\n}\n","import {field, isArray} from 'vega-util';\n\n// memoize accessor functions\nconst accessors = {};\n\nexport default function(data, name) {\n const accessor = accessors[name] || (accessors[name] = field(name));\n return isArray(data) ? data.map(accessor) : accessor(data);\n}\n","import { ascending, error, isArray, isFunction, isRegExp, isString } from 'vega-util';\n\nfunction array(seq) {\n return isArray(seq) || ArrayBuffer.isView(seq) ? seq : null;\n}\n\nfunction sequence(seq) {\n return array(seq) || (isString(seq) ? seq : null);\n}\n\nexport function join(seq, ...args) {\n return array(seq).join(...args);\n}\n\nexport function indexof(seq, ...args) {\n return sequence(seq).indexOf(...args);\n}\n\nexport function lastindexof(seq, ...args) {\n return sequence(seq).lastIndexOf(...args);\n}\n\nexport function slice(seq, ...args) {\n return sequence(seq).slice(...args);\n}\n\nexport function replace(str, pattern, repl) {\n if (isFunction(repl)) error('Function argument passed to replace.');\n if (!isString(pattern) && !isRegExp(pattern)) error('Please pass a string or RegExp argument to replace.');\n\n return String(str).replace(pattern, repl);\n}\nexport function reverse(seq) {\n return array(seq).slice().reverse();\n}\nexport function sort(seq) {\n return array(seq).slice().sort(ascending);\n}\n","import {getScale} from '../scales.js';\nimport {bandSpace} from 'vega-scale';\nimport {isArray} from 'vega-util';\n\nexport function bandspace(count, paddingInner, paddingOuter) {\n return bandSpace(count || 0, paddingInner || 0, paddingOuter || 0);\n}\n\nexport function bandwidth(name, group) {\n const s = getScale(name, (group || this).context);\n return s && s.bandwidth ? s.bandwidth() : 0;\n}\n\nexport function copy(name, group) {\n const s = getScale(name, (group || this).context);\n return s ? s.copy() : undefined;\n}\n\nexport function domain(name, group) {\n const s = getScale(name, (group || this).context);\n return s ? s.domain() : [];\n}\n\nexport function invert(name, range, group) {\n const s = getScale(name, (group || this).context);\n return !s ? undefined\n : isArray(range) ? (s.invertRange || s.invert)(range)\n : (s.invert || s.invertExtent)(range);\n}\n\nexport function range(name, group) {\n const s = getScale(name, (group || this).context);\n return s && s.range ? s.range() : [];\n}\n\nexport function scale(name, value, group) {\n const s = getScale(name, (group || this).context);\n return s ? s(value) : undefined;\n}\n","import {getScale} from '../scales.js';\nimport {scale as get, scaleFraction} from 'vega-scale';\nimport {Gradient} from 'vega-scenegraph';\nimport {identity, peek} from 'vega-util';\n\n\nexport default function(scale, p0, p1, count, group) {\n\n scale = getScale(scale, (group || this).context);\n\n const gradient = Gradient(p0, p1);\n\n let stops = scale.domain(),\n min = stops[0],\n max = peek(stops),\n fraction = identity;\n\n if (!(max - min)) {\n // expand scale if domain has zero span, fix #1479\n scale = (scale.interpolator\n ? get('sequential')().interpolator(scale.interpolator())\n : get('linear')().interpolate(scale.interpolate()).range(scale.range())\n ).domain([min=0, max=1]);\n } else {\n fraction = scaleFraction(scale, min, max);\n }\n\n if (scale.ticks) {\n stops = scale.ticks(+count || 15);\n if (min !== stops[0]) stops.unshift(min);\n if (max !== peek(stops)) stops.push(max);\n }\n\n stops.forEach(_ => gradient.stop(fraction(_), scale(_)));\n\n return gradient;\n}\n","import {getScale} from '../scales.js';\nimport {pathParse, pathRender} from 'vega-scenegraph';\n\nexport function geoShape(projection, geojson, group) {\n const p = getScale(projection, (group || this).context);\n return function(context) {\n return p ? p.path.context(context)(geojson) : '';\n };\n}\n\nexport function pathShape(path) {\n let p = null;\n return function(context) {\n return context\n ? pathRender(context, (p = p || pathParse(path)))\n : path;\n };\n}\n","import {data} from './data.js';\n\nconst datum = d => d.data;\n\nfunction treeNodes(name, context) {\n const tree = data.call(context, name);\n return tree.root && tree.root.lookup || {};\n}\n\nexport function treePath(name, source, target) {\n const nodes = treeNodes(name, this),\n s = nodes[source],\n t = nodes[target];\n return s && t ? s.path(t).map(datum) : undefined;\n}\n\nexport function treeAncestors(name, node) {\n const n = treeNodes(name, this)[node];\n return n ? n.ancestors().map(datum) : undefined;\n}\n","const _window = () => (typeof window !== 'undefined' && window) || null;\n\nexport function screen() {\n const w = _window();\n return w ? w.screen : {};\n}\n\nexport function windowSize() {\n const w = _window();\n return w\n ? [w.innerWidth, w.innerHeight]\n : [undefined, undefined];\n}\n\nexport function containerSize() {\n const view = this.context.dataflow,\n el = view.container && view.container();\n return el\n ? [el.clientWidth, el.clientHeight]\n : [undefined, undefined];\n}\n","import {Bounds, intersect} from 'vega-scenegraph';\nimport {array} from 'vega-util';\n\nexport default function(b, opt, group) {\n if (!b) return [];\n\n const [u, v] = b,\n box = new Bounds().set(u[0], u[1], v[0], v[1]),\n scene = group || this.context.dataflow.scenegraph().root;\n\n return intersect(scene, box, filter(opt));\n}\n\nfunction filter(opt) {\n let p = null;\n\n if (opt) {\n const types = array(opt.marktype),\n names = array(opt.markname);\n p = _ => (!types.length || types.some(t => _.marktype === t))\n && (!names.length || names.some(s => _.name === s));\n }\n\n return p;\n}","import intersect from './intersect.js';\nimport {Bounds} from 'vega-scenegraph';\nimport {array} from 'vega-util';\n\n/**\n * Appends a new point to the lasso\n *\n * @param {*} lasso the lasso in pixel space\n * @param {*} x the x coordinate in pixel space\n * @param {*} y the y coordinate in pixel space\n * @param {*} minDist the minimum distance, in pixels, that thenew point needs to be apart from the last point\n * @returns a new array containing the lasso with the new point\n */\nexport function lassoAppend(lasso, x, y, minDist = 5) {\n lasso = array(lasso);\n const last = lasso[lasso.length - 1];\n\n // Add point to lasso if its the first point or distance to last point exceed minDist\n return (last === undefined || Math.hypot(last[0] - x, last[1] - y) > minDist)\n ? [...lasso, [x, y]]\n : lasso;\n}\n\n\n/**\n * Generates a svg path command which draws a lasso\n *\n * @param {*} lasso the lasso in pixel space in the form [[x,y], [x,y], ...]\n * @returns the svg path command that draws the lasso\n */\nexport function lassoPath(lasso) {\n return array(lasso).reduce((svg, [x, y], i) => {\n return svg += i == 0\n ? `M ${x},${y} `\n : i === lasso.length - 1\n ? ' Z'\n : `L ${x},${y} `;\n }, '');\n}\n\n\n\n/**\n * Inverts the lasso from pixel space to an array of vega scenegraph tuples\n *\n * @param {*} data the dataset\n * @param {*} pixelLasso the lasso in pixel space, [[x,y], [x,y], ...]\n * @param {*} unit the unit where the lasso is defined\n *\n * @returns an array of vega scenegraph tuples\n */\nexport function intersectLasso(markname, pixelLasso, unit) {\n const { x, y, mark } = unit;\n\n const bb = new Bounds().set(\n Number.MAX_SAFE_INTEGER,\n Number.MAX_SAFE_INTEGER,\n Number.MIN_SAFE_INTEGER,\n Number.MIN_SAFE_INTEGER\n );\n\n // Get bounding box around lasso\n for (const [px, py] of pixelLasso) {\n if (px < bb.x1) bb.x1 = px;\n if (px > bb.x2) bb.x2 = px;\n if (py < bb.y1) bb.y1 = py;\n if (py > bb.y2) bb.y2 = py;\n }\n\n // Translate bb against unit coordinates\n bb.translate(x, y);\n\n const intersection = intersect([[bb.x1, bb.y1], [bb.x2, bb.y2]],\n markname,\n mark);\n\n // Check every point against the lasso\n return intersection.filter(tuple => pointInPolygon(tuple.x, tuple.y, pixelLasso));\n}\n\n\n\n/**\n * Performs a test if a point is inside a polygon based on the idea from\n * https://wrf.ecse.rpi.edu/Research/Short_Notes/pnpoly.html\n *\n * This method will not need the same start/end point since it wraps around the edges of the array\n *\n * @param {*} test a point to test against\n * @param {*} polygon a polygon in the form [[x,y], [x,y], ...]\n * @returns true if the point lies inside the polygon, false otherwise\n */\nfunction pointInPolygon(testx, testy, polygon) {\n let intersections = 0;\n\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const [prevX, prevY] = polygon[j];\n const [x, y] = polygon[i];\n\n // count intersections\n if (((y > testy) != (prevY > testy)) && (testx < (prevX - x) * (testy - y) / (prevY - y) + x)) {\n intersections++;\n }\n }\n\n // point is in polygon if intersection count is odd\n return intersections & 1;\n}\n","import {\n codegenExpression,\n constants,\n functions\n} from 'vega-expression';\n\nimport {\n isTuple\n} from 'vega-dataflow';\n\nimport {\n selectionIdTest,\n selectionResolve,\n selectionTest,\n selectionTuples,\n selectionVisitor\n} from 'vega-selections';\n\nimport {\n cumulativeLogNormal,\n cumulativeNormal,\n cumulativeUniform,\n densityLogNormal,\n densityNormal,\n densityUniform,\n quantileLogNormal,\n quantileNormal,\n quantileUniform,\n random,\n sampleLogNormal,\n sampleNormal,\n sampleUniform\n} from 'vega-statistics';\n\nimport {\n dayofyear,\n timeOffset,\n timeSequence,\n timeUnitSpecifier,\n utcOffset,\n utcSequence,\n utcdayofyear,\n utcweek,\n week\n} from 'vega-time';\n\nimport {\n clampRange,\n extend,\n extent,\n flush,\n inrange,\n isArray,\n isBoolean,\n isDate,\n isNumber,\n isObject,\n isRegExp,\n isString,\n lerp,\n pad,\n panLinear,\n panLog,\n panPow,\n panSymlog,\n peek,\n quarter,\n span,\n stringValue,\n toBoolean,\n toDate,\n toNumber,\n toString,\n truncate,\n utcquarter,\n zoomLinear,\n zoomLog,\n zoomPow,\n zoomSymlog\n} from 'vega-util';\n\nimport {\n range as sequence\n} from 'd3-array';\n\nimport {\n hcl,\n hsl,\n lab,\n rgb\n} from 'd3-color';\n\nimport {\n contrast,\n luminance\n} from './functions/luminance.js';\n\nimport {\n data,\n indata,\n setdata\n} from './functions/data.js';\n\nimport encode from './functions/encode.js';\n\nimport {\n dayAbbrevFormat,\n dayFormat,\n format,\n monthAbbrevFormat,\n monthFormat,\n timeFormat,\n timeParse,\n utcFormat,\n utcParse\n} from './functions/format.js';\n\nimport {\n geoArea,\n geoBounds,\n geoCentroid,\n geoScale\n} from './functions/geo.js';\n\nimport inScope from './functions/inscope.js';\n\nimport intersect from './functions/intersect.js';\n\nimport {\n debug,\n info,\n warn\n} from './functions/log.js';\n\nimport merge from './functions/merge.js';\n\nimport modify from './functions/modify.js';\n\nimport {\n pinchAngle,\n pinchDistance\n} from './functions/pinch.js';\n\nimport pluck from './functions/pluck.js';\n\nimport {\n indexof,\n join,\n lastindexof,\n replace,\n reverse,\n slice,\n sort\n} from './functions/sequence.js';\n\nimport {\n intersectLasso,\n lassoAppend,\n lassoPath\n} from './functions/lasso.js';\n\nimport {\n bandspace,\n bandwidth,\n copy,\n domain,\n invert,\n range,\n scale\n} from './functions/scale.js';\n\nimport scaleGradient from './functions/scale-gradient.js';\n\nimport {\n geoShape,\n pathShape\n} from './functions/shape.js';\n\nimport {\n treeAncestors,\n treePath\n} from './functions/tree.js';\n\nimport {\n containerSize,\n screen,\n windowSize\n} from './functions/window.js';\n\nimport {\n SignalPrefix\n} from './constants.js';\n\nimport {\n internalScaleFunctions\n} from './scales.js';\n\nimport {\n dataVisitor,\n indataVisitor,\n scaleVisitor\n} from './visitors.js';\n\n// Expression function context object\nexport const functionContext = {\n random() { return random(); }, // override default\n cumulativeNormal,\n cumulativeLogNormal,\n cumulativeUniform,\n densityNormal,\n densityLogNormal,\n densityUniform,\n quantileNormal,\n quantileLogNormal,\n quantileUniform,\n sampleNormal,\n sampleLogNormal,\n sampleUniform,\n isArray,\n isBoolean,\n isDate,\n isDefined(_) { return _ !== undefined; },\n isNumber,\n isObject,\n isRegExp,\n isString,\n isTuple,\n isValid(_) { return _ != null && _ === _; },\n toBoolean,\n toDate(_) { return toDate(_); }, // suppress extra arguments\n toNumber,\n toString,\n indexof,\n join,\n lastindexof,\n replace,\n reverse,\n sort,\n slice,\n flush,\n lerp,\n merge,\n pad,\n peek,\n pluck,\n span,\n inrange,\n truncate,\n rgb,\n lab,\n hcl,\n hsl,\n luminance,\n contrast,\n sequence,\n format,\n utcFormat,\n utcParse,\n utcOffset,\n utcSequence,\n timeFormat,\n timeParse,\n timeOffset,\n timeSequence,\n timeUnitSpecifier,\n monthFormat,\n monthAbbrevFormat,\n dayFormat,\n dayAbbrevFormat,\n quarter,\n utcquarter,\n week,\n utcweek,\n dayofyear,\n utcdayofyear,\n warn,\n info,\n debug,\n extent(_) { return extent(_); }, // suppress extra arguments\n inScope,\n intersect,\n clampRange,\n pinchDistance,\n pinchAngle,\n screen,\n containerSize,\n windowSize,\n bandspace,\n setdata,\n pathShape,\n panLinear,\n panLog,\n panPow,\n panSymlog,\n zoomLinear,\n zoomLog,\n zoomPow,\n zoomSymlog,\n encode,\n modify,\n lassoAppend,\n lassoPath,\n intersectLasso\n};\n\nconst eventFunctions = ['view', 'item', 'group', 'xy', 'x', 'y'], // event functions\n eventPrefix = 'event.vega.', // event function prefix\n thisPrefix = 'this.', // function context prefix\n astVisitors = {}; // AST visitors for dependency analysis\n\n// export code generator parameters\nexport const codegenParams = {\n forbidden: ['_'],\n allowed: ['datum', 'event', 'item'],\n fieldvar: 'datum',\n globalvar: id => `_[${stringValue(SignalPrefix + id)}]`,\n functions: buildFunctions,\n constants: constants,\n visitors: astVisitors\n};\n\n// export code generator\nexport const codeGenerator = codegenExpression(codegenParams);\n\n// Build expression function registry\nfunction buildFunctions(codegen) {\n const fn = functions(codegen);\n eventFunctions.forEach(name => fn[name] = eventPrefix + name);\n for (const name in functionContext) { fn[name] = thisPrefix + name; }\n extend(fn, internalScaleFunctions(codegen, functionContext, astVisitors));\n return fn;\n}\n\n// Register an expression function\nexport function expressionFunction(name, fn, visitor) {\n if (arguments.length === 1) {\n return functionContext[name];\n }\n\n // register with the functionContext\n functionContext[name] = fn;\n\n // if there is an astVisitor register that, too\n if (visitor) astVisitors[name] = visitor;\n\n // if the code generator has already been initialized,\n // we need to also register the function with it\n if (codeGenerator) codeGenerator.functions[name] = thisPrefix + name;\n return this;\n}\n\n// register expression functions with ast visitors\nexpressionFunction('bandwidth', bandwidth, scaleVisitor);\nexpressionFunction('copy', copy, scaleVisitor);\nexpressionFunction('domain', domain, scaleVisitor);\nexpressionFunction('range', range, scaleVisitor);\nexpressionFunction('invert', invert, scaleVisitor);\nexpressionFunction('scale', scale, scaleVisitor);\nexpressionFunction('gradient', scaleGradient, scaleVisitor);\nexpressionFunction('geoArea', geoArea, scaleVisitor);\nexpressionFunction('geoBounds', geoBounds, scaleVisitor);\nexpressionFunction('geoCentroid', geoCentroid, scaleVisitor);\nexpressionFunction('geoShape', geoShape, scaleVisitor);\nexpressionFunction('geoScale', geoScale, scaleVisitor);\nexpressionFunction('indata', indata, indataVisitor);\nexpressionFunction('data', data, dataVisitor);\nexpressionFunction('treePath', treePath, dataVisitor);\nexpressionFunction('treeAncestors', treeAncestors, dataVisitor);\n\n// register Vega-Lite selection functions\nexpressionFunction('vlSelectionTest', selectionTest, selectionVisitor);\nexpressionFunction('vlSelectionIdTest', selectionIdTest, selectionVisitor);\nexpressionFunction('vlSelectionResolve', selectionResolve, selectionVisitor);\nexpressionFunction('vlSelectionTuples', selectionTuples);\n","import {codeGenerator, codegenParams} from './codegen.js';\nimport {SignalPrefix} from './constants.js';\nimport {CallExpression, parseExpression} from 'vega-expression';\nimport {error, extend, hasOwnProperty, isString, stringValue} from 'vega-util';\n\nexport default function(expr, scope) {\n const params = {};\n\n // parse the expression to an abstract syntax tree (ast)\n let ast;\n try {\n expr = isString(expr) ? expr : (stringValue(expr) + '');\n ast = parseExpression(expr);\n } catch (err) {\n error('Expression parse error: ' + expr);\n }\n\n // analyze ast function calls for dependencies\n ast.visit(node => {\n if (node.type !== CallExpression) return;\n const name = node.callee.name,\n visit = codegenParams.visitors[name];\n if (visit) visit(name, node.arguments, scope, params);\n });\n\n // perform code generation\n const gen = codeGenerator(ast);\n\n // collect signal dependencies\n gen.globals.forEach(name => {\n const signalName = SignalPrefix + name;\n if (!hasOwnProperty(params, signalName) && scope.getSignal(name)) {\n params[signalName] = scope.signalRef(name);\n }\n });\n\n // return generated expression code and dependencies\n return {\n $expr: extend({code: gen.code}, scope.options.ast ? {ast} : null),\n $fields: gen.fields,\n $params: params\n };\n}\n"],"names":["data","name","context","values","value","indata","field","index","entry","get","undefined","count","setdata","tuples","df","dataflow","input","pulse","changeset","remove","truthy","insert","item","retval","target","mark","source","encode","wrap","method","spec","locale","format","timeFormat","utcFormat","timeParse","utcParse","dateObj","Date","time","month","day","specifier","Number","isInteger","setYear","setMonth","setDate","call","monthFormat","monthAbbrevFormat","dayFormat","dayAbbrevFormat","DataPrefix","IndexPrefix","ScalePrefix","SignalPrefix","dataVisitor","args","scope","params","type","Literal","error","dataName","hasOwnProperty","getData","tuplesRef","err","indataVisitor","indexName","indataRef","scaleVisitor","addScaleDependency","scales","scaleName","scaleRef","getScale","nameOrFunction","ctx","isString","maybeScale","isRegisteredScale","isFunction","internalScaleFunctions","codegen","fnctx","visitors","__bandwidth","s","bandwidth","_bandwidth","_range","_scale","ref","arg","stringValue","geoMethod","methodName","globalMethod","projection","geojson","group","p","path","geoArea","area","geoBounds","bounds","geoCentroid","centroid","geoScale","scale","log","apply","concat","slice","warn","length","arguments","info","debug","channel_luminance_value","channelValue","val","Math","pow","luminance","color","c","rgb","r","g","b","contrast","color1","color2","lum1","lum2","lumL","max","lumD","min","unshift","extend","equal","a","isArray","equalArray","isObject","equalObject","i","n","key","removePredicate","props","_","toggle","modify","stamp","changes","predicate","_trigger","runAfter","modified","run","isTuple","some","pinchDistance","event","t","touches","dx","clientX","dy","clientY","hypot","pinchAngle","atan2","accessors","accessor","map","array","seq","ArrayBuffer","isView","sequence","join","indexof","indexOf","lastindexof","lastIndexOf","replace","str","pattern","repl","isRegExp","String","reverse","sort","ascending","bandspace","paddingInner","paddingOuter","bandSpace","copy","domain","invert","range","invertRange","invertExtent","p0","p1","gradient","Gradient","stops","peek","fraction","identity","interpolator","interpolate","scaleFraction","ticks","push","forEach","stop","geoShape","pathShape","pathRender","pathParse","datum","d","treeNodes","tree","root","lookup","treePath","nodes","treeAncestors","node","ancestors","_window","window","screen","w","windowSize","innerWidth","innerHeight","containerSize","view","el","container","clientWidth","clientHeight","opt","u","v","box","Bounds","set","scene","scenegraph","intersect","filter","types","marktype","names","markname","lassoAppend","lasso","x","y","minDist","last","lassoPath","reduce","svg","intersectLasso","pixelLasso","unit","bb","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","px","py","x1","x2","y1","y2","translate","intersection","tuple","pointInPolygon","testx","testy","polygon","intersections","j","prevX","prevY","functionContext","random","cumulativeNormal","cumulativeLogNormal","cumulativeUniform","densityNormal","densityLogNormal","densityUniform","quantileNormal","quantileLogNormal","quantileUniform","sampleNormal","sampleLogNormal","sampleUniform","isBoolean","isDate","isDefined","isNumber","isValid","toBoolean","toDate","toNumber","toString","flush","lerp","merge","pad","pluck","span","inrange","truncate","lab","hcl","hsl","utcOffset","utcSequence","timeOffset","timeSequence","timeUnitSpecifier","quarter","utcquarter","week","utcweek","dayofyear","utcdayofyear","extent","inScope","clampRange","panLinear","panLog","panPow","panSymlog","zoomLinear","zoomLog","zoomPow","zoomSymlog","eventFunctions","eventPrefix","thisPrefix","astVisitors","codegenParams","forbidden","allowed","fieldvar","globalvar","id","functions","buildFunctions","constants","codeGenerator","codegenExpression","fn","expressionFunction","visitor","scaleGradient","selectionTest","selectionVisitor","selectionIdTest","selectionResolve","selectionTuples","expr","ast","parseExpression","visit","CallExpression","callee","gen","globals","signalName","getSignal","signalRef","$expr","code","options","$fields","fields","$params"],"mappings":"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"}
package/index.js CHANGED
@@ -2,11 +2,11 @@ export {
2
2
  data,
3
3
  indata,
4
4
  setdata
5
- } from './src/functions/data';
5
+ } from './src/functions/data.js';
6
6
 
7
7
  export {
8
8
  default as encode
9
- } from './src/functions/encode';
9
+ } from './src/functions/encode.js';
10
10
 
11
11
  export {
12
12
  format,
@@ -18,46 +18,46 @@ export {
18
18
  monthAbbrevFormat,
19
19
  dayFormat,
20
20
  dayAbbrevFormat
21
- } from './src/functions/format';
21
+ } from './src/functions/format.js';
22
22
 
23
23
  export {
24
24
  geoArea,
25
25
  geoBounds,
26
26
  geoCentroid,
27
27
  geoScale
28
- } from './src/functions/geo';
28
+ } from './src/functions/geo.js';
29
29
 
30
30
  export {
31
31
  default as inScope
32
- } from './src/functions/inscope';
32
+ } from './src/functions/inscope.js';
33
33
 
34
34
  export {
35
35
  warn,
36
36
  info,
37
37
  debug
38
- } from './src/functions/log';
38
+ } from './src/functions/log.js';
39
39
 
40
40
  export {
41
41
  luminance,
42
42
  contrast
43
- } from './src/functions/luminance';
43
+ } from './src/functions/luminance.js';
44
44
 
45
45
  export {
46
46
  default as merge
47
- } from './src/functions/merge';
47
+ } from './src/functions/merge.js';
48
48
 
49
49
  export {
50
50
  default as modify
51
- } from './src/functions/modify';
51
+ } from './src/functions/modify.js';
52
52
 
53
53
  export {
54
54
  pinchDistance,
55
55
  pinchAngle
56
- } from './src/functions/pinch';
56
+ } from './src/functions/pinch.js';
57
57
 
58
58
  export {
59
59
  default as pluck
60
- } from './src/functions/pluck';
60
+ } from './src/functions/pluck.js';
61
61
 
62
62
  export {
63
63
  indexof,
@@ -67,7 +67,7 @@ export {
67
67
  reverse,
68
68
  slice,
69
69
  sort
70
- } from './src/functions/sequence';
70
+ } from './src/functions/sequence.js';
71
71
 
72
72
  export {
73
73
  range,
@@ -77,34 +77,34 @@ export {
77
77
  copy,
78
78
  scale,
79
79
  invert
80
- } from './src/functions/scale';
80
+ } from './src/functions/scale.js';
81
81
 
82
82
  export {
83
83
  default as scaleGradient
84
- } from './src/functions/scale-gradient';
84
+ } from './src/functions/scale-gradient.js';
85
85
 
86
86
  export {
87
87
  geoShape,
88
88
  pathShape
89
- } from './src/functions/shape';
89
+ } from './src/functions/shape.js';
90
90
 
91
91
  export {
92
92
  treePath,
93
93
  treeAncestors
94
- } from './src/functions/tree';
94
+ } from './src/functions/tree.js';
95
95
 
96
96
  export {
97
97
  containerSize,
98
98
  screen,
99
99
  windowSize
100
- } from './src/functions/window';
100
+ } from './src/functions/window.js';
101
101
 
102
102
  export {
103
103
  codegenParams,
104
104
  codeGenerator,
105
105
  expressionFunction,
106
106
  functionContext
107
- } from './src/codegen';
107
+ } from './src/codegen.js';
108
108
 
109
109
  export {
110
110
  DataPrefix,
@@ -115,10 +115,10 @@ export {
115
115
 
116
116
  export {
117
117
  default as parseExpression
118
- } from './src/parser';
118
+ } from './src/parser.js';
119
119
 
120
120
  export {
121
121
  dataVisitor,
122
122
  indataVisitor,
123
123
  scaleVisitor
124
- } from './src/visitors';
124
+ } from './src/visitors.js';
package/package.json CHANGED
@@ -1,40 +1,47 @@
1
1
  {
2
2
  "name": "vega-functions",
3
- "version": "5.18.0",
3
+ "version": "6.1.0",
4
4
  "description": "Custom functions for the Vega expression language.",
5
5
  "keywords": [
6
6
  "vega",
7
7
  "expression",
8
8
  "functions"
9
9
  ],
10
- "author": "Jeffrey Heer (http://idl.cs.washington.edu)",
10
+ "author": {
11
+ "name": "Vega",
12
+ "url": "https://vega.github.io"
13
+ },
11
14
  "license": "BSD-3-Clause",
12
- "main": "build/vega-functions.js",
13
- "module": "build/vega-functions.module.js",
14
- "unpkg": "build/vega-functions.min.js",
15
- "repository": "vega/vega",
15
+ "type": "module",
16
+ "exports": {
17
+ "default": "./build/vega-functions.js"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/vega/vega.git"
22
+ },
16
23
  "scripts": {
17
- "prebuild": "rimraf build",
18
- "build": "rollup -c rollup.config.mjs",
19
- "pretest": "yarn build --config-test",
24
+ "prebuild": "del-cli build",
25
+ "build": "rollup -c rollup.config.js",
26
+ "pretest": "npm run build -- --config-test",
20
27
  "test": "tape 'test/**/*-test.js'",
21
- "prepublishOnly": "yarn test && yarn build"
28
+ "prepublishOnly": "npm test && npm run build"
22
29
  },
23
30
  "dependencies": {
24
- "d3-array": "^3.2.2",
31
+ "d3-array": "^3.2.4",
25
32
  "d3-color": "^3.1.0",
26
- "d3-geo": "^3.1.0",
27
- "vega-dataflow": "^5.7.7",
28
- "vega-expression": "^5.2.0",
29
- "vega-scale": "^7.4.2",
30
- "vega-scenegraph": "^4.13.1",
31
- "vega-selections": "^5.6.0",
32
- "vega-statistics": "^1.9.0",
33
- "vega-time": "^2.1.3",
34
- "vega-util": "^1.17.3"
33
+ "d3-geo": "^3.1.1",
34
+ "vega-dataflow": "^6.1.0",
35
+ "vega-expression": "^6.1.0",
36
+ "vega-scale": "^8.1.0",
37
+ "vega-scenegraph": "^5.1.0",
38
+ "vega-selections": "^6.1.0",
39
+ "vega-statistics": "^2.0.0",
40
+ "vega-time": "^3.1.0",
41
+ "vega-util": "^2.1.0"
35
42
  },
36
43
  "devDependencies": {
37
- "vega-format": "^1.1.3"
44
+ "vega-format": "^2.1.0"
38
45
  },
39
- "gitHead": "57c2a12ad868bc25ab216753c60c5a2c961f6cc4"
46
+ "gitHead": "4dea72921d25bf6ff6636a9f9cb6c63ff696932c"
40
47
  }
@@ -0,0 +1 @@
1
+ export { default } from '../../rollup.config.js';
package/src/codegen.js CHANGED
@@ -93,15 +93,15 @@ import {
93
93
  import {
94
94
  contrast,
95
95
  luminance
96
- } from './functions/luminance';
96
+ } from './functions/luminance.js';
97
97
 
98
98
  import {
99
99
  data,
100
100
  indata,
101
101
  setdata
102
- } from './functions/data';
102
+ } from './functions/data.js';
103
103
 
104
- import encode from './functions/encode';
104
+ import encode from './functions/encode.js';
105
105
 
106
106
  import {
107
107
  dayAbbrevFormat,
@@ -113,35 +113,35 @@ import {
113
113
  timeParse,
114
114
  utcFormat,
115
115
  utcParse
116
- } from './functions/format';
116
+ } from './functions/format.js';
117
117
 
118
118
  import {
119
119
  geoArea,
120
120
  geoBounds,
121
121
  geoCentroid,
122
122
  geoScale
123
- } from './functions/geo';
123
+ } from './functions/geo.js';
124
124
 
125
- import inScope from './functions/inscope';
125
+ import inScope from './functions/inscope.js';
126
126
 
127
- import intersect from './functions/intersect';
127
+ import intersect from './functions/intersect.js';
128
128
 
129
129
  import {
130
130
  debug,
131
131
  info,
132
132
  warn
133
- } from './functions/log';
133
+ } from './functions/log.js';
134
134
 
135
- import merge from './functions/merge';
135
+ import merge from './functions/merge.js';
136
136
 
137
- import modify from './functions/modify';
137
+ import modify from './functions/modify.js';
138
138
 
139
139
  import {
140
140
  pinchAngle,
141
141
  pinchDistance
142
- } from './functions/pinch';
142
+ } from './functions/pinch.js';
143
143
 
144
- import pluck from './functions/pluck';
144
+ import pluck from './functions/pluck.js';
145
145
 
146
146
  import {
147
147
  indexof,
@@ -151,13 +151,13 @@ import {
151
151
  reverse,
152
152
  slice,
153
153
  sort
154
- } from './functions/sequence';
154
+ } from './functions/sequence.js';
155
155
 
156
156
  import {
157
157
  intersectLasso,
158
158
  lassoAppend,
159
159
  lassoPath
160
- } from './functions/lasso';
160
+ } from './functions/lasso.js';
161
161
 
162
162
  import {
163
163
  bandspace,
@@ -167,39 +167,39 @@ import {
167
167
  invert,
168
168
  range,
169
169
  scale
170
- } from './functions/scale';
170
+ } from './functions/scale.js';
171
171
 
172
- import scaleGradient from './functions/scale-gradient';
172
+ import scaleGradient from './functions/scale-gradient.js';
173
173
 
174
174
  import {
175
175
  geoShape,
176
176
  pathShape
177
- } from './functions/shape';
177
+ } from './functions/shape.js';
178
178
 
179
179
  import {
180
180
  treeAncestors,
181
181
  treePath
182
- } from './functions/tree';
182
+ } from './functions/tree.js';
183
183
 
184
184
  import {
185
185
  containerSize,
186
186
  screen,
187
187
  windowSize
188
- } from './functions/window';
188
+ } from './functions/window.js';
189
189
 
190
190
  import {
191
191
  SignalPrefix
192
- } from './constants';
192
+ } from './constants.js';
193
193
 
194
194
  import {
195
195
  internalScaleFunctions
196
- } from './scales';
196
+ } from './scales.js';
197
197
 
198
198
  import {
199
199
  dataVisitor,
200
200
  indataVisitor,
201
201
  scaleVisitor
202
- } from './visitors';
202
+ } from './visitors.js';
203
203
 
204
204
  // Expression function context object
205
205
  export const functionContext = {
@@ -1,4 +1,4 @@
1
- import {getScale} from '../scales';
1
+ import {getScale} from '../scales.js';
2
2
  import {
3
3
  geoArea as area,
4
4
  geoBounds as bounds,
@@ -1,4 +1,4 @@
1
- import intersect from './intersect';
1
+ import intersect from './intersect.js';
2
2
  import {Bounds} from 'vega-scenegraph';
3
3
  import {array} from 'vega-util';
4
4
 
@@ -1,4 +1,4 @@
1
- import {getScale} from '../scales';
1
+ import {getScale} from '../scales.js';
2
2
  import {scale as get, scaleFraction} from 'vega-scale';
3
3
  import {Gradient} from 'vega-scenegraph';
4
4
  import {identity, peek} from 'vega-util';
@@ -1,4 +1,4 @@
1
- import {getScale} from '../scales';
1
+ import {getScale} from '../scales.js';
2
2
  import {bandSpace} from 'vega-scale';
3
3
  import {isArray} from 'vega-util';
4
4
 
@@ -1,4 +1,4 @@
1
- import {getScale} from '../scales';
1
+ import {getScale} from '../scales.js';
2
2
  import {pathParse, pathRender} from 'vega-scenegraph';
3
3
 
4
4
  export function geoShape(projection, geojson, group) {
@@ -1,4 +1,4 @@
1
- import {data} from './data';
1
+ import {data} from './data.js';
2
2
 
3
3
  const datum = d => d.data;
4
4
 
package/src/parser.js CHANGED
@@ -1,5 +1,5 @@
1
- import {codeGenerator, codegenParams} from './codegen';
2
- import {SignalPrefix} from './constants';
1
+ import {codeGenerator, codegenParams} from './codegen.js';
2
+ import {SignalPrefix} from './constants.js';
3
3
  import {CallExpression, parseExpression} from 'vega-expression';
4
4
  import {error, extend, hasOwnProperty, isString, stringValue} from 'vega-util';
5
5
 
package/src/scales.js CHANGED
@@ -1,5 +1,5 @@
1
- import {ScalePrefix} from './constants';
2
- import {scaleVisitor} from './visitors';
1
+ import {ScalePrefix} from './constants.js';
2
+ import {scaleVisitor} from './visitors.js';
3
3
  import {Literal} from 'vega-expression';
4
4
  import {isFunction, isString, stringValue} from 'vega-util';
5
5
  import {isRegisteredScale} from 'vega-scale';
package/src/visitors.js CHANGED
@@ -1,4 +1,4 @@
1
- import {DataPrefix, IndexPrefix, ScalePrefix} from './constants';
1
+ import {DataPrefix, IndexPrefix, ScalePrefix} from './constants.js';
2
2
  import {Literal} from 'vega-expression';
3
3
  import {error, hasOwnProperty} from 'vega-util';
4
4
 
@@ -1,2 +0,0 @@
1
- !function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("vega-util"),require("vega-expression"),require("vega-scale"),require("vega-dataflow"),require("vega-scenegraph"),require("vega-selections"),require("vega-statistics"),require("vega-time")):"function"==typeof define&&define.amd?define(["exports","vega-util","vega-expression","vega-scale","vega-dataflow","vega-scenegraph","vega-selections","vega-statistics","vega-time"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).vega={},t.vega,t.vega,t.vega,t.vega,t.vega,t.vega,t.vega,t.vega)}(this,(function(t,n,e,r,i,o,a,s,u){"use strict";function c(t){const n=this.context.data[t];return n?n.values.value:[]}function l(t,n,e){const r=this.context.data[t]["index:"+n],i=r?r.value.get(e):void 0;return i?i.count:i}function h(t,e){const r=this.context.dataflow,i=this.context.data[t].input;return r.pulse(i,r.changeset().remove(n.truthy).insert(e)),1}function f(t,n,e){if(t){const e=this.context.dataflow,r=t.mark.source;e.pulse(r,e.changeset().encode(t,n))}return void 0!==e?e:t}const g=t=>function(n,e){const r=this.context.dataflow.locale();return null===n?"null":r[t](e)(n)},d=g("format"),p=g("timeFormat"),m=g("utcFormat"),y=g("timeParse"),v=g("utcParse"),b=new Date(2e3,0,1);function w(t,n,e){return Number.isInteger(t)&&Number.isInteger(n)?(b.setYear(2e3),b.setMonth(t),b.setDate(n),p.call(this,b,e)):""}function x(t){return w.call(this,t,1,"%B")}function N(t){return w.call(this,t,1,"%b")}function S(t){return w.call(this,0,2+t,"%A")}function $(t){return w.call(this,0,2+t,"%a")}const k="%";function E(t,r,i,o){r[0].type!==e.Literal&&n.error("First argument to data functions must be a string literal.");const a=r[0].value,s=":"+a;if(!n.hasOwnProperty(s,o))try{o[s]=i.getData(a).tuplesRef()}catch(t){}}function M(t,r,i,o){r[0].type!==e.Literal&&n.error("First argument to indata must be a string literal."),r[1].type!==e.Literal&&n.error("Second argument to indata must be a string literal.");const a=r[0].value,s=r[1].value,u="@"+s;n.hasOwnProperty(u,o)||(o[u]=i.getData(a).indataRef(i,s))}function q(t,n,r,i){if(n[0].type===e.Literal)P(r,i,n[0].value);else for(t in r.scales)P(r,i,t)}function P(t,e,r){const i=k+r;if(!n.hasOwnProperty(e,i))try{e[i]=t.scaleRef(r)}catch(t){}}function A(t,e){if(n.isString(t)){const n=e.scales[t];return n&&r.isRegisteredScale(n.value)?n.value:void 0}if(n.isFunction(t))return r.isRegisteredScale(t)?t:void 0}function R(t,r,i){r.__bandwidth=t=>t&&t.bandwidth?t.bandwidth():0,i._bandwidth=q,i._range=q,i._scale=q;const o=r=>"_["+(r.type===e.Literal?n.stringValue(k+r.value):n.stringValue(k)+"+"+t(r))+"]";return{_bandwidth:t=>`this.__bandwidth(${o(t[0])})`,_range:t=>`${o(t[0])}.range()`,_scale:n=>`${o(n[0])}(${t(n[1])})`}}class _{constructor(){this._partials=new Float64Array(32),this._n=0}add(t){const n=this._partials;let e=0;for(let r=0;r<this._n&&r<32;r++){const i=n[r],o=t+i,a=Math.abs(t)<Math.abs(i)?t-(o-i):i-(o-t);a&&(n[e++]=a),t=o}return n[e]=t,this._n=e+1,this}valueOf(){const t=this._partials;let n,e,r,i=this._n,o=0;if(i>0){for(o=t[--i];i>0&&(n=o,e=t[--i],o=n+e,r=e-(o-n),!r););i>0&&(r<0&&t[i-1]<0||r>0&&t[i-1]>0)&&(e=2*r,n=o+e,e==n-o&&(o=n))}return o}}var F=1e-6,L=Math.PI,O=L/2,I=L/4,T=2*L,z=180/L,D=L/180,V=Math.abs,j=Math.atan2,H=Math.cos,B=Math.hypot,U=Math.sin,G=Math.sqrt;function C(t){return t>1?O:t<-1?-O:Math.asin(t)}function X(){}function Y(t,n){t&&Z.hasOwnProperty(t.type)&&Z[t.type](t,n)}var W={Feature:function(t,n){Y(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)Y(e[r].geometry,n)}},Z={Sphere:function(t,n){n.sphere()},Point:function(t,n){t=t.coordinates,n.point(t[0],t[1],t[2])},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)t=e[r],n.point(t[0],t[1],t[2])},LineString:function(t,n){J(t.coordinates,n,0)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)J(e[r],n,0)},Polygon:function(t,n){K(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)K(e[r],n)},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)Y(e[r],n)}};function J(t,n,e){var r,i=-1,o=t.length-e;for(n.lineStart();++i<o;)r=t[i],n.point(r[0],r[1],r[2]);n.lineEnd()}function K(t,n){var e=-1,r=t.length;for(n.polygonStart();++e<r;)J(t[e],n,1);n.polygonEnd()}function Q(t,n){t&&W.hasOwnProperty(t.type)?W[t.type](t,n):Y(t,n)}var tt,nt,et,rt,it,ot,at,st,ut,ct,lt,ht,ft,gt,dt,pt,mt=new _,yt=new _,vt={point:X,lineStart:X,lineEnd:X,polygonStart:function(){mt=new _,vt.lineStart=bt,vt.lineEnd=wt},polygonEnd:function(){var t=+mt;yt.add(t<0?T+t:t),this.lineStart=this.lineEnd=this.point=X},sphere:function(){yt.add(T)}};function bt(){vt.point=xt}function wt(){Nt(tt,nt)}function xt(t,n){vt.point=Nt,tt=t,nt=n,et=t*=D,rt=H(n=(n*=D)/2+I),it=U(n)}function Nt(t,n){var e=(t*=D)-et,r=e>=0?1:-1,i=r*e,o=H(n=(n*=D)/2+I),a=U(n),s=it*a,u=rt*o+s*H(i),c=s*r*U(i);mt.add(j(c,u)),et=t,rt=o,it=a}function St(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}var $t,kt,Et,Mt,qt,Pt,At,Rt,_t,Ft,Lt,Ot,It,Tt,zt,Dt,Vt={point:jt,lineStart:Bt,lineEnd:Ut,polygonStart:function(){Vt.point=Gt,Vt.lineStart=Ct,Vt.lineEnd=Xt,gt=new _,vt.polygonStart()},polygonEnd:function(){vt.polygonEnd(),Vt.point=jt,Vt.lineStart=Bt,Vt.lineEnd=Ut,mt<0?(ot=-(st=180),at=-(ut=90)):gt>F?ut=90:gt<-1e-6&&(at=-90),pt[0]=ot,pt[1]=st},sphere:function(){ot=-(st=180),at=-(ut=90)}};function jt(t,n){dt.push(pt=[ot=t,st=t]),n<at&&(at=n),n>ut&&(ut=n)}function Ht(t,n){var e,r,i=function(t){var n=t[0],e=t[1],r=H(e);return[r*H(n),r*U(n),U(e)]}([t*D,n*D]);if(ft){var o=St(ft,i),a=St([o[1],-o[0],0],o);r=G((e=a)[0]*e[0]+e[1]*e[1]+e[2]*e[2]),e[0]/=r,e[1]/=r,e[2]/=r,a=function(t){return[j(t[1],t[0]),C(t[2])]}(a);var s,u=t-ct,c=u>0?1:-1,l=a[0]*z*c,h=V(u)>180;h^(c*ct<l&&l<c*t)?(s=a[1]*z)>ut&&(ut=s):h^(c*ct<(l=(l+360)%360-180)&&l<c*t)?(s=-a[1]*z)<at&&(at=s):(n<at&&(at=n),n>ut&&(ut=n)),h?t<ct?Yt(ot,t)>Yt(ot,st)&&(st=t):Yt(t,st)>Yt(ot,st)&&(ot=t):st>=ot?(t<ot&&(ot=t),t>st&&(st=t)):t>ct?Yt(ot,t)>Yt(ot,st)&&(st=t):Yt(t,st)>Yt(ot,st)&&(ot=t)}else dt.push(pt=[ot=t,st=t]);n<at&&(at=n),n>ut&&(ut=n),ft=i,ct=t}function Bt(){Vt.point=Ht}function Ut(){pt[0]=ot,pt[1]=st,Vt.point=jt,ft=null}function Gt(t,n){if(ft){var e=t-ct;gt.add(V(e)>180?e+(e>0?360:-360):e)}else lt=t,ht=n;vt.point(t,n),Ht(t,n)}function Ct(){vt.lineStart()}function Xt(){Gt(lt,ht),vt.lineEnd(),V(gt)>F&&(ot=-(st=180)),pt[0]=ot,pt[1]=st,ft=null}function Yt(t,n){return(n-=t)<0?n+360:n}function Wt(t,n){return t[0]-n[0]}function Zt(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var Jt={sphere:X,point:Kt,lineStart:tn,lineEnd:rn,polygonStart:function(){Jt.lineStart=on,Jt.lineEnd=an},polygonEnd:function(){Jt.lineStart=tn,Jt.lineEnd=rn}};function Kt(t,n){t*=D;var e=H(n*=D);Qt(e*H(t),e*U(t),U(n))}function Qt(t,n,e){++$t,Et+=(t-Et)/$t,Mt+=(n-Mt)/$t,qt+=(e-qt)/$t}function tn(){Jt.point=nn}function nn(t,n){t*=D;var e=H(n*=D);Tt=e*H(t),zt=e*U(t),Dt=U(n),Jt.point=en,Qt(Tt,zt,Dt)}function en(t,n){t*=D;var e=H(n*=D),r=e*H(t),i=e*U(t),o=U(n),a=j(G((a=zt*o-Dt*i)*a+(a=Dt*r-Tt*o)*a+(a=Tt*i-zt*r)*a),Tt*r+zt*i+Dt*o);kt+=a,Pt+=a*(Tt+(Tt=r)),At+=a*(zt+(zt=i)),Rt+=a*(Dt+(Dt=o)),Qt(Tt,zt,Dt)}function rn(){Jt.point=Kt}function on(){Jt.point=sn}function an(){un(Ot,It),Jt.point=Kt}function sn(t,n){Ot=t,It=n,t*=D,n*=D,Jt.point=un;var e=H(n);Tt=e*H(t),zt=e*U(t),Dt=U(n),Qt(Tt,zt,Dt)}function un(t,n){t*=D;var e=H(n*=D),r=e*H(t),i=e*U(t),o=U(n),a=zt*o-Dt*i,s=Dt*r-Tt*o,u=Tt*i-zt*r,c=B(a,s,u),l=C(c),h=c&&-l/c;_t.add(h*a),Ft.add(h*s),Lt.add(h*u),kt+=l,Pt+=l*(Tt+(Tt=r)),At+=l*(zt+(zt=i)),Rt+=l*(Dt+(Dt=o)),Qt(Tt,zt,Dt)}function cn(t,n){return function(e,r,i){if(e){const n=A(e,(i||this).context);return n&&n.path[t](r)}return n(r)}}const ln=cn("area",(function(t){return yt=new _,Q(t,vt),2*yt})),hn=cn("bounds",(function(t){var n,e,r,i,o,a,s;if(ut=st=-(ot=at=1/0),dt=[],Q(t,Vt),e=dt.length){for(dt.sort(Wt),n=1,o=[r=dt[0]];n<e;++n)Zt(r,(i=dt[n])[0])||Zt(r,i[1])?(Yt(r[0],i[1])>Yt(r[0],r[1])&&(r[1]=i[1]),Yt(i[0],r[1])>Yt(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(a=-1/0,n=0,r=o[e=o.length-1];n<=e;r=i,++n)i=o[n],(s=Yt(r[1],i[0]))>a&&(a=s,ot=i[0],st=r[1])}return dt=pt=null,ot===1/0||at===1/0?[[NaN,NaN],[NaN,NaN]]:[[ot,at],[st,ut]]})),fn=cn("centroid",(function(t){$t=kt=Et=Mt=qt=Pt=At=Rt=0,_t=new _,Ft=new _,Lt=new _,Q(t,Jt);var n=+_t,e=+Ft,r=+Lt,i=B(n,e,r);return i<1e-12&&(n=Pt,e=At,r=Rt,kt<F&&(n=Et,e=Mt,r=qt),(i=B(n,e,r))<1e-12)?[NaN,NaN]:[j(e,n)*z,C(r/i)*z]}));function gn(t,n){const e=A(t,(n||this).context);return e&&e.scale()}function dn(t){const n=this.context.group;let e=!1;if(n)for(;t;){if(t===n){e=!0;break}t=t.mark.group}return e}function pn(t,n,e){try{t[n].apply(t,["EXPRESSION"].concat([].slice.call(e)))}catch(n){t.warn(n)}return e[e.length-1]}function mn(){return pn(this.context.dataflow,"warn",arguments)}function yn(){return pn(this.context.dataflow,"info",arguments)}function vn(){return pn(this.context.dataflow,"debug",arguments)}function bn(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function wn(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function xn(){}var Nn=.7,Sn=1/Nn,$n="\\s*([+-]?\\d+)\\s*",kn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",En="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Mn=/^#([0-9a-f]{3,8})$/,qn=new RegExp(`^rgb\\(${$n},${$n},${$n}\\)$`),Pn=new RegExp(`^rgb\\(${En},${En},${En}\\)$`),An=new RegExp(`^rgba\\(${$n},${$n},${$n},${kn}\\)$`),Rn=new RegExp(`^rgba\\(${En},${En},${En},${kn}\\)$`),_n=new RegExp(`^hsl\\(${kn},${En},${En}\\)$`),Fn=new RegExp(`^hsla\\(${kn},${En},${En},${kn}\\)$`),Ln={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 On(){return this.rgb().formatHex()}function In(){return this.rgb().formatRgb()}function Tn(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=Mn.exec(t))?(e=n[1].length,n=parseInt(n[1],16),6===e?zn(n):3===e?new Hn(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):8===e?Dn(n>>24&255,n>>16&255,n>>8&255,(255&n)/255):4===e?Dn(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|240&n,((15&n)<<4|15&n)/255):null):(n=qn.exec(t))?new Hn(n[1],n[2],n[3],1):(n=Pn.exec(t))?new Hn(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=An.exec(t))?Dn(n[1],n[2],n[3],n[4]):(n=Rn.exec(t))?Dn(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=_n.exec(t))?Yn(n[1],n[2]/100,n[3]/100,1):(n=Fn.exec(t))?Yn(n[1],n[2]/100,n[3]/100,n[4]):Ln.hasOwnProperty(t)?zn(Ln[t]):"transparent"===t?new Hn(NaN,NaN,NaN,0):null}function zn(t){return new Hn(t>>16&255,t>>8&255,255&t,1)}function Dn(t,n,e,r){return r<=0&&(t=n=e=NaN),new Hn(t,n,e,r)}function Vn(t){return t instanceof xn||(t=Tn(t)),t?new Hn((t=t.rgb()).r,t.g,t.b,t.opacity):new Hn}function jn(t,n,e,r){return 1===arguments.length?Vn(t):new Hn(t,n,e,null==r?1:r)}function Hn(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function Bn(){return`#${Xn(this.r)}${Xn(this.g)}${Xn(this.b)}`}function Un(){const t=Gn(this.opacity);return`${1===t?"rgb(":"rgba("}${Cn(this.r)}, ${Cn(this.g)}, ${Cn(this.b)}${1===t?")":`, ${t})`}`}function Gn(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Cn(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Xn(t){return((t=Cn(t))<16?"0":"")+t.toString(16)}function Yn(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new Jn(t,n,e,r)}function Wn(t){if(t instanceof Jn)return new Jn(t.h,t.s,t.l,t.opacity);if(t instanceof xn||(t=Tn(t)),!t)return new Jn;if(t instanceof Jn)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),a=NaN,s=o-i,u=(o+i)/2;return s?(a=n===o?(e-r)/s+6*(e<r):e===o?(r-n)/s+2:(n-e)/s+4,s/=u<.5?o+i:2-o-i,a*=60):s=u>0&&u<1?0:a,new Jn(a,s,u,t.opacity)}function Zn(t,n,e,r){return 1===arguments.length?Wn(t):new Jn(t,n,e,null==r?1:r)}function Jn(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Kn(t){return(t=(t||0)%360)<0?t+360:t}function Qn(t){return Math.max(0,Math.min(1,t||0))}function te(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}bn(xn,Tn,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:On,formatHex:On,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return Wn(this).formatHsl()},formatRgb:In,toString:In}),bn(Hn,jn,wn(xn,{brighter(t){return t=null==t?Sn:Math.pow(Sn,t),new Hn(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?Nn:Math.pow(Nn,t),new Hn(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Hn(Cn(this.r),Cn(this.g),Cn(this.b),Gn(this.opacity))},displayable(){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:Bn,formatHex:Bn,formatHex8:function(){return`#${Xn(this.r)}${Xn(this.g)}${Xn(this.b)}${Xn(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:Un,toString:Un})),bn(Jn,Zn,wn(xn,{brighter(t){return t=null==t?Sn:Math.pow(Sn,t),new Jn(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?Nn:Math.pow(Nn,t),new Jn(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new Hn(te(t>=240?t-240:t+120,i,r),te(t,i,r),te(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new Jn(Kn(this.h),Qn(this.s),Qn(this.l),Gn(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=Gn(this.opacity);return`${1===t?"hsl(":"hsla("}${Kn(this.h)}, ${100*Qn(this.s)}%, ${100*Qn(this.l)}%${1===t?")":`, ${t})`}`}}));const ne=Math.PI/180,ee=180/Math.PI,re=.96422,ie=1,oe=.82521,ae=4/29,se=6/29,ue=3*se*se,ce=se*se*se;function le(t){if(t instanceof fe)return new fe(t.l,t.a,t.b,t.opacity);if(t instanceof ve)return be(t);t instanceof Hn||(t=Vn(t));var n,e,r=me(t.r),i=me(t.g),o=me(t.b),a=ge((.2225045*r+.7168786*i+.0606169*o)/ie);return r===i&&i===o?n=e=a:(n=ge((.4360747*r+.3850649*i+.1430804*o)/re),e=ge((.0139322*r+.0971045*i+.7141733*o)/oe)),new fe(116*a-16,500*(n-a),200*(a-e),t.opacity)}function he(t,n,e,r){return 1===arguments.length?le(t):new fe(t,n,e,null==r?1:r)}function fe(t,n,e,r){this.l=+t,this.a=+n,this.b=+e,this.opacity=+r}function ge(t){return t>ce?Math.pow(t,1/3):t/ue+ae}function de(t){return t>se?t*t*t:ue*(t-ae)}function pe(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function me(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function ye(t,n,e,r){return 1===arguments.length?function(t){if(t instanceof ve)return new ve(t.h,t.c,t.l,t.opacity);if(t instanceof fe||(t=le(t)),0===t.a&&0===t.b)return new ve(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var n=Math.atan2(t.b,t.a)*ee;return new ve(n<0?n+360:n,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}(t):new ve(t,n,e,null==r?1:r)}function ve(t,n,e,r){this.h=+t,this.c=+n,this.l=+e,this.opacity=+r}function be(t){if(isNaN(t.h))return new fe(t.l,0,0,t.opacity);var n=t.h*ne;return new fe(t.l,Math.cos(n)*t.c,Math.sin(n)*t.c,t.opacity)}function we(t){const n=t/255;return n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4)}function xe(t){const n=jn(t);return.2126*we(n.r)+.7152*we(n.g)+.0722*we(n.b)}function Ne(t,n){const e=xe(t),r=xe(n);return(Math.max(e,r)+.05)/(Math.min(e,r)+.05)}function Se(){const t=[].slice.call(arguments);return t.unshift({}),n.extend(...t)}function $e(t,e){return t===e||t!=t&&e!=e||(n.isArray(t)?!(!n.isArray(e)||t.length!==e.length)&&function(t,n){for(let e=0,r=t.length;e<r;++e)if(!$e(t[e],n[e]))return!1;return!0}(t,e):!(!n.isObject(t)||!n.isObject(e))&&ke(t,e))}function ke(t,n){for(const e in t)if(!$e(t[e],n[e]))return!1;return!0}function Ee(t){return n=>ke(t,n)}function Me(t,e,r,o,a,s){const u=this.context.dataflow,c=this.context.data[t],l=c.input,h=u.stamp();let f,g,d=c.changes;if(!1===u._trigger||!(l.value.length||e||o))return 0;if((!d||d.stamp<h)&&(c.changes=d=u.changeset(),d.stamp=h,u.runAfter((()=>{c.modified=!0,u.pulse(l,d).run()}),!0,1)),r&&(f=!0===r?n.truthy:n.isArray(r)||i.isTuple(r)?r:Ee(r),d.remove(f)),e&&d.insert(e),o&&(f=Ee(o),l.value.some(f)?d.remove(f):d.insert(o)),a)for(g in s)d.modify(a,g,s[g]);return 1}function qe(t){const n=t.touches,e=n[0].clientX-n[1].clientX,r=n[0].clientY-n[1].clientY;return Math.hypot(e,r)}function Pe(t){const n=t.touches;return Math.atan2(n[0].clientY-n[1].clientY,n[0].clientX-n[1].clientX)}bn(fe,he,wn(xn,{brighter(t){return new fe(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker(t){return new fe(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,n=isNaN(this.a)?t:t+this.a/500,e=isNaN(this.b)?t:t-this.b/200;return new Hn(pe(3.1338561*(n=re*de(n))-1.6168667*(t=ie*de(t))-.4906146*(e=oe*de(e))),pe(-.9787684*n+1.9161415*t+.033454*e),pe(.0719453*n-.2289914*t+1.4052427*e),this.opacity)}})),bn(ve,ye,wn(xn,{brighter(t){return new ve(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker(t){return new ve(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb(){return be(this).rgb()}}));const Ae={};function Re(t,e){const r=Ae[e]||(Ae[e]=n.field(e));return n.isArray(t)?t.map(r):r(t)}function _e(t){return n.isArray(t)||ArrayBuffer.isView(t)?t:null}function Fe(t){return _e(t)||(n.isString(t)?t:null)}function Le(t){for(var n=arguments.length,e=new Array(n>1?n-1:0),r=1;r<n;r++)e[r-1]=arguments[r];return _e(t).join(...e)}function Oe(t){for(var n=arguments.length,e=new Array(n>1?n-1:0),r=1;r<n;r++)e[r-1]=arguments[r];return Fe(t).indexOf(...e)}function Ie(t){for(var n=arguments.length,e=new Array(n>1?n-1:0),r=1;r<n;r++)e[r-1]=arguments[r];return Fe(t).lastIndexOf(...e)}function Te(t){for(var n=arguments.length,e=new Array(n>1?n-1:0),r=1;r<n;r++)e[r-1]=arguments[r];return Fe(t).slice(...e)}function ze(t,e,r){return n.isFunction(r)&&n.error("Function argument passed to replace."),n.isString(e)||n.isRegExp(e)||n.error("Please pass a string or RegExp argument to replace."),String(t).replace(e,r)}function De(t){return _e(t).slice().reverse()}function Ve(t){return _e(t).slice().sort(n.ascending)}function je(t,n,e){return r.bandSpace(t||0,n||0,e||0)}function He(t,n){const e=A(t,(n||this).context);return e&&e.bandwidth?e.bandwidth():0}function Be(t,n){const e=A(t,(n||this).context);return e?e.copy():void 0}function Ue(t,n){const e=A(t,(n||this).context);return e?e.domain():[]}function Ge(t,e,r){const i=A(t,(r||this).context);return i?n.isArray(e)?(i.invertRange||i.invert)(e):(i.invert||i.invertExtent)(e):void 0}function Ce(t,n){const e=A(t,(n||this).context);return e&&e.range?e.range():[]}function Xe(t,n,e){const r=A(t,(e||this).context);return r?r(n):void 0}function Ye(t,e,i,a,s){t=A(t,(s||this).context);const u=o.Gradient(e,i);let c=t.domain(),l=c[0],h=n.peek(c),f=n.identity;return h-l?f=r.scaleFraction(t,l,h):t=(t.interpolator?r.scale("sequential")().interpolator(t.interpolator()):r.scale("linear")().interpolate(t.interpolate()).range(t.range())).domain([l=0,h=1]),t.ticks&&(c=t.ticks(+a||15),l!==c[0]&&c.unshift(l),h!==n.peek(c)&&c.push(h)),c.forEach((n=>u.stop(f(n),t(n)))),u}function We(t,n,e){const r=A(t,(e||this).context);return function(t){return r?r.path.context(t)(n):""}}function Ze(t){let n=null;return function(e){return e?o.pathRender(e,n=n||o.pathParse(t)):t}}const Je=t=>t.data;function Ke(t,n){const e=c.call(n,t);return e.root&&e.root.lookup||{}}function Qe(t,n,e){const r=Ke(t,this),i=r[n],o=r[e];return i&&o?i.path(o).map(Je):void 0}function tr(t,n){const e=Ke(t,this)[n];return e?e.ancestors().map(Je):void 0}const nr=()=>"undefined"!=typeof window&&window||null;function er(){const t=nr();return t?t.screen:{}}function rr(){const t=nr();return t?[t.innerWidth,t.innerHeight]:[void 0,void 0]}function ir(){const t=this.context.dataflow,n=t.container&&t.container();return n?[n.clientWidth,n.clientHeight]:[void 0,void 0]}function or(t,e,r){if(!t)return[];const[i,a]=t,s=(new o.Bounds).set(i[0],i[1],a[0],a[1]),u=r||this.context.dataflow.scenegraph().root;return o.intersect(u,s,function(t){let e=null;if(t){const r=n.array(t.marktype),i=n.array(t.markname);e=t=>(!r.length||r.some((n=>t.marktype===n)))&&(!i.length||i.some((n=>t.name===n)))}return e}(e))}const ar={random:()=>s.random(),cumulativeNormal:s.cumulativeNormal,cumulativeLogNormal:s.cumulativeLogNormal,cumulativeUniform:s.cumulativeUniform,densityNormal:s.densityNormal,densityLogNormal:s.densityLogNormal,densityUniform:s.densityUniform,quantileNormal:s.quantileNormal,quantileLogNormal:s.quantileLogNormal,quantileUniform:s.quantileUniform,sampleNormal:s.sampleNormal,sampleLogNormal:s.sampleLogNormal,sampleUniform:s.sampleUniform,isArray:n.isArray,isBoolean:n.isBoolean,isDate:n.isDate,isDefined:t=>void 0!==t,isNumber:n.isNumber,isObject:n.isObject,isRegExp:n.isRegExp,isString:n.isString,isTuple:i.isTuple,isValid:t=>null!=t&&t==t,toBoolean:n.toBoolean,toDate:t=>n.toDate(t),toNumber:n.toNumber,toString:n.toString,indexof:Oe,join:Le,lastindexof:Ie,replace:ze,reverse:De,sort:Ve,slice:Te,flush:n.flush,lerp:n.lerp,merge:Se,pad:n.pad,peek:n.peek,pluck:Re,span:n.span,inrange:n.inrange,truncate:n.truncate,rgb:jn,lab:he,hcl:ye,hsl:Zn,luminance:xe,contrast:Ne,sequence:function(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=0|Math.max(0,Math.ceil((n-t)/e)),o=new Array(i);++r<i;)o[r]=t+r*e;return o},format:d,utcFormat:m,utcParse:v,utcOffset:u.utcOffset,utcSequence:u.utcSequence,timeFormat:p,timeParse:y,timeOffset:u.timeOffset,timeSequence:u.timeSequence,timeUnitSpecifier:u.timeUnitSpecifier,monthFormat:x,monthAbbrevFormat:N,dayFormat:S,dayAbbrevFormat:$,quarter:n.quarter,utcquarter:n.utcquarter,week:u.week,utcweek:u.utcweek,dayofyear:u.dayofyear,utcdayofyear:u.utcdayofyear,warn:mn,info:yn,debug:vn,extent:t=>n.extent(t),inScope:dn,intersect:or,clampRange:n.clampRange,pinchDistance:qe,pinchAngle:Pe,screen:er,containerSize:ir,windowSize:rr,bandspace:je,setdata:h,pathShape:Ze,panLinear:n.panLinear,panLog:n.panLog,panPow:n.panPow,panSymlog:n.panSymlog,zoomLinear:n.zoomLinear,zoomLog:n.zoomLog,zoomPow:n.zoomPow,zoomSymlog:n.zoomSymlog,encode:f,modify:Me,lassoAppend:function(t,e,r){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5;const o=(t=n.array(t))[t.length-1];return void 0===o||Math.hypot(o[0]-e,o[1]-r)>i?[...t,[e,r]]:t},lassoPath:function(t){return n.array(t).reduce(((n,e,r)=>{let[i,o]=e;return n+(0==r?`M ${i},${o} `:r===t.length-1?" Z":`L ${i},${o} `)}),"")},intersectLasso:function(t,n,e){const{x:r,y:i,mark:a}=e,s=(new o.Bounds).set(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER,Number.MIN_SAFE_INTEGER);for(const[t,e]of n)t<s.x1&&(s.x1=t),t>s.x2&&(s.x2=t),e<s.y1&&(s.y1=e),e>s.y2&&(s.y2=e);return s.translate(r,i),or([[s.x1,s.y1],[s.x2,s.y2]],t,a).filter((t=>function(t,n,e){let r=0;for(let i=0,o=e.length-1;i<e.length;o=i++){const[a,s]=e[o],[u,c]=e[i];c>n!=s>n&&t<(a-u)*(n-c)/(s-c)+u&&r++}return 1&r}(t.x,t.y,n)))}},sr=["view","item","group","xy","x","y"],ur="this.",cr={},lr={forbidden:["_"],allowed:["datum","event","item"],fieldvar:"datum",globalvar:t=>`_[${n.stringValue("$"+t)}]`,functions:function(t){const r=e.functions(t);sr.forEach((t=>r[t]="event.vega."+t));for(const t in ar)r[t]=ur+t;return n.extend(r,R(t,ar,cr)),r},constants:e.constants,visitors:cr},hr=e.codegenExpression(lr);function fr(t,n,e){return 1===arguments.length?ar[t]:(ar[t]=n,e&&(cr[t]=e),hr&&(hr.functions[t]=ur+t),this)}fr("bandwidth",He,q),fr("copy",Be,q),fr("domain",Ue,q),fr("range",Ce,q),fr("invert",Ge,q),fr("scale",Xe,q),fr("gradient",Ye,q),fr("geoArea",ln,q),fr("geoBounds",hn,q),fr("geoCentroid",fn,q),fr("geoShape",We,q),fr("geoScale",gn,q),fr("indata",l,M),fr("data",c,E),fr("treePath",Qe,E),fr("treeAncestors",tr,E),fr("vlSelectionTest",a.selectionTest,a.selectionVisitor),fr("vlSelectionIdTest",a.selectionIdTest,a.selectionVisitor),fr("vlSelectionResolve",a.selectionResolve,a.selectionVisitor),fr("vlSelectionTuples",a.selectionTuples),t.DataPrefix=":",t.IndexPrefix="@",t.ScalePrefix=k,t.SignalPrefix="$",t.bandspace=je,t.bandwidth=He,t.codeGenerator=hr,t.codegenParams=lr,t.containerSize=ir,t.contrast=Ne,t.copy=Be,t.data=c,t.dataVisitor=E,t.dayAbbrevFormat=$,t.dayFormat=S,t.debug=vn,t.domain=Ue,t.encode=f,t.expressionFunction=fr,t.format=d,t.functionContext=ar,t.geoArea=ln,t.geoBounds=hn,t.geoCentroid=fn,t.geoScale=gn,t.geoShape=We,t.inScope=dn,t.indata=l,t.indataVisitor=M,t.indexof=Oe,t.info=yn,t.invert=Ge,t.join=Le,t.lastindexof=Ie,t.luminance=xe,t.merge=Se,t.modify=Me,t.monthAbbrevFormat=N,t.monthFormat=x,t.parseExpression=function(t,r){const i={};let o;try{t=n.isString(t)?t:n.stringValue(t)+"",o=e.parseExpression(t)}catch(e){n.error("Expression parse error: "+t)}o.visit((t=>{if(t.type!==e.CallExpression)return;const n=t.callee.name,o=lr.visitors[n];o&&o(n,t.arguments,r,i)}));const a=hr(o);return a.globals.forEach((t=>{const e="$"+t;!n.hasOwnProperty(i,e)&&r.getSignal(t)&&(i[e]=r.signalRef(t))})),{$expr:n.extend({code:a.code},r.options.ast?{ast:o}:null),$fields:a.fields,$params:i}},t.pathShape=Ze,t.pinchAngle=Pe,t.pinchDistance=qe,t.pluck=Re,t.range=Ce,t.replace=ze,t.reverse=De,t.scale=Xe,t.scaleGradient=Ye,t.scaleVisitor=q,t.screen=er,t.setdata=h,t.slice=Te,t.sort=Ve,t.timeFormat=p,t.timeParse=y,t.treeAncestors=tr,t.treePath=Qe,t.utcFormat=m,t.utcParse=v,t.warn=mn,t.windowSize=rr}));
2
- //# sourceMappingURL=vega-functions.min.js.map