{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.math.hypot.js","webpack:///./node_modules/d3/dist/package.js","webpack:///./node_modules/d3-selection/src/selector.js","webpack:///./node_modules/d3-selection/src/array.js","webpack:///./node_modules/d3-selection/src/selectorAll.js","webpack:///./node_modules/d3-selection/src/selection/selectAll.js","webpack:///./node_modules/d3-selection/src/matcher.js","webpack:///./node_modules/d3-selection/src/selection/selectChild.js","webpack:///./node_modules/d3-selection/src/selection/selectChildren.js","webpack:///./node_modules/d3-selection/src/selection/sparse.js","webpack:///./node_modules/d3-selection/src/selection/enter.js","webpack:///./node_modules/d3-selection/src/constant.js","webpack:///./node_modules/d3-selection/src/selection/data.js","webpack:///./node_modules/d3-selection/src/selection/sort.js","webpack:///./node_modules/d3-selection/src/selection/size.js","webpack:///./node_modules/d3-selection/src/namespaces.js","webpack:///./node_modules/d3-selection/src/namespace.js","webpack:///./node_modules/d3-selection/src/selection/attr.js","webpack:///./node_modules/d3-selection/src/window.js","webpack:///./node_modules/d3-selection/src/selection/style.js","webpack:///./node_modules/d3-selection/src/selection/property.js","webpack:///./node_modules/d3-selection/src/selection/classed.js","webpack:///./node_modules/d3-selection/src/selection/text.js","webpack:///./node_modules/d3-selection/src/selection/html.js","webpack:///./node_modules/d3-selection/src/selection/raise.js","webpack:///./node_modules/d3-selection/src/selection/lower.js","webpack:///./node_modules/d3-selection/src/creator.js","webpack:///./node_modules/d3-selection/src/selection/insert.js","webpack:///./node_modules/d3-selection/src/selection/remove.js","webpack:///./node_modules/d3-selection/src/selection/clone.js","webpack:///./node_modules/d3-selection/src/selection/on.js","webpack:///./node_modules/d3-selection/src/selection/dispatch.js","webpack:///./node_modules/d3-selection/src/selection/iterator.js","webpack:///./node_modules/d3-selection/src/selection/index.js","webpack:///./node_modules/d3-selection/src/selection/select.js","webpack:///./node_modules/d3-selection/src/selection/filter.js","webpack:///./node_modules/d3-selection/src/selection/exit.js","webpack:///./node_modules/d3-selection/src/selection/join.js","webpack:///./node_modules/d3-selection/src/selection/merge.js","webpack:///./node_modules/d3-selection/src/selection/order.js","webpack:///./node_modules/d3-selection/src/selection/call.js","webpack:///./node_modules/d3-selection/src/selection/nodes.js","webpack:///./node_modules/d3-selection/src/selection/node.js","webpack:///./node_modules/d3-selection/src/selection/empty.js","webpack:///./node_modules/d3-selection/src/selection/each.js","webpack:///./node_modules/d3-selection/src/selection/append.js","webpack:///./node_modules/d3-selection/src/selection/datum.js","webpack:///./node_modules/d3-selection/src/select.js","webpack:///./node_modules/d3-drag/src/noevent.js","webpack:///./node_modules/d3-drag/src/nodrag.js","webpack:///./node_modules/d3-color/src/define.js","webpack:///./node_modules/d3-color/src/color.js","webpack:///./node_modules/d3-interpolate/src/basis.js","webpack:///./node_modules/d3-interpolate/src/constant.js","webpack:///./node_modules/d3-interpolate/src/color.js","webpack:///./node_modules/d3-interpolate/src/rgb.js","webpack:///./node_modules/d3-interpolate/src/basisClosed.js","webpack:///./node_modules/d3-interpolate/src/date.js","webpack:///./node_modules/d3-interpolate/src/number.js","webpack:///./node_modules/d3-interpolate/src/string.js","webpack:///./node_modules/d3-selection/src/pointer.js","webpack:///./node_modules/d3-selection/src/sourceEvent.js","webpack:///./node_modules/d3-timer/src/timeout.js","webpack:///./node_modules/d3-transition/src/transition/schedule.js","webpack:///./node_modules/d3-transition/src/interrupt.js","webpack:///./node_modules/d3-interpolate/src/transform/parse.js","webpack:///./node_modules/d3-interpolate/src/transform/decompose.js","webpack:///./node_modules/d3-interpolate/src/transform/index.js","webpack:///./node_modules/d3-transition/src/transition/tween.js","webpack:///./node_modules/d3-transition/src/transition/interpolate.js","webpack:///./node_modules/d3-transition/src/transition/attr.js","webpack:///./node_modules/d3-transition/src/transition/attrTween.js","webpack:///./node_modules/d3-transition/src/transition/delay.js","webpack:///./node_modules/d3-transition/src/transition/duration.js","webpack:///./node_modules/d3-transition/src/transition/ease.js","webpack:///./node_modules/d3-transition/src/transition/on.js","webpack:///./node_modules/d3-transition/src/transition/remove.js","webpack:///./node_modules/d3-transition/src/transition/selection.js","webpack:///./node_modules/d3-transition/src/transition/style.js","webpack:///./node_modules/d3-transition/src/transition/styleTween.js","webpack:///./node_modules/d3-transition/src/transition/textTween.js","webpack:///./node_modules/d3-transition/src/transition/index.js","webpack:///./node_modules/d3-transition/src/transition/select.js","webpack:///./node_modules/d3-transition/src/transition/selectAll.js","webpack:///./node_modules/d3-transition/src/transition/filter.js","webpack:///./node_modules/d3-transition/src/transition/merge.js","webpack:///./node_modules/d3-transition/src/transition/transition.js","webpack:///./node_modules/d3-transition/src/transition/text.js","webpack:///./node_modules/d3-transition/src/transition/easeVarying.js","webpack:///./node_modules/d3-transition/src/transition/end.js","webpack:///./node_modules/d3-transition/src/selection/transition.js","webpack:///./node_modules/d3-ease/src/cubic.js","webpack:///./node_modules/d3-transition/src/selection/index.js","webpack:///./node_modules/d3-transition/src/selection/interrupt.js","webpack:///./node_modules/d3-brush/src/brush.js","webpack:///./node_modules/d3-drag/src/constant.js","webpack:///./node_modules/d3-drag/src/event.js","webpack:///./node_modules/d3-drag/src/drag.js","webpack:///./node_modules/d3-scale/src/init.js","webpack:///./node_modules/d3-scale/src/ordinal.js","webpack:///./node_modules/d3-path/src/path.js","webpack:///./node_modules/d3-shape/src/constant.js","webpack:///./node_modules/d3-shape/src/array.js","webpack:///./node_modules/d3-shape/src/curve/linear.js","webpack:///./node_modules/d3-shape/src/point.js","webpack:///./node_modules/d3-shape/src/line.js","webpack:///./node_modules/d3-interpolate/src/zoom.js","webpack:///./node_modules/d3-zoom/src/transform.js","webpack:///./node_modules/d3-timer/src/timer.js","webpack:///./node_modules/d3-dispatch/src/dispatch.js"],"names":["$","$hypot","Math","hypot","abs","sqrt","target","stat","forced","Infinity","NaN","value1","value2","arg","div","sum","i","aLen","arguments","length","larg","none","selector","this","querySelector","x","Array","from","querySelectorAll","matches","childMatcher","node","find","prototype","childFirst","firstElementChild","filter","children","update","EnterNode","parent","datum","ownerDocument","namespaceURI","_next","_parent","__data__","constructor","appendChild","child","insertBefore","next","bindIndex","group","enter","exit","data","groupLength","dataLength","bindKey","key","keyValue","nodeByKeyValue","Map","keyValues","call","has","set","get","delete","ascending","a","b","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","isArray","minLen","_arrayLikeToArray","n","Object","toString","slice","name","test","_unsupportedIterableToArray","F","s","done","value","e","_e","f","TypeError","err","normalCompletion","didErr","step","_e2","return","arr","len","arr2","xhtml","svg","xlink","xml","xmlns","prefix","indexOf","namespaces","hasOwnProperty","space","local","attrRemove","removeAttribute","attrRemoveNS","fullname","removeAttributeNS","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","v","apply","attrFunctionNS","defaultView","document","styleRemove","style","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","propertyRemove","propertyConstant","propertyFunction","classArray","string","trim","split","classList","ClassList","_node","_names","getAttribute","classedAdd","names","list","add","classedRemove","remove","classedTrue","classedFalse","classedFunction","push","join","splice","contains","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","parentNode","lower","previousSibling","firstChild","creatorInherit","uri","documentElement","createElement","createElementNS","creatorFixed","namespace","constantNull","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","parseTypenames","typenames","map","t","type","onRemove","typename","on","__on","j","m","removeEventListener","listener","options","onAdd","event","contextListener","addEventListener","dispatchEvent","params","window","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","_marked","mark","_callee","groups","wrap","_context","prev","_groups","stop","Selection","parents","_parents","select","subgroups","subnode","subgroup","selectAll","array","arrayAll","selectorAll","selectChild","match","childFind","selectChildren","childrenFilter","matcher","bind","constant","enterGroup","updateGroup","exitGroup","previous","i0","i1","_enter","_exit","sparse","onenter","append","onupdate","onexit","merge","order","selection","Error","groups0","groups1","m0","m1","min","merges","group0","group1","compareDocumentPosition","sort","compareNode","compare","sortgroups","sortgroup","callback","nodes","size","_step","_iterator","empty","each","attr","getAttributeNS","property","classed","text","html","create","creator","insert","before","deep","dispatch","nopropagation","stopImmediatePropagation","preventDefault","root","view","noevent","__noselect","MozUserSelect","yesdrag","noclick","setTimeout","factory","extend","definition","Color","reI","reN","reP","reHex","reRgbInteger","RegExp","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","format","l","toLowerCase","exec","parseInt","rgbn","Rgb","rgba","hsla","r","g","rgbConvert","opacity","rgb_formatHex","hex","rgb_formatRgb","isNaN","max","round","h","Hsl","hslConvert","hsl2rgb","m2","basis","t1","v0","v1","v2","v3","t2","t3","define","copy","channels","assign","displayable","formatHsl","brighter","k","pow","darker","linear","d","gamma","y","nogamma","exponential","color","start","end","rgbGamma","rgbSpline","spline","colors","values","floor","reA","reB","source","am","bm","bs","bi","lastIndex","q","index","number","one","zero","sourceEvent","undefined","currentTarget","ownerSVGElement","createSVGPoint","point","clientX","clientY","matrixTransform","getScreenCTM","inverse","getBoundingClientRect","rect","left","clientLeft","top","clientTop","pageX","pageY","delay","restart","elapsed","time","emptyOn","emptyTween","schedules","__transition","id","self","tween","state","timeout","timer","tick","duration","ease","timing","init","schedule","svgNode","active","degrees","PI","identity","translateX","translateY","rotate","skewX","scaleX","scaleY","c","atan2","atan","interpolateTransform","parse","pxComma","pxParen","degParen","pop","xa","ya","xb","yb","translate","scale","interpolateTransformCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","interpolateTransformSvg","transform","baseVal","consolidate","matrix","tweenRemove","tween0","tween1","tweenFunction","tweenValue","transition","_id","interpolate","string00","interpolate0","string1","string0","string10","attrInterpolate","attrInterpolateNS","attrTweenNS","t0","_value","attrTween","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","onFunction","on0","on1","sit","every","styleInterpolate","styleTween","textInterpolate","textTween","Transition","_name","newId","selection_prototype","inherit","id0","id1","styleNull","listener0","styleMaybeRemove","easeVarying","that","Promise","resolve","reject","cancel","_","interrupt","defaultTiming","concat","number1","number2","DragEvent","_ref","subject","identifier","dx","dy","defineProperties","enumerable","configurable","ctrlKey","button","defaultContainer","defaultSubject","navigator","maxTouchPoints","mousedownx","mousedowny","mousemoving","touchending","container","touchable","gestures","listeners","clickDistance2","drag","mousedowned","touchstarted","touchmoved","touchended","gesture","beforestart","mousemoved","mouseupped","nodrag","mouse","touches","changedTouches","clearTimeout","touch","p","pointer","p0","clickDistance","initRange","domain","range","implicit","ordinal","unknown","pi","tau","tauEpsilon","Path","_x0","_y0","_x1","_y1","path","moveTo","closePath","lineTo","quadraticCurveTo","x1","y1","bezierCurveTo","x2","y2","arcTo","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","acos","t01","t21","arc","a0","a1","ccw","cos","sin","cw","da","w","Linear","context","areaStart","_line","areaEnd","lineStart","_point","lineEnd","defined","curve","output","line","buffer","defined0","cosh","exp","zoom","p1","S","ux0","uy0","w0","ux1","uy1","w1","d2","log","rho","d1","b0","rho4","rho2","b1","r0","r1","coshr0","u","sinh","SQRT2","_1","_2","zoomRho","Transform","applyX","applyY","invert","location","invertX","invertY","rescaleX","rescaleY","taskHead","taskTail","frame","interval","clockLast","clockNow","clockSkew","clock","performance","now","Date","setFrame","requestAnimationFrame","clearNow","Timer","_call","_time","wake","timerFlush","sleep","nap","poke","clearInterval","setInterval","noop","Dispatch","types","T","args"],"mappings":"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","file":"91d0f8b01bf0a1406ccb768de218904b31955352-39a43bf5e310c4b85649.js","sourcesContent":["var $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-hypot -- required for testing\nvar $hypot = Math.hypot;\nvar abs = Math.abs;\nvar sqrt = Math.sqrt;\n\n// Chrome 77 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=9546\nvar BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity;\n\n// `Math.hypot` method\n// https://tc39.es/ecma262/#sec-math.hypot\n$({ target: 'Math', stat: true, forced: BUGGY }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n hypot: function hypot(value1, value2) {\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * sqrt(sum);\n }\n});\n","export var name = \"d3\";\nexport var version = \"6.7.0\";\nexport var description = \"Data-Driven Documents\";\nexport var keywords = [\"dom\", \"visualization\", \"svg\", \"animation\", \"canvas\"];\nexport var homepage = \"https://d3js.org\";\nexport var license = \"BSD-3-Clause\";\nexport var author = {\n \"name\": \"Mike Bostock\",\n \"url\": \"https://bost.ocks.org/mike\"\n};\nexport var main = \"dist/d3.node.js\";\nexport var unpkg = \"dist/d3.min.js\";\nexport var jsdelivr = \"dist/d3.min.js\";\nexport var module = \"index.js\";\nexport var repository = {\n \"type\": \"git\",\n \"url\": \"https://github.com/d3/d3.git\"\n};\nexport var files = [\"dist/**/*.js\", \"index.js\"];\nexport var scripts = {\n \"pretest\": \"rimraf dist && mkdir dist && json2module package.json > dist/package.js && rollup -c\",\n \"test\": \"tape 'test/**/*-test.js'\",\n \"prepublishOnly\": \"yarn test\",\n \"postpublish\": \"git push && git push --tags && cd ../d3.github.com && git pull && cp ../d3/dist/d3.js d3.v${npm_package_version%%.*}.js && cp ../d3/dist/d3.min.js d3.v${npm_package_version%%.*}.min.js && git add d3.v${npm_package_version%%.*}.js d3.v${npm_package_version%%.*}.min.js && git commit -m \\\"d3 ${npm_package_version}\\\" && git push && cd - && zip -j dist/d3.zip -- LICENSE README.md API.md CHANGES.md dist/d3.js dist/d3.min.js\"\n};\nexport var devDependencies = {\n \"json2module\": \"0.0\",\n \"rimraf\": \"3\",\n \"rollup\": \"2\",\n \"rollup-plugin-ascii\": \"0.0\",\n \"rollup-plugin-node-resolve\": \"5\",\n \"rollup-plugin-terser\": \"7\",\n \"tape\": \"4\",\n \"tape-await\": \"0.1\"\n};\nexport var dependencies = {\n \"d3-array\": \"2\",\n \"d3-axis\": \"2\",\n \"d3-brush\": \"2\",\n \"d3-chord\": \"2\",\n \"d3-color\": \"2\",\n \"d3-contour\": \"2\",\n \"d3-delaunay\": \"5\",\n \"d3-dispatch\": \"2\",\n \"d3-drag\": \"2\",\n \"d3-dsv\": \"2\",\n \"d3-ease\": \"2\",\n \"d3-fetch\": \"2\",\n \"d3-force\": \"2\",\n \"d3-format\": \"2\",\n \"d3-geo\": \"2\",\n \"d3-hierarchy\": \"2\",\n \"d3-interpolate\": \"2\",\n \"d3-path\": \"2\",\n \"d3-polygon\": \"2\",\n \"d3-quadtree\": \"2\",\n \"d3-random\": \"2\",\n \"d3-scale\": \"3\",\n \"d3-scale-chromatic\": \"2\",\n \"d3-selection\": \"2\",\n \"d3-shape\": \"2\",\n \"d3-time\": \"2\",\n \"d3-time-format\": \"3\",\n \"d3-timer\": \"2\",\n \"d3-transition\": \"2\",\n \"d3-zoom\": \"2\"\n};","function none() {}\n\nexport default function (selector) {\n return selector == null ? none : function () {\n return this.querySelector(selector);\n };\n}","export default function (x) {\n return typeof x === \"object\" && \"length\" in x ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}","function empty() {\n return [];\n}\n\nexport default function (selector) {\n return selector == null ? empty : function () {\n return this.querySelectorAll(selector);\n };\n}","import { Selection } from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function () {\n var group = select.apply(this, arguments);\n return group == null ? [] : array(group);\n };\n}\n\nexport default function (select) {\n if (typeof select === \"function\") select = arrayAll(select);else 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 subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}","export default function (selector) {\n return function () {\n return this.matches(selector);\n };\n}\nexport function childMatcher(selector) {\n return function (node) {\n return node.matches(selector);\n };\n}","import { childMatcher } from \"../matcher.js\";\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function () {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function (match) {\n return this.select(match == null ? childFirst : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}","import { childMatcher } from \"../matcher.js\";\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return this.children;\n}\n\nfunction childrenFilter(match) {\n return function () {\n return filter.call(this.children, match);\n };\n}\n\nexport default function (match) {\n return this.selectAll(match == null ? children : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}","export default function (update) {\n return new Array(update.length);\n}","import sparse from \"./sparse.js\";\nimport { Selection } from \"./index.js\";\nexport default function () {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function appendChild(child) {\n return this._parent.insertBefore(child, this._next);\n },\n insertBefore: function insertBefore(child, next) {\n return this._parent.insertBefore(child, next);\n },\n querySelector: function querySelector(selector) {\n return this._parent.querySelector(selector);\n },\n querySelectorAll: function querySelectorAll(selector) {\n return this._parent.querySelectorAll(selector);\n }\n};","export default function (x) {\n return function () {\n return x;\n };\n}","import { Selection } from \"./index.js\";\nimport { EnterNode } from \"./enter.js\";\nimport array from \"../array.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length; // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n } // Put any non-null nodes that don’t fit into exit.\n\n\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map(),\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue; // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n } // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n\n\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n } // Add any remaining nodes that were not bound to data to exit.\n\n\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && nodeByKeyValue.get(keyValues[i]) === node) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function (value, key) {\n if (!arguments.length) return Array.from(this, datum);\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = array(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key); // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n\n while (!(next = updateGroup[i1]) && ++i1 < dataLength) {\n ;\n }\n\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}","import \"core-js/modules/es.array.sort.js\";\nimport { Selection } from \"./index.js\";\nexport default function (compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}","function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nexport default function () {\n var size = 0;\n\n var _iterator = _createForOfIteratorHelper(this),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var node = _step.value;\n ++size;\n } // eslint-disable-line no-unused-vars\n\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return size;\n}","export var xhtml = \"http://www.w3.org/1999/xhtml\";\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};","import namespaces from \"./namespaces.js\";\nexport default function (name) {\n var prefix = name += \"\",\n i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {\n space: namespaces[prefix],\n local: name\n } : name; // eslint-disable-line no-prototype-builtins\n}","import namespace from \"../namespace.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, value) {\n return function () {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function () {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function (name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local ? node.getAttributeNS(fullname.space, fullname.local) : node.getAttribute(fullname);\n }\n\n return this.each((value == null ? fullname.local ? attrRemoveNS : attrRemove : typeof value === \"function\" ? fullname.local ? attrFunctionNS : attrFunction : fullname.local ? attrConstantNS : attrConstant)(fullname, value));\n}","export default function (node) {\n return node.ownerDocument && node.ownerDocument.defaultView // node is a Node\n || node.document && node // node is a Window\n || node.defaultView; // node is a Document\n}","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function () {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function () {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function (name, value, priority) {\n return arguments.length > 1 ? this.each((value == null ? styleRemove : typeof value === \"function\" ? styleFunction : styleConstant)(name, value, priority == null ? \"\" : priority)) : styleValue(this.node(), name);\n}\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name) || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}","function propertyRemove(name) {\n return function () {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function () {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];else this[name] = v;\n };\n}\n\nexport default function (name, value) {\n return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === \"function\" ? propertyFunction : propertyConstant)(name, value)) : this.node()[name];\n}","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function add(name) {\n var i = this._names.indexOf(name);\n\n if (i < 0) {\n this._names.push(name);\n\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function remove(name) {\n var i = this._names.indexOf(name);\n\n if (i >= 0) {\n this._names.splice(i, 1);\n\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function contains(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node),\n i = -1,\n n = names.length;\n\n while (++i < n) {\n list.add(names[i]);\n }\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node),\n i = -1,\n n = names.length;\n\n while (++i < n) {\n list.remove(names[i]);\n }\n}\n\nfunction classedTrue(names) {\n return function () {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function () {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function () {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function (name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()),\n i = -1,\n n = names.length;\n\n while (++i < n) {\n if (!list.contains(names[i])) return false;\n }\n\n return true;\n }\n\n return this.each((typeof value === \"function\" ? classedFunction : value ? classedTrue : classedFalse)(names, value));\n}","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function () {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function () {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function (value) {\n return arguments.length ? this.each(value == null ? textRemove : (typeof value === \"function\" ? textFunction : textConstant)(value)) : this.node().textContent;\n}","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function () {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function () {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function (value) {\n return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === \"function\" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML;\n}","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function () {\n return this.each(raise);\n}","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function () {\n return this.each(lower);\n}","import namespace from \"./namespace.js\";\nimport { xhtml } from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function () {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml ? document.createElement(name) : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function () {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function (name) {\n var fullname = namespace(name);\n return (fullname.local ? creatorFixed : creatorInherit)(fullname);\n}","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function (name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function () {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function () {\n return this.each(remove);\n}","function selection_cloneShallow() {\n var clone = this.cloneNode(false),\n parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true),\n parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function (deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}","function contextListener(listener) {\n return function (event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function (t) {\n var name = \"\",\n i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {\n type: t,\n name: name\n };\n });\n}\n\nfunction onRemove(typename) {\n return function () {\n var on = this.__on;\n if (!on) return;\n\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n\n if (++i) on.length = i;else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function () {\n var on = this.__on,\n o,\n listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {\n type: typename.type,\n name: typename.name,\n value: value,\n listener: listener,\n options: options\n };\n if (!on) this.__on = [o];else on.push(o);\n };\n}\n\nexport default function (typename, value, options) {\n var typenames = parseTypenames(typename + \"\"),\n i,\n n = typenames.length,\n t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n\n for (i = 0; i < n; ++i) {\n this.each(on(typenames[i], value, options));\n }\n\n return this;\n}","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function () {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function () {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function (type, params) {\n return this.each((typeof params === \"function\" ? dispatchFunction : dispatchConstant)(type, params));\n}","import _regeneratorRuntime from \"/datamap.tools/node_modules/@babel/runtime/regenerator/index.js\";\n\nvar _marked = /*#__PURE__*/_regeneratorRuntime.mark(_callee);\n\nexport default function _callee() {\n var groups, j, m, group, i, n, node;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n groups = this._groups, j = 0, m = groups.length;\n\n case 1:\n if (!(j < m)) {\n _context.next = 13;\n break;\n }\n\n group = groups[j], i = 0, n = group.length;\n\n case 3:\n if (!(i < n)) {\n _context.next = 10;\n break;\n }\n\n if (!(node = group[i])) {\n _context.next = 7;\n break;\n }\n\n _context.next = 7;\n return node;\n\n case 7:\n ++i;\n _context.next = 3;\n break;\n\n case 10:\n ++j;\n _context.next = 1;\n break;\n\n case 13:\n case \"end\":\n return _context.stop();\n }\n }\n }, _marked, this);\n}","import _defineProperty from \"/datamap.tools/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\nimport selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\nexport var root = [null];\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = _defineProperty({\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n}, Symbol.iterator, selection_iterator);\nexport default selection;","import { Selection } from \"./index.js\";\nimport selector from \"../selector.js\";\nexport default function (select) {\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 }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}","import { Selection } from \"./index.js\";\nimport matcher from \"../matcher.js\";\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 Selection(subgroups, this._parents);\n}","import sparse from \"./sparse.js\";\nimport { Selection } from \"./index.js\";\nexport default function () {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}","export default function (onenter, onupdate, onexit) {\n var enter = this.enter(),\n update = this,\n exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove();else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}","import { Selection } from \"./index.js\";\nexport default function (selection) {\n if (!(selection instanceof Selection)) throw new Error(\"invalid merge\");\n\n for (var groups0 = this._groups, groups1 = selection._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 Selection(merges, this._parents);\n}","export default function () {\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}","export default function () {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}","export default function () {\n return Array.from(this);\n}","export default function () {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}","export default function () {\n return !this.node();\n}","export default function (callback) {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}","import creator from \"../creator.js\";\nexport default function (name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function () {\n return this.appendChild(create.apply(this, arguments));\n });\n}","export default function (value) {\n return arguments.length ? this.property(\"__data__\", value) : this.node().__data__;\n}","import { Selection, root } from \"./selection/index.js\";\nexport default function (selector) {\n return typeof selector === \"string\" ? new Selection([[document.querySelector(selector)]], [document.documentElement]) : new Selection([[selector]], root);\n}","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\nexport default function (event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}","import { select } from \"d3-selection\";\nimport noevent from \"./noevent.js\";\nexport default function (view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, true);\n\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, true);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n\n if (noclick) {\n selection.on(\"click.drag\", noevent, true);\n setTimeout(function () {\n selection.on(\"click.drag\", null);\n }, 0);\n }\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}","export default function (constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n\n for (var key in definition) {\n prototype[key] = definition[key];\n }\n\n return prototype;\n}","import define, { extend } from \"./define.js\";\nexport function Color() {}\nvar _darker = 0.7;\nexport { _darker as darker };\n\nvar _brighter = 1 / _darker;\n\nexport { _brighter as brighter };\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\ndefine(Color, color, {\n copy: function copy(channels) {\n return Object.assign(new this.constructor(), this, channels);\n },\n displayable: function displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb(m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, (m & 0xf) << 4 | m & 0xf, 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba(m >> 12 & 0xf | m >> 8 & 0xf0, m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, ((m & 0xf) << 4 | m & 0xf) / 0xff) // #f000\n : null // invalid hex\n ) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0) : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb();\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\ndefine(Rgb, rgb, extend(Color, {\n brighter: function brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function rgb() {\n return this;\n },\n displayable: function displayable() {\n return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1;\n },\n hex: rgb_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\") + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;else if (l <= 0 || l >= 1) h = s = NaN;else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl();\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;else if (g === max) h = (b - r) / s + 2;else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n\n return new Hsl(h, s, l, o.opacity);\n}\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), hsl2rgb(h, m1, m2), hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), this.opacity);\n },\n displayable: function displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;\n },\n formatHsl: function formatHsl() {\n var a = this.opacity;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\") + (this.h || 0) + \", \" + (this.s || 0) * 100 + \"%, \" + (this.l || 0) * 100 + \"%\" + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n/* From FvD 13.37, CSS Color Module Level 3 */\n\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;\n}","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1,\n t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6;\n}\nexport default function (values) {\n var n = values.length - 1;\n return function (t) {\n var i = t <= 0 ? t = 0 : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}","export default (function (x) {\n return function () {\n return x;\n };\n});","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function (t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function (t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function (a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}","import { rgb as colorRgb } from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, { gamma } from \"./color.js\";\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function (t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function (colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i,\n color;\n\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function (t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);","import { basis } from \"./basis.js\";\nexport default function (values) {\n var n = values.length;\n return function (t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}","export default function (a, b) {\n var d = new Date();\n return a = +a, b = +b, function (t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}","export default function (a, b) {\n return a = +a, b = +b, function (t) {\n return a * (1 - t) + b * t;\n };\n}","import number from \"./number.js\";\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function () {\n return b;\n };\n}\n\nfunction one(b) {\n return function (t) {\n return b(t) + \"\";\n };\n}\n\nexport default function (a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0,\n // scan index for next number in b\n am,\n // current match in a\n bm,\n // current match in b\n bs,\n // string preceding current number in b, if any\n i = -1,\n // index in s\n s = [],\n // string constants and placeholders\n q = []; // number interpolators\n // Coerce inputs to strings.\n\n a = a + \"\", b = b + \"\"; // Interpolate pairs of numbers in a & b.\n\n while ((am = reA.exec(a)) && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) {\n // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n if ((am = am[0]) === (bm = bm[0])) {\n // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else {\n // interpolate non-matching numbers\n s[++i] = null;\n q.push({\n i: i,\n x: number(am, bm)\n });\n }\n\n bi = reB.lastIndex;\n } // Add remains of b.\n\n\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n } // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n\n\n return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function (t) {\n for (var i = 0, o; i < b; ++i) {\n s[(o = q[i]).i] = o.x(t);\n }\n\n return s.join(\"\");\n });\n}","import sourceEvent from \"./sourceEvent.js\";\nexport default function (event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n\n if (node) {\n var svg = node.ownerSVGElement || node;\n\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n\n return [event.pageX, event.pageY];\n}","export default function (event) {\n var sourceEvent;\n\n while (sourceEvent = event.sourceEvent) {\n event = sourceEvent;\n }\n\n return event;\n}","import { Timer } from \"./timer.js\";\nexport default function (callback, delay, time) {\n var t = new Timer();\n delay = delay == null ? 0 : +delay;\n t.restart(function (elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}","import { dispatch } from \"d3-dispatch\";\nimport { timer, timeout } from \"d3-timer\";\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\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;\nexport default function (node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index,\n // For context during callback.\n group: group,\n // 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}\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}\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}\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; // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n\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); // If the elapsed delay is less than our first sleep, start immediately.\n\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o; // If the state is not SCHEDULED, then we previously errored on start.\n\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue; // 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\n if (o.state === STARTED) return timeout(start); // Interrupt the active transition, if any.\n\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 } // 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 } // 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\n\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 }); // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n\n self.state = STARTED; // Initialize the tween, deleting null tween.\n\n tween = new Array(n = self.tween.length);\n\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\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 } // Dispatch the end event.\n\n\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\n for (var i in schedules) {\n return;\n } // eslint-disable-line no-unused-vars\n\n\n delete node.__transition;\n }\n}","import { STARTING, ENDING, ENDED } from \"./transition/schedule.js\";\nexport default function (node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n if (!schedules) return;\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) {\n empty = false;\n continue;\n }\n\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}","import decompose, { identity } from \"./decompose.js\";\nvar svgNode;\n/* eslint-disable no-undef */\n\nexport function parseCss(value) {\n var 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}\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}","var degrees = 180 / Math.PI;\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\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}","import number from \"../number.js\";\nimport { parseCss, parseSvg } from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\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({\n i: i - 4,\n x: number(xa, xb)\n }, {\n i: i - 2,\n x: number(ya, yb)\n });\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\n q.push({\n i: s.push(pop(s) + \"rotate(\", null, degParen) - 2,\n x: number(a, b)\n });\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({\n i: s.push(pop(s) + \"skewX(\", null, degParen) - 2,\n x: number(a, b)\n });\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({\n i: i - 4,\n x: number(xa, xb)\n }, {\n i: i - 2,\n x: number(ya, yb)\n });\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 = [],\n // string constants and placeholders\n q = []; // number interpolators\n\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\n return function (t) {\n var i = -1,\n n = q.length,\n o;\n\n while (++i < n) {\n s[(o = q[i]).i] = o.x(t);\n }\n\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");","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; // 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\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n\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; // 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\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n\n for (var t = {\n name: name,\n value: value\n }, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\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 name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n\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\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n transition.each(function () {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n return function (node) {\n return get(node, id).value[name];\n };\n}","import { color } from \"d3-color\";\nimport { interpolateNumber, interpolateRgb, interpolateString } from \"d3-interpolate\";\nexport default function (a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber : b instanceof color ? interpolateRgb : (c = color(b)) ? (b = c, interpolateRgb) : interpolateString)(a, b);\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 : string0 === string00 ? interpolate0 : 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 : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00, string10, interpolate0;\n return function () {\n var string0,\n value1 = value(this),\n string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00, string10, interpolate0;\n return function () {\n var string0,\n value1 = value(this),\n 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 : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function (name, value) {\n var fullname = namespace(name),\n i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\" ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value)) : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname) : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\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\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\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n\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\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}","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 return arguments.length ? this.each((typeof value === \"function\" ? delayFunction : delayConstant)(id, value)) : get(this.node(), id).delay;\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 return arguments.length ? this.each((typeof value === \"function\" ? durationFunction : durationConstant)(id, value)) : get(this.node(), id).duration;\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 return arguments.length ? this.each(easeConstant(id, value)) : get(this.node(), id).ease;\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,\n on1,\n sit = start(name) ? init : set;\n return function () {\n var schedule = sit(this, id),\n on = schedule.on; // 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\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n schedule.on = on1;\n };\n}\n\nexport default function (name, listener) {\n var id = this._id;\n return arguments.length < 2 ? get(this.node(), id).on.on(name) : this.each(onFunction(id, name, listener));\n}","function removeFunction(id) {\n return function () {\n var parent = this.parentNode;\n\n for (var i in this.__transition) {\n if (+i !== id) return;\n }\n\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function () {\n return this.on(\"end.remove\", removeFunction(this._id));\n}","import { selection } from \"d3-selection\";\nvar Selection = selection.prototype.constructor;\nexport default function () {\n return new Selection(this._groups, this._parents);\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, string10, interpolate0;\n return function () {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : 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 : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00, string10, 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 : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0,\n on1,\n listener0,\n key = \"style.\" + name,\n event = \"end.\" + key,\n 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; // 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\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\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.styleTween(name, styleNull(name, i)).on(\"end.style.\" + name, styleRemove(name)) : typeof value === \"function\" ? this.styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value))).each(styleMaybeRemove(this._id, name)) : this.styleTween(name, styleConstant(name, i, value), priority).on(\"end.style.\" + name, null);\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\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\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}","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\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\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}","import _defineProperty from \"/datamap.tools/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\nimport { 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\";\nvar id = 0;\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\nexport default function transition(name) {\n return selection().transition(name);\n}\nexport function newId() {\n return ++id;\n}\nvar selection_prototype = selection.prototype;\nTransition.prototype = transition.prototype = _defineProperty({\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\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]);","import { selector } from \"d3-selection\";\nimport { Transition } from \"./index.js\";\nimport schedule, { get } from \"./schedule.js\";\nexport default function (select) {\n var name = this._name,\n id = this._id;\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}","import { selectorAll } from \"d3-selection\";\nimport { Transition } from \"./index.js\";\nimport schedule, { get } from \"./schedule.js\";\nexport default function (select) {\n var name = this._name,\n id = this._id;\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\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}","import { matcher } from \"d3-selection\";\nimport { Transition } from \"./index.js\";\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}","import { Transition } from \"./index.js\";\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}","import { Transition, newId } from \"./index.js\";\nimport schedule, { get } from \"./schedule.js\";\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}","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\" ? textFunction(tweenValue(this, \"text\", value)) : textConstant(value == null ? \"\" : value + \"\"));\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}","import { set } from \"./schedule.js\";\nexport default function () {\n var on0,\n on1,\n that = this,\n id = that._id,\n size = that.size();\n return new Promise(function (resolve, reject) {\n var cancel = {\n value: reject\n },\n end = {\n value: function value() {\n if (--size === 0) resolve();\n }\n };\n that.each(function () {\n var schedule = set(this, id),\n on = schedule.on; // 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\n if (on !== on0) {\n on1 = (on0 = on).copy();\n\n on1._.cancel.push(cancel);\n\n on1._.interrupt.push(cancel);\n\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n }); // The selection was empty, resolve end immediately\n\n if (size === 0) resolve();\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\";\nvar defaultTiming = {\n time: null,\n // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(\"transition \".concat(id, \" not found\"));\n }\n }\n\n return timing;\n}\n\nexport default function (name) {\n var id, 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}","export function cubicIn(t) {\n return t * t * t;\n}\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}","import { selection } from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;","import interrupt from \"../interrupt.js\";\nexport default function (name) {\n return this.each(function () {\n interrupt(this, name);\n });\n}","function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { dispatch } from \"d3-dispatch\";\nimport { dragDisable, dragEnable } from \"d3-drag\";\nimport { interpolate } from \"d3-interpolate\";\nimport { pointer, select } from \"d3-selection\";\nimport { interrupt } from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, { nopropagation } from \"./noevent.js\";\nvar MODE_DRAG = {\n name: \"drag\"\n},\n MODE_SPACE = {\n name: \"space\"\n},\n MODE_HANDLE = {\n name: \"handle\"\n},\n MODE_CENTER = {\n name: \"center\"\n};\nvar abs = Math.abs,\n max = Math.max,\n min = Math.min;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function input(x, e) {\n return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]];\n },\n output: function output(xy) {\n return xy && [xy[0][0], xy[1][0]];\n }\n};\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function input(y, e) {\n return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]];\n },\n output: function output(xy) {\n return xy && [xy[0][1], xy[1][1]];\n }\n};\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function input(xy) {\n return xy == null ? null : number2(xy);\n },\n output: function output(xy) {\n return xy;\n }\n};\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {\n type: t\n };\n} // Ignore right-click, since that should open the context menu.\n\n\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || \"ontouchstart\" in this;\n} // Like d3.local, but with the name “__brush” rather than auto-generated.\n\n\nfunction local(node) {\n while (!node.__brush) {\n if (!(node = node.parentNode)) return;\n }\n\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0] || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\nexport function brushX() {\n return brush(X);\n}\nexport function brushY() {\n return brush(Y);\n}\nexport default function () {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group.property(\"__brush\", initialize).selectAll(\".overlay\").data([type(\"overlay\")]);\n overlay.enter().append(\"rect\").attr(\"class\", \"overlay\").attr(\"pointer-events\", \"all\").attr(\"cursor\", cursors.overlay).merge(overlay).each(function () {\n var extent = local(this).extent;\n select(this).attr(\"x\", extent[0][0]).attr(\"y\", extent[0][1]).attr(\"width\", extent[1][0] - extent[0][0]).attr(\"height\", extent[1][1] - extent[0][1]);\n });\n group.selectAll(\".selection\").data([type(\"selection\")]).enter().append(\"rect\").attr(\"class\", \"selection\").attr(\"cursor\", cursors.selection).attr(\"fill\", \"#777\").attr(\"fill-opacity\", 0.3).attr(\"stroke\", \"#fff\").attr(\"shape-rendering\", \"crispEdges\");\n var handle = group.selectAll(\".handle\").data(dim.handles, function (d) {\n return d.type;\n });\n handle.exit().remove();\n handle.enter().append(\"rect\").attr(\"class\", function (d) {\n return \"handle handle--\" + d.type;\n }).attr(\"cursor\", function (d) {\n return cursors[d.type];\n });\n group.each(redraw).attr(\"fill\", \"none\").attr(\"pointer-events\", \"all\").on(\"mousedown.brush\", started).filter(touchable).on(\"touchstart.brush\", started).on(\"touchmove.brush\", touchmoved).on(\"touchend.brush touchcancel.brush\", touchended).style(\"touch-action\", \"none\").style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function (group, selection) {\n if (group.tween) {\n group.on(\"start.brush\", function (event) {\n emitter(this, arguments).beforestart().start(event);\n }).on(\"interrupt.brush end.brush\", function (event) {\n emitter(this, arguments).end(event);\n }).tween(\"brush\", function () {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group.each(function () {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start().brush().end();\n });\n }\n };\n\n brush.clear = function (group) {\n brush.move(group, null);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\").style(\"display\", null).attr(\"x\", selection[0][0]).attr(\"y\", selection[0][1]).attr(\"width\", selection[1][0] - selection[0][0]).attr(\"height\", selection[1][1] - selection[0][1]);\n group.selectAll(\".handle\").style(\"display\", null).attr(\"x\", function (d) {\n return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2;\n }).attr(\"y\", function (d) {\n return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2;\n }).attr(\"width\", function (d) {\n return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize;\n }).attr(\"height\", function (d) {\n return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize;\n });\n } else {\n group.selectAll(\".selection,.handle\").style(\"display\", \"none\").attr(\"x\", null).attr(\"y\", null).attr(\"width\", null).attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function beforestart() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function start(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);else this.emit(\"brush\", event);\n return this;\n },\n brush: function brush(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function end(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function emit(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(type, this.that, new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode: mode,\n dispatch: listeners\n }), d);\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : keys && event.altKey ? MODE_CENTER : MODE_HANDLE,\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0],\n w0,\n w1,\n N = extent[0][1],\n n0,\n n1,\n E = extent[1][0],\n e0,\n e1,\n S = extent[1][1],\n s0,\n s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], function (t) {\n var i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n var pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[w0 = dim === Y ? W : min(pts[0][0], pts[1][0]), n0 = dim === X ? N : min(pts[0][1], pts[1][1])], [e0 = dim === Y ? E : max(pts[0][0], pts[1][0]), s0 = dim === X ? S : max(pts[0][1], pts[1][1])]];\n if (points.length > 1) move();\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n var group = select(that).attr(\"pointer-events\", \"none\");\n var overlay = group.selectAll(\".overlay\").attr(\"cursor\", cursors[type]);\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view).on(\"mousemove.brush\", moved, true).on(\"mouseup.brush\", ended, true);\n if (keys) view.on(\"keydown.brush\", keydowned, true).on(\"keyup.brush\", keyupped, true);\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n var _iterator = _createForOfIteratorHelper(event.changedTouches || [event]),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var p = _step.value;\n\n var _iterator3 = _createForOfIteratorHelper(points),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var d = _step3.value;\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n if (shifting && !lockX && !lockY && points.length === 1) {\n var point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1])) lockY = true;else lockX = true;\n }\n\n var _iterator2 = _createForOfIteratorHelper(points),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _point = _step2.value;\n if (_point.cur) _point[0] = _point.cur[0], _point[1] = _point.cur[1];\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n var point = points[0],\n point0 = point.point0;\n var t;\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG:\n {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n\n case MODE_HANDLE:\n {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n\n break;\n }\n\n case MODE_CENTER:\n {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1 || selection[0][1] !== n1 || selection[1][0] !== e1 || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function () {\n touchending = null;\n }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16:\n {\n // SHIFT\n shifting = signX && signY;\n break;\n }\n\n case 18:\n {\n // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move();\n }\n\n break;\n }\n\n case 32:\n {\n // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx;else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy;else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move();\n }\n\n break;\n }\n\n default:\n return;\n }\n\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16:\n {\n // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move();\n }\n\n break;\n }\n\n case 18:\n {\n // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1;else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1;else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move();\n }\n\n break;\n }\n\n case 32:\n {\n // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1;else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1;else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n\n overlay.attr(\"cursor\", cursors[type]);\n move();\n }\n\n break;\n }\n\n default:\n return;\n }\n\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {\n selection: null\n };\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function (_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function (_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function (_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function (_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function (_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function () {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}","export default (function (x) {\n return function () {\n return x;\n };\n});","export default function DragEvent(type, _ref) {\n var sourceEvent = _ref.sourceEvent,\n subject = _ref.subject,\n target = _ref.target,\n identifier = _ref.identifier,\n active = _ref.active,\n x = _ref.x,\n y = _ref.y,\n dx = _ref.dx,\n dy = _ref.dy,\n dispatch = _ref.dispatch;\n Object.defineProperties(this, {\n type: {\n value: type,\n enumerable: true,\n configurable: true\n },\n sourceEvent: {\n value: sourceEvent,\n enumerable: true,\n configurable: true\n },\n subject: {\n value: subject,\n enumerable: true,\n configurable: true\n },\n target: {\n value: target,\n enumerable: true,\n configurable: true\n },\n identifier: {\n value: identifier,\n enumerable: true,\n configurable: true\n },\n active: {\n value: active,\n enumerable: true,\n configurable: true\n },\n x: {\n value: x,\n enumerable: true,\n configurable: true\n },\n y: {\n value: y,\n enumerable: true,\n configurable: true\n },\n dx: {\n value: dx,\n enumerable: true,\n configurable: true\n },\n dy: {\n value: dy,\n enumerable: true,\n configurable: true\n },\n _: {\n value: dispatch\n }\n });\n}\n\nDragEvent.prototype.on = function () {\n var value = this._.on.apply(this._, arguments);\n\n return value === this._ ? this : value;\n};","import { dispatch } from \"d3-dispatch\";\nimport { select, pointer } from \"d3-selection\";\nimport nodrag, { yesdrag } from \"./nodrag.js\";\nimport noevent, { nopropagation } from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\"; // Ignore right-click, since that should open the context menu.\n\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(event, d) {\n return d == null ? {\n x: event.x,\n y: event.y\n } : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || \"ontouchstart\" in this;\n}\n\nexport default function () {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection.on(\"mousedown.drag\", mousedowned).filter(touchable).on(\"touchstart.drag\", touchstarted).on(\"touchmove.drag\", touchmoved).on(\"touchend.drag touchcancel.drag\", touchended).style(\"touch-action\", \"none\").style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned(event, d) {\n if (touchending || !filter.call(this, event, d)) return;\n var gesture = beforestart(this, container.call(this, event, d), event, d, \"mouse\");\n if (!gesture) return;\n select(event.view).on(\"mousemove.drag\", mousemoved, true).on(\"mouseup.drag\", mouseupped, true);\n nodrag(event.view);\n nopropagation(event);\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\", event);\n }\n\n function mousemoved(event) {\n noevent(event);\n\n if (!mousemoving) {\n var dx = event.clientX - mousedownx,\n dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n\n gestures.mouse(\"drag\", event);\n }\n\n function mouseupped(event) {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent(event);\n gestures.mouse(\"end\", event);\n }\n\n function touchstarted(event, d) {\n if (!filter.call(this, event, d)) return;\n var touches = event.changedTouches,\n c = container.call(this, event, d),\n n = touches.length,\n i,\n gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) {\n nopropagation(event);\n gesture(\"start\", event, touches[i]);\n }\n }\n }\n\n function touchmoved(event) {\n var touches = event.changedTouches,\n n = touches.length,\n i,\n gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent(event);\n gesture(\"drag\", event, touches[i]);\n }\n }\n }\n\n function touchended(event) {\n var touches = event.changedTouches,\n n = touches.length,\n i,\n gesture;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function () {\n touchending = null;\n }, 500); // Ghost clicks are delayed!\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation(event);\n gesture(\"end\", event, touches[i]);\n }\n }\n }\n\n function beforestart(that, container, event, d, identifier, touch) {\n var dispatch = listeners.copy(),\n p = pointer(touch || event, container),\n dx,\n dy,\n s;\n if ((s = subject.call(that, new DragEvent(\"beforestart\", {\n sourceEvent: event,\n target: drag,\n identifier: identifier,\n active: active,\n x: p[0],\n y: p[1],\n dx: 0,\n dy: 0,\n dispatch: dispatch\n }), d)) == null) return;\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n return function gesture(type, event, touch) {\n var p0 = p,\n n;\n\n switch (type) {\n case \"start\":\n gestures[identifier] = gesture, n = active++;\n break;\n\n case \"end\":\n delete gestures[identifier], --active;\n // nobreak\n\n case \"drag\":\n p = pointer(touch || event, container), n = active;\n break;\n }\n\n dispatch.call(type, that, new DragEvent(type, {\n sourceEvent: event,\n subject: s,\n target: drag,\n identifier: identifier,\n active: n,\n x: p[0] + dx,\n y: p[1] + dy,\n dx: p[0] - p0[0],\n dy: p[1] - p0[1],\n dispatch: dispatch\n }), d);\n };\n }\n\n drag.filter = function (_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function (_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function (_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function (_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function () {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function (_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n}","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0:\n break;\n\n case 1:\n this.range(domain);\n break;\n\n default:\n this.range(range).domain(domain);\n break;\n }\n\n return this;\n}\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0:\n break;\n\n case 1:\n {\n if (typeof domain === \"function\") this.interpolator(domain);else this.range(domain);\n break;\n }\n\n default:\n {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);else this.range(interpolator);\n break;\n }\n }\n\n return this;\n}","function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { initRange } from \"./init.js\";\nexport var implicit = Symbol(\"implicit\");\nexport default function ordinal() {\n var index = new Map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\",\n i = index.get(key);\n\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function (_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new Map();\n\n var _iterator = _createForOfIteratorHelper(_),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var value = _step.value;\n var key = value + \"\";\n if (index.has(key)) continue;\n index.set(key, domain.push(value));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return scale;\n };\n\n scale.range = function (_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function () {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n return scale;\n}","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n\n this._ = \"\";\n}\n\nfunction path() {\n return new Path();\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function moveTo(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function lineTo(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function quadraticCurveTo(x1, y1, x, y) {\n this._ += \"Q\" + +x1 + \",\" + +y1 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + +x1 + \",\" + +y1 + \",\" + +x2 + \",\" + +y2 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01; // Is the radius negative? Error.\n\n if (r < 0) throw new Error(\"negative radius: \" + r); // Is this path empty? Move to (x1,y1).\n\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n } // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon)) ; // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n } // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21; // If the start tangent is not coincident with (x0,y0), line to.\n\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + +(y01 * x20 > x01 * y20) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0; // Is the radius negative? Error.\n\n if (r < 0) throw new Error(\"negative radius: \" + r); // Is this path empty? Move to (x0,y0).\n\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n } // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n } // Is this arc empty? We’re done.\n\n\n if (!r) return; // Does the angle go the wrong way? Flip the direction.\n\n if (da < 0) da = da % tau + tau; // Is this a complete circle? Draw two arcs to complete the circle.\n\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n } // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + +(da >= pi) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function rect(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + +w + \"v\" + +h + \"h\" + -w + \"Z\";\n },\n toString: function toString() {\n return this._;\n }\n};\nexport default path;","export default function (x) {\n return function constant() {\n return x;\n };\n}","export var slice = Array.prototype.slice;\nexport default function (x) {\n return typeof x === \"object\" && \"length\" in x ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n\n case 1:\n this._point = 2;\n // proceed\n\n default:\n this._context.lineTo(x, y);\n\n break;\n }\n }\n};\nexport default function (context) {\n return new Linear(context);\n}","export function x(p) {\n return p[0];\n}\nexport function y(p) {\n return p[1];\n}","import { path } from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport { x as pointX, y as pointY } from \"./point.js\";\nexport default function (x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n x = typeof x === \"function\" ? x : x === undefined ? pointX : constant(x);\n y = typeof y === \"function\" ? y : y === undefined ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();else output.lineEnd();\n }\n\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function (_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function (_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function (_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function (_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function (_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\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 // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0],\n uy0 = p0[1],\n w0 = p0[2],\n ux1 = p1[0],\n uy1 = p1[1],\n w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S; // Special case for u0 ≅ u1.\n\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n\n i = function i(t) {\n return [ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(rho * t * S)];\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\n i = function i(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / cosh(rho * s + r0)];\n };\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n return i;\n }\n\n zoom.rho = function (_) {\n var _1 = Math.max(1e-3, +_),\n _2 = _1 * _1,\n _4 = _2 * _2;\n\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\nTransform.prototype = {\n constructor: Transform,\n scale: function scale(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function translate(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 apply(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function applyX(x) {\n return x * this.k + this.x;\n },\n applyY: function applyY(y) {\n return y * this.k + this.y;\n },\n invert: function invert(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function invertX(x) {\n return (x - this.x) / this.k;\n },\n invertY: function invertY(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function rescaleX(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function rescaleY(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function toString() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\nexport var identity = new Transform(1, 0, 0);\ntransform.prototype = Transform.prototype;\nexport default function transform(node) {\n while (!node.__zoom) {\n if (!(node = node.parentNode)) return identity;\n }\n\n return node.__zoom;\n}","var frame = 0,\n // is an animation frame pending?\ntimeout = 0,\n // is a timeout pending?\ninterval = 0,\n // are any timers active?\npokeDelay = 1000,\n // how frequently we check for clock skew\ntaskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function (f) {\n setTimeout(f, 17);\n};\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call = this._time = this._next = null;\n}\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function restart(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;else taskHead = this;\n taskTail = this;\n }\n\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function stop() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\nexport function timer(callback, delay, time) {\n var t = new Timer();\n t.restart(callback, delay, time);\n return t;\n}\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n\n var t = taskHead,\n e;\n\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(),\n delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0,\n t1 = taskHead,\n t2,\n time = Infinity;\n\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}","var noop = {\n value: function value() {}\n};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || t in _ || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function (t) {\n var name = \"\",\n i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {\n type: t,\n name: name\n };\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function on(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length; // If no callback was specified, return the callback of the given type and name.\n\n if (arguments.length < 2) {\n while (++i < n) {\n if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n }\n\n return;\n } // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n\n\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);else if (callback == null) for (t in _) {\n _[t] = set(_[t], typename.name, null);\n }\n }\n\n return this;\n },\n copy: function copy() {\n var copy = {},\n _ = this._;\n\n for (var t in _) {\n copy[t] = _[t].slice();\n }\n\n return new Dispatch(copy);\n },\n call: function call(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) {\n args[i] = arguments[i + 2];\n }\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) {\n t[i].value.apply(that, args);\n }\n },\n apply: function apply(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) {\n t[i].value.apply(that, args);\n }\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n\n if (callback != null) type.push({\n name: name,\n value: callback\n });\n return type;\n}\n\nexport default dispatch;"],"sourceRoot":""}