{"version":3,"sources":["webpack:///./node_modules/d3-timer/src/timer.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/easeVarying.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/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/on.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/styleTween.js","webpack:///./node_modules/d3-transition/src/transition/text.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/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/constant.js","webpack:///./node_modules/d3-brush/src/noevent.js","webpack:///./node_modules/d3-brush/src/brush.js","webpack:///./node_modules/d3-brush/src/event.js","webpack:///./node_modules/d3-array/src/extent.js","webpack:///./node_modules/d3-selection/src/pointer.js","webpack:///./node_modules/d3-selection/src/sourceEvent.js","webpack:///./node_modules/d3-dispatch/src/dispatch.js","webpack:///./node_modules/d3-drag/src/noevent.js","webpack:///./node_modules/d3-drag/src/nodrag.js"],"names":["taskHead","taskTail","frame","timeout","interval","pokeDelay","clockLast","clockNow","clockSkew","clock","performance","now","Date","setFrame","window","requestAnimationFrame","bind","f","setTimeout","clearNow","Timer","this","_call","_time","_next","timer","callback","delay","time","t","restart","wake","e","call","undefined","timerFlush","t0","t2","t1","Infinity","sleep","nap","poke","clearTimeout","clearInterval","setInterval","prototype","constructor","TypeError","stop","src_timeout","elapsed","emptyOn","dispatch","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","transition_schedule","node","name","id","index","group","timing","schedules","__transition","self","tween","start","i","j","n","o","state","on","__data__","tick","Array","length","value","duration","ease","create","init","schedule","get","Error","set","svgNode","interrupt","active","empty","degrees","Math","PI","identity","translateX","translateY","rotate","skewX","scaleX","scaleY","decompose","a","b","c","d","sqrt","atan2","atan","interpolateTransform","parse","pxComma","pxParen","degParen","pop","s","q","xa","ya","xb","yb","push","x","number","translate","scale","join","interpolateTransformCss","m","DOMMatrix","WebKitCSSMatrix","isIdentity","interpolateTransformSvg","document","createElementNS","setAttribute","transform","baseVal","consolidate","matrix","tweenValue","transition","_id","each","apply","arguments","transition_interpolate","interpolateNumber","color","interpolateRgb","interpolateString","Selection","selection","styleRemove","style","removeProperty","Transition","groups","parents","_groups","_parents","_name","newId","selection_prototype","select","selector","subgroups","subnode","subgroup","selectAll","selectorAll","child","children","inherit","k","l","selectChild","selectChildren","filter","match","matcher","merge","groups0","groups1","m0","m1","min","merges","group0","group1","id0","id1","nodes","size","listener","on0","on1","sit","trim","split","every","indexOf","slice","copy","onFunction","attr","fullname","namespace","interpolate","attrTween","local","string00","string10","interpolate0","string0","string1","value1","getAttributeNS","space","removeAttributeNS","getAttribute","removeAttribute","key","_value","i0","setAttributeNS","attrInterpolateNS","attrInterpolate","priority","styleTween","styleNull","styleFunction","listener0","remove","event","styleMaybeRemove","styleConstant","setProperty","styleInterpolate","text","textContent","textFunction","textConstant","textTween","textInterpolate","parent","parentNode","removeChild","tween0","tween1","splice","easeConstant","easeVarying","v","end","that","Promise","resolve","reject","cancel","_","[object Object]","Symbol","iterator","defaultTiming","noevent","preventDefault","stopImmediatePropagation","MODE_DRAG","MODE_SPACE","MODE_HANDLE","MODE_CENTER","abs","max","number1","number2","X","handles","map","type","input","output","xy","Y","y","cursors","overlay","w","nw","ne","se","sw","flipX","flipY","signsX","signsY","defaultFilter","ctrlKey","button","defaultExtent","svg","ownerSVGElement","hasAttribute","viewBox","width","height","defaultTouchable","navigator","maxTouchPoints","__brush","brushX","brush","dim","touchending","extent","touchable","keys","listeners","handleSize","property","initialize","data","enter","append","handle","exit","redraw","started","touchmoved","touchended","emitter","args","clean","emit","Emitter","touches","w0","w1","n0","n1","e0","e1","s0","s1","moving","lockX","lockY","target","mode","metaKey","altKey","signX","signY","W","N","E","S","dx","dy","shifting","shiftKey","points","from","identifier","pointer","point0","beforestart","pts","move","moved","ended","view","keyCode","dragDisable","p","changedTouches","cur","point","nopropagation","dragEnable","selection0","selection1","clear","starting","datum","sourceEvent","Object","defineProperties","enumerable","configurable","constant","keyModifiers","values","valueof","__webpack_require__","__webpack_exports__","currentTarget","createSVGPoint","clientX","clientY","matrixTransform","getScreenCTM","inverse","getBoundingClientRect","rect","left","clientLeft","top","clientTop","pageX","pageY","noop","test","Dispatch","concat","typename","types","T","hasOwnProperty","nonpassivecapture","capture","passive","root","documentElement","__noselect","MozUserSelect","yesdrag","noclick"],"mappings":"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","file":"assets/js/3.js","sourcesContent":["var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\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) { 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 =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(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 if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\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 taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\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}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","export default x => () => x;\n","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {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\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\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(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { 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(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { 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};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\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};\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 {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\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 return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush†rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || 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}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\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\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection, event) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { 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\n .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\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start(event).brush(event).end(event);\n });\n }\n };\n\n brush.clear = function(group, event) {\n brush.move(group, null, event);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .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() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\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], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, 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], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move(event);\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\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\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 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 case MODE_HANDLE: {\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;\n 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;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\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 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\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || 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 if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 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 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 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: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // 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(event);\n }\n break;\n }\n case 32: { // 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(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move(event);\n }\n break;\n }\n case 18: { // 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(event);\n }\n break;\n }\n case 32: { // 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 overlay.attr(\"cursor\", cursors[type]);\n move(event);\n }\n break;\n }\n default: return;\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 || {selection: null};\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}\n","export default function BrushEvent(type, {\n sourceEvent,\n target,\n selection,\n mode,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n selection: {value: selection, enumerable: true, configurable: true},\n mode: {value: mode, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n","export default function extent(values, valueof) {\n let min;\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n return [min, max];\n}\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\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 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 return [event.pageX, event.pageY];\n}\n","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","var noop = {value: () => {}};\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 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 = \"\", 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 {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\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 if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\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 if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","// These are typically used in conjunction with noevent to ensure that we can\n// preventDefault on the event.\nexport const nonpassive = {passive: false};\nexport const nonpassivecapture = {capture: true, passive: false};\n\nexport function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent, {nonpassivecapture} from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, nonpassivecapture);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, nonpassivecapture);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, nonpassivecapture);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n"],"sourceRoot":""}