{"version":3,"sources":["webpack:///./node_modules/d3-time/src/duration.js","webpack:///./node_modules/d3-time/src/millisecond.js","webpack:///./node_modules/d3-time/src/interval.js","webpack:///./node_modules/d3-time/src/utcWeek.js","webpack:///./node_modules/d3-time/src/minute.js","webpack:///./node_modules/d3-timer/src/timeout.js","webpack:///./node_modules/d3-time-format/src/defaultLocale.js","webpack:///./node_modules/d3-time/src/utcMonth.js","webpack:///./node_modules/d3/dist/package.js","webpack:///./node_modules/d3-shape/src/constant.js","webpack:///./node_modules/d3-shape/src/math.js","webpack:///./node_modules/d3-shape/src/arc.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-shape/src/area.js","webpack:///./node_modules/d3-shape/src/descending.js","webpack:///./node_modules/d3-shape/src/identity.js","webpack:///./node_modules/d3-shape/src/pie.js","webpack:///./node_modules/d3-shape/src/curve/radial.js","webpack:///./node_modules/d3-shape/src/lineRadial.js","webpack:///./node_modules/d3-shape/src/areaRadial.js","webpack:///./node_modules/d3-shape/src/pointRadial.js","webpack:///./node_modules/d3-shape/src/link/index.js","webpack:///./node_modules/d3-shape/src/symbol/circle.js","webpack:///./node_modules/d3-shape/src/symbol/cross.js","webpack:///./node_modules/d3-shape/src/symbol/diamond.js","webpack:///./node_modules/d3-shape/src/symbol/star.js","webpack:///./node_modules/d3-shape/src/symbol/square.js","webpack:///./node_modules/d3-shape/src/symbol/triangle.js","webpack:///./node_modules/d3-shape/src/symbol/wye.js","webpack:///./node_modules/d3-shape/src/symbol.js","webpack:///./node_modules/d3-shape/src/noop.js","webpack:///./node_modules/d3-shape/src/curve/basis.js","webpack:///./node_modules/d3-shape/src/curve/basisClosed.js","webpack:///./node_modules/d3-shape/src/curve/basisOpen.js","webpack:///./node_modules/d3-shape/src/curve/bump.js","webpack:///./node_modules/d3-shape/src/curve/bundle.js","webpack:///./node_modules/d3-shape/src/curve/cardinal.js","webpack:///./node_modules/d3-shape/src/curve/cardinalClosed.js","webpack:///./node_modules/d3-shape/src/curve/cardinalOpen.js","webpack:///./node_modules/d3-shape/src/curve/catmullRom.js","webpack:///./node_modules/d3-shape/src/curve/catmullRomClosed.js","webpack:///./node_modules/d3-shape/src/curve/catmullRomOpen.js","webpack:///./node_modules/d3-shape/src/curve/linearClosed.js","webpack:///./node_modules/d3-shape/src/curve/monotone.js","webpack:///./node_modules/d3-shape/src/curve/natural.js","webpack:///./node_modules/d3-shape/src/curve/step.js","webpack:///./node_modules/d3-shape/src/offset/none.js","webpack:///./node_modules/d3-shape/src/order/none.js","webpack:///./node_modules/d3-shape/src/stack.js","webpack:///./node_modules/d3-shape/src/offset/expand.js","webpack:///./node_modules/d3-shape/src/offset/diverging.js","webpack:///./node_modules/d3-shape/src/offset/silhouette.js","webpack:///./node_modules/d3-shape/src/offset/wiggle.js","webpack:///./node_modules/d3-shape/src/order/appearance.js","webpack:///./node_modules/d3-shape/src/order/ascending.js","webpack:///./node_modules/d3-shape/src/order/descending.js","webpack:///./node_modules/d3-shape/src/order/insideOut.js","webpack:///./node_modules/d3-shape/src/order/reverse.js","webpack:///./node_modules/d3-zoom/src/constant.js","webpack:///./node_modules/d3-zoom/src/event.js","webpack:///./node_modules/d3-zoom/src/transform.js","webpack:///./node_modules/d3-zoom/src/noevent.js","webpack:///./node_modules/d3-zoom/src/zoom.js","webpack:///./node_modules/d3-time/src/ticks.js","webpack:///./node_modules/d3-time/src/second.js","webpack:///./node_modules/d3-time/src/utcDay.js","webpack:///./node_modules/d3-time-format/src/isoFormat.js","webpack:///./node_modules/d3-time-format/src/isoParse.js","webpack:///./node_modules/d3-time/src/day.js","webpack:///./node_modules/d3-timer/src/timer.js","webpack:///./node_modules/d3-time/src/utcYear.js","webpack:///./node_modules/d3-time/src/month.js","webpack:///./node_modules/d3-time/src/year.js","webpack:///./node_modules/d3-time-format/src/locale.js","webpack:///./node_modules/d3-transition/src/transition/schedule.js","webpack:///./node_modules/d3-transition/src/interrupt.js","webpack:///./node_modules/d3-transition/src/selection/interrupt.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/easeVarying.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/on.js","webpack:///./node_modules/d3-transition/src/transition/remove.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/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/text.js","webpack:///./node_modules/d3-transition/src/transition/textTween.js","webpack:///./node_modules/d3-transition/src/transition/transition.js","webpack:///./node_modules/d3-transition/src/transition/end.js","webpack:///./node_modules/d3-transition/src/transition/index.js","webpack:///./node_modules/d3-transition/src/selection/transition.js","webpack:///./node_modules/d3-transition/src/selection/index.js","webpack:///./node_modules/d3-transition/src/active.js","webpack:///./node_modules/d3-time/src/week.js","webpack:///./node_modules/d3-time/src/hour.js","webpack:///./node_modules/d3-timer/src/interval.js","webpack:///./node_modules/d3-time/src/index.js","webpack:///./node_modules/d3-time/src/utcHour.js","webpack:///./node_modules/d3-time/src/utcMinute.js"],"names":["durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","millisecond","date","step","setTime","start","end","every","k","Math","floor","isFinite","milliseconds","range","t0","Date","t1","newInterval","floori","offseti","count","field","interval","arguments","length","ceil","round","d0","d1","offset","stop","previous","push","filter","test","d","utcWeekday","i","setUTCDate","getUTCDate","getUTCDay","setUTCHours","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcSundays","utcMondays","utcTuesdays","utcWednesdays","utcThursdays","utcFridays","utcSaturdays","minute","getMilliseconds","getSeconds","getMinutes","minutes","t","delay","restart","elapsed","callback","time","locale","timeFormat","timeParse","utcFormat","utcParse","defaultLocale","definition","format","parse","dateTime","periods","days","shortDays","months","shortMonths","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","utcMonths","version","x","abs","atan2","cos","max","min","sin","sqrt","epsilon","pi","PI","halfPi","tau","acos","asin","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","intersect","x0","y0","x1","y1","x2","y2","x3","y3","x10","y10","x32","y32","cornerTangents","r1","rc","cw","x01","y01","lo","ox","oy","x11","y11","x00","y00","dx","dy","d2","r","D","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cx","cy","cornerRadius","constant","padRadius","context","arc","buffer","r0","apply","this","a0","a1","da","path","moveTo","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","p0","p1","oc","ax","ay","bx","by","kc","lc","lineTo","closePath","centroid","a","_","slice","Array","prototype","from","Linear","_context","areaStart","_line","areaEnd","NaN","lineStart","_point","lineEnd","point","y","p","defined","curve","output","line","data","n","array","defined0","undefined","area","j","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","b","value","identity","sortValues","descending","sort","pie","v","sum","index","arcs","pa","curveRadialLinear","curveRadial","Radial","_curve","radial","lineRadial","l","c","angle","radius","lineStartAngle","lineEndAngle","lineInnerRadius","lineOuterRadius","linkSource","source","linkTarget","target","link","argv","call","s","curveHorizontal","bezierCurveTo","curveVertical","pointRadial","p2","p3","linkHorizontal","linkVertical","linkRadial","draw","size","tan30","tan30_2","ka","kr","kx","ky","w","rect","sqrt3","symbols","circle","cross","diamond","square","star","triangle","wye","symbol","type","that","_x0","_x1","_y0","_y1","Basis","BasisClosed","noop","_x2","_x3","_x4","_y2","_y3","_y4","BasisOpen","Bump","_x","bumpX","bumpY","Bundle","beta","_basis","_beta","_y","bundle","custom","_k","Cardinal","tension","cardinal","CardinalClosed","_x5","_y5","CardinalOpen","_l01_a","_l01_2a","_l12_a","_l12_2a","_l23_a","_l23_2a","m","CatmullRom","alpha","_alpha","x23","y23","pow","catmullRom","CatmullRomClosed","CatmullRomOpen","LinearClosed","sign","slope3","h0","h1","s0","s1","slope2","h","MonotoneX","MonotoneY","ReflectContext","monotoneX","monotoneY","Natural","controlPoints","_t0","Object","create","px","py","i0","i1","Step","_t","stepBefore","stepAfter","series","order","isNaN","o","stackValue","key","stackSeries","keys","stack","oz","sz","none","yp","yn","s2","si","sij0","sij1","s3","sk","skj0","skj1","peaks","map","peak","vi","vj","Infinity","sums","ascending","reverse","appearance","top","bottom","tops","bottoms","concat","ZoomEvent","sourceEvent","transform","dispatch","defineProperties","enumerable","configurable","Transform","constructor","scale","translate","applyX","applyY","invert","location","invertX","invertY","rescaleX","copy","domain","rescaleY","toString","node","__zoom","parentNode","nopropagation","event","stopImmediatePropagation","preventDefault","defaultFilter","ctrlKey","button","defaultExtent","e","SVGElement","ownerSVGElement","hasAttribute","viewBox","baseVal","width","height","clientWidth","clientHeight","defaultTransform","defaultWheelDelta","deltaY","deltaMode","defaultTouchable","navigator","maxTouchPoints","defaultConstrain","extent","translateExtent","touchstarting","touchfirst","touchending","constrain","wheelDelta","touchable","scaleExtent","duration","interpolate","listeners","touchDelay","wheelDelay","clickDistance2","tapDistance","zoom","selection","property","on","wheeled","mousedowned","dblclicked","touchstarted","touchmoved","touchended","style","schedule","transition","gesture","tween","args","g","clean","__zooming","Gesture","active","taps","pointer","wheel","mouse","clearTimeout","noevent","setTimeout","wheelidled","view","mousemoved","mouseupped","currentTarget","clientX","clientY","moved","changedTouches","k1","shiftKey","started","touches","identifier","touch0","touch1","l0","l1","dp","dl","hypot","collection","interrupt","each","scaleBy","scaleTo","k0","translateBy","translateTo","emit","datum","clickDistance","ticker","year","month","week","day","hour","tickIntervals","ticks","tickInterval","right","utcTicks","utcTickInterval","timeTicks","timeTickInterval","second","getUTCSeconds","seconds","utcDay","utcDays","isoSpecifier","formatIsoNative","toISOString","formatIso","parseIsoNative","string","parseIso","setHours","setDate","getDate","getTimezoneOffset","taskHead","taskTail","frame","timeout","pokeDelay","clockLast","clockNow","clockSkew","clock","performance","now","setFrame","window","requestAnimationFrame","bind","f","clearNow","Timer","_call","_time","_next","timer","timerFlush","wake","nap","poke","t2","sleep","clearInterval","setInterval","TypeError","utcYear","setUTCFullYear","utcYears","setMonth","getMonth","getFullYear","setFullYear","years","localDate","H","M","S","L","utcDate","UTC","newDate","formatLocale","locale_dateTime","locale_date","locale_time","locale_periods","locale_weekdays","locale_shortWeekdays","locale_months","locale_shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","formatShortWeekday","formatWeekday","formatShortMonth","formatMonth","formatDayOfMonth","formatMicroseconds","formatYearISO","formatFullYearISO","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatPeriod","formatQuarter","formatUnixTimestamp","formatUnixTimestampSeconds","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatFullYear","formatZone","formatLiteralPercent","utcFormats","formatUTCShortWeekday","formatUTCWeekday","formatUTCShortMonth","formatUTCMonth","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCYearISO","formatUTCFullYearISO","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCPeriod","formatUTCQuarter","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","parseShortWeekday","parseWeekday","parseShortMonth","parseMonth","parseLocaleDateTime","parseDayOfMonth","parseMicroseconds","parseYear","parseFullYear","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parsePeriod","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseLocaleDate","parseLocaleTime","parseZone","parseLiteralPercent","newFormat","specifier","pad","charCodeAt","pads","charAt","join","newParse","Z","parseSpecifier","Q","q","V","getDay","u","W","U","exec","get","toLowerCase","getHours","getUTCHours","X","numberRe","percentRe","requoteRe","fill","requote","replace","names","RegExp","Map","name","dISO","z","getUTCMilliseconds","getUTCMinutes","dow","UTCdISO","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","schedules","__transition","id","group","timing","ease","state","init","Error","set","self","__data__","tick","empty","tweenRemove","tween0","tween1","splice","tweenFunction","_id","tweenValue","color","attrRemove","removeAttribute","attrRemoveNS","fullname","removeAttributeNS","space","local","attrConstant","value1","string00","interpolate0","string1","string0","getAttribute","attrConstantNS","getAttributeNS","attrFunction","string10","attrFunctionNS","namespace","attrTween","attrInterpolate","setAttribute","attrInterpolateNS","setAttributeNS","attrTweenNS","_value","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","easeVarying","match","matcher","groups","_groups","subgroups","subgroup","Transition","_parents","_name","groups0","groups1","m0","m1","merges","group0","group1","merge","trim","split","indexOf","onFunction","listener","on0","on1","sit","removeFunction","parent","removeChild","select","selector","subnode","selectorAll","parents","child","children","inherit","Selection","styleNull","removeProperty","styleRemove","styleConstant","styleFunction","styleMaybeRemove","listener0","remove","styleTween","priority","styleInterpolate","setProperty","textConstant","textContent","textFunction","textInterpolate","textTween","id0","id1","newId","Promise","resolve","reject","cancel","selection_prototype","transition_select","selectAll","transition_merge","transition_selection","transition_transition","nodes","transition_on","attr","transition_attrTween","transition_style","transition_styleTween","text","transition_text","transition_textTween","transition_remove","transition_tween","transition_easeVarying","transition_end","Symbol","iterator","defaultTiming","selection_interrupt","selection_transition","root","weekday","sunday","monday","tuesday","wednesday","thursday","friday","saturday","sundays","mondays","tuesdays","wednesdays","thursdays","fridays","saturdays","hours","total","_restart","utcHour","setUTCMinutes","utcHours","utcMinute","setUTCSeconds","utcMinutes"],"mappings":"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","file":"js/chunk-vendors~c616263e.8b2eff44.js","sourcesContent":["export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\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 formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\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 = {\"name\":\"Mike Bostock\",\"url\":\"https://bost.ocks.org/mike\"};\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 = {\"type\":\"git\",\"url\":\"https://github.com/d3/d3.git\"};\nexport var files = [\"dist/**/*.js\",\"index.js\"];\nexport var scripts = {\"pretest\":\"rimraf dist && mkdir dist && json2module package.json > dist/package.js && rollup -c\",\"test\":\"tape 'test/**/*-test.js'\",\"prepublishOnly\":\"yarn test\",\"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\"};\nexport var devDependencies = {\"json2module\":\"0.0\",\"rimraf\":\"3\",\"rollup\":\"2\",\"rollup-plugin-ascii\":\"0.0\",\"rollup-plugin-node-resolve\":\"5\",\"rollup-plugin-terser\":\"7\",\"tape\":\"4\",\"tape-await\":\"0.1\"};\nexport var dependencies = {\"d3-array\":\"2\",\"d3-axis\":\"2\",\"d3-brush\":\"2\",\"d3-chord\":\"2\",\"d3-color\":\"2\",\"d3-contour\":\"2\",\"d3-delaunay\":\"5\",\"d3-dispatch\":\"2\",\"d3-drag\":\"2\",\"d3-dsv\":\"2\",\"d3-ease\":\"2\",\"d3-fetch\":\"2\",\"d3-force\":\"2\",\"d3-format\":\"2\",\"d3-geo\":\"2\",\"d3-hierarchy\":\"2\",\"d3-interpolate\":\"2\",\"d3-path\":\"2\",\"d3-polygon\":\"2\",\"d3-quadtree\":\"2\",\"d3-random\":\"2\",\"d3-scale\":\"3\",\"d3-scale-chromatic\":\"2\",\"d3-selection\":\"2\",\"d3-shape\":\"2\",\"d3-time\":\"2\",\"d3-time-format\":\"3\",\"d3-timer\":\"2\",\"d3-transition\":\"2\",\"d3-zoom\":\"2\"};\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\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\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\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\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();\n else output.lineEnd();\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}\n","import {path} from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\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) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = (data = array(data)).length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","import curveLinear from \"./linear.js\";\n\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nexport default function curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport line from \"./line.js\";\n\nexport function lineRadial(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return l;\n}\n\nexport default function() {\n return lineRadial(line().curve(curveRadialLinear));\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport area from \"./area.js\";\nimport {lineRadial} from \"./lineRadial.js\";\n\nexport default function() {\n var a = area().curve(curveRadialLinear),\n c = a.curve,\n x0 = a.lineX0,\n x1 = a.lineX1,\n y0 = a.lineY0,\n y1 = a.lineY1;\n\n a.angle = a.x, delete a.x;\n a.startAngle = a.x0, delete a.x0;\n a.endAngle = a.x1, delete a.x1;\n a.radius = a.y, delete a.y;\n a.innerRadius = a.y0, delete a.y0;\n a.outerRadius = a.y1, delete a.y1;\n a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0;\n a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1;\n a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0;\n a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1;\n\n a.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return a;\n}\n","export default function(x, y) {\n return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];\n}\n","import {path} from \"d3-path\";\nimport {slice} from \"../array.js\";\nimport constant from \"../constant.js\";\nimport {x as pointX, y as pointY} from \"../point.js\";\nimport pointRadial from \"../pointRadial.js\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null;\n\n function link() {\n var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = path();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0),\n p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n p2 = pointRadial(x1, y0),\n p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nexport function linkHorizontal() {\n return link(curveHorizontal);\n}\n\nexport function linkVertical() {\n return link(curveVertical);\n}\n\nexport function linkRadial() {\n var l = link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n","import {pi, tau} from \"../math.js\";\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","export default {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","import {pi, tau} from \"../math.js\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","export default {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","import {path} from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\n\nexport var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nexport default function(type, size) {\n var context = null;\n type = typeof type === \"function\" ? type : constant(type || circle);\n size = typeof size === \"function\" ? size : constant(size === undefined ? 64 : +size);\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // proceed\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","class Bump {\n constructor(context, x) {\n this._context = context;\n this._x = x;\n }\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n }\n point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: {\n this._point = 1;\n if (this._line) this._context.lineTo(x, y);\n else this._context.moveTo(x, y);\n break;\n }\n case 1: this._point = 2; // proceed\n default: {\n if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);\n else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);\n break;\n }\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nexport function bumpX(context) {\n return new Bump(context, true);\n}\n\nexport function bumpY(context) {\n return new Bump(context, false);\n}\n","import {Basis} from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nexport default (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {point} from \"./cardinal.js\";\n\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {epsilon} from \"../math.js\";\nimport {Cardinal} from \"./cardinal.js\";\n\nexport function point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalClosed} from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalOpen} from \"./cardinalOpen.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stackSeries(key) {\n const series = [];\n series.key = key;\n return series;\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var sz = Array.from(keys.apply(this, arguments), stackSeries),\n i, n = sz.length, j = -1,\n oz;\n\n for (const d of data) {\n for (i = 0, ++j; i < n; ++i) {\n (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n }\n }\n\n for (i = 0, oz = array(order(sz)); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {\n for (yp = yn = 0, i = 0; i < n; ++i) {\n if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {\n d[0] = yp, d[1] = yp += dy;\n } else if (dy < 0) {\n d[1] = yn, d[0] = yn += dy;\n } else {\n d[0] = 0, d[1] = dy;\n }\n }\n }\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var peaks = series.map(peak);\n return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; });\n}\n\nfunction peak(series) {\n var i = -1, j = 0, n = series.length, vi, vj = -Infinity;\n while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n return j;\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var sums = series.map(sum);\n return none(series).sort(function(a, b) { return sums[a] - sums[b]; });\n}\n\nexport function sum(series) {\n var s = 0, i = -1, n = series.length, v;\n while (++i < n) if (v = +series[i][1]) s += v;\n return s;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function(series) {\n return ascending(series).reverse();\n}\n","import appearance from \"./appearance.js\";\nimport {sum} from \"./ascending.js\";\n\nexport default function(series) {\n var n = series.length,\n i,\n j,\n sums = series.map(sum),\n order = appearance(series),\n top = 0,\n bottom = 0,\n tops = [],\n bottoms = [];\n\n for (i = 0; i < n; ++i) {\n j = order[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n\n return bottoms.reverse().concat(tops);\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n return none(series).reverse();\n}\n","export default x => () => x;\n","export default function ZoomEvent(type, {\n sourceEvent,\n target,\n transform,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n transform: {value: transform, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {select, pointer} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === 'wheel') && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchfirst,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0,\n tapDistance = 10;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled)\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point, event) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point, event);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .event(event)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p, event) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p, event);\n };\n\n zoom.scaleTo = function(selection, k, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p, event);\n };\n\n zoom.translateBy = function(selection, x, y, event) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n }, null, event);\n };\n\n zoom.translateTo = function(selection, x, y, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p, event);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point, event) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).event(event).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).event(event).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args).event(event),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n event: function(event) {\n if (event) this.sourceEvent = event;\n return this;\n },\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function wheeled(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, args).event(event),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = pointer(event);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent(event);\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned(event, ...args) {\n if (touchending || !filter.apply(this, arguments)) return;\n var g = gesture(this, args, true).event(event),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = pointer(event, currentTarget),\n currentTarget = event.currentTarget,\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved(event) {\n noevent(event);\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.event(event)\n .zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped(event) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent(event);\n g.event(event).end();\n }\n }\n\n function dblclicked(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n\n noevent(event);\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);\n else select(this).call(zoom.transform, t1, p0, event);\n }\n\n function touchstarted(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, args, event.changedTouches.length === n).event(event),\n started, i, t, p;\n\n nopropagation(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation(event);\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n t = pointer(t, this);\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n zoom.tapDistance = function(_) {\n return arguments.length ? (tapDistance = +_, zoom) : tapDistance;\n };\n\n return zoom;\n}\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport millisecond from \"./millisecond.js\";\nimport second from \"./second.js\";\nimport minute from \"./minute.js\";\nimport hour from \"./hour.js\";\nimport day from \"./day.js\";\nimport {sunday as week} from \"./week.js\";\nimport month from \"./month.js\";\nimport year from \"./year.js\";\nimport utcMinute from \"./utcMinute.js\";\nimport utcHour from \"./utcHour.js\";\nimport utcDay from \"./utcDay.js\";\nimport {utcSunday as utcWeek} from \"./utcWeek.js\";\nimport utcMonth from \"./utcMonth.js\";\nimport utcYear from \"./utcYear.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(year, month, week, day, hour, minute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import {utcFormat} from \"./defaultLocale.js\";\n\nexport var isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n ? formatIsoNative\n : utcFormat(isoSpecifier);\n\nexport default formatIso;\n","import {isoSpecifier} from \"./isoFormat.js\";\nimport {utcParse} from \"./defaultLocale.js\";\n\nfunction parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n ? parseIsoNative\n : utcParse(isoSpecifier);\n\nexport default parseIso;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport default day;\nexport var days = day.range;\n","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(null, 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 interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n 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 {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import {Transition} from \"./transition/index.js\";\nimport {SCHEDULED} from \"./transition/schedule.js\";\n\nvar root = [null];\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n i;\n\n if (schedules) {\n name = name == null ? null : name + \"\";\n for (i in schedules) {\n if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {\n return new Transition([[node]], root, name, +i);\n }\n }\n }\n\n return null;\n}\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import {Timer, now} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer, total = delay;\n if (delay == null) return t.restart(callback, delay, time), t;\n t._restart = t.restart;\n t.restart = function(callback, delay, time) {\n delay = +delay, time = time == null ? now() : +time;\n t._restart(function tick(elapsed) {\n elapsed += total;\n t._restart(tick, total += delay, time);\n callback(elapsed);\n }, delay, time);\n }\n t.restart(callback, delay, time);\n return t;\n}\n","export {\n default as timeInterval\n} from \"./interval.js\";\n\nexport {\n default as timeMillisecond,\n milliseconds as timeMilliseconds,\n default as utcMillisecond,\n milliseconds as utcMilliseconds\n} from \"./millisecond.js\";\n\nexport {\n default as timeSecond,\n seconds as timeSeconds,\n default as utcSecond,\n seconds as utcSeconds\n} from \"./second.js\";\n\nexport {\n default as timeMinute,\n minutes as timeMinutes\n} from \"./minute.js\";\n\nexport {\n default as timeHour,\n hours as timeHours\n} from \"./hour.js\";\n\nexport {\n default as timeDay,\n days as timeDays\n} from \"./day.js\";\n\nexport {\n sunday as timeWeek,\n sundays as timeWeeks,\n sunday as timeSunday,\n sundays as timeSundays,\n monday as timeMonday,\n mondays as timeMondays,\n tuesday as timeTuesday,\n tuesdays as timeTuesdays,\n wednesday as timeWednesday,\n wednesdays as timeWednesdays,\n thursday as timeThursday,\n thursdays as timeThursdays,\n friday as timeFriday,\n fridays as timeFridays,\n saturday as timeSaturday,\n saturdays as timeSaturdays\n} from \"./week.js\";\n\nexport {\n default as timeMonth,\n months as timeMonths\n} from \"./month.js\";\n\nexport {\n default as timeYear,\n years as timeYears\n} from \"./year.js\";\n\nexport {\n default as utcMinute,\n utcMinutes as utcMinutes\n} from \"./utcMinute.js\";\n\nexport {\n default as utcHour,\n utcHours as utcHours\n} from \"./utcHour.js\";\n\nexport {\n default as utcDay,\n utcDays as utcDays\n} from \"./utcDay.js\";\n\nexport {\n utcSunday as utcWeek,\n utcSundays as utcWeeks,\n utcSunday as utcSunday,\n utcSundays as utcSundays,\n utcMonday as utcMonday,\n utcMondays as utcMondays,\n utcTuesday as utcTuesday,\n utcTuesdays as utcTuesdays,\n utcWednesday as utcWednesday,\n utcWednesdays as utcWednesdays,\n utcThursday as utcThursday,\n utcThursdays as utcThursdays,\n utcFriday as utcFriday,\n utcFridays as utcFridays,\n utcSaturday as utcSaturday,\n utcSaturdays as utcSaturdays\n} from \"./utcWeek.js\";\n\nexport {\n default as utcMonth,\n utcMonths as utcMonths\n} from \"./utcMonth.js\";\n\nexport {\n default as utcYear,\n utcYears as utcYears\n} from \"./utcYear.js\";\n\nexport {\n utcTicks,\n utcTickInterval,\n timeTicks,\n timeTickInterval\n} from \"./ticks.js\";\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n"],"sourceRoot":""}