@undp/data-viz 1.5.5 → 1.5.7
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.
- package/dist/BiVariateChoroplethMap.cjs +1 -1
- package/dist/BiVariateChoroplethMap.js +2 -2
- package/dist/ChoroplethMap.cjs +1 -1
- package/dist/ChoroplethMap.cjs.map +1 -1
- package/dist/ChoroplethMap.d.ts +0 -2
- package/dist/ChoroplethMap.js +2 -2
- package/dist/ChoroplethMap.js.map +1 -1
- package/dist/DotDensityMap.cjs +1 -1
- package/dist/DotDensityMap.js +2 -2
- package/dist/GraphEl-C6yjl1VM.cjs +2 -0
- package/dist/GraphEl-C6yjl1VM.cjs.map +1 -0
- package/dist/{GraphEl-CMWeARJ3.js → GraphEl-CqWzvOyr.js} +1 -2
- package/dist/GraphEl-CqWzvOyr.js.map +1 -0
- package/dist/GriddedGraphs.cjs +1 -1
- package/dist/GriddedGraphs.d.ts +1 -1
- package/dist/GriddedGraphs.js +1 -1
- package/dist/GriddedGraphsFromConfig.d.ts +1 -1
- package/dist/MultiGraphDashboard.d.ts +1 -1
- package/dist/MultiGraphDashboardFromConfig.d.ts +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +1 -1
- package/dist/PerformanceIntensiveScrollStory.d.ts +1 -1
- package/dist/ScrollStory.d.ts +1 -1
- package/dist/SingleGraphDashboard.cjs +1 -1
- package/dist/SingleGraphDashboard.d.ts +1 -1
- package/dist/SingleGraphDashboard.js +1 -1
- package/dist/SingleGraphDashboardFromConfig.d.ts +1 -1
- package/dist/SingleGraphDashboardGeoHubMaps.d.ts +1 -1
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.d.ts +1 -1
- package/dist/SingleGraphDashboardThreeDGraphs.js +2 -2
- package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -1
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +1 -1
- package/dist/ThreeDGlobe.cjs +1 -1
- package/dist/ThreeDGlobe.cjs.map +1 -1
- package/dist/ThreeDGlobe.d.ts +2 -2
- package/dist/ThreeDGlobe.js +276 -280
- package/dist/ThreeDGlobe.js.map +1 -1
- package/dist/Types.d.ts +1 -1
- package/dist/getCentroidCoordinates-Dfk6IqEG.js +70 -0
- package/dist/getCentroidCoordinates-Dfk6IqEG.js.map +1 -0
- package/dist/getCentroidCoordinates-DxTBqzp2.cjs +2 -0
- package/dist/getCentroidCoordinates-DxTBqzp2.cjs.map +1 -0
- package/dist/index-9tDEUqOZ.js +752 -0
- package/dist/{index-qfWCwobm.js.map → index-9tDEUqOZ.js.map} +1 -1
- package/dist/index-CoZbeNM9.cjs +2 -0
- package/dist/{index-D05lK1Te.cjs.map → index-CoZbeNM9.cjs.map} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +10 -5
- package/dist/index.js +34 -32
- package/dist/index.js.map +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.d.ts +8 -0
- package/dist/utils.js +16 -14
- package/dist/utils.js.map +1 -1
- package/dist/{zoom-Bsbhil-K.cjs → zoom-BiMNsz72.cjs} +2 -2
- package/dist/{zoom-Bsbhil-K.cjs.map → zoom-BiMNsz72.cjs.map} +1 -1
- package/dist/{zoom-DAu91HKr.js → zoom-QipiAl5W.js} +2 -2
- package/dist/{zoom-DAu91HKr.js.map → zoom-QipiAl5W.js.map} +1 -1
- package/package.json +2 -1
- package/dist/GraphEl-BcYgMnN2.cjs +0 -2
- package/dist/GraphEl-BcYgMnN2.cjs.map +0 -1
- package/dist/GraphEl-CMWeARJ3.js.map +0 -1
- package/dist/index-D05lK1Te.cjs +0 -2
- package/dist/index-qfWCwobm.js +0 -682
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zoom-Bsbhil-K.cjs","sources":["../node_modules/d3-array/src/fsum.js","../node_modules/d3-array/src/merge.js","../node_modules/d3-interpolate/src/transform/decompose.js","../node_modules/d3-interpolate/src/transform/parse.js","../node_modules/d3-interpolate/src/transform/index.js","../node_modules/d3-interpolate/src/zoom.js","../node_modules/d3-timer/src/timeout.js","../node_modules/@turf/bbox/dist/esm/index.js","../node_modules/d3-geo/src/math.js","../node_modules/d3-geo/src/noop.js","../node_modules/d3-geo/src/stream.js","../node_modules/d3-geo/src/cartesian.js","../node_modules/d3-geo/src/compose.js","../node_modules/d3-geo/src/rotation.js","../node_modules/d3-geo/src/circle.js","../node_modules/d3-geo/src/clip/buffer.js","../node_modules/d3-geo/src/pointEqual.js","../node_modules/d3-geo/src/clip/rejoin.js","../node_modules/d3-geo/src/polygonContains.js","../node_modules/d3-geo/src/clip/index.js","../node_modules/d3-geo/src/clip/antimeridian.js","../node_modules/d3-geo/src/clip/circle.js","../node_modules/d3-geo/src/clip/line.js","../node_modules/d3-geo/src/clip/rectangle.js","../node_modules/d3-geo/src/identity.js","../node_modules/d3-geo/src/path/bounds.js","../node_modules/d3-geo/src/transform.js","../node_modules/d3-geo/src/projection/fit.js","../node_modules/d3-geo/src/projection/resample.js","../node_modules/d3-geo/src/projection/index.js","../node_modules/d3-geo/src/projection/conic.js","../node_modules/d3-geo/src/projection/cylindricalEqualArea.js","../node_modules/d3-geo/src/projection/conicEqualArea.js","../node_modules/d3-geo/src/projection/albers.js","../node_modules/d3-geo/src/projection/albersUsa.js","../node_modules/d3-geo/src/projection/azimuthal.js","../node_modules/d3-geo/src/projection/mercator.js","../node_modules/d3-geo/src/projection/equalEarth.js","../node_modules/d3-geo/src/projection/naturalEarth1.js","../node_modules/d3-geo/src/projection/orthographic.js","../node_modules/d3-drag/src/noevent.js","../node_modules/d3-drag/src/nodrag.js","../node_modules/d3-transition/src/transition/schedule.js","../node_modules/d3-transition/src/interrupt.js","../node_modules/d3-transition/src/selection/interrupt.js","../node_modules/d3-transition/src/transition/tween.js","../node_modules/d3-transition/src/transition/interpolate.js","../node_modules/d3-transition/src/transition/attr.js","../node_modules/d3-transition/src/transition/attrTween.js","../node_modules/d3-transition/src/transition/delay.js","../node_modules/d3-transition/src/transition/duration.js","../node_modules/d3-transition/src/transition/ease.js","../node_modules/d3-transition/src/transition/easeVarying.js","../node_modules/d3-transition/src/transition/filter.js","../node_modules/d3-transition/src/transition/merge.js","../node_modules/d3-transition/src/transition/on.js","../node_modules/d3-transition/src/transition/remove.js","../node_modules/d3-transition/src/transition/select.js","../node_modules/d3-transition/src/transition/selectAll.js","../node_modules/d3-transition/src/transition/selection.js","../node_modules/d3-transition/src/transition/style.js","../node_modules/d3-transition/src/transition/styleTween.js","../node_modules/d3-transition/src/transition/text.js","../node_modules/d3-transition/src/transition/textTween.js","../node_modules/d3-transition/src/transition/transition.js","../node_modules/d3-transition/src/transition/end.js","../node_modules/d3-transition/src/transition/index.js","../node_modules/d3-ease/src/cubic.js","../node_modules/d3-transition/src/selection/transition.js","../node_modules/d3-transition/src/selection/index.js","../node_modules/d3-zoom/src/constant.js","../node_modules/d3-zoom/src/event.js","../node_modules/d3-zoom/src/transform.js","../node_modules/d3-zoom/src/noevent.js","../node_modules/d3-zoom/src/zoom.js"],"sourcesContent":["// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423\nexport class Adder {\n constructor() {\n this._partials = new Float64Array(32);\n this._n = 0;\n }\n add(x) {\n const p = this._partials;\n let i = 0;\n for (let j = 0; j < this._n && j < 32; j++) {\n const y = p[j],\n hi = x + y,\n lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);\n if (lo) p[i++] = lo;\n x = hi;\n }\n p[i] = x;\n this._n = i + 1;\n return this;\n }\n valueOf() {\n const p = this._partials;\n let n = this._n, x, y, lo, hi = 0;\n if (n > 0) {\n hi = p[--n];\n while (n > 0) {\n x = hi;\n y = p[--n];\n hi = x + y;\n lo = y - (hi - x);\n if (lo) break;\n }\n if (n > 0 && ((lo < 0 && p[n - 1] < 0) || (lo > 0 && p[n - 1] > 0))) {\n y = lo * 2;\n x = hi + y;\n if (y == x - hi) hi = x;\n }\n }\n return hi;\n }\n}\n\nexport function fsum(values, valueof) {\n const adder = new Adder();\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n adder.add(value);\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n adder.add(value);\n }\n }\n }\n return +adder;\n}\n\nexport function fcumsum(values, valueof) {\n const adder = new Adder();\n let index = -1;\n return Float64Array.from(values, valueof === undefined\n ? v => adder.add(+v || 0)\n : v => adder.add(+valueof(v, ++index, values) || 0)\n );\n}\n","function* flatten(arrays) {\n for (const array of arrays) {\n yield* array;\n }\n}\n\nexport default function merge(arrays) {\n return Array.from(flatten(arrays));\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","var epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\nexport default (function zoomRho(rho, rho2, rho4) {\n\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n\n return i;\n }\n\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","// index.ts\nimport { coordEach } from \"@turf/meta\";\nfunction bbox(geojson, options = {}) {\n if (geojson.bbox != null && true !== options.recompute) {\n return geojson.bbox;\n }\n const result = [Infinity, Infinity, -Infinity, -Infinity];\n coordEach(geojson, (coord) => {\n if (result[0] > coord[0]) {\n result[0] = coord[0];\n }\n if (result[1] > coord[1]) {\n result[1] = coord[1];\n }\n if (result[2] < coord[0]) {\n result[2] = coord[0];\n }\n if (result[3] < coord[1]) {\n result[3] = coord[1];\n }\n });\n return result;\n}\nvar turf_bbox_default = bbox;\nexport {\n bbox,\n turf_bbox_default as default\n};\n//# sourceMappingURL=index.js.map","export var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var quarterPi = pi / 4;\nexport var tau = pi * 2;\n\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\n\nexport var abs = Math.abs;\nexport var atan = Math.atan;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var ceil = Math.ceil;\nexport var exp = Math.exp;\nexport var floor = Math.floor;\nexport var hypot = Math.hypot;\nexport var log = Math.log;\nexport var pow = Math.pow;\nexport var sin = Math.sin;\nexport var sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };\nexport var sqrt = Math.sqrt;\nexport var tan = Math.tan;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\n\nexport function haversin(x) {\n return (x = sin(x / 2)) * x;\n}\n","export default function noop() {}\n","function streamGeometry(geometry, stream) {\n if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n streamGeometryType[geometry.type](geometry, stream);\n }\n}\n\nvar streamObjectType = {\n Feature: function(object, stream) {\n streamGeometry(object.geometry, stream);\n },\n FeatureCollection: function(object, stream) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) streamGeometry(features[i].geometry, stream);\n }\n};\n\nvar streamGeometryType = {\n Sphere: function(object, stream) {\n stream.sphere();\n },\n Point: function(object, stream) {\n object = object.coordinates;\n stream.point(object[0], object[1], object[2]);\n },\n MultiPoint: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);\n },\n LineString: function(object, stream) {\n streamLine(object.coordinates, stream, 0);\n },\n MultiLineString: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamLine(coordinates[i], stream, 0);\n },\n Polygon: function(object, stream) {\n streamPolygon(object.coordinates, stream);\n },\n MultiPolygon: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamPolygon(coordinates[i], stream);\n },\n GeometryCollection: function(object, stream) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) streamGeometry(geometries[i], stream);\n }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n var i = -1, n = coordinates.length - closed, coordinate;\n stream.lineStart();\n while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n var i = -1, n = coordinates.length;\n stream.polygonStart();\n while (++i < n) streamLine(coordinates[i], stream, 1);\n stream.polygonEnd();\n}\n\nexport default function(object, stream) {\n if (object && streamObjectType.hasOwnProperty(object.type)) {\n streamObjectType[object.type](object, stream);\n } else {\n streamGeometry(object, stream);\n }\n}\n","import {asin, atan2, cos, sin, sqrt} from \"./math.js\";\n\nexport function spherical(cartesian) {\n return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];\n}\n\nexport function cartesian(spherical) {\n var lambda = spherical[0], phi = spherical[1], cosPhi = cos(phi);\n return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];\n}\n\nexport function cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n\nexport function cartesianCross(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n}\n\n// TODO return a\nexport function cartesianAddInPlace(a, b) {\n a[0] += b[0], a[1] += b[1], a[2] += b[2];\n}\n\nexport function cartesianScale(vector, k) {\n return [vector[0] * k, vector[1] * k, vector[2] * k];\n}\n\n// TODO return d\nexport function cartesianNormalizeInPlace(d) {\n var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l, d[1] /= l, d[2] /= l;\n}\n","export default function(a, b) {\n\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n\n if (a.invert && b.invert) compose.invert = function(x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n\n return compose;\n}\n","import compose from \"./compose.js\";\nimport {abs, asin, atan2, cos, degrees, pi, radians, sin, tau} from \"./math.js\";\n\nfunction rotationIdentity(lambda, phi) {\n if (abs(lambda) > pi) lambda -= Math.round(lambda / tau) * tau;\n return [lambda, phi];\n}\n\nrotationIdentity.invert = rotationIdentity;\n\nexport function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n return (deltaLambda %= tau) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))\n : rotationLambda(deltaLambda))\n : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)\n : rotationIdentity);\n}\n\nfunction forwardRotationLambda(deltaLambda) {\n return function(lambda, phi) {\n lambda += deltaLambda;\n if (abs(lambda) > pi) lambda -= Math.round(lambda / tau) * tau;\n return [lambda, phi];\n };\n}\n\nfunction rotationLambda(deltaLambda) {\n var rotation = forwardRotationLambda(deltaLambda);\n rotation.invert = forwardRotationLambda(-deltaLambda);\n return rotation;\n}\n\nfunction rotationPhiGamma(deltaPhi, deltaGamma) {\n var cosDeltaPhi = cos(deltaPhi),\n sinDeltaPhi = sin(deltaPhi),\n cosDeltaGamma = cos(deltaGamma),\n sinDeltaGamma = sin(deltaGamma);\n\n function rotation(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaPhi + x * sinDeltaPhi;\n return [\n atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),\n asin(k * cosDeltaGamma + y * sinDeltaGamma)\n ];\n }\n\n rotation.invert = function(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaGamma - y * sinDeltaGamma;\n return [\n atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),\n asin(k * cosDeltaPhi - x * sinDeltaPhi)\n ];\n };\n\n return rotation;\n}\n\nexport default function(rotate) {\n rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);\n\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n }\n\n forward.invert = function(coordinates) {\n coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n };\n\n return forward;\n}\n","import {cartesian, cartesianNormalizeInPlace, spherical} from \"./cartesian.js\";\nimport constant from \"./constant.js\";\nimport {acos, cos, degrees, epsilon, radians, sin, tau} from \"./math.js\";\nimport {rotateRadians} from \"./rotation.js\";\n\n// Generates a circle centered at [0°, 0°], with a given radius and precision.\nexport function circleStream(stream, radius, delta, direction, t0, t1) {\n if (!delta) return;\n var cosRadius = cos(radius),\n sinRadius = sin(radius),\n step = direction * delta;\n if (t0 == null) {\n t0 = radius + direction * tau;\n t1 = radius - step / 2;\n } else {\n t0 = circleRadius(cosRadius, t0);\n t1 = circleRadius(cosRadius, t1);\n if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau;\n }\n for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {\n point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);\n stream.point(point[0], point[1]);\n }\n}\n\n// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].\nfunction circleRadius(cosRadius, point) {\n point = cartesian(point), point[0] -= cosRadius;\n cartesianNormalizeInPlace(point);\n var radius = acos(-point[1]);\n return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;\n}\n\nexport default function() {\n var center = constant([0, 0]),\n radius = constant(90),\n precision = constant(2),\n ring,\n rotate,\n stream = {point: point};\n\n function point(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= degrees, x[1] *= degrees;\n }\n\n function circle() {\n var c = center.apply(this, arguments),\n r = radius.apply(this, arguments) * radians,\n p = precision.apply(this, arguments) * radians;\n ring = [];\n rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;\n circleStream(stream, r, p, 1);\n c = {type: \"Polygon\", coordinates: [ring]};\n ring = rotate = null;\n return c;\n }\n\n circle.center = function(_) {\n return arguments.length ? (center = typeof _ === \"function\" ? _ : constant([+_[0], +_[1]]), circle) : center;\n };\n\n circle.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), circle) : radius;\n };\n\n circle.precision = function(_) {\n return arguments.length ? (precision = typeof _ === \"function\" ? _ : constant(+_), circle) : precision;\n };\n\n return circle;\n}\n","import noop from \"../noop.js\";\n\nexport default function() {\n var lines = [],\n line;\n return {\n point: function(x, y, m) {\n line.push([x, y, m]);\n },\n lineStart: function() {\n lines.push(line = []);\n },\n lineEnd: noop,\n rejoin: function() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n },\n result: function() {\n var result = lines;\n lines = [];\n line = null;\n return result;\n }\n };\n}\n","import {abs, epsilon} from \"./math.js\";\n\nexport default function(a, b) {\n return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n}\n","import pointEqual from \"../pointEqual.js\";\nimport {epsilon} from \"../math.js\";\n\nfunction Intersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other; // another intersection\n this.e = entry; // is an entry?\n this.v = false; // visited\n this.n = this.p = null; // next & previous\n}\n\n// A generalized polygon clipping algorithm: given a polygon that has been cut\n// into its visible line segments, and rejoins the segments by interpolating\n// along the clip edge.\nexport default function(segments, compareIntersection, startInside, interpolate, stream) {\n var subject = [],\n clip = [],\n i,\n n;\n\n segments.forEach(function(segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n, p0 = segment[0], p1 = segment[n], x;\n\n if (pointEqual(p0, p1)) {\n if (!p0[2] && !p1[2]) {\n stream.lineStart();\n for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);\n stream.lineEnd();\n return;\n }\n // handle degenerate cases by moving the point\n p1[0] += 2 * epsilon;\n }\n\n subject.push(x = new Intersection(p0, segment, null, true));\n clip.push(x.o = new Intersection(p0, null, x, false));\n subject.push(x = new Intersection(p1, segment, null, false));\n clip.push(x.o = new Intersection(p1, null, x, true));\n });\n\n if (!subject.length) return;\n\n clip.sort(compareIntersection);\n link(subject);\n link(clip);\n\n for (i = 0, n = clip.length; i < n; ++i) {\n clip[i].e = startInside = !startInside;\n }\n\n var start = subject[0],\n points,\n point;\n\n while (1) {\n // Find first unvisited intersection.\n var current = start,\n isSubject = true;\n while (current.v) if ((current = current.n) === start) return;\n points = current.z;\n stream.lineStart();\n do {\n current.v = current.o.v = true;\n if (current.e) {\n if (isSubject) {\n for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.n.x, 1, stream);\n }\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.p.x, -1, stream);\n }\n current = current.p;\n }\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n stream.lineEnd();\n }\n}\n\nfunction link(array) {\n if (!(n = array.length)) return;\n var n,\n i = 0,\n a = array[0],\n b;\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n a.n = b = array[0];\n b.p = a;\n}\n","import {Adder} from \"d3-array\";\nimport {cartesian, cartesianCross, cartesianNormalizeInPlace} from \"./cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, epsilon2, halfPi, pi, quarterPi, sign, sin, tau} from \"./math.js\";\n\nfunction longitude(point) {\n return abs(point[0]) <= pi ? point[0] : sign(point[0]) * ((abs(point[0]) + pi) % tau - pi);\n}\n\nexport default function(polygon, point) {\n var lambda = longitude(point),\n phi = point[1],\n sinPhi = sin(phi),\n normal = [sin(lambda), -cos(lambda), 0],\n angle = 0,\n winding = 0;\n\n var sum = new Adder();\n\n if (sinPhi === 1) phi = halfPi + epsilon;\n else if (sinPhi === -1) phi = -halfPi - epsilon;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n if (!(m = (ring = polygon[i]).length)) continue;\n var ring,\n m,\n point0 = ring[m - 1],\n lambda0 = longitude(point0),\n phi0 = point0[1] / 2 + quarterPi,\n sinPhi0 = sin(phi0),\n cosPhi0 = cos(phi0);\n\n for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {\n var point1 = ring[j],\n lambda1 = longitude(point1),\n phi1 = point1[1] / 2 + quarterPi,\n sinPhi1 = sin(phi1),\n cosPhi1 = cos(phi1),\n delta = lambda1 - lambda0,\n sign = delta >= 0 ? 1 : -1,\n absDelta = sign * delta,\n antimeridian = absDelta > pi,\n k = sinPhi0 * sinPhi1;\n\n sum.add(atan2(k * sign * sin(absDelta), cosPhi0 * cosPhi1 + k * cos(absDelta)));\n angle += antimeridian ? delta + sign * tau : delta;\n\n // Are the longitudes either side of the point’s meridian (lambda),\n // and are the latitudes smaller than the parallel (phi)?\n if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {\n var arc = cartesianCross(cartesian(point0), cartesian(point1));\n cartesianNormalizeInPlace(arc);\n var intersection = cartesianCross(normal, arc);\n cartesianNormalizeInPlace(intersection);\n var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);\n if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n winding += antimeridian ^ delta >= 0 ? 1 : -1;\n }\n }\n }\n }\n\n // First, determine whether the South pole is inside or outside:\n //\n // It is inside if:\n // * the polygon winds around it in a clockwise direction.\n // * the polygon does not (cumulatively) wind around it, but has a negative\n // (counter-clockwise) area.\n //\n // Second, count the (signed) number of times a segment crosses a lambda\n // from the point to the South pole. If it is zero, then the point is the\n // same side as the South pole.\n\n return (angle < -epsilon || angle < epsilon && sum < -epsilon2) ^ (winding & 1);\n}\n","import clipBuffer from \"./buffer.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {epsilon, halfPi} from \"../math.js\";\nimport polygonContains from \"../polygonContains.js\";\nimport {merge} from \"d3-array\";\n\nexport default function(pointVisible, clipLine, interpolate, start) {\n return function(sink) {\n var line = clipLine(sink),\n ringBuffer = clipBuffer(),\n ringSink = clipLine(ringBuffer),\n polygonStarted = false,\n polygon,\n segments,\n ring;\n\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = merge(segments);\n var startInside = polygonContains(polygon, start);\n if (segments.length) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n clipRejoin(segments, compareIntersection, startInside, interpolate, sink);\n } else if (startInside) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n }\n if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function() {\n sink.polygonStart();\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n sink.polygonEnd();\n }\n };\n\n function point(lambda, phi) {\n if (pointVisible(lambda, phi)) sink.point(lambda, phi);\n }\n\n function pointLine(lambda, phi) {\n line.point(lambda, phi);\n }\n\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n\n function pointRing(lambda, phi) {\n ring.push([lambda, phi]);\n ringSink.point(lambda, phi);\n }\n\n function ringStart() {\n ringSink.lineStart();\n ring = [];\n }\n\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringSink.lineEnd();\n\n var clean = ringSink.clean(),\n ringSegments = ringBuffer.result(),\n i, n = ringSegments.length, m,\n segment,\n point;\n\n ring.pop();\n polygon.push(ring);\n ring = null;\n\n if (!n) return;\n\n // No intersections.\n if (clean & 1) {\n segment = ringSegments[0];\n if ((m = segment.length - 1) > 0) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);\n sink.lineEnd();\n }\n return;\n }\n\n // Rejoin connected segments.\n // TODO reuse ringBuffer.rejoin()?\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n\n segments.push(ringSegments.filter(validSegment));\n }\n\n return clip;\n };\n}\n\nfunction validSegment(segment) {\n return segment.length > 1;\n}\n\n// Intersections are sorted along the clip edge. For both antimeridian cutting\n// and circle clipping, the same comparison is used.\nfunction compareIntersection(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1])\n - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);\n}\n","import clip from \"./index.js\";\nimport {abs, atan, cos, epsilon, halfPi, pi, sin} from \"../math.js\";\n\nexport default clip(\n function() { return true; },\n clipAntimeridianLine,\n clipAntimeridianInterpolate,\n [-pi, -halfPi]\n);\n\n// Takes a line and cuts into visible segments. Return values: 0 - there were\n// intersections or the line was empty; 1 - no intersections; 2 - there were\n// intersections, and the first and last segments should be rejoined.\nfunction clipAntimeridianLine(stream) {\n var lambda0 = NaN,\n phi0 = NaN,\n sign0 = NaN,\n clean; // no intersections\n\n return {\n lineStart: function() {\n stream.lineStart();\n clean = 1;\n },\n point: function(lambda1, phi1) {\n var sign1 = lambda1 > 0 ? pi : -pi,\n delta = abs(lambda1 - lambda0);\n if (abs(delta - pi) < epsilon) { // line crosses a pole\n stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi : -halfPi);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n stream.point(lambda1, phi0);\n clean = 0;\n } else if (sign0 !== sign1 && delta >= pi) { // line crosses antimeridian\n if (abs(lambda0 - sign0) < epsilon) lambda0 -= sign0 * epsilon; // handle degeneracies\n if (abs(lambda1 - sign1) < epsilon) lambda1 -= sign1 * epsilon;\n phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n clean = 0;\n }\n stream.point(lambda0 = lambda1, phi0 = phi1);\n sign0 = sign1;\n },\n lineEnd: function() {\n stream.lineEnd();\n lambda0 = phi0 = NaN;\n },\n clean: function() {\n return 2 - clean; // if intersections, rejoin first and last segments\n }\n };\n}\n\nfunction clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {\n var cosPhi0,\n cosPhi1,\n sinLambda0Lambda1 = sin(lambda0 - lambda1);\n return abs(sinLambda0Lambda1) > epsilon\n ? atan((sin(phi0) * (cosPhi1 = cos(phi1)) * sin(lambda1)\n - sin(phi1) * (cosPhi0 = cos(phi0)) * sin(lambda0))\n / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))\n : (phi0 + phi1) / 2;\n}\n\nfunction clipAntimeridianInterpolate(from, to, direction, stream) {\n var phi;\n if (from == null) {\n phi = direction * halfPi;\n stream.point(-pi, phi);\n stream.point(0, phi);\n stream.point(pi, phi);\n stream.point(pi, 0);\n stream.point(pi, -phi);\n stream.point(0, -phi);\n stream.point(-pi, -phi);\n stream.point(-pi, 0);\n stream.point(-pi, phi);\n } else if (abs(from[0] - to[0]) > epsilon) {\n var lambda = from[0] < to[0] ? pi : -pi;\n phi = direction * lambda / 2;\n stream.point(-lambda, phi);\n stream.point(0, phi);\n stream.point(lambda, phi);\n } else {\n stream.point(to[0], to[1]);\n }\n}\n","import {cartesian, cartesianAddInPlace, cartesianCross, cartesianDot, cartesianScale, spherical} from \"../cartesian.js\";\nimport {circleStream} from \"../circle.js\";\nimport {abs, cos, epsilon, pi, radians, sqrt} from \"../math.js\";\nimport pointEqual from \"../pointEqual.js\";\nimport clip from \"./index.js\";\n\nexport default function(radius) {\n var cr = cos(radius),\n delta = 2 * radians,\n smallRadius = cr > 0,\n notHemisphere = abs(cr) > epsilon; // TODO optimise for this common case\n\n function interpolate(from, to, direction, stream) {\n circleStream(stream, radius, delta, direction, from, to);\n }\n\n function visible(lambda, phi) {\n return cos(lambda) * cos(phi) > cr;\n }\n\n // Takes a line and cuts into visible segments. Return values used for polygon\n // clipping: 0 - there were intersections or the line was empty; 1 - no\n // intersections 2 - there were intersections, and the first and last segments\n // should be rejoined.\n function clipLine(stream) {\n var point0, // previous point\n c0, // code for previous point\n v0, // visibility of previous point\n v00, // visibility of first point\n clean; // no intersections\n return {\n lineStart: function() {\n v00 = v0 = false;\n clean = 1;\n },\n point: function(lambda, phi) {\n var point1 = [lambda, phi],\n point2,\n v = visible(lambda, phi),\n c = smallRadius\n ? v ? 0 : code(lambda, phi)\n : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;\n if (!point0 && (v00 = v0 = v)) stream.lineStart();\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2))\n point1[2] = 1;\n }\n if (v !== v0) {\n clean = 0;\n if (v) {\n // outside going in\n stream.lineStart();\n point2 = intersect(point1, point0);\n stream.point(point2[0], point2[1]);\n } else {\n // inside going out\n point2 = intersect(point0, point1);\n stream.point(point2[0], point2[1], 2);\n stream.lineEnd();\n }\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t;\n // If the codes for two points are different, or are both zero,\n // and there this segment intersects with the small circle.\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n clean = 0;\n if (smallRadius) {\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n } else {\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n stream.lineStart();\n stream.point(t[0][0], t[0][1], 3);\n }\n }\n }\n if (v && (!point0 || !pointEqual(point0, point1))) {\n stream.point(point1[0], point1[1]);\n }\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function() {\n if (v0) stream.lineEnd();\n point0 = null;\n },\n // Rejoin first and last segments if there were intersections and the first\n // and last points were visible.\n clean: function() {\n return clean | ((v00 && v0) << 1);\n }\n };\n }\n\n // Intersects the great circle between a and b with the clip circle.\n function intersect(a, b, two) {\n var pa = cartesian(a),\n pb = cartesian(b);\n\n // We have two planes, n1.p = d1 and n2.p = d2.\n // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).\n var n1 = [1, 0, 0], // normal\n n2 = cartesianCross(pa, pb),\n n2n2 = cartesianDot(n2, n2),\n n1n2 = n2[0], // cartesianDot(n1, n2),\n determinant = n2n2 - n1n2 * n1n2;\n\n // Two polar points.\n if (!determinant) return !two && a;\n\n var c1 = cr * n2n2 / determinant,\n c2 = -cr * n1n2 / determinant,\n n1xn2 = cartesianCross(n1, n2),\n A = cartesianScale(n1, c1),\n B = cartesianScale(n2, c2);\n cartesianAddInPlace(A, B);\n\n // Solve |p(t)|^2 = 1.\n var u = n1xn2,\n w = cartesianDot(A, u),\n uu = cartesianDot(u, u),\n t2 = w * w - uu * (cartesianDot(A, A) - 1);\n\n if (t2 < 0) return;\n\n var t = sqrt(t2),\n q = cartesianScale(u, (-w - t) / uu);\n cartesianAddInPlace(q, A);\n q = spherical(q);\n\n if (!two) return q;\n\n // Two intersection points.\n var lambda0 = a[0],\n lambda1 = b[0],\n phi0 = a[1],\n phi1 = b[1],\n z;\n\n if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;\n\n var delta = lambda1 - lambda0,\n polar = abs(delta - pi) < epsilon,\n meridian = polar || delta < epsilon;\n\n if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;\n\n // Check that the first point is between a and b.\n if (meridian\n ? polar\n ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon ? phi0 : phi1)\n : phi0 <= q[1] && q[1] <= phi1\n : delta > pi ^ (lambda0 <= q[0] && q[0] <= lambda1)) {\n var q1 = cartesianScale(u, (-w + t) / uu);\n cartesianAddInPlace(q1, A);\n return [q, spherical(q1)];\n }\n }\n\n // Generates a 4-bit vector representing the location of a point relative to\n // the small circle's bounding box.\n function code(lambda, phi) {\n var r = smallRadius ? radius : pi - radius,\n code = 0;\n if (lambda < -r) code |= 1; // left\n else if (lambda > r) code |= 2; // right\n if (phi < -r) code |= 4; // below\n else if (phi > r) code |= 8; // above\n return code;\n }\n\n return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi, radius - pi]);\n}\n","export default function(a, b, x0, y0, x1, y1) {\n var ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;\n if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;\n return true;\n}\n","import {abs, epsilon} from \"../math.js\";\nimport clipBuffer from \"./buffer.js\";\nimport clipLine from \"./line.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {merge} from \"d3-array\";\n\nvar clipMax = 1e9, clipMin = -clipMax;\n\n// TODO Use d3-polygon’s polygonContains here for the ring check?\n// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?\n\nexport default function clipRectangle(x0, y0, x1, y1) {\n\n function visible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n\n function interpolate(from, to, direction, stream) {\n var a = 0, a1 = 0;\n if (from == null\n || (a = corner(from, direction)) !== (a1 = corner(to, direction))\n || comparePoint(from, to) < 0 ^ direction > 0) {\n do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n\n function corner(p, direction) {\n return abs(p[0] - x0) < epsilon ? direction > 0 ? 0 : 3\n : abs(p[0] - x1) < epsilon ? direction > 0 ? 2 : 1\n : abs(p[1] - y0) < epsilon ? direction > 0 ? 1 : 0\n : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon\n }\n\n function compareIntersection(a, b) {\n return comparePoint(a.x, b.x);\n }\n\n function comparePoint(a, b) {\n var ca = corner(a, 1),\n cb = corner(b, 1);\n return ca !== cb ? ca - cb\n : ca === 0 ? b[1] - a[1]\n : ca === 1 ? a[0] - b[0]\n : ca === 2 ? a[1] - b[1]\n : b[0] - a[0];\n }\n\n return function(stream) {\n var activeStream = stream,\n bufferStream = clipBuffer(),\n segments,\n polygon,\n ring,\n x__, y__, v__, // first point\n x_, y_, v_, // previous point\n first,\n clean;\n\n var clipStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: polygonStart,\n polygonEnd: polygonEnd\n };\n\n function point(x, y) {\n if (visible(x, y)) activeStream.point(x, y);\n }\n\n function polygonInside() {\n var winding = 0;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {\n a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];\n if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }\n else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }\n }\n }\n\n return winding;\n }\n\n // Buffer geometry within a polygon and then clip it en masse.\n function polygonStart() {\n activeStream = bufferStream, segments = [], polygon = [], clean = true;\n }\n\n function polygonEnd() {\n var startInside = polygonInside(),\n cleanInside = clean && startInside,\n visible = (segments = merge(segments)).length;\n if (cleanInside || visible) {\n stream.polygonStart();\n if (cleanInside) {\n stream.lineStart();\n interpolate(null, null, 1, stream);\n stream.lineEnd();\n }\n if (visible) {\n clipRejoin(segments, compareIntersection, startInside, interpolate, stream);\n }\n stream.polygonEnd();\n }\n activeStream = stream, segments = polygon = ring = null;\n }\n\n function lineStart() {\n clipStream.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n }\n\n // TODO rather than special-case polygons, simply handle them separately.\n // Ideally, coincident intersection points should be jittered to avoid\n // clipping issues.\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferStream.rejoin();\n segments.push(bufferStream.result());\n }\n clipStream.point = point;\n if (v_) activeStream.lineEnd();\n }\n\n function linePoint(x, y) {\n var v = visible(x, y);\n if (polygon) ring.push([x, y]);\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n }\n } else {\n if (v && v_) activeStream.point(x, y);\n else {\n var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],\n b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];\n if (clipLine(a, b, x0, y0, x1, y1)) {\n if (!v_) {\n activeStream.lineStart();\n activeStream.point(a[0], a[1]);\n }\n activeStream.point(b[0], b[1]);\n if (!v) activeStream.lineEnd();\n clean = false;\n } else if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n clean = false;\n }\n }\n }\n x_ = x, y_ = y, v_ = v;\n }\n\n return clipStream;\n };\n}\n","export default x => x;\n","import noop from \"../noop.js\";\n\nvar x0 = Infinity,\n y0 = x0,\n x1 = -x0,\n y1 = x1;\n\nvar boundsStream = {\n point: boundsPoint,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop,\n result: function() {\n var bounds = [[x0, y0], [x1, y1]];\n x1 = y1 = -(y0 = x0 = Infinity);\n return bounds;\n }\n};\n\nfunction boundsPoint(x, y) {\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n}\n\nexport default boundsStream;\n","export default function(methods) {\n return {\n stream: transformer(methods)\n };\n}\n\nexport function transformer(methods) {\n return function(stream) {\n var s = new TransformStream;\n for (var key in methods) s[key] = methods[key];\n s.stream = stream;\n return s;\n };\n}\n\nfunction TransformStream() {}\n\nTransformStream.prototype = {\n constructor: TransformStream,\n point: function(x, y) { this.stream.point(x, y); },\n sphere: function() { this.stream.sphere(); },\n lineStart: function() { this.stream.lineStart(); },\n lineEnd: function() { this.stream.lineEnd(); },\n polygonStart: function() { this.stream.polygonStart(); },\n polygonEnd: function() { this.stream.polygonEnd(); }\n};\n","import {default as geoStream} from \"../stream.js\";\nimport boundsStream from \"../path/bounds.js\";\n\nfunction fit(projection, fitBounds, object) {\n var clip = projection.clipExtent && projection.clipExtent();\n projection.scale(150).translate([0, 0]);\n if (clip != null) projection.clipExtent(null);\n geoStream(object, projection.stream(boundsStream));\n fitBounds(boundsStream.result());\n if (clip != null) projection.clipExtent(clip);\n return projection;\n}\n\nexport function fitExtent(projection, extent, object) {\n return fit(projection, function(b) {\n var w = extent[1][0] - extent[0][0],\n h = extent[1][1] - extent[0][1],\n k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),\n x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,\n y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitSize(projection, size, object) {\n return fitExtent(projection, [[0, 0], size], object);\n}\n\nexport function fitWidth(projection, width, object) {\n return fit(projection, function(b) {\n var w = +width,\n k = w / (b[1][0] - b[0][0]),\n x = (w - k * (b[1][0] + b[0][0])) / 2,\n y = -k * b[0][1];\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitHeight(projection, height, object) {\n return fit(projection, function(b) {\n var h = +height,\n k = h / (b[1][1] - b[0][1]),\n x = -k * b[0][0],\n y = (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n","import {cartesian} from \"../cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, radians, sqrt} from \"../math.js\";\nimport {transformer} from \"../transform.js\";\n\nvar maxDepth = 16, // maximum depth of subdivision\n cosMinDistance = cos(30 * radians); // cos(minimum angular distance)\n\nexport default function(project, delta2) {\n return +delta2 ? resample(project, delta2) : resampleNone(project);\n}\n\nfunction resampleNone(project) {\n return transformer({\n point: function(x, y) {\n x = project(x, y);\n this.stream.point(x[0], x[1]);\n }\n });\n}\n\nfunction resample(project, delta2) {\n\n function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0,\n dy = y1 - y0,\n d2 = dx * dx + dy * dy;\n if (d2 > 4 * delta2 && depth--) {\n var a = a0 + a1,\n b = b0 + b1,\n c = c0 + c1,\n m = sqrt(a * a + b * b + c * c),\n phi2 = asin(c /= m),\n lambda2 = abs(abs(c) - 1) < epsilon || abs(lambda0 - lambda1) < epsilon ? (lambda0 + lambda1) / 2 : atan2(b, a),\n p = project(lambda2, phi2),\n x2 = p[0],\n y2 = p[1],\n dx2 = x2 - x0,\n dy2 = y2 - y0,\n dz = dy * dx2 - dx * dy2;\n if (dz * dz / d2 > delta2 // perpendicular projected distance\n || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end\n || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);\n }\n }\n }\n return function(stream) {\n var lambda00, x00, y00, a00, b00, c00, // first point\n lambda0, x0, y0, a0, b0, c0; // previous point\n\n var resampleStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },\n polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }\n };\n\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n\n function lineStart() {\n x0 = NaN;\n resampleStream.point = linePoint;\n stream.lineStart();\n }\n\n function linePoint(lambda, phi) {\n var c = cartesian([lambda, phi]), p = project(lambda, phi);\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n\n function lineEnd() {\n resampleStream.point = point;\n stream.lineEnd();\n }\n\n function ringStart() {\n lineStart();\n resampleStream.point = ringPoint;\n resampleStream.lineEnd = ringEnd;\n }\n\n function ringPoint(lambda, phi) {\n linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resampleStream.point = linePoint;\n }\n\n function ringEnd() {\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);\n resampleStream.lineEnd = lineEnd;\n lineEnd();\n }\n\n return resampleStream;\n };\n}\n","import clipAntimeridian from \"../clip/antimeridian.js\";\nimport clipCircle from \"../clip/circle.js\";\nimport clipRectangle from \"../clip/rectangle.js\";\nimport compose from \"../compose.js\";\nimport identity from \"../identity.js\";\nimport {cos, degrees, radians, sin, sqrt} from \"../math.js\";\nimport {rotateRadians} from \"../rotation.js\";\nimport {transformer} from \"../transform.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\nimport resample from \"./resample.js\";\n\nvar transformRadians = transformer({\n point: function(x, y) {\n this.stream.point(x * radians, y * radians);\n }\n});\n\nfunction transformRotate(rotate) {\n return transformer({\n point: function(x, y) {\n var r = rotate(x, y);\n return this.stream.point(r[0], r[1]);\n }\n });\n}\n\nfunction scaleTranslate(k, dx, dy, sx, sy) {\n function transform(x, y) {\n x *= sx; y *= sy;\n return [dx + k * x, dy - k * y];\n }\n transform.invert = function(x, y) {\n return [(x - dx) / k * sx, (dy - y) / k * sy];\n };\n return transform;\n}\n\nfunction scaleTranslateRotate(k, dx, dy, sx, sy, alpha) {\n if (!alpha) return scaleTranslate(k, dx, dy, sx, sy);\n var cosAlpha = cos(alpha),\n sinAlpha = sin(alpha),\n a = cosAlpha * k,\n b = sinAlpha * k,\n ai = cosAlpha / k,\n bi = sinAlpha / k,\n ci = (sinAlpha * dy - cosAlpha * dx) / k,\n fi = (sinAlpha * dx + cosAlpha * dy) / k;\n function transform(x, y) {\n x *= sx; y *= sy;\n return [a * x - b * y + dx, dy - b * x - a * y];\n }\n transform.invert = function(x, y) {\n return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)];\n };\n return transform;\n}\n\nexport default function projection(project) {\n return projectionMutator(function() { return project; })();\n}\n\nexport function projectionMutator(projectAt) {\n var project,\n k = 150, // scale\n x = 480, y = 250, // translate\n lambda = 0, phi = 0, // center\n deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate\n alpha = 0, // post-rotate angle\n sx = 1, // reflectX\n sy = 1, // reflectX\n theta = null, preclip = clipAntimeridian, // pre-clip angle\n x0 = null, y0, x1, y1, postclip = identity, // post-clip extent\n delta2 = 0.5, // precision\n projectResample,\n projectTransform,\n projectRotateTransform,\n cache,\n cacheStream;\n\n function projection(point) {\n return projectRotateTransform(point[0] * radians, point[1] * radians);\n }\n\n function invert(point) {\n point = projectRotateTransform.invert(point[0], point[1]);\n return point && [point[0] * degrees, point[1] * degrees];\n }\n\n projection.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));\n };\n\n projection.preclip = function(_) {\n return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;\n };\n\n projection.postclip = function(_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n };\n\n projection.clipAngle = function(_) {\n return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees;\n };\n\n projection.clipExtent = function(_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n projection.scale = function(_) {\n return arguments.length ? (k = +_, recenter()) : k;\n };\n\n projection.translate = function(_) {\n return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n };\n\n projection.center = function(_) {\n return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];\n };\n\n projection.rotate = function(_) {\n return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];\n };\n\n projection.angle = function(_) {\n return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees;\n };\n\n projection.reflectX = function(_) {\n return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0;\n };\n\n projection.reflectY = function(_) {\n return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0;\n };\n\n projection.precision = function(_) {\n return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);\n };\n\n projection.fitExtent = function(extent, object) {\n return fitExtent(projection, extent, object);\n };\n\n projection.fitSize = function(size, object) {\n return fitSize(projection, size, object);\n };\n\n projection.fitWidth = function(width, object) {\n return fitWidth(projection, width, object);\n };\n\n projection.fitHeight = function(height, object) {\n return fitHeight(projection, height, object);\n };\n\n function recenter() {\n var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)),\n transform = scaleTranslateRotate(k, x - center[0], y - center[1], sx, sy, alpha);\n rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma);\n projectTransform = compose(project, transform);\n projectRotateTransform = compose(rotate, projectTransform);\n projectResample = resample(projectTransform, delta2);\n return reset();\n }\n\n function reset() {\n cache = cacheStream = null;\n return projection;\n }\n\n return function() {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return recenter();\n };\n}\n","import {degrees, pi, radians} from \"../math.js\";\nimport {projectionMutator} from \"./index.js\";\n\nexport function conicProjection(projectAt) {\n var phi0 = 0,\n phi1 = pi / 3,\n m = projectionMutator(projectAt),\n p = m(phi0, phi1);\n\n p.parallels = function(_) {\n return arguments.length ? m(phi0 = _[0] * radians, phi1 = _[1] * radians) : [phi0 * degrees, phi1 * degrees];\n };\n\n return p;\n}\n","import {asin, cos, sin} from \"../math.js\";\n\nexport function cylindricalEqualAreaRaw(phi0) {\n var cosPhi0 = cos(phi0);\n\n function forward(lambda, phi) {\n return [lambda * cosPhi0, sin(phi) / cosPhi0];\n }\n\n forward.invert = function(x, y) {\n return [x / cosPhi0, asin(y * cosPhi0)];\n };\n\n return forward;\n}\n","import {abs, asin, atan2, cos, epsilon, pi, sign, sin, sqrt} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {cylindricalEqualAreaRaw} from \"./cylindricalEqualArea.js\";\n\nexport function conicEqualAreaRaw(y0, y1) {\n var sy0 = sin(y0), n = (sy0 + sin(y1)) / 2;\n\n // Are the parallels symmetrical around the Equator?\n if (abs(n) < epsilon) return cylindricalEqualAreaRaw(y0);\n\n var c = 1 + sy0 * (2 * n - sy0), r0 = sqrt(c) / n;\n\n function project(x, y) {\n var r = sqrt(c - 2 * n * sin(y)) / n;\n return [r * sin(x *= n), r0 - r * cos(x)];\n }\n\n project.invert = function(x, y) {\n var r0y = r0 - y,\n l = atan2(x, abs(r0y)) * sign(r0y);\n if (r0y * n < 0)\n l -= pi * sign(x) * sign(r0y);\n return [l / n, asin((c - (x * x + r0y * r0y) * n * n) / (2 * n))];\n };\n\n return project;\n}\n\nexport default function() {\n return conicProjection(conicEqualAreaRaw)\n .scale(155.424)\n .center([0, 33.6442]);\n}\n","import conicEqualArea from \"./conicEqualArea.js\";\n\nexport default function() {\n return conicEqualArea()\n .parallels([29.5, 45.5])\n .scale(1070)\n .translate([480, 250])\n .rotate([96, 0])\n .center([-0.6, 38.7]);\n}\n","import {epsilon} from \"../math.js\";\nimport albers from \"./albers.js\";\nimport conicEqualArea from \"./conicEqualArea.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\n\n// The projections must have mutually exclusive clip regions on the sphere,\n// as this will avoid emitting interleaving lines and polygons.\nfunction multiplex(streams) {\n var n = streams.length;\n return {\n point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); },\n sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); },\n lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); },\n lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); },\n polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); },\n polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); }\n };\n}\n\n// A composite projection for the United States, configured by default for\n// 960×500. The projection also works quite well at 960×600 if you change the\n// scale to 1285 and adjust the translate accordingly. The set of standard\n// parallels for each region comes from USGS, which is published here:\n// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers\nexport default function() {\n var cache,\n cacheStream,\n lower48 = albers(), lower48Point,\n alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338\n hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007\n point, pointStream = {point: function(x, y) { point = [x, y]; }};\n\n function albersUsa(coordinates) {\n var x = coordinates[0], y = coordinates[1];\n return point = null,\n (lower48Point.point(x, y), point)\n || (alaskaPoint.point(x, y), point)\n || (hawaiiPoint.point(x, y), point);\n }\n\n albersUsa.invert = function(coordinates) {\n var k = lower48.scale(),\n t = lower48.translate(),\n x = (coordinates[0] - t[0]) / k,\n y = (coordinates[1] - t[1]) / k;\n return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska\n : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii\n : lower48).invert(coordinates);\n };\n\n albersUsa.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);\n };\n\n albersUsa.precision = function(_) {\n if (!arguments.length) return lower48.precision();\n lower48.precision(_), alaska.precision(_), hawaii.precision(_);\n return reset();\n };\n\n albersUsa.scale = function(_) {\n if (!arguments.length) return lower48.scale();\n lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);\n return albersUsa.translate(lower48.translate());\n };\n\n albersUsa.translate = function(_) {\n if (!arguments.length) return lower48.translate();\n var k = lower48.scale(), x = +_[0], y = +_[1];\n\n lower48Point = lower48\n .translate(_)\n .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]])\n .stream(pointStream);\n\n alaskaPoint = alaska\n .translate([x - 0.307 * k, y + 0.201 * k])\n .clipExtent([[x - 0.425 * k + epsilon, y + 0.120 * k + epsilon], [x - 0.214 * k - epsilon, y + 0.234 * k - epsilon]])\n .stream(pointStream);\n\n hawaiiPoint = hawaii\n .translate([x - 0.205 * k, y + 0.212 * k])\n .clipExtent([[x - 0.214 * k + epsilon, y + 0.166 * k + epsilon], [x - 0.115 * k - epsilon, y + 0.234 * k - epsilon]])\n .stream(pointStream);\n\n return reset();\n };\n\n albersUsa.fitExtent = function(extent, object) {\n return fitExtent(albersUsa, extent, object);\n };\n\n albersUsa.fitSize = function(size, object) {\n return fitSize(albersUsa, size, object);\n };\n\n albersUsa.fitWidth = function(width, object) {\n return fitWidth(albersUsa, width, object);\n };\n\n albersUsa.fitHeight = function(height, object) {\n return fitHeight(albersUsa, height, object);\n };\n\n function reset() {\n cache = cacheStream = null;\n return albersUsa;\n }\n\n return albersUsa.scale(1070);\n}\n","import {asin, atan2, cos, sin, sqrt} from \"../math.js\";\n\nexport function azimuthalRaw(scale) {\n return function(x, y) {\n var cx = cos(x),\n cy = cos(y),\n k = scale(cx * cy);\n if (k === Infinity) return [2, 0];\n return [\n k * cy * sin(x),\n k * sin(y)\n ];\n }\n}\n\nexport function azimuthalInvert(angle) {\n return function(x, y) {\n var z = sqrt(x * x + y * y),\n c = angle(z),\n sc = sin(c),\n cc = cos(c);\n return [\n atan2(x * sc, z * cc),\n asin(z && y * sc / z)\n ];\n }\n}\n","import {atan, exp, halfPi, log, pi, tan, tau} from \"../math.js\";\nimport rotation from \"../rotation.js\";\nimport projection from \"./index.js\";\n\nexport function mercatorRaw(lambda, phi) {\n return [lambda, log(tan((halfPi + phi) / 2))];\n}\n\nmercatorRaw.invert = function(x, y) {\n return [x, 2 * atan(exp(y)) - halfPi];\n};\n\nexport default function() {\n return mercatorProjection(mercatorRaw)\n .scale(961 / tau);\n}\n\nexport function mercatorProjection(project) {\n var m = projection(project),\n center = m.center,\n scale = m.scale,\n translate = m.translate,\n clipExtent = m.clipExtent,\n x0 = null, y0, x1, y1; // clip extent\n\n m.scale = function(_) {\n return arguments.length ? (scale(_), reclip()) : scale();\n };\n\n m.translate = function(_) {\n return arguments.length ? (translate(_), reclip()) : translate();\n };\n\n m.center = function(_) {\n return arguments.length ? (center(_), reclip()) : center();\n };\n\n m.clipExtent = function(_) {\n return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n function reclip() {\n var k = pi * scale(),\n t = m(rotation(m.rotate()).invert([0, 0]));\n return clipExtent(x0 == null\n ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw\n ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]\n : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);\n }\n\n return reclip();\n}\n","import projection from \"./index.js\";\nimport {abs, asin, cos, epsilon2, sin, sqrt} from \"../math.js\";\n\nvar A1 = 1.340264,\n A2 = -0.081106,\n A3 = 0.000893,\n A4 = 0.003796,\n M = sqrt(3) / 2,\n iterations = 12;\n\nexport function equalEarthRaw(lambda, phi) {\n var l = asin(M * sin(phi)), l2 = l * l, l6 = l2 * l2 * l2;\n return [\n lambda * cos(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))),\n l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2))\n ];\n}\n\nequalEarthRaw.invert = function(x, y) {\n var l = y, l2 = l * l, l6 = l2 * l2 * l2;\n for (var i = 0, delta, fy, fpy; i < iterations; ++i) {\n fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y;\n fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2);\n l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2;\n if (abs(delta) < epsilon2) break;\n }\n return [\n M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / cos(l),\n asin(sin(l) / M)\n ];\n};\n\nexport default function() {\n return projection(equalEarthRaw)\n .scale(177.158);\n}\n","import projection from \"./index.js\";\nimport {abs, epsilon} from \"../math.js\";\n\nexport function naturalEarth1Raw(lambda, phi) {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n return [\n lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))),\n phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))\n ];\n}\n\nnaturalEarth1Raw.invert = function(x, y) {\n var phi = y, i = 25, delta;\n do {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) /\n (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4)));\n } while (abs(delta) > epsilon && --i > 0);\n return [\n x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))),\n phi\n ];\n};\n\nexport default function() {\n return projection(naturalEarth1Raw)\n .scale(175.295);\n}\n","import {asin, cos, epsilon, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function orthographicRaw(x, y) {\n return [cos(y) * sin(x), sin(y)];\n}\n\northographicRaw.invert = azimuthalInvert(asin);\n\nexport default function() {\n return projection(orthographicRaw)\n .scale(249.5)\n .clipAngle(90 + epsilon);\n}\n","// These are typically used in conjunction with noevent to ensure that we can\n// preventDefault on the event.\nexport const nonpassive = {passive: false};\nexport const nonpassivecapture = {capture: true, passive: false};\n\nexport function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent, {nonpassivecapture} from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, nonpassivecapture);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, nonpassivecapture);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, nonpassivecapture);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","export default x => () => x;\n","export default function ZoomEvent(type, {\n sourceEvent,\n target,\n transform,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n transform: {value: transform, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {select, pointer} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === 'wheel') && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchfirst,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0,\n tapDistance = 10;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled, {passive: false})\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point, event) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point, event);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .event(event)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p, event) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p, event);\n };\n\n zoom.scaleTo = function(selection, k, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p, event);\n };\n\n zoom.translateBy = function(selection, x, y, event) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n }, null, event);\n };\n\n zoom.translateTo = function(selection, x, y, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p, event);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point, event) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).event(event).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).event(event).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args).event(event),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n event: function(event) {\n if (event) this.sourceEvent = event;\n return this;\n },\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function wheeled(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, args).event(event),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = pointer(event);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent(event);\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned(event, ...args) {\n if (touchending || !filter.apply(this, arguments)) return;\n var currentTarget = event.currentTarget,\n g = gesture(this, args, true).event(event),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = pointer(event, currentTarget),\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved(event) {\n noevent(event);\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.event(event)\n .zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped(event) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent(event);\n g.event(event).end();\n }\n }\n\n function dblclicked(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n\n noevent(event);\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);\n else select(this).call(zoom.transform, t1, p0, event);\n }\n\n function touchstarted(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, args, event.changedTouches.length === n).event(event),\n started, i, t, p;\n\n nopropagation(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation(event);\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n t = pointer(t, this);\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n zoom.tapDistance = function(_) {\n return arguments.length ? (tapDistance = +_, zoom) : tapDistance;\n };\n\n return zoom;\n}\n"],"names":["Adder","x","p","j","y","hi","lo","n","flatten","arrays","array","merge","degrees","identity","decompose","a","b","c","d","e","f","scaleX","scaleY","skewX","svgNode","parseCss","value","m","parseSvg","interpolateTransform","parse","pxComma","pxParen","degParen","pop","s","translate","xa","ya","xb","yb","q","i","number","rotate","scale","t","o","interpolateTransformCss","interpolateTransformSvg","epsilon2","cosh","sinh","tanh","interpolateZoom","zoomRho","rho","rho2","rho4","zoom","p0","p1","ux0","uy0","w0","ux1","uy1","w1","dx","dy","d2","S","d1","b0","b1","r0","r1","coshr0","u","_","_1","_2","_4","timeout","callback","delay","time","Timer","elapsed","bbox","geojson","options","result","coordEach","coord","turf_bbox_default","epsilon","pi","halfPi","quarterPi","tau","radians","abs","atan","atan2","cos","exp","log","sin","sign","sqrt","tan","acos","asin","noop","streamGeometry","geometry","stream","streamGeometryType","streamObjectType","object","features","coordinates","streamLine","streamPolygon","geometries","closed","coordinate","geoStream","spherical","cartesian","lambda","phi","cosPhi","cartesianDot","cartesianCross","cartesianAddInPlace","cartesianScale","vector","k","cartesianNormalizeInPlace","l","compose","rotationIdentity","rotateRadians","deltaLambda","deltaPhi","deltaGamma","rotationLambda","rotationPhiGamma","forwardRotationLambda","rotation","cosDeltaPhi","sinDeltaPhi","cosDeltaGamma","sinDeltaGamma","z","forward","circleStream","radius","delta","direction","t0","t1","cosRadius","sinRadius","step","circleRadius","point","clipBuffer","lines","line","pointEqual","Intersection","points","other","entry","clipRejoin","segments","compareIntersection","startInside","interpolate","subject","clip","segment","link","start","current","isSubject","longitude","polygonContains","polygon","sinPhi","normal","angle","winding","sum","ring","point0","lambda0","phi0","sinPhi0","cosPhi0","lambda1","sinPhi1","cosPhi1","point1","phi1","absDelta","antimeridian","arc","intersection","phiArc","pointVisible","clipLine","sink","ringBuffer","ringSink","polygonStarted","lineStart","lineEnd","pointRing","ringStart","ringEnd","pointLine","clean","ringSegments","validSegment","clipAntimeridian","clipAntimeridianLine","clipAntimeridianInterpolate","sign0","sign1","clipAntimeridianIntersect","sinLambda0Lambda1","from","to","clipCircle","cr","smallRadius","notHemisphere","visible","c0","v0","v00","point2","v","code","intersect","two","pa","pb","n1","n2","n2n2","n1n2","determinant","c1","c2","n1xn2","A","B","w","uu","t2","polar","meridian","q1","r","x0","y0","x1","y1","ax","ay","bx","by","clipMax","clipMin","clipRectangle","a1","corner","comparePoint","ca","cb","activeStream","bufferStream","x__","y__","v__","x_","y_","v_","first","clipStream","polygonStart","polygonEnd","polygonInside","a0","cleanInside","linePoint","identity$1","boundsStream","boundsPoint","bounds","transformer","methods","TransformStream","key","fit","projection","fitBounds","fitExtent","extent","h","fitSize","size","fitWidth","width","fitHeight","height","maxDepth","cosMinDistance","resample","project","delta2","resampleNone","resampleLineTo","depth","phi2","lambda2","x2","y2","dx2","dy2","dz","lambda00","x00","y00","a00","b00","c00","resampleStream","ringPoint","transformRadians","transformRotate","scaleTranslate","sx","sy","transform","scaleTranslateRotate","alpha","cosAlpha","sinAlpha","ai","bi","ci","fi","projectionMutator","projectAt","theta","preclip","postclip","projectResample","projectTransform","projectRotateTransform","cache","cacheStream","invert","reset","recenter","center","conicProjection","cylindricalEqualAreaRaw","conicEqualAreaRaw","sy0","r0y","conicEqualArea","albers","multiplex","streams","geoAlbersUsa","lower48","lower48Point","alaska","alaskaPoint","hawaii","hawaiiPoint","pointStream","albersUsa","azimuthalInvert","sc","cc","mercatorRaw","geoMercator","mercatorProjection","clipExtent","reclip","A1","A2","A3","A4","M","iterations","equalEarthRaw","l2","l6","fy","fpy","geoEqualEarth","naturalEarth1Raw","phi4","geoNaturalEarth1","orthographicRaw","geoOrthographic","nonpassivecapture","noevent$1","event","dragDisable","view","root","selection","select","noevent","yesdrag","noclick","emptyOn","dispatch","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","schedule","node","name","id","index","group","timing","schedules","create","init","get","set","self","tween","timer","stop","tick","interrupt","active","empty","selection_interrupt","tweenRemove","tween0","tween1","tweenFunction","transition_tween","tweenValue","transition","interpolateNumber","color","interpolateRgb","interpolateString","attrRemove","attrRemoveNS","fullname","attrConstant","value1","string00","string1","interpolate0","string0","attrConstantNS","attrFunction","string10","attrFunctionNS","transition_attr","namespace","attrInterpolate","attrInterpolateNS","attrTweenNS","i0","attrTween","transition_attrTween","delayFunction","delayConstant","transition_delay","durationFunction","durationConstant","transition_duration","easeConstant","transition_ease","easeVarying","transition_easeVarying","transition_filter","match","matcher","groups","subgroups","subgroup","Transition","transition_merge","groups0","groups1","m0","m1","merges","group0","group1","onFunction","listener","on0","on1","sit","on","transition_on","removeFunction","parent","transition_remove","transition_select","selector","subnode","transition_selectAll","selectorAll","parents","children","child","inherit","Selection","transition_selection","styleNull","style","styleRemove","styleConstant","styleFunction","styleMaybeRemove","listener0","remove","transition_style","priority","styleInterpolate","styleTween","transition_styleTween","textConstant","textFunction","transition_text","textInterpolate","textTween","transition_textTween","transition_transition","id0","id1","newId","transition_end","that","resolve","reject","cancel","end","selection_prototype","cubicInOut","defaultTiming","easeCubicInOut","selection_transition","now","constant","ZoomEvent","type","sourceEvent","target","Transform","location","nopropagation","defaultFilter","defaultExtent","defaultTransform","defaultWheelDelta","defaultTouchable","defaultConstrain","translateExtent","dx0","dx1","dy0","dy1","filter","constrain","wheelDelta","touchable","scaleExtent","duration","listeners","touchstarting","touchfirst","touchending","touchDelay","wheelDelay","clickDistance2","tapDistance","wheeled","mousedowned","dblclicked","touchstarted","touchmoved","touchended","collection","gesture","k0","k1","centroid","args","g","Gesture","pointer","wheelidled","currentTarget","mousemoved","mouseupped","dragEnable","touches","started","l0","l1","dp","dl"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74]}
|
|
1
|
+
{"version":3,"file":"zoom-BiMNsz72.cjs","sources":["../node_modules/d3-array/src/fsum.js","../node_modules/d3-array/src/merge.js","../node_modules/d3-interpolate/src/transform/decompose.js","../node_modules/d3-interpolate/src/transform/parse.js","../node_modules/d3-interpolate/src/transform/index.js","../node_modules/d3-interpolate/src/zoom.js","../node_modules/d3-timer/src/timeout.js","../node_modules/@turf/bbox/dist/esm/index.js","../node_modules/d3-geo/src/math.js","../node_modules/d3-geo/src/noop.js","../node_modules/d3-geo/src/stream.js","../node_modules/d3-geo/src/cartesian.js","../node_modules/d3-geo/src/compose.js","../node_modules/d3-geo/src/rotation.js","../node_modules/d3-geo/src/circle.js","../node_modules/d3-geo/src/clip/buffer.js","../node_modules/d3-geo/src/pointEqual.js","../node_modules/d3-geo/src/clip/rejoin.js","../node_modules/d3-geo/src/polygonContains.js","../node_modules/d3-geo/src/clip/index.js","../node_modules/d3-geo/src/clip/antimeridian.js","../node_modules/d3-geo/src/clip/circle.js","../node_modules/d3-geo/src/clip/line.js","../node_modules/d3-geo/src/clip/rectangle.js","../node_modules/d3-geo/src/identity.js","../node_modules/d3-geo/src/path/bounds.js","../node_modules/d3-geo/src/transform.js","../node_modules/d3-geo/src/projection/fit.js","../node_modules/d3-geo/src/projection/resample.js","../node_modules/d3-geo/src/projection/index.js","../node_modules/d3-geo/src/projection/conic.js","../node_modules/d3-geo/src/projection/cylindricalEqualArea.js","../node_modules/d3-geo/src/projection/conicEqualArea.js","../node_modules/d3-geo/src/projection/albers.js","../node_modules/d3-geo/src/projection/albersUsa.js","../node_modules/d3-geo/src/projection/azimuthal.js","../node_modules/d3-geo/src/projection/mercator.js","../node_modules/d3-geo/src/projection/equalEarth.js","../node_modules/d3-geo/src/projection/naturalEarth1.js","../node_modules/d3-geo/src/projection/orthographic.js","../node_modules/d3-drag/src/noevent.js","../node_modules/d3-drag/src/nodrag.js","../node_modules/d3-transition/src/transition/schedule.js","../node_modules/d3-transition/src/interrupt.js","../node_modules/d3-transition/src/selection/interrupt.js","../node_modules/d3-transition/src/transition/tween.js","../node_modules/d3-transition/src/transition/interpolate.js","../node_modules/d3-transition/src/transition/attr.js","../node_modules/d3-transition/src/transition/attrTween.js","../node_modules/d3-transition/src/transition/delay.js","../node_modules/d3-transition/src/transition/duration.js","../node_modules/d3-transition/src/transition/ease.js","../node_modules/d3-transition/src/transition/easeVarying.js","../node_modules/d3-transition/src/transition/filter.js","../node_modules/d3-transition/src/transition/merge.js","../node_modules/d3-transition/src/transition/on.js","../node_modules/d3-transition/src/transition/remove.js","../node_modules/d3-transition/src/transition/select.js","../node_modules/d3-transition/src/transition/selectAll.js","../node_modules/d3-transition/src/transition/selection.js","../node_modules/d3-transition/src/transition/style.js","../node_modules/d3-transition/src/transition/styleTween.js","../node_modules/d3-transition/src/transition/text.js","../node_modules/d3-transition/src/transition/textTween.js","../node_modules/d3-transition/src/transition/transition.js","../node_modules/d3-transition/src/transition/end.js","../node_modules/d3-transition/src/transition/index.js","../node_modules/d3-ease/src/cubic.js","../node_modules/d3-transition/src/selection/transition.js","../node_modules/d3-transition/src/selection/index.js","../node_modules/d3-zoom/src/constant.js","../node_modules/d3-zoom/src/event.js","../node_modules/d3-zoom/src/transform.js","../node_modules/d3-zoom/src/noevent.js","../node_modules/d3-zoom/src/zoom.js"],"sourcesContent":["// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423\nexport class Adder {\n constructor() {\n this._partials = new Float64Array(32);\n this._n = 0;\n }\n add(x) {\n const p = this._partials;\n let i = 0;\n for (let j = 0; j < this._n && j < 32; j++) {\n const y = p[j],\n hi = x + y,\n lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);\n if (lo) p[i++] = lo;\n x = hi;\n }\n p[i] = x;\n this._n = i + 1;\n return this;\n }\n valueOf() {\n const p = this._partials;\n let n = this._n, x, y, lo, hi = 0;\n if (n > 0) {\n hi = p[--n];\n while (n > 0) {\n x = hi;\n y = p[--n];\n hi = x + y;\n lo = y - (hi - x);\n if (lo) break;\n }\n if (n > 0 && ((lo < 0 && p[n - 1] < 0) || (lo > 0 && p[n - 1] > 0))) {\n y = lo * 2;\n x = hi + y;\n if (y == x - hi) hi = x;\n }\n }\n return hi;\n }\n}\n\nexport function fsum(values, valueof) {\n const adder = new Adder();\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n adder.add(value);\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n adder.add(value);\n }\n }\n }\n return +adder;\n}\n\nexport function fcumsum(values, valueof) {\n const adder = new Adder();\n let index = -1;\n return Float64Array.from(values, valueof === undefined\n ? v => adder.add(+v || 0)\n : v => adder.add(+valueof(v, ++index, values) || 0)\n );\n}\n","function* flatten(arrays) {\n for (const array of arrays) {\n yield* array;\n }\n}\n\nexport default function merge(arrays) {\n return Array.from(flatten(arrays));\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","var epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\nexport default (function zoomRho(rho, rho2, rho4) {\n\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n\n return i;\n }\n\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","// index.ts\nimport { coordEach } from \"@turf/meta\";\nfunction bbox(geojson, options = {}) {\n if (geojson.bbox != null && true !== options.recompute) {\n return geojson.bbox;\n }\n const result = [Infinity, Infinity, -Infinity, -Infinity];\n coordEach(geojson, (coord) => {\n if (result[0] > coord[0]) {\n result[0] = coord[0];\n }\n if (result[1] > coord[1]) {\n result[1] = coord[1];\n }\n if (result[2] < coord[0]) {\n result[2] = coord[0];\n }\n if (result[3] < coord[1]) {\n result[3] = coord[1];\n }\n });\n return result;\n}\nvar turf_bbox_default = bbox;\nexport {\n bbox,\n turf_bbox_default as default\n};\n//# sourceMappingURL=index.js.map","export var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var quarterPi = pi / 4;\nexport var tau = pi * 2;\n\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\n\nexport var abs = Math.abs;\nexport var atan = Math.atan;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var ceil = Math.ceil;\nexport var exp = Math.exp;\nexport var floor = Math.floor;\nexport var hypot = Math.hypot;\nexport var log = Math.log;\nexport var pow = Math.pow;\nexport var sin = Math.sin;\nexport var sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };\nexport var sqrt = Math.sqrt;\nexport var tan = Math.tan;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\n\nexport function haversin(x) {\n return (x = sin(x / 2)) * x;\n}\n","export default function noop() {}\n","function streamGeometry(geometry, stream) {\n if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n streamGeometryType[geometry.type](geometry, stream);\n }\n}\n\nvar streamObjectType = {\n Feature: function(object, stream) {\n streamGeometry(object.geometry, stream);\n },\n FeatureCollection: function(object, stream) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) streamGeometry(features[i].geometry, stream);\n }\n};\n\nvar streamGeometryType = {\n Sphere: function(object, stream) {\n stream.sphere();\n },\n Point: function(object, stream) {\n object = object.coordinates;\n stream.point(object[0], object[1], object[2]);\n },\n MultiPoint: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);\n },\n LineString: function(object, stream) {\n streamLine(object.coordinates, stream, 0);\n },\n MultiLineString: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamLine(coordinates[i], stream, 0);\n },\n Polygon: function(object, stream) {\n streamPolygon(object.coordinates, stream);\n },\n MultiPolygon: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamPolygon(coordinates[i], stream);\n },\n GeometryCollection: function(object, stream) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) streamGeometry(geometries[i], stream);\n }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n var i = -1, n = coordinates.length - closed, coordinate;\n stream.lineStart();\n while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n var i = -1, n = coordinates.length;\n stream.polygonStart();\n while (++i < n) streamLine(coordinates[i], stream, 1);\n stream.polygonEnd();\n}\n\nexport default function(object, stream) {\n if (object && streamObjectType.hasOwnProperty(object.type)) {\n streamObjectType[object.type](object, stream);\n } else {\n streamGeometry(object, stream);\n }\n}\n","import {asin, atan2, cos, sin, sqrt} from \"./math.js\";\n\nexport function spherical(cartesian) {\n return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];\n}\n\nexport function cartesian(spherical) {\n var lambda = spherical[0], phi = spherical[1], cosPhi = cos(phi);\n return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];\n}\n\nexport function cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n\nexport function cartesianCross(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n}\n\n// TODO return a\nexport function cartesianAddInPlace(a, b) {\n a[0] += b[0], a[1] += b[1], a[2] += b[2];\n}\n\nexport function cartesianScale(vector, k) {\n return [vector[0] * k, vector[1] * k, vector[2] * k];\n}\n\n// TODO return d\nexport function cartesianNormalizeInPlace(d) {\n var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l, d[1] /= l, d[2] /= l;\n}\n","export default function(a, b) {\n\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n\n if (a.invert && b.invert) compose.invert = function(x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n\n return compose;\n}\n","import compose from \"./compose.js\";\nimport {abs, asin, atan2, cos, degrees, pi, radians, sin, tau} from \"./math.js\";\n\nfunction rotationIdentity(lambda, phi) {\n if (abs(lambda) > pi) lambda -= Math.round(lambda / tau) * tau;\n return [lambda, phi];\n}\n\nrotationIdentity.invert = rotationIdentity;\n\nexport function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n return (deltaLambda %= tau) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))\n : rotationLambda(deltaLambda))\n : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)\n : rotationIdentity);\n}\n\nfunction forwardRotationLambda(deltaLambda) {\n return function(lambda, phi) {\n lambda += deltaLambda;\n if (abs(lambda) > pi) lambda -= Math.round(lambda / tau) * tau;\n return [lambda, phi];\n };\n}\n\nfunction rotationLambda(deltaLambda) {\n var rotation = forwardRotationLambda(deltaLambda);\n rotation.invert = forwardRotationLambda(-deltaLambda);\n return rotation;\n}\n\nfunction rotationPhiGamma(deltaPhi, deltaGamma) {\n var cosDeltaPhi = cos(deltaPhi),\n sinDeltaPhi = sin(deltaPhi),\n cosDeltaGamma = cos(deltaGamma),\n sinDeltaGamma = sin(deltaGamma);\n\n function rotation(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaPhi + x * sinDeltaPhi;\n return [\n atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),\n asin(k * cosDeltaGamma + y * sinDeltaGamma)\n ];\n }\n\n rotation.invert = function(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaGamma - y * sinDeltaGamma;\n return [\n atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),\n asin(k * cosDeltaPhi - x * sinDeltaPhi)\n ];\n };\n\n return rotation;\n}\n\nexport default function(rotate) {\n rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);\n\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n }\n\n forward.invert = function(coordinates) {\n coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n };\n\n return forward;\n}\n","import {cartesian, cartesianNormalizeInPlace, spherical} from \"./cartesian.js\";\nimport constant from \"./constant.js\";\nimport {acos, cos, degrees, epsilon, radians, sin, tau} from \"./math.js\";\nimport {rotateRadians} from \"./rotation.js\";\n\n// Generates a circle centered at [0°, 0°], with a given radius and precision.\nexport function circleStream(stream, radius, delta, direction, t0, t1) {\n if (!delta) return;\n var cosRadius = cos(radius),\n sinRadius = sin(radius),\n step = direction * delta;\n if (t0 == null) {\n t0 = radius + direction * tau;\n t1 = radius - step / 2;\n } else {\n t0 = circleRadius(cosRadius, t0);\n t1 = circleRadius(cosRadius, t1);\n if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau;\n }\n for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {\n point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);\n stream.point(point[0], point[1]);\n }\n}\n\n// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].\nfunction circleRadius(cosRadius, point) {\n point = cartesian(point), point[0] -= cosRadius;\n cartesianNormalizeInPlace(point);\n var radius = acos(-point[1]);\n return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;\n}\n\nexport default function() {\n var center = constant([0, 0]),\n radius = constant(90),\n precision = constant(2),\n ring,\n rotate,\n stream = {point: point};\n\n function point(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= degrees, x[1] *= degrees;\n }\n\n function circle() {\n var c = center.apply(this, arguments),\n r = radius.apply(this, arguments) * radians,\n p = precision.apply(this, arguments) * radians;\n ring = [];\n rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;\n circleStream(stream, r, p, 1);\n c = {type: \"Polygon\", coordinates: [ring]};\n ring = rotate = null;\n return c;\n }\n\n circle.center = function(_) {\n return arguments.length ? (center = typeof _ === \"function\" ? _ : constant([+_[0], +_[1]]), circle) : center;\n };\n\n circle.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), circle) : radius;\n };\n\n circle.precision = function(_) {\n return arguments.length ? (precision = typeof _ === \"function\" ? _ : constant(+_), circle) : precision;\n };\n\n return circle;\n}\n","import noop from \"../noop.js\";\n\nexport default function() {\n var lines = [],\n line;\n return {\n point: function(x, y, m) {\n line.push([x, y, m]);\n },\n lineStart: function() {\n lines.push(line = []);\n },\n lineEnd: noop,\n rejoin: function() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n },\n result: function() {\n var result = lines;\n lines = [];\n line = null;\n return result;\n }\n };\n}\n","import {abs, epsilon} from \"./math.js\";\n\nexport default function(a, b) {\n return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n}\n","import pointEqual from \"../pointEqual.js\";\nimport {epsilon} from \"../math.js\";\n\nfunction Intersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other; // another intersection\n this.e = entry; // is an entry?\n this.v = false; // visited\n this.n = this.p = null; // next & previous\n}\n\n// A generalized polygon clipping algorithm: given a polygon that has been cut\n// into its visible line segments, and rejoins the segments by interpolating\n// along the clip edge.\nexport default function(segments, compareIntersection, startInside, interpolate, stream) {\n var subject = [],\n clip = [],\n i,\n n;\n\n segments.forEach(function(segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n, p0 = segment[0], p1 = segment[n], x;\n\n if (pointEqual(p0, p1)) {\n if (!p0[2] && !p1[2]) {\n stream.lineStart();\n for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);\n stream.lineEnd();\n return;\n }\n // handle degenerate cases by moving the point\n p1[0] += 2 * epsilon;\n }\n\n subject.push(x = new Intersection(p0, segment, null, true));\n clip.push(x.o = new Intersection(p0, null, x, false));\n subject.push(x = new Intersection(p1, segment, null, false));\n clip.push(x.o = new Intersection(p1, null, x, true));\n });\n\n if (!subject.length) return;\n\n clip.sort(compareIntersection);\n link(subject);\n link(clip);\n\n for (i = 0, n = clip.length; i < n; ++i) {\n clip[i].e = startInside = !startInside;\n }\n\n var start = subject[0],\n points,\n point;\n\n while (1) {\n // Find first unvisited intersection.\n var current = start,\n isSubject = true;\n while (current.v) if ((current = current.n) === start) return;\n points = current.z;\n stream.lineStart();\n do {\n current.v = current.o.v = true;\n if (current.e) {\n if (isSubject) {\n for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.n.x, 1, stream);\n }\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.p.x, -1, stream);\n }\n current = current.p;\n }\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n stream.lineEnd();\n }\n}\n\nfunction link(array) {\n if (!(n = array.length)) return;\n var n,\n i = 0,\n a = array[0],\n b;\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n a.n = b = array[0];\n b.p = a;\n}\n","import {Adder} from \"d3-array\";\nimport {cartesian, cartesianCross, cartesianNormalizeInPlace} from \"./cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, epsilon2, halfPi, pi, quarterPi, sign, sin, tau} from \"./math.js\";\n\nfunction longitude(point) {\n return abs(point[0]) <= pi ? point[0] : sign(point[0]) * ((abs(point[0]) + pi) % tau - pi);\n}\n\nexport default function(polygon, point) {\n var lambda = longitude(point),\n phi = point[1],\n sinPhi = sin(phi),\n normal = [sin(lambda), -cos(lambda), 0],\n angle = 0,\n winding = 0;\n\n var sum = new Adder();\n\n if (sinPhi === 1) phi = halfPi + epsilon;\n else if (sinPhi === -1) phi = -halfPi - epsilon;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n if (!(m = (ring = polygon[i]).length)) continue;\n var ring,\n m,\n point0 = ring[m - 1],\n lambda0 = longitude(point0),\n phi0 = point0[1] / 2 + quarterPi,\n sinPhi0 = sin(phi0),\n cosPhi0 = cos(phi0);\n\n for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {\n var point1 = ring[j],\n lambda1 = longitude(point1),\n phi1 = point1[1] / 2 + quarterPi,\n sinPhi1 = sin(phi1),\n cosPhi1 = cos(phi1),\n delta = lambda1 - lambda0,\n sign = delta >= 0 ? 1 : -1,\n absDelta = sign * delta,\n antimeridian = absDelta > pi,\n k = sinPhi0 * sinPhi1;\n\n sum.add(atan2(k * sign * sin(absDelta), cosPhi0 * cosPhi1 + k * cos(absDelta)));\n angle += antimeridian ? delta + sign * tau : delta;\n\n // Are the longitudes either side of the point’s meridian (lambda),\n // and are the latitudes smaller than the parallel (phi)?\n if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {\n var arc = cartesianCross(cartesian(point0), cartesian(point1));\n cartesianNormalizeInPlace(arc);\n var intersection = cartesianCross(normal, arc);\n cartesianNormalizeInPlace(intersection);\n var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);\n if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n winding += antimeridian ^ delta >= 0 ? 1 : -1;\n }\n }\n }\n }\n\n // First, determine whether the South pole is inside or outside:\n //\n // It is inside if:\n // * the polygon winds around it in a clockwise direction.\n // * the polygon does not (cumulatively) wind around it, but has a negative\n // (counter-clockwise) area.\n //\n // Second, count the (signed) number of times a segment crosses a lambda\n // from the point to the South pole. If it is zero, then the point is the\n // same side as the South pole.\n\n return (angle < -epsilon || angle < epsilon && sum < -epsilon2) ^ (winding & 1);\n}\n","import clipBuffer from \"./buffer.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {epsilon, halfPi} from \"../math.js\";\nimport polygonContains from \"../polygonContains.js\";\nimport {merge} from \"d3-array\";\n\nexport default function(pointVisible, clipLine, interpolate, start) {\n return function(sink) {\n var line = clipLine(sink),\n ringBuffer = clipBuffer(),\n ringSink = clipLine(ringBuffer),\n polygonStarted = false,\n polygon,\n segments,\n ring;\n\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = merge(segments);\n var startInside = polygonContains(polygon, start);\n if (segments.length) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n clipRejoin(segments, compareIntersection, startInside, interpolate, sink);\n } else if (startInside) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n }\n if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function() {\n sink.polygonStart();\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n sink.polygonEnd();\n }\n };\n\n function point(lambda, phi) {\n if (pointVisible(lambda, phi)) sink.point(lambda, phi);\n }\n\n function pointLine(lambda, phi) {\n line.point(lambda, phi);\n }\n\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n\n function pointRing(lambda, phi) {\n ring.push([lambda, phi]);\n ringSink.point(lambda, phi);\n }\n\n function ringStart() {\n ringSink.lineStart();\n ring = [];\n }\n\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringSink.lineEnd();\n\n var clean = ringSink.clean(),\n ringSegments = ringBuffer.result(),\n i, n = ringSegments.length, m,\n segment,\n point;\n\n ring.pop();\n polygon.push(ring);\n ring = null;\n\n if (!n) return;\n\n // No intersections.\n if (clean & 1) {\n segment = ringSegments[0];\n if ((m = segment.length - 1) > 0) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);\n sink.lineEnd();\n }\n return;\n }\n\n // Rejoin connected segments.\n // TODO reuse ringBuffer.rejoin()?\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n\n segments.push(ringSegments.filter(validSegment));\n }\n\n return clip;\n };\n}\n\nfunction validSegment(segment) {\n return segment.length > 1;\n}\n\n// Intersections are sorted along the clip edge. For both antimeridian cutting\n// and circle clipping, the same comparison is used.\nfunction compareIntersection(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1])\n - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);\n}\n","import clip from \"./index.js\";\nimport {abs, atan, cos, epsilon, halfPi, pi, sin} from \"../math.js\";\n\nexport default clip(\n function() { return true; },\n clipAntimeridianLine,\n clipAntimeridianInterpolate,\n [-pi, -halfPi]\n);\n\n// Takes a line and cuts into visible segments. Return values: 0 - there were\n// intersections or the line was empty; 1 - no intersections; 2 - there were\n// intersections, and the first and last segments should be rejoined.\nfunction clipAntimeridianLine(stream) {\n var lambda0 = NaN,\n phi0 = NaN,\n sign0 = NaN,\n clean; // no intersections\n\n return {\n lineStart: function() {\n stream.lineStart();\n clean = 1;\n },\n point: function(lambda1, phi1) {\n var sign1 = lambda1 > 0 ? pi : -pi,\n delta = abs(lambda1 - lambda0);\n if (abs(delta - pi) < epsilon) { // line crosses a pole\n stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi : -halfPi);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n stream.point(lambda1, phi0);\n clean = 0;\n } else if (sign0 !== sign1 && delta >= pi) { // line crosses antimeridian\n if (abs(lambda0 - sign0) < epsilon) lambda0 -= sign0 * epsilon; // handle degeneracies\n if (abs(lambda1 - sign1) < epsilon) lambda1 -= sign1 * epsilon;\n phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n clean = 0;\n }\n stream.point(lambda0 = lambda1, phi0 = phi1);\n sign0 = sign1;\n },\n lineEnd: function() {\n stream.lineEnd();\n lambda0 = phi0 = NaN;\n },\n clean: function() {\n return 2 - clean; // if intersections, rejoin first and last segments\n }\n };\n}\n\nfunction clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {\n var cosPhi0,\n cosPhi1,\n sinLambda0Lambda1 = sin(lambda0 - lambda1);\n return abs(sinLambda0Lambda1) > epsilon\n ? atan((sin(phi0) * (cosPhi1 = cos(phi1)) * sin(lambda1)\n - sin(phi1) * (cosPhi0 = cos(phi0)) * sin(lambda0))\n / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))\n : (phi0 + phi1) / 2;\n}\n\nfunction clipAntimeridianInterpolate(from, to, direction, stream) {\n var phi;\n if (from == null) {\n phi = direction * halfPi;\n stream.point(-pi, phi);\n stream.point(0, phi);\n stream.point(pi, phi);\n stream.point(pi, 0);\n stream.point(pi, -phi);\n stream.point(0, -phi);\n stream.point(-pi, -phi);\n stream.point(-pi, 0);\n stream.point(-pi, phi);\n } else if (abs(from[0] - to[0]) > epsilon) {\n var lambda = from[0] < to[0] ? pi : -pi;\n phi = direction * lambda / 2;\n stream.point(-lambda, phi);\n stream.point(0, phi);\n stream.point(lambda, phi);\n } else {\n stream.point(to[0], to[1]);\n }\n}\n","import {cartesian, cartesianAddInPlace, cartesianCross, cartesianDot, cartesianScale, spherical} from \"../cartesian.js\";\nimport {circleStream} from \"../circle.js\";\nimport {abs, cos, epsilon, pi, radians, sqrt} from \"../math.js\";\nimport pointEqual from \"../pointEqual.js\";\nimport clip from \"./index.js\";\n\nexport default function(radius) {\n var cr = cos(radius),\n delta = 2 * radians,\n smallRadius = cr > 0,\n notHemisphere = abs(cr) > epsilon; // TODO optimise for this common case\n\n function interpolate(from, to, direction, stream) {\n circleStream(stream, radius, delta, direction, from, to);\n }\n\n function visible(lambda, phi) {\n return cos(lambda) * cos(phi) > cr;\n }\n\n // Takes a line and cuts into visible segments. Return values used for polygon\n // clipping: 0 - there were intersections or the line was empty; 1 - no\n // intersections 2 - there were intersections, and the first and last segments\n // should be rejoined.\n function clipLine(stream) {\n var point0, // previous point\n c0, // code for previous point\n v0, // visibility of previous point\n v00, // visibility of first point\n clean; // no intersections\n return {\n lineStart: function() {\n v00 = v0 = false;\n clean = 1;\n },\n point: function(lambda, phi) {\n var point1 = [lambda, phi],\n point2,\n v = visible(lambda, phi),\n c = smallRadius\n ? v ? 0 : code(lambda, phi)\n : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;\n if (!point0 && (v00 = v0 = v)) stream.lineStart();\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2))\n point1[2] = 1;\n }\n if (v !== v0) {\n clean = 0;\n if (v) {\n // outside going in\n stream.lineStart();\n point2 = intersect(point1, point0);\n stream.point(point2[0], point2[1]);\n } else {\n // inside going out\n point2 = intersect(point0, point1);\n stream.point(point2[0], point2[1], 2);\n stream.lineEnd();\n }\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t;\n // If the codes for two points are different, or are both zero,\n // and there this segment intersects with the small circle.\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n clean = 0;\n if (smallRadius) {\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n } else {\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n stream.lineStart();\n stream.point(t[0][0], t[0][1], 3);\n }\n }\n }\n if (v && (!point0 || !pointEqual(point0, point1))) {\n stream.point(point1[0], point1[1]);\n }\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function() {\n if (v0) stream.lineEnd();\n point0 = null;\n },\n // Rejoin first and last segments if there were intersections and the first\n // and last points were visible.\n clean: function() {\n return clean | ((v00 && v0) << 1);\n }\n };\n }\n\n // Intersects the great circle between a and b with the clip circle.\n function intersect(a, b, two) {\n var pa = cartesian(a),\n pb = cartesian(b);\n\n // We have two planes, n1.p = d1 and n2.p = d2.\n // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).\n var n1 = [1, 0, 0], // normal\n n2 = cartesianCross(pa, pb),\n n2n2 = cartesianDot(n2, n2),\n n1n2 = n2[0], // cartesianDot(n1, n2),\n determinant = n2n2 - n1n2 * n1n2;\n\n // Two polar points.\n if (!determinant) return !two && a;\n\n var c1 = cr * n2n2 / determinant,\n c2 = -cr * n1n2 / determinant,\n n1xn2 = cartesianCross(n1, n2),\n A = cartesianScale(n1, c1),\n B = cartesianScale(n2, c2);\n cartesianAddInPlace(A, B);\n\n // Solve |p(t)|^2 = 1.\n var u = n1xn2,\n w = cartesianDot(A, u),\n uu = cartesianDot(u, u),\n t2 = w * w - uu * (cartesianDot(A, A) - 1);\n\n if (t2 < 0) return;\n\n var t = sqrt(t2),\n q = cartesianScale(u, (-w - t) / uu);\n cartesianAddInPlace(q, A);\n q = spherical(q);\n\n if (!two) return q;\n\n // Two intersection points.\n var lambda0 = a[0],\n lambda1 = b[0],\n phi0 = a[1],\n phi1 = b[1],\n z;\n\n if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;\n\n var delta = lambda1 - lambda0,\n polar = abs(delta - pi) < epsilon,\n meridian = polar || delta < epsilon;\n\n if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;\n\n // Check that the first point is between a and b.\n if (meridian\n ? polar\n ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon ? phi0 : phi1)\n : phi0 <= q[1] && q[1] <= phi1\n : delta > pi ^ (lambda0 <= q[0] && q[0] <= lambda1)) {\n var q1 = cartesianScale(u, (-w + t) / uu);\n cartesianAddInPlace(q1, A);\n return [q, spherical(q1)];\n }\n }\n\n // Generates a 4-bit vector representing the location of a point relative to\n // the small circle's bounding box.\n function code(lambda, phi) {\n var r = smallRadius ? radius : pi - radius,\n code = 0;\n if (lambda < -r) code |= 1; // left\n else if (lambda > r) code |= 2; // right\n if (phi < -r) code |= 4; // below\n else if (phi > r) code |= 8; // above\n return code;\n }\n\n return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi, radius - pi]);\n}\n","export default function(a, b, x0, y0, x1, y1) {\n var ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;\n if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;\n return true;\n}\n","import {abs, epsilon} from \"../math.js\";\nimport clipBuffer from \"./buffer.js\";\nimport clipLine from \"./line.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {merge} from \"d3-array\";\n\nvar clipMax = 1e9, clipMin = -clipMax;\n\n// TODO Use d3-polygon’s polygonContains here for the ring check?\n// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?\n\nexport default function clipRectangle(x0, y0, x1, y1) {\n\n function visible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n\n function interpolate(from, to, direction, stream) {\n var a = 0, a1 = 0;\n if (from == null\n || (a = corner(from, direction)) !== (a1 = corner(to, direction))\n || comparePoint(from, to) < 0 ^ direction > 0) {\n do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n\n function corner(p, direction) {\n return abs(p[0] - x0) < epsilon ? direction > 0 ? 0 : 3\n : abs(p[0] - x1) < epsilon ? direction > 0 ? 2 : 1\n : abs(p[1] - y0) < epsilon ? direction > 0 ? 1 : 0\n : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon\n }\n\n function compareIntersection(a, b) {\n return comparePoint(a.x, b.x);\n }\n\n function comparePoint(a, b) {\n var ca = corner(a, 1),\n cb = corner(b, 1);\n return ca !== cb ? ca - cb\n : ca === 0 ? b[1] - a[1]\n : ca === 1 ? a[0] - b[0]\n : ca === 2 ? a[1] - b[1]\n : b[0] - a[0];\n }\n\n return function(stream) {\n var activeStream = stream,\n bufferStream = clipBuffer(),\n segments,\n polygon,\n ring,\n x__, y__, v__, // first point\n x_, y_, v_, // previous point\n first,\n clean;\n\n var clipStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: polygonStart,\n polygonEnd: polygonEnd\n };\n\n function point(x, y) {\n if (visible(x, y)) activeStream.point(x, y);\n }\n\n function polygonInside() {\n var winding = 0;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {\n a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];\n if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }\n else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }\n }\n }\n\n return winding;\n }\n\n // Buffer geometry within a polygon and then clip it en masse.\n function polygonStart() {\n activeStream = bufferStream, segments = [], polygon = [], clean = true;\n }\n\n function polygonEnd() {\n var startInside = polygonInside(),\n cleanInside = clean && startInside,\n visible = (segments = merge(segments)).length;\n if (cleanInside || visible) {\n stream.polygonStart();\n if (cleanInside) {\n stream.lineStart();\n interpolate(null, null, 1, stream);\n stream.lineEnd();\n }\n if (visible) {\n clipRejoin(segments, compareIntersection, startInside, interpolate, stream);\n }\n stream.polygonEnd();\n }\n activeStream = stream, segments = polygon = ring = null;\n }\n\n function lineStart() {\n clipStream.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n }\n\n // TODO rather than special-case polygons, simply handle them separately.\n // Ideally, coincident intersection points should be jittered to avoid\n // clipping issues.\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferStream.rejoin();\n segments.push(bufferStream.result());\n }\n clipStream.point = point;\n if (v_) activeStream.lineEnd();\n }\n\n function linePoint(x, y) {\n var v = visible(x, y);\n if (polygon) ring.push([x, y]);\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n }\n } else {\n if (v && v_) activeStream.point(x, y);\n else {\n var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],\n b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];\n if (clipLine(a, b, x0, y0, x1, y1)) {\n if (!v_) {\n activeStream.lineStart();\n activeStream.point(a[0], a[1]);\n }\n activeStream.point(b[0], b[1]);\n if (!v) activeStream.lineEnd();\n clean = false;\n } else if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n clean = false;\n }\n }\n }\n x_ = x, y_ = y, v_ = v;\n }\n\n return clipStream;\n };\n}\n","export default x => x;\n","import noop from \"../noop.js\";\n\nvar x0 = Infinity,\n y0 = x0,\n x1 = -x0,\n y1 = x1;\n\nvar boundsStream = {\n point: boundsPoint,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop,\n result: function() {\n var bounds = [[x0, y0], [x1, y1]];\n x1 = y1 = -(y0 = x0 = Infinity);\n return bounds;\n }\n};\n\nfunction boundsPoint(x, y) {\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n}\n\nexport default boundsStream;\n","export default function(methods) {\n return {\n stream: transformer(methods)\n };\n}\n\nexport function transformer(methods) {\n return function(stream) {\n var s = new TransformStream;\n for (var key in methods) s[key] = methods[key];\n s.stream = stream;\n return s;\n };\n}\n\nfunction TransformStream() {}\n\nTransformStream.prototype = {\n constructor: TransformStream,\n point: function(x, y) { this.stream.point(x, y); },\n sphere: function() { this.stream.sphere(); },\n lineStart: function() { this.stream.lineStart(); },\n lineEnd: function() { this.stream.lineEnd(); },\n polygonStart: function() { this.stream.polygonStart(); },\n polygonEnd: function() { this.stream.polygonEnd(); }\n};\n","import {default as geoStream} from \"../stream.js\";\nimport boundsStream from \"../path/bounds.js\";\n\nfunction fit(projection, fitBounds, object) {\n var clip = projection.clipExtent && projection.clipExtent();\n projection.scale(150).translate([0, 0]);\n if (clip != null) projection.clipExtent(null);\n geoStream(object, projection.stream(boundsStream));\n fitBounds(boundsStream.result());\n if (clip != null) projection.clipExtent(clip);\n return projection;\n}\n\nexport function fitExtent(projection, extent, object) {\n return fit(projection, function(b) {\n var w = extent[1][0] - extent[0][0],\n h = extent[1][1] - extent[0][1],\n k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),\n x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,\n y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitSize(projection, size, object) {\n return fitExtent(projection, [[0, 0], size], object);\n}\n\nexport function fitWidth(projection, width, object) {\n return fit(projection, function(b) {\n var w = +width,\n k = w / (b[1][0] - b[0][0]),\n x = (w - k * (b[1][0] + b[0][0])) / 2,\n y = -k * b[0][1];\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitHeight(projection, height, object) {\n return fit(projection, function(b) {\n var h = +height,\n k = h / (b[1][1] - b[0][1]),\n x = -k * b[0][0],\n y = (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n","import {cartesian} from \"../cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, radians, sqrt} from \"../math.js\";\nimport {transformer} from \"../transform.js\";\n\nvar maxDepth = 16, // maximum depth of subdivision\n cosMinDistance = cos(30 * radians); // cos(minimum angular distance)\n\nexport default function(project, delta2) {\n return +delta2 ? resample(project, delta2) : resampleNone(project);\n}\n\nfunction resampleNone(project) {\n return transformer({\n point: function(x, y) {\n x = project(x, y);\n this.stream.point(x[0], x[1]);\n }\n });\n}\n\nfunction resample(project, delta2) {\n\n function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0,\n dy = y1 - y0,\n d2 = dx * dx + dy * dy;\n if (d2 > 4 * delta2 && depth--) {\n var a = a0 + a1,\n b = b0 + b1,\n c = c0 + c1,\n m = sqrt(a * a + b * b + c * c),\n phi2 = asin(c /= m),\n lambda2 = abs(abs(c) - 1) < epsilon || abs(lambda0 - lambda1) < epsilon ? (lambda0 + lambda1) / 2 : atan2(b, a),\n p = project(lambda2, phi2),\n x2 = p[0],\n y2 = p[1],\n dx2 = x2 - x0,\n dy2 = y2 - y0,\n dz = dy * dx2 - dx * dy2;\n if (dz * dz / d2 > delta2 // perpendicular projected distance\n || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end\n || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);\n }\n }\n }\n return function(stream) {\n var lambda00, x00, y00, a00, b00, c00, // first point\n lambda0, x0, y0, a0, b0, c0; // previous point\n\n var resampleStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },\n polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }\n };\n\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n\n function lineStart() {\n x0 = NaN;\n resampleStream.point = linePoint;\n stream.lineStart();\n }\n\n function linePoint(lambda, phi) {\n var c = cartesian([lambda, phi]), p = project(lambda, phi);\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n\n function lineEnd() {\n resampleStream.point = point;\n stream.lineEnd();\n }\n\n function ringStart() {\n lineStart();\n resampleStream.point = ringPoint;\n resampleStream.lineEnd = ringEnd;\n }\n\n function ringPoint(lambda, phi) {\n linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resampleStream.point = linePoint;\n }\n\n function ringEnd() {\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);\n resampleStream.lineEnd = lineEnd;\n lineEnd();\n }\n\n return resampleStream;\n };\n}\n","import clipAntimeridian from \"../clip/antimeridian.js\";\nimport clipCircle from \"../clip/circle.js\";\nimport clipRectangle from \"../clip/rectangle.js\";\nimport compose from \"../compose.js\";\nimport identity from \"../identity.js\";\nimport {cos, degrees, radians, sin, sqrt} from \"../math.js\";\nimport {rotateRadians} from \"../rotation.js\";\nimport {transformer} from \"../transform.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\nimport resample from \"./resample.js\";\n\nvar transformRadians = transformer({\n point: function(x, y) {\n this.stream.point(x * radians, y * radians);\n }\n});\n\nfunction transformRotate(rotate) {\n return transformer({\n point: function(x, y) {\n var r = rotate(x, y);\n return this.stream.point(r[0], r[1]);\n }\n });\n}\n\nfunction scaleTranslate(k, dx, dy, sx, sy) {\n function transform(x, y) {\n x *= sx; y *= sy;\n return [dx + k * x, dy - k * y];\n }\n transform.invert = function(x, y) {\n return [(x - dx) / k * sx, (dy - y) / k * sy];\n };\n return transform;\n}\n\nfunction scaleTranslateRotate(k, dx, dy, sx, sy, alpha) {\n if (!alpha) return scaleTranslate(k, dx, dy, sx, sy);\n var cosAlpha = cos(alpha),\n sinAlpha = sin(alpha),\n a = cosAlpha * k,\n b = sinAlpha * k,\n ai = cosAlpha / k,\n bi = sinAlpha / k,\n ci = (sinAlpha * dy - cosAlpha * dx) / k,\n fi = (sinAlpha * dx + cosAlpha * dy) / k;\n function transform(x, y) {\n x *= sx; y *= sy;\n return [a * x - b * y + dx, dy - b * x - a * y];\n }\n transform.invert = function(x, y) {\n return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)];\n };\n return transform;\n}\n\nexport default function projection(project) {\n return projectionMutator(function() { return project; })();\n}\n\nexport function projectionMutator(projectAt) {\n var project,\n k = 150, // scale\n x = 480, y = 250, // translate\n lambda = 0, phi = 0, // center\n deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate\n alpha = 0, // post-rotate angle\n sx = 1, // reflectX\n sy = 1, // reflectX\n theta = null, preclip = clipAntimeridian, // pre-clip angle\n x0 = null, y0, x1, y1, postclip = identity, // post-clip extent\n delta2 = 0.5, // precision\n projectResample,\n projectTransform,\n projectRotateTransform,\n cache,\n cacheStream;\n\n function projection(point) {\n return projectRotateTransform(point[0] * radians, point[1] * radians);\n }\n\n function invert(point) {\n point = projectRotateTransform.invert(point[0], point[1]);\n return point && [point[0] * degrees, point[1] * degrees];\n }\n\n projection.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));\n };\n\n projection.preclip = function(_) {\n return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;\n };\n\n projection.postclip = function(_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n };\n\n projection.clipAngle = function(_) {\n return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees;\n };\n\n projection.clipExtent = function(_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n projection.scale = function(_) {\n return arguments.length ? (k = +_, recenter()) : k;\n };\n\n projection.translate = function(_) {\n return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n };\n\n projection.center = function(_) {\n return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];\n };\n\n projection.rotate = function(_) {\n return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];\n };\n\n projection.angle = function(_) {\n return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees;\n };\n\n projection.reflectX = function(_) {\n return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0;\n };\n\n projection.reflectY = function(_) {\n return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0;\n };\n\n projection.precision = function(_) {\n return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);\n };\n\n projection.fitExtent = function(extent, object) {\n return fitExtent(projection, extent, object);\n };\n\n projection.fitSize = function(size, object) {\n return fitSize(projection, size, object);\n };\n\n projection.fitWidth = function(width, object) {\n return fitWidth(projection, width, object);\n };\n\n projection.fitHeight = function(height, object) {\n return fitHeight(projection, height, object);\n };\n\n function recenter() {\n var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)),\n transform = scaleTranslateRotate(k, x - center[0], y - center[1], sx, sy, alpha);\n rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma);\n projectTransform = compose(project, transform);\n projectRotateTransform = compose(rotate, projectTransform);\n projectResample = resample(projectTransform, delta2);\n return reset();\n }\n\n function reset() {\n cache = cacheStream = null;\n return projection;\n }\n\n return function() {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return recenter();\n };\n}\n","import {degrees, pi, radians} from \"../math.js\";\nimport {projectionMutator} from \"./index.js\";\n\nexport function conicProjection(projectAt) {\n var phi0 = 0,\n phi1 = pi / 3,\n m = projectionMutator(projectAt),\n p = m(phi0, phi1);\n\n p.parallels = function(_) {\n return arguments.length ? m(phi0 = _[0] * radians, phi1 = _[1] * radians) : [phi0 * degrees, phi1 * degrees];\n };\n\n return p;\n}\n","import {asin, cos, sin} from \"../math.js\";\n\nexport function cylindricalEqualAreaRaw(phi0) {\n var cosPhi0 = cos(phi0);\n\n function forward(lambda, phi) {\n return [lambda * cosPhi0, sin(phi) / cosPhi0];\n }\n\n forward.invert = function(x, y) {\n return [x / cosPhi0, asin(y * cosPhi0)];\n };\n\n return forward;\n}\n","import {abs, asin, atan2, cos, epsilon, pi, sign, sin, sqrt} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {cylindricalEqualAreaRaw} from \"./cylindricalEqualArea.js\";\n\nexport function conicEqualAreaRaw(y0, y1) {\n var sy0 = sin(y0), n = (sy0 + sin(y1)) / 2;\n\n // Are the parallels symmetrical around the Equator?\n if (abs(n) < epsilon) return cylindricalEqualAreaRaw(y0);\n\n var c = 1 + sy0 * (2 * n - sy0), r0 = sqrt(c) / n;\n\n function project(x, y) {\n var r = sqrt(c - 2 * n * sin(y)) / n;\n return [r * sin(x *= n), r0 - r * cos(x)];\n }\n\n project.invert = function(x, y) {\n var r0y = r0 - y,\n l = atan2(x, abs(r0y)) * sign(r0y);\n if (r0y * n < 0)\n l -= pi * sign(x) * sign(r0y);\n return [l / n, asin((c - (x * x + r0y * r0y) * n * n) / (2 * n))];\n };\n\n return project;\n}\n\nexport default function() {\n return conicProjection(conicEqualAreaRaw)\n .scale(155.424)\n .center([0, 33.6442]);\n}\n","import conicEqualArea from \"./conicEqualArea.js\";\n\nexport default function() {\n return conicEqualArea()\n .parallels([29.5, 45.5])\n .scale(1070)\n .translate([480, 250])\n .rotate([96, 0])\n .center([-0.6, 38.7]);\n}\n","import {epsilon} from \"../math.js\";\nimport albers from \"./albers.js\";\nimport conicEqualArea from \"./conicEqualArea.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\n\n// The projections must have mutually exclusive clip regions on the sphere,\n// as this will avoid emitting interleaving lines and polygons.\nfunction multiplex(streams) {\n var n = streams.length;\n return {\n point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); },\n sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); },\n lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); },\n lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); },\n polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); },\n polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); }\n };\n}\n\n// A composite projection for the United States, configured by default for\n// 960×500. The projection also works quite well at 960×600 if you change the\n// scale to 1285 and adjust the translate accordingly. The set of standard\n// parallels for each region comes from USGS, which is published here:\n// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers\nexport default function() {\n var cache,\n cacheStream,\n lower48 = albers(), lower48Point,\n alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338\n hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007\n point, pointStream = {point: function(x, y) { point = [x, y]; }};\n\n function albersUsa(coordinates) {\n var x = coordinates[0], y = coordinates[1];\n return point = null,\n (lower48Point.point(x, y), point)\n || (alaskaPoint.point(x, y), point)\n || (hawaiiPoint.point(x, y), point);\n }\n\n albersUsa.invert = function(coordinates) {\n var k = lower48.scale(),\n t = lower48.translate(),\n x = (coordinates[0] - t[0]) / k,\n y = (coordinates[1] - t[1]) / k;\n return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska\n : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii\n : lower48).invert(coordinates);\n };\n\n albersUsa.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);\n };\n\n albersUsa.precision = function(_) {\n if (!arguments.length) return lower48.precision();\n lower48.precision(_), alaska.precision(_), hawaii.precision(_);\n return reset();\n };\n\n albersUsa.scale = function(_) {\n if (!arguments.length) return lower48.scale();\n lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);\n return albersUsa.translate(lower48.translate());\n };\n\n albersUsa.translate = function(_) {\n if (!arguments.length) return lower48.translate();\n var k = lower48.scale(), x = +_[0], y = +_[1];\n\n lower48Point = lower48\n .translate(_)\n .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]])\n .stream(pointStream);\n\n alaskaPoint = alaska\n .translate([x - 0.307 * k, y + 0.201 * k])\n .clipExtent([[x - 0.425 * k + epsilon, y + 0.120 * k + epsilon], [x - 0.214 * k - epsilon, y + 0.234 * k - epsilon]])\n .stream(pointStream);\n\n hawaiiPoint = hawaii\n .translate([x - 0.205 * k, y + 0.212 * k])\n .clipExtent([[x - 0.214 * k + epsilon, y + 0.166 * k + epsilon], [x - 0.115 * k - epsilon, y + 0.234 * k - epsilon]])\n .stream(pointStream);\n\n return reset();\n };\n\n albersUsa.fitExtent = function(extent, object) {\n return fitExtent(albersUsa, extent, object);\n };\n\n albersUsa.fitSize = function(size, object) {\n return fitSize(albersUsa, size, object);\n };\n\n albersUsa.fitWidth = function(width, object) {\n return fitWidth(albersUsa, width, object);\n };\n\n albersUsa.fitHeight = function(height, object) {\n return fitHeight(albersUsa, height, object);\n };\n\n function reset() {\n cache = cacheStream = null;\n return albersUsa;\n }\n\n return albersUsa.scale(1070);\n}\n","import {asin, atan2, cos, sin, sqrt} from \"../math.js\";\n\nexport function azimuthalRaw(scale) {\n return function(x, y) {\n var cx = cos(x),\n cy = cos(y),\n k = scale(cx * cy);\n if (k === Infinity) return [2, 0];\n return [\n k * cy * sin(x),\n k * sin(y)\n ];\n }\n}\n\nexport function azimuthalInvert(angle) {\n return function(x, y) {\n var z = sqrt(x * x + y * y),\n c = angle(z),\n sc = sin(c),\n cc = cos(c);\n return [\n atan2(x * sc, z * cc),\n asin(z && y * sc / z)\n ];\n }\n}\n","import {atan, exp, halfPi, log, pi, tan, tau} from \"../math.js\";\nimport rotation from \"../rotation.js\";\nimport projection from \"./index.js\";\n\nexport function mercatorRaw(lambda, phi) {\n return [lambda, log(tan((halfPi + phi) / 2))];\n}\n\nmercatorRaw.invert = function(x, y) {\n return [x, 2 * atan(exp(y)) - halfPi];\n};\n\nexport default function() {\n return mercatorProjection(mercatorRaw)\n .scale(961 / tau);\n}\n\nexport function mercatorProjection(project) {\n var m = projection(project),\n center = m.center,\n scale = m.scale,\n translate = m.translate,\n clipExtent = m.clipExtent,\n x0 = null, y0, x1, y1; // clip extent\n\n m.scale = function(_) {\n return arguments.length ? (scale(_), reclip()) : scale();\n };\n\n m.translate = function(_) {\n return arguments.length ? (translate(_), reclip()) : translate();\n };\n\n m.center = function(_) {\n return arguments.length ? (center(_), reclip()) : center();\n };\n\n m.clipExtent = function(_) {\n return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n function reclip() {\n var k = pi * scale(),\n t = m(rotation(m.rotate()).invert([0, 0]));\n return clipExtent(x0 == null\n ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw\n ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]\n : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);\n }\n\n return reclip();\n}\n","import projection from \"./index.js\";\nimport {abs, asin, cos, epsilon2, sin, sqrt} from \"../math.js\";\n\nvar A1 = 1.340264,\n A2 = -0.081106,\n A3 = 0.000893,\n A4 = 0.003796,\n M = sqrt(3) / 2,\n iterations = 12;\n\nexport function equalEarthRaw(lambda, phi) {\n var l = asin(M * sin(phi)), l2 = l * l, l6 = l2 * l2 * l2;\n return [\n lambda * cos(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))),\n l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2))\n ];\n}\n\nequalEarthRaw.invert = function(x, y) {\n var l = y, l2 = l * l, l6 = l2 * l2 * l2;\n for (var i = 0, delta, fy, fpy; i < iterations; ++i) {\n fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y;\n fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2);\n l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2;\n if (abs(delta) < epsilon2) break;\n }\n return [\n M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / cos(l),\n asin(sin(l) / M)\n ];\n};\n\nexport default function() {\n return projection(equalEarthRaw)\n .scale(177.158);\n}\n","import projection from \"./index.js\";\nimport {abs, epsilon} from \"../math.js\";\n\nexport function naturalEarth1Raw(lambda, phi) {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n return [\n lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))),\n phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))\n ];\n}\n\nnaturalEarth1Raw.invert = function(x, y) {\n var phi = y, i = 25, delta;\n do {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) /\n (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4)));\n } while (abs(delta) > epsilon && --i > 0);\n return [\n x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))),\n phi\n ];\n};\n\nexport default function() {\n return projection(naturalEarth1Raw)\n .scale(175.295);\n}\n","import {asin, cos, epsilon, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function orthographicRaw(x, y) {\n return [cos(y) * sin(x), sin(y)];\n}\n\northographicRaw.invert = azimuthalInvert(asin);\n\nexport default function() {\n return projection(orthographicRaw)\n .scale(249.5)\n .clipAngle(90 + epsilon);\n}\n","// These are typically used in conjunction with noevent to ensure that we can\n// preventDefault on the event.\nexport const nonpassive = {passive: false};\nexport const nonpassivecapture = {capture: true, passive: false};\n\nexport function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent, {nonpassivecapture} from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, nonpassivecapture);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, nonpassivecapture);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, nonpassivecapture);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","export default x => () => x;\n","export default function ZoomEvent(type, {\n sourceEvent,\n target,\n transform,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n transform: {value: transform, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {select, pointer} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === 'wheel') && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchfirst,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0,\n tapDistance = 10;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled, {passive: false})\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point, event) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point, event);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .event(event)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p, event) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p, event);\n };\n\n zoom.scaleTo = function(selection, k, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p, event);\n };\n\n zoom.translateBy = function(selection, x, y, event) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n }, null, event);\n };\n\n zoom.translateTo = function(selection, x, y, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p, event);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point, event) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).event(event).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).event(event).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args).event(event),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n event: function(event) {\n if (event) this.sourceEvent = event;\n return this;\n },\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function wheeled(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, args).event(event),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = pointer(event);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent(event);\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned(event, ...args) {\n if (touchending || !filter.apply(this, arguments)) return;\n var currentTarget = event.currentTarget,\n g = gesture(this, args, true).event(event),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = pointer(event, currentTarget),\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved(event) {\n noevent(event);\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.event(event)\n .zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped(event) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent(event);\n g.event(event).end();\n }\n }\n\n function dblclicked(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n\n noevent(event);\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);\n else select(this).call(zoom.transform, t1, p0, event);\n }\n\n function touchstarted(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, args, event.changedTouches.length === n).event(event),\n started, i, t, p;\n\n nopropagation(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation(event);\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n t = pointer(t, this);\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n zoom.tapDistance = function(_) {\n return arguments.length ? (tapDistance = +_, zoom) : tapDistance;\n };\n\n return zoom;\n}\n"],"names":["Adder","x","p","j","y","hi","lo","n","flatten","arrays","array","merge","degrees","identity","decompose","a","b","c","d","e","f","scaleX","scaleY","skewX","svgNode","parseCss","value","m","parseSvg","interpolateTransform","parse","pxComma","pxParen","degParen","pop","s","translate","xa","ya","xb","yb","q","i","number","rotate","scale","t","o","interpolateTransformCss","interpolateTransformSvg","epsilon2","cosh","sinh","tanh","interpolateZoom","zoomRho","rho","rho2","rho4","zoom","p0","p1","ux0","uy0","w0","ux1","uy1","w1","dx","dy","d2","S","d1","b0","b1","r0","r1","coshr0","u","_","_1","_2","_4","timeout","callback","delay","time","Timer","elapsed","bbox","geojson","options","result","coordEach","coord","turf_bbox_default","epsilon","pi","halfPi","quarterPi","tau","radians","abs","atan","atan2","cos","exp","log","sin","sign","sqrt","tan","acos","asin","noop","streamGeometry","geometry","stream","streamGeometryType","streamObjectType","object","features","coordinates","streamLine","streamPolygon","geometries","closed","coordinate","geoStream","spherical","cartesian","lambda","phi","cosPhi","cartesianDot","cartesianCross","cartesianAddInPlace","cartesianScale","vector","k","cartesianNormalizeInPlace","l","compose","rotationIdentity","rotateRadians","deltaLambda","deltaPhi","deltaGamma","rotationLambda","rotationPhiGamma","forwardRotationLambda","rotation","cosDeltaPhi","sinDeltaPhi","cosDeltaGamma","sinDeltaGamma","z","forward","circleStream","radius","delta","direction","t0","t1","cosRadius","sinRadius","step","circleRadius","point","clipBuffer","lines","line","pointEqual","Intersection","points","other","entry","clipRejoin","segments","compareIntersection","startInside","interpolate","subject","clip","segment","link","start","current","isSubject","longitude","polygonContains","polygon","sinPhi","normal","angle","winding","sum","ring","point0","lambda0","phi0","sinPhi0","cosPhi0","lambda1","sinPhi1","cosPhi1","point1","phi1","absDelta","antimeridian","arc","intersection","phiArc","pointVisible","clipLine","sink","ringBuffer","ringSink","polygonStarted","lineStart","lineEnd","pointRing","ringStart","ringEnd","pointLine","clean","ringSegments","validSegment","clipAntimeridian","clipAntimeridianLine","clipAntimeridianInterpolate","sign0","sign1","clipAntimeridianIntersect","sinLambda0Lambda1","from","to","clipCircle","cr","smallRadius","notHemisphere","visible","c0","v0","v00","point2","v","code","intersect","two","pa","pb","n1","n2","n2n2","n1n2","determinant","c1","c2","n1xn2","A","B","w","uu","t2","polar","meridian","q1","r","x0","y0","x1","y1","ax","ay","bx","by","clipMax","clipMin","clipRectangle","a1","corner","comparePoint","ca","cb","activeStream","bufferStream","x__","y__","v__","x_","y_","v_","first","clipStream","polygonStart","polygonEnd","polygonInside","a0","cleanInside","linePoint","identity$1","boundsStream","boundsPoint","bounds","transformer","methods","TransformStream","key","fit","projection","fitBounds","fitExtent","extent","h","fitSize","size","fitWidth","width","fitHeight","height","maxDepth","cosMinDistance","resample","project","delta2","resampleNone","resampleLineTo","depth","phi2","lambda2","x2","y2","dx2","dy2","dz","lambda00","x00","y00","a00","b00","c00","resampleStream","ringPoint","transformRadians","transformRotate","scaleTranslate","sx","sy","transform","scaleTranslateRotate","alpha","cosAlpha","sinAlpha","ai","bi","ci","fi","projectionMutator","projectAt","theta","preclip","postclip","projectResample","projectTransform","projectRotateTransform","cache","cacheStream","invert","reset","recenter","center","conicProjection","cylindricalEqualAreaRaw","conicEqualAreaRaw","sy0","r0y","conicEqualArea","albers","multiplex","streams","geoAlbersUsa","lower48","lower48Point","alaska","alaskaPoint","hawaii","hawaiiPoint","pointStream","albersUsa","azimuthalInvert","sc","cc","mercatorRaw","geoMercator","mercatorProjection","clipExtent","reclip","A1","A2","A3","A4","M","iterations","equalEarthRaw","l2","l6","fy","fpy","geoEqualEarth","naturalEarth1Raw","phi4","geoNaturalEarth1","orthographicRaw","geoOrthographic","nonpassivecapture","noevent$1","event","dragDisable","view","root","selection","select","noevent","yesdrag","noclick","emptyOn","dispatch","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","schedule","node","name","id","index","group","timing","schedules","create","init","get","set","self","tween","timer","stop","tick","interrupt","active","empty","selection_interrupt","tweenRemove","tween0","tween1","tweenFunction","transition_tween","tweenValue","transition","interpolateNumber","color","interpolateRgb","interpolateString","attrRemove","attrRemoveNS","fullname","attrConstant","value1","string00","string1","interpolate0","string0","attrConstantNS","attrFunction","string10","attrFunctionNS","transition_attr","namespace","attrInterpolate","attrInterpolateNS","attrTweenNS","i0","attrTween","transition_attrTween","delayFunction","delayConstant","transition_delay","durationFunction","durationConstant","transition_duration","easeConstant","transition_ease","easeVarying","transition_easeVarying","transition_filter","match","matcher","groups","subgroups","subgroup","Transition","transition_merge","groups0","groups1","m0","m1","merges","group0","group1","onFunction","listener","on0","on1","sit","on","transition_on","removeFunction","parent","transition_remove","transition_select","selector","subnode","transition_selectAll","selectorAll","parents","children","child","inherit","Selection","transition_selection","styleNull","style","styleRemove","styleConstant","styleFunction","styleMaybeRemove","listener0","remove","transition_style","priority","styleInterpolate","styleTween","transition_styleTween","textConstant","textFunction","transition_text","textInterpolate","textTween","transition_textTween","transition_transition","id0","id1","newId","transition_end","that","resolve","reject","cancel","end","selection_prototype","cubicInOut","defaultTiming","easeCubicInOut","selection_transition","now","constant","ZoomEvent","type","sourceEvent","target","Transform","location","nopropagation","defaultFilter","defaultExtent","defaultTransform","defaultWheelDelta","defaultTouchable","defaultConstrain","translateExtent","dx0","dx1","dy0","dy1","filter","constrain","wheelDelta","touchable","scaleExtent","duration","listeners","touchstarting","touchfirst","touchending","touchDelay","wheelDelay","clickDistance2","tapDistance","wheeled","mousedowned","dblclicked","touchstarted","touchmoved","touchended","collection","gesture","k0","k1","centroid","args","g","Gesture","pointer","wheelidled","currentTarget","mousemoved","mouseupped","dragEnable","touches","started","l0","l1","dp","dl"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74]}
|