-
Notifications
You must be signed in to change notification settings - Fork 0
/
js.3dfa47f8.js.map
1 lines (1 loc) · 830 KB
/
js.3dfa47f8.js.map
1
{"version":3,"sources":["node_modules/d3-selection/src/namespaces.js","node_modules/d3-selection/src/namespace.js","node_modules/d3-selection/src/creator.js","node_modules/d3-selection/src/selector.js","node_modules/d3-selection/src/selection/select.js","node_modules/d3-selection/src/array.js","node_modules/d3-selection/src/selectorAll.js","node_modules/d3-selection/src/selection/selectAll.js","node_modules/d3-selection/src/matcher.js","node_modules/d3-selection/src/selection/selectChild.js","node_modules/d3-selection/src/selection/selectChildren.js","node_modules/d3-selection/src/selection/filter.js","node_modules/d3-selection/src/selection/sparse.js","node_modules/d3-selection/src/selection/enter.js","node_modules/d3-selection/src/constant.js","node_modules/d3-selection/src/selection/data.js","node_modules/d3-selection/src/selection/exit.js","node_modules/d3-selection/src/selection/join.js","node_modules/d3-selection/src/selection/merge.js","node_modules/d3-selection/src/selection/order.js","node_modules/d3-selection/src/selection/sort.js","node_modules/d3-selection/src/selection/call.js","node_modules/d3-selection/src/selection/nodes.js","node_modules/d3-selection/src/selection/node.js","node_modules/d3-selection/src/selection/size.js","node_modules/d3-selection/src/selection/empty.js","node_modules/d3-selection/src/selection/each.js","node_modules/d3-selection/src/selection/attr.js","node_modules/d3-selection/src/window.js","node_modules/d3-selection/src/selection/style.js","node_modules/d3-selection/src/selection/property.js","node_modules/d3-selection/src/selection/classed.js","node_modules/d3-selection/src/selection/text.js","node_modules/d3-selection/src/selection/html.js","node_modules/d3-selection/src/selection/raise.js","node_modules/d3-selection/src/selection/lower.js","node_modules/d3-selection/src/selection/append.js","node_modules/d3-selection/src/selection/insert.js","node_modules/d3-selection/src/selection/remove.js","node_modules/d3-selection/src/selection/clone.js","node_modules/d3-selection/src/selection/datum.js","node_modules/d3-selection/src/selection/on.js","node_modules/d3-selection/src/selection/dispatch.js","node_modules/d3-selection/src/selection/iterator.js","node_modules/d3-selection/src/selection/index.js","node_modules/d3-selection/src/select.js","node_modules/d3-selection/src/create.js","node_modules/d3-selection/src/local.js","node_modules/d3-selection/src/sourceEvent.js","node_modules/d3-selection/src/pointer.js","node_modules/d3-selection/src/pointers.js","node_modules/d3-selection/src/selectAll.js","node_modules/d3-selection/src/index.js","node_modules/d3-dispatch/src/dispatch.js","node_modules/d3-dispatch/src/index.js","node_modules/d3-timer/src/timer.js","node_modules/d3-timer/src/timeout.js","node_modules/d3-timer/src/interval.js","node_modules/d3-timer/src/index.js","node_modules/d3-transition/src/transition/schedule.js","node_modules/d3-transition/src/interrupt.js","node_modules/d3-transition/src/selection/interrupt.js","node_modules/d3-color/src/define.js","node_modules/d3-color/src/color.js","node_modules/d3-color/src/math.js","node_modules/d3-color/src/lab.js","node_modules/d3-color/src/cubehelix.js","node_modules/d3-color/src/index.js","node_modules/d3-interpolate/src/basis.js","node_modules/d3-interpolate/src/basisClosed.js","node_modules/d3-interpolate/src/constant.js","node_modules/d3-interpolate/src/color.js","node_modules/d3-interpolate/src/rgb.js","node_modules/d3-interpolate/src/numberArray.js","node_modules/d3-interpolate/src/array.js","node_modules/d3-interpolate/src/date.js","node_modules/d3-interpolate/src/number.js","node_modules/d3-interpolate/src/object.js","node_modules/d3-interpolate/src/string.js","node_modules/d3-interpolate/src/value.js","node_modules/d3-interpolate/src/discrete.js","node_modules/d3-interpolate/src/hue.js","node_modules/d3-interpolate/src/round.js","node_modules/d3-interpolate/src/transform/decompose.js","node_modules/d3-interpolate/src/transform/parse.js","node_modules/d3-interpolate/src/transform/index.js","node_modules/d3-interpolate/src/zoom.js","node_modules/d3-interpolate/src/hsl.js","node_modules/d3-interpolate/src/lab.js","node_modules/d3-interpolate/src/hcl.js","node_modules/d3-interpolate/src/cubehelix.js","node_modules/d3-interpolate/src/piecewise.js","node_modules/d3-interpolate/src/quantize.js","node_modules/d3-interpolate/src/index.js","node_modules/d3-transition/src/transition/tween.js","node_modules/d3-transition/src/transition/interpolate.js","node_modules/d3-transition/src/transition/attr.js","node_modules/d3-transition/src/transition/attrTween.js","node_modules/d3-transition/src/transition/delay.js","node_modules/d3-transition/src/transition/duration.js","node_modules/d3-transition/src/transition/ease.js","node_modules/d3-transition/src/transition/easeVarying.js","node_modules/d3-transition/src/transition/filter.js","node_modules/d3-transition/src/transition/merge.js","node_modules/d3-transition/src/transition/on.js","node_modules/d3-transition/src/transition/remove.js","node_modules/d3-transition/src/transition/select.js","node_modules/d3-transition/src/transition/selectAll.js","node_modules/d3-transition/src/transition/selection.js","node_modules/d3-transition/src/transition/style.js","node_modules/d3-transition/src/transition/styleTween.js","node_modules/d3-transition/src/transition/text.js","node_modules/d3-transition/src/transition/textTween.js","node_modules/d3-transition/src/transition/transition.js","node_modules/d3-transition/src/transition/end.js","node_modules/d3-transition/src/transition/index.js","node_modules/d3-ease/src/linear.js","node_modules/d3-ease/src/quad.js","node_modules/d3-ease/src/cubic.js","node_modules/d3-ease/src/poly.js","node_modules/d3-ease/src/sin.js","node_modules/d3-ease/src/math.js","node_modules/d3-ease/src/exp.js","node_modules/d3-ease/src/circle.js","node_modules/d3-ease/src/bounce.js","node_modules/d3-ease/src/back.js","node_modules/d3-ease/src/elastic.js","node_modules/d3-ease/src/index.js","node_modules/d3-transition/src/selection/transition.js","node_modules/d3-transition/src/selection/index.js","node_modules/d3-transition/src/active.js","node_modules/d3-transition/src/index.js","js/data.js","js/LogisticRegression.js","js/colors.js","node_modules/d3-array/src/ascending.js","node_modules/d3-array/src/bisector.js","node_modules/d3-array/src/number.js","node_modules/d3-array/src/bisect.js","node_modules/d3-array/src/count.js","node_modules/d3-array/src/cross.js","node_modules/d3-array/src/cumsum.js","node_modules/d3-array/src/descending.js","node_modules/d3-array/src/variance.js","node_modules/d3-array/src/deviation.js","node_modules/d3-array/src/extent.js","node_modules/d3-array/src/fsum.js","node_modules/internmap/src/index.js","node_modules/d3-array/src/identity.js","node_modules/d3-array/src/group.js","node_modules/d3-array/src/permute.js","node_modules/d3-array/src/sort.js","node_modules/d3-array/src/groupSort.js","node_modules/d3-array/src/array.js","node_modules/d3-array/src/constant.js","node_modules/d3-array/src/ticks.js","node_modules/d3-array/src/nice.js","node_modules/d3-array/src/threshold/sturges.js","node_modules/d3-array/src/bin.js","node_modules/d3-array/src/max.js","node_modules/d3-array/src/min.js","node_modules/d3-array/src/quickselect.js","node_modules/d3-array/src/quantile.js","node_modules/d3-array/src/threshold/freedmanDiaconis.js","node_modules/d3-array/src/threshold/scott.js","node_modules/d3-array/src/maxIndex.js","node_modules/d3-array/src/mean.js","node_modules/d3-array/src/median.js","node_modules/d3-array/src/merge.js","node_modules/d3-array/src/minIndex.js","node_modules/d3-array/src/pairs.js","node_modules/d3-array/src/range.js","node_modules/d3-array/src/least.js","node_modules/d3-array/src/leastIndex.js","node_modules/d3-array/src/greatest.js","node_modules/d3-array/src/greatestIndex.js","node_modules/d3-array/src/scan.js","node_modules/d3-array/src/shuffle.js","node_modules/d3-array/src/sum.js","node_modules/d3-array/src/transpose.js","node_modules/d3-array/src/zip.js","node_modules/d3-array/src/every.js","node_modules/d3-array/src/some.js","node_modules/d3-array/src/filter.js","node_modules/d3-array/src/map.js","node_modules/d3-array/src/reduce.js","node_modules/d3-array/src/reverse.js","node_modules/d3-array/src/difference.js","node_modules/d3-array/src/disjoint.js","node_modules/d3-array/src/set.js","node_modules/d3-array/src/intersection.js","node_modules/d3-array/src/superset.js","node_modules/d3-array/src/subset.js","node_modules/d3-array/src/union.js","node_modules/d3-array/src/index.js","node_modules/d3-collection/src/map.js","node_modules/d3-collection/src/nest.js","node_modules/d3-collection/src/set.js","node_modules/d3-collection/src/keys.js","node_modules/d3-collection/src/values.js","node_modules/d3-collection/src/entries.js","node_modules/d3-collection/src/index.js","node_modules/d3-force/src/center.js","node_modules/d3-quadtree/src/add.js","node_modules/d3-quadtree/src/cover.js","node_modules/d3-quadtree/src/data.js","node_modules/d3-quadtree/src/extent.js","node_modules/d3-quadtree/src/quad.js","node_modules/d3-quadtree/src/find.js","node_modules/d3-quadtree/src/remove.js","node_modules/d3-quadtree/src/root.js","node_modules/d3-quadtree/src/size.js","node_modules/d3-quadtree/src/visit.js","node_modules/d3-quadtree/src/visitAfter.js","node_modules/d3-quadtree/src/x.js","node_modules/d3-quadtree/src/y.js","node_modules/d3-quadtree/src/quadtree.js","node_modules/d3-quadtree/src/index.js","node_modules/d3-force/src/constant.js","node_modules/d3-force/src/jiggle.js","node_modules/d3-force/src/collide.js","node_modules/d3-force/src/link.js","node_modules/d3-force/src/lcg.js","node_modules/d3-force/src/simulation.js","node_modules/d3-force/src/manyBody.js","node_modules/d3-force/src/radial.js","node_modules/d3-force/src/x.js","node_modules/d3-force/src/y.js","node_modules/d3-force/src/index.js","node_modules/d3-polygon/src/area.js","node_modules/d3-polygon/src/centroid.js","node_modules/d3-polygon/src/cross.js","node_modules/d3-polygon/src/hull.js","node_modules/d3-polygon/src/contains.js","node_modules/d3-polygon/src/length.js","node_modules/d3-polygon/src/index.js","node_modules/d3-path/src/path.js","node_modules/d3-path/src/index.js","node_modules/d3-shape/src/constant.js","node_modules/d3-shape/src/math.js","node_modules/d3-shape/src/arc.js","node_modules/d3-shape/src/array.js","node_modules/d3-shape/src/curve/linear.js","node_modules/d3-shape/src/point.js","node_modules/d3-shape/src/line.js","node_modules/d3-shape/src/area.js","node_modules/d3-shape/src/descending.js","node_modules/d3-shape/src/identity.js","node_modules/d3-shape/src/pie.js","node_modules/d3-shape/src/curve/radial.js","node_modules/d3-shape/src/lineRadial.js","node_modules/d3-shape/src/areaRadial.js","node_modules/d3-shape/src/pointRadial.js","node_modules/d3-shape/src/link/index.js","node_modules/d3-shape/src/symbol/circle.js","node_modules/d3-shape/src/symbol/cross.js","node_modules/d3-shape/src/symbol/diamond.js","node_modules/d3-shape/src/symbol/star.js","node_modules/d3-shape/src/symbol/square.js","node_modules/d3-shape/src/symbol/triangle.js","node_modules/d3-shape/src/symbol/wye.js","node_modules/d3-shape/src/symbol.js","node_modules/d3-shape/src/noop.js","node_modules/d3-shape/src/curve/basis.js","node_modules/d3-shape/src/curve/basisClosed.js","node_modules/d3-shape/src/curve/basisOpen.js","node_modules/d3-shape/src/curve/bump.js","node_modules/d3-shape/src/curve/bundle.js","node_modules/d3-shape/src/curve/cardinal.js","node_modules/d3-shape/src/curve/cardinalClosed.js","node_modules/d3-shape/src/curve/cardinalOpen.js","node_modules/d3-shape/src/curve/catmullRom.js","node_modules/d3-shape/src/curve/catmullRomClosed.js","node_modules/d3-shape/src/curve/catmullRomOpen.js","node_modules/d3-shape/src/curve/linearClosed.js","node_modules/d3-shape/src/curve/monotone.js","node_modules/d3-shape/src/curve/natural.js","node_modules/d3-shape/src/curve/step.js","node_modules/d3-shape/src/offset/none.js","node_modules/d3-shape/src/order/none.js","node_modules/d3-shape/src/stack.js","node_modules/d3-shape/src/offset/expand.js","node_modules/d3-shape/src/offset/diverging.js","node_modules/d3-shape/src/offset/silhouette.js","node_modules/d3-shape/src/offset/wiggle.js","node_modules/d3-shape/src/order/appearance.js","node_modules/d3-shape/src/order/ascending.js","node_modules/d3-shape/src/order/descending.js","node_modules/d3-shape/src/order/insideOut.js","node_modules/d3-shape/src/order/reverse.js","node_modules/d3-shape/src/index.js","node_modules/d3-drag/src/noevent.js","node_modules/d3-drag/src/nodrag.js","node_modules/d3-drag/src/constant.js","node_modules/d3-drag/src/event.js","node_modules/d3-drag/src/drag.js","node_modules/d3-drag/src/index.js","node_modules/d3-format/src/formatDecimal.js","node_modules/d3-format/src/exponent.js","node_modules/d3-format/src/formatGroup.js","node_modules/d3-format/src/formatNumerals.js","node_modules/d3-format/src/formatSpecifier.js","node_modules/d3-format/src/formatTrim.js","node_modules/d3-format/src/formatPrefixAuto.js","node_modules/d3-format/src/formatRounded.js","node_modules/d3-format/src/formatTypes.js","node_modules/d3-format/src/identity.js","node_modules/d3-format/src/locale.js","node_modules/d3-format/src/defaultLocale.js","node_modules/d3-format/src/precisionFixed.js","node_modules/d3-format/src/precisionPrefix.js","node_modules/d3-format/src/precisionRound.js","node_modules/d3-format/src/index.js","node_modules/d3-scale/src/init.js","node_modules/d3-scale/src/ordinal.js","node_modules/d3-scale/src/band.js","node_modules/d3-scale/src/constant.js","node_modules/d3-scale/src/number.js","node_modules/d3-scale/src/continuous.js","node_modules/d3-scale/node_modules/d3-format/src/formatDecimal.js","node_modules/d3-scale/node_modules/d3-format/src/exponent.js","node_modules/d3-scale/node_modules/d3-format/src/formatGroup.js","node_modules/d3-scale/node_modules/d3-format/src/formatNumerals.js","node_modules/d3-scale/node_modules/d3-format/src/formatSpecifier.js","node_modules/d3-scale/node_modules/d3-format/src/formatTrim.js","node_modules/d3-scale/node_modules/d3-format/src/formatPrefixAuto.js","node_modules/d3-scale/node_modules/d3-format/src/formatRounded.js","node_modules/d3-scale/node_modules/d3-format/src/formatTypes.js","node_modules/d3-scale/node_modules/d3-format/src/identity.js","node_modules/d3-scale/node_modules/d3-format/src/locale.js","node_modules/d3-scale/node_modules/d3-format/src/defaultLocale.js","node_modules/d3-scale/node_modules/d3-format/src/precisionFixed.js","node_modules/d3-scale/node_modules/d3-format/src/precisionPrefix.js","node_modules/d3-scale/node_modules/d3-format/src/precisionRound.js","node_modules/d3-scale/node_modules/d3-format/src/index.js","node_modules/d3-scale/src/tickFormat.js","node_modules/d3-scale/src/linear.js","node_modules/d3-scale/src/identity.js","node_modules/d3-scale/src/nice.js","node_modules/d3-scale/src/log.js","node_modules/d3-scale/src/symlog.js","node_modules/d3-scale/src/pow.js","node_modules/d3-scale/src/radial.js","node_modules/d3-scale/src/quantile.js","node_modules/d3-scale/src/quantize.js","node_modules/d3-scale/src/threshold.js","node_modules/d3-time/src/interval.js","node_modules/d3-time/src/millisecond.js","node_modules/d3-time/src/duration.js","node_modules/d3-time/src/second.js","node_modules/d3-time/src/minute.js","node_modules/d3-time/src/hour.js","node_modules/d3-time/src/day.js","node_modules/d3-time/src/week.js","node_modules/d3-time/src/month.js","node_modules/d3-time/src/year.js","node_modules/d3-time/src/utcMinute.js","node_modules/d3-time/src/utcHour.js","node_modules/d3-time/src/utcDay.js","node_modules/d3-time/src/utcWeek.js","node_modules/d3-time/src/utcMonth.js","node_modules/d3-time/src/utcYear.js","node_modules/d3-time/src/ticks.js","node_modules/d3-time/src/index.js","node_modules/d3-time-format/src/locale.js","node_modules/d3-time-format/src/defaultLocale.js","node_modules/d3-time-format/src/isoFormat.js","node_modules/d3-time-format/src/isoParse.js","node_modules/d3-time-format/src/index.js","node_modules/d3-scale/src/time.js","node_modules/d3-scale/src/utcTime.js","node_modules/d3-scale/src/sequential.js","node_modules/d3-scale/src/sequentialQuantile.js","node_modules/d3-scale/src/diverging.js","node_modules/d3-scale/src/index.js","js/animalShapes.js","js/Bubble.js","js/Table.js","js/index.js"],"names":["xhtml","exports","_default","default","svg","xlink","xml","xmlns","_namespaces","_interopRequireDefault","require","e","__esModule","name","prefix","i","indexOf","slice","namespaces","hasOwnProperty","space","local","_namespace","creatorInherit","document","ownerDocument","uri","namespaceURI","documentElement","createElement","createElementNS","creatorFixed","fullname","namespace","none","selector","querySelector","_index","_selector","select","groups","_groups","m","length","subgroups","Array","j","node","subnode","group","n","subgroup","call","__data__","Selection","_parents","x","from","empty","querySelectorAll","_array","_selectorAll","arrayAll","apply","arguments","array","selectorAll","parents","push","matches","childMatcher","_matcher","find","prototype","childFind","match","children","childFirst","firstElementChild","filter","childrenFilter","selectAll","matcher","update","_sparse","_enter","map","sparse","EnterNode","parent","datum","_next","_parent","constructor","appendChild","child","insertBefore","next","_constant","bindIndex","enter","exit","data","groupLength","dataLength","bindKey","key","keyValue","nodeByKeyValue","Map","keyValues","has","set","get","delete","value","bind","constant","enterGroup","updateGroup","previous","i0","i1","_exit","onenter","onupdate","onexit","append","remove","merge","order","selection","Error","groups0","groups1","m0","m1","Math","min","merges","group0","group1","compareDocumentPosition","parentNode","compare","compareNode","a","b","ascending","sortgroups","sortgroup","sort","NaN","callback","size","attrRemove","removeAttribute","attrRemoveNS","removeAttributeNS","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","v","attrFunctionNS","getAttributeNS","getAttribute","each","defaultView","_window","styleRemove","style","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","propertyRemove","propertyConstant","propertyFunction","classArray","string","trim","split","classList","ClassList","_node","_names","classedAdd","names","list","add","classedRemove","classedTrue","classedFalse","classedFunction","contains","join","splice","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","lower","previousSibling","firstChild","_creator","create","creator","constantNull","before","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","deep","property","contextListener","listener","event","parseTypenames","typenames","t","type","onRemove","typename","on","__on","o","removeEventListener","options","onAdd","addEventListener","dispatchEvent","params","window","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","_select","_selectAll","_selectChild","_selectChildren","_filter","_data","_join","_merge","_order","_sort","_call","_nodes","_size","_empty","_each","_attr","_style","_property","_classed","_text","_html","_raise","_lower","_append","_insert","_remove","_clone","_datum","_on","_dispatch","_iterator","root","selection_selection","selection_select","selection_selectAll","selectChild","selection_selectChild","selectChildren","selection_selectChildren","selection_filter","selection_data","selection_enter","selection_exit","selection_join","selection_merge","selection_order","selection_sort","selection_call","nodes","selection_nodes","selection_node","selection_size","selection_empty","selection_each","attr","selection_attr","selection_style","selection_property","classed","selection_classed","text","selection_text","html","selection_html","selection_raise","selection_lower","selection_append","insert","selection_insert","selection_remove","selection_clone","selection_datum","selection_on","dispatch","selection_dispatch","Symbol","iterator","selection_iterator","nextId","Local","_","toString","id","sourceEvent","_sourceEvent","undefined","currentTarget","ownerSVGElement","createSVGPoint","point","clientX","y","clientY","matrixTransform","getScreenCTM","inverse","getBoundingClientRect","rect","left","clientLeft","top","clientTop","pageX","pageY","_pointer","events","target","touches","pointer","_create","_local","_pointers","noop","test","Dispatch","types","c","concat","T","copy","that","args","taskHead","taskTail","frame","timeout","interval","pokeDelay","clockLast","clockNow","clockSkew","clock","performance","now","Date","setFrame","requestAnimationFrame","f","setTimeout","clearNow","Timer","_time","timer","delay","time","restart","timerFlush","wake","nap","poke","t0","t2","t1","Infinity","sleep","clearTimeout","clearInterval","setInterval","TypeError","stop","_timer","elapsed","total","_restart","tick","_timeout","_interval","_d3Dispatch","_d3Timer","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","index","timing","schedules","__transition","tween","duration","ease","state","init","schedule","self","start","_schedule","active","_interrupt","interrupt","factory","extend","definition","Object","_define","_interopRequireWildcard","_getRequireWildcardCache","WeakMap","r","__proto__","defineProperty","getOwnPropertyDescriptor","u","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","RegExp","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatHsl","hslConvert","formatHsl","color_formatRgb","formatRgb","color","format","l","toLowerCase","exec","parseInt","rgbn","Rgb","rgba","hsla","g","rgbConvert","opacity","rgb_formatHex","hex","rgb_formatRgb","isNaN","max","round","h","s","Hsl","hsl","hsl2rgb","m2","define","channels","assign","displayable","k","pow","radians","PI","degrees","_color","_math","K","Xn","Yn","Zn","t3","labConvert","Lab","Hcl","hcl2lab","z","rgb2lrgb","xyz2lab","lab","lab2xyz","lrgb2rgb","hclConvert","atan2","sqrt","lch","hcl","cos","sin","A","B","C","D","E","ED","EB","BC_DA","cubehelixConvert","Cubehelix","bl","cubehelix","cosh","sinh","_lab","_cubehelix","basis","v0","v1","v2","v3","values","floor","_basis","linear","d","exponential","hue","gamma","nogamma","_d3Color","_basisClosed","rgbGamma","end","colorRgb","rgbSpline","spline","colors","rgbBasis","rgbBasisClosed","basisClosed","isNumberArray","ArrayBuffer","isView","DataView","_value","_numberArray","numberArray","genericArray","nb","na","setTime","_number","reA","reB","source","zero","one","am","bm","bs","bi","lastIndex","q","number","_rgb","_date","_object","_string","date","isArray","valueOf","object","range","identity","translateX","translateY","rotate","skewX","scaleX","scaleY","atan","svgNode","_decompose","parseCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","parseSvg","transform","baseVal","consolidate","matrix","_parse","interpolateTransform","parse","pxComma","pxParen","degParen","pop","xa","ya","xb","yb","translate","scale","interpolateTransformCss","interpolateTransformSvg","epsilon2","exp","tanh","zoomRho","rho","rho2","rho4","zoom","p0","p1","S","ux0","uy0","w0","ux1","uy1","w1","dx","dy","d2","log","d1","b0","b1","r0","r1","coshr0","SQRT2","_1","_2","colorHsl","hslLong","colorLab","colorHcl","hclLong","cubehelixGamma","colorCubehelix","cubehelixLong","piecewise","interpolate","I","interpolator","samples","_discrete","_hue","_round","_zoom","_hsl","_hcl","_piecewise","_quantize","tweenRemove","tween0","tween1","tweenFunction","_id","tweenValue","transition","_d3Interpolate","interpolateNumber","interpolateRgb","interpolateString","_d3Selection","_tween","_interpolate","value1","string00","interpolate0","string1","string0","string10","attrTween","attrInterpolate","attrInterpolateNS","attrTweenNS","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","easeVarying","Transition","_name","every","onFunction","on0","on1","sit","removeFunction","inherit","styleNull","styleMaybeRemove","listener0","styleTween","styleInterpolate","textInterpolate","textTween","id0","id1","newId","Promise","resolve","reject","cancel","_attrTween","_delay","_duration","_ease","_easeVarying","_selection","_styleTween","_textTween","_transition","_end","selection_prototype","transition_select","transition_selectAll","transition_filter","transition_merge","transition_selection","transition_transition","transition_on","transition_attr","transition_attrTween","transition_style","transition_styleTween","transition_text","transition_textTween","transition_remove","transition_tween","transition_delay","transition_duration","transition_ease","transition_easeVarying","transition_end","quadIn","quadOut","quadInOut","cubicIn","cubicOut","cubicInOut","exponent","polyIn","custom","polyOut","polyInOut","pi","halfPi","sinIn","sinOut","sinInOut","tpmt","expIn","expOut","expInOut","circleIn","circleOut","circleInOut","b2","b3","b4","b5","b6","b7","b8","b9","bounceIn","bounceOut","bounceInOut","overshoot","backIn","backOut","backInOut","tau","amplitude","period","elasticIn","p","asin","elasticOut","elasticInOut","_linear","_quad","_cubic","_poly","_sin","_exp","_circle","_bounce","_back","_elastic","_d3Ease","defaultTiming","easeCubicInOut","selection_interrupt","selection_transition","_index2","_active","animals","class","animal","fluffiness","weight","_typeof","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","done","return","_classCallCheck","_defineProperties","enumerable","configurable","writable","_toPropertyKey","_createClass","_toPrimitive","toPrimitive","String","Number","LogisticRegression","opts","iterations","startFeature","learningRate","X","yLabel","fit","feature","trainData","label","weights","logReg","decisionBoundary","scores","sigmoidEq","_scores","x1","x2","_loop","row","rowSum","col","features","_this","intercept","fill","unshift","_loop2","dotProduct","predictions","sigmoid","error","gradient","transpose","w","trainColor","testColor","validationColor","_ascending","delta","lo","hi","mid","ascendingComparator","center","right","numbers","valueof","_bisector","ascendingBisect","bisector","bisectRight","bisectLeft","bisectCenter","count","arrayify","reducer","reduce","cross","lengths","product","some","cumsum","sum","Float64Array","variance","mean","_variance","deviation","Adder","_partials","_n","abs","fsum","adder","fcumsum","InternMap","entries","keyof","defineProperties","_intern","_key","intern_get","intern_set","intern_delete","InternSet","Set","_internmap","_identity","keys","nest","rollup","rollups","unique","indexes","regroup","_permute","F","Uint32Array","permute","_group","groupSort","ak","av","bk","bv","e10","e5","e2","reverse","ticks","step","tickIncrement","isFinite","power","LN10","tickStep","step0","step1","_ticks","nice","prestep","ceil","_count","LN2","_bisect","_extent","_nice","_sturges","domain","extent","threshold","sturges","histogram","xz","x0","tz","tn","shift","bin","bins","bisect","thresholds","quickselect","sd","swap","_max","_min","_quickselect","quantile","value0","subarray","quantileSorted","_quantile","_deviation","maxIndex","flatten","arrays","minIndex","pairs","pairof","pair","first","least","defined","minValue","element","_minIndex","leastIndex","greatest","maxValue","_maxIndex","greatestIndex","_leastIndex","scan","shuffler","random","_transpose","mapper","difference","others","other","disjoint","is","_set","intersection","out","superset","_superset","subset","union","_cross","_cumsum","_descending","_fsum","_groupSort","_bin","_freedmanDiaconis","_scott","_mean","_median","_pairs","_range","_least","_greatest","_greatestIndex","_scan","_shuffle","_sum","_zip","_every","_some","_map","_reduce","_reverse","_difference","_disjoint","_intersection","_subset","_union","clear","sortValues","sortKeys","depth","createResult","setResult","valuesByKey","result","createObject","setObject","createMap","setMap","sortKey","proto","_nest","_keys","_values","_entries","strength","force","sx","sy","initialize","_x","_y","cover","tree","xm","ym","xp","yp","bottom","_root","leaf","_x0","y0","_y0","_x1","y1","_y1","addAll","yz","visit","radius","y2","x3","y3","quads","Quad","retainer","removeAll","defaultX","defaultY","_add","_cover","_find","_visit","_visitAfter","quadtree","Quadtree","leaf_copy","treeProto","tree_add","tree_addAll","tree_cover","tree_data","tree_extent","tree_find","tree_remove","tree_removeAll","tree_root","tree_size","tree_visit","visitAfter","tree_visitAfter","tree_x","tree_y","_quadtree","_d3Quadtree","_jiggle","vx","vy","radii","xi","yi","ri","ri2","prepare","quad","rj","jiggle","_random","nodeById","nodeId","links","strengths","distances","bias","link","distance","alpha","initializeStrength","initializeDistance","_lcg","initialRadius","initialAngle","simulation","alphaMin","alphaDecay","alphaTarget","velocityDecay","forces","stepper","lcg","forEach","fx","fy","initializeNodes","angle","initializeForce","randomSource","closest","_simulation","distanceMin2","distanceMax2","theta2","accumulate","distanceMin","distanceMax","theta","radiuses","_center","_collide","_link","_manyBody","_radial","polygon","area","lexicographicOrder","computeUpperHullIndexes","points","sortedPoints","flippedPoints","upperIndexes","lowerIndexes","skipLeft","skipRight","hull","inside","perimeter","hypot","_area","_centroid","_hull","_contains","_length","epsilon","tauEpsilon","Path","path","moveTo","closePath","lineTo","quadraticCurveTo","bezierCurveTo","arcTo","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","acos","t01","t21","arc","a0","a1","ccw","cw","da","_path","_d3Path","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","intersect","x10","y10","x32","y32","cornerTangents","rc","ox","oy","x11","y11","x00","y00","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cx","cy","cornerRadius","padRadius","context","buffer","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","oc","ax","ay","bx","by","kc","lc","centroid","Linear","_context","areaStart","_line","areaEnd","lineStart","_point","lineEnd","curve","curveLinear","output","line","defined0","pointX","pointY","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","descending","pie","arcs","pa","curveRadialLinear","curveRadial","Radial","_curve","radial","lineRadial","_lineRadial","lineStartAngle","lineEndAngle","lineInnerRadius","lineOuterRadius","_pointRadial","linkSource","linkTarget","argv","curveHorizontal","curveVertical","pointRadial","p2","p3","linkHorizontal","linkVertical","linkRadial","draw","tan30","tan30_2","ka","kr","kx","ky","sqrt3","_diamond","_star","_square","_triangle","_wye","symbols","circle","diamond","square","star","triangle","wye","symbol","Basis","_noop","BasisClosed","_x2","_x3","_x4","_y2","_y3","_y4","BasisOpen","Bump","bumpX","bumpY","Bundle","beta","_beta","bundle","_k","Cardinal","tension","cardinal","_cardinal","CardinalClosed","_x5","_y5","CardinalOpen","_l01_a","_l01_2a","_l12_a","_l12_2a","_l23_a","_l23_2a","CatmullRom","_alpha","x23","y23","catmullRom","_cardinalClosed","_catmullRom","CatmullRomClosed","_cardinalOpen","CatmullRomOpen","LinearClosed","sign","slope3","h0","h1","s0","s1","slope2","MonotoneX","MonotoneY","ReflectContext","monotoneX","monotoneY","_t0","Natural","controlPoints","px","py","Step","_t","stepBefore","stepAfter","series","_none","_none2","stackValue","stackSeries","orderNone","offset","offsetNone","stack","oz","sz","yn","s2","si","sij0","s3","sk","peaks","peak","vi","vj","sums","_appearance","appearance","tops","bottoms","_arc","_pie","_areaRadial","_symbol","_basisOpen","_bump","_bundle","_catmullRomClosed","_catmullRomOpen","_linearClosed","_monotone","_natural","_step","_stack","_expand","_diverging","_silhouette","_wiggle","_insideOut","nopropagation","stopImmediatePropagation","preventDefault","_noevent","view","noevent","__noselect","MozUserSelect","yesdrag","noclick","DragEvent","subject","identifier","_nodrag","_event","defaultFilter","ctrlKey","button","defaultContainer","defaultSubject","defaultTouchable","navigator","maxTouchPoints","mousedownx","mousedowny","mousemoving","touchending","container","touchable","gestures","listeners","clickDistance2","drag","mousedowned","touchstarted","touchmoved","touchended","gesture","beforestart","mousemoved","mouseupped","nodrag","mouse","changedTouches","touch","clickDistance","_drag","toLocaleString","replace","formatDecimalParts","toExponential","coefficient","_formatDecimal","grouping","thousands","width","substring","numerals","re","formatSpecifier","specifier","FormatSpecifier","align","comma","precision","prefixExponent","_formatPrefixAuto","_formatRounded","toFixed","formatDecimal","toPrecision","formatRounded","formatPrefixAuto","toUpperCase","_exponent","_formatGroup","_formatNumerals","_formatSpecifier","_formatTrim","_formatTypes","prefixes","locale","formatGroup","currencyPrefix","currency","currencySuffix","decimal","formatNumerals","percent","minus","nan","newFormat","formatTypes","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","formatTrim","charCodeAt","padding","formatPrefix","_locale","defaultLocale","formatLocale","_defaultLocale","_precisionFixed","_precisionPrefix","_precisionRound","initRange","initInterpolator","_init","implicit","ordinal","unknown","_d3Array","_ordinal","band","bandwidth","ordinalRange","paddingInner","paddingOuter","rescale","sequence","rangeRound","pointish","constants","unit","normalize","clamper","bimap","d0","polymap","clamp","transformer","untransform","input","interpolateValue","invert","interpolateRound","continuous","%","_d3Format","tickFormat","precisionPrefix","precisionRound","precisionFixed","_continuous","_tickFormat","linearish","maxIter","transformLog","transformExp","transformLogn","transformExpn","pow10","powp","base","logp","log10","log2","reflect","loggish","logs","pows","transformSymlog","log1p","transformSymexp","expm1","symlogish","symlog","transformPow","transformSqrt","transformSquare","powish","unsquare","squared","invertExtent","quantiles","quantize","newInterval","floori","offseti","field","millisecond","milliseconds","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","second","getMilliseconds","getUTCSeconds","seconds","minute","getSeconds","getMinutes","minutes","hour","getHours","hours","day","setHours","setDate","getDate","getTimezoneOffset","days","weekday","getDay","sunday","monday","tuesday","wednesday","thursday","friday","saturday","sundays","mondays","tuesdays","wednesdays","thursdays","fridays","saturdays","month","setMonth","getMonth","getFullYear","months","year","setFullYear","years","utcMinute","setUTCSeconds","getUTCMinutes","utcMinutes","utcHour","setUTCMinutes","getUTCHours","utcHours","utcDay","setUTCHours","setUTCDate","getUTCDate","utcDays","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcSundays","utcMondays","utcTuesdays","utcWednesdays","utcThursdays","utcFridays","utcSaturdays","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","utcMonths","utcYear","setUTCFullYear","utcYears","_millisecond","_second","_minute","_hour","_day","_week","_month","_year","_utcMinute","_utcHour","_utcDay","_utcWeek","_utcMonth","_utcYear","ticker","week","tickIntervals","tickInterval","utcTicks","utcTickInterval","utcWeek","timeTicks","timeTickInterval","_d3Time","localDate","H","M","L","utcDate","UTC","newDate","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","locale_shortWeekdays","shortDays","locale_months","locale_shortMonths","shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","formatDayOfMonth","formatMicroseconds","formatYearISO","formatFullYearISO","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatUnixTimestamp","formatUnixTimestampSeconds","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatFullYear","formatZone","formatLiteralPercent","utcFormats","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCYearISO","formatUTCFullYearISO","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","parseSpecifier","parseDayOfMonth","parseMicroseconds","parseYear","parseFullYear","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseZone","parseLiteralPercent","pad","pads","charAt","newParse","Z","Q","V","timeMonday","timeDay","W","U","utcFormat","utcParse","numberRe","percentRe","requoteRe","requote","timeYear","timeSunday","dISO","timeThursday","getUTCMilliseconds","dow","UTCdISO","timeFormat","timeParse","isoSpecifier","formatIsoNative","toISOString","formatIso","_isoFormat","parseIsoNative","parseIso","_isoParse","_d3TimeFormat","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","timeMonth","timeWeek","timeHour","timeMinute","timeSecond","utcTime","utcSecond","_log","_symlog","_pow","k10","sequential","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","_sequential","k21","r2","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","_band","_threshold","_utcTime","_sequentialQuantile","catNose","catEar","catHead","dogNose","dogEar","dogHead","_d3Transition","_LogisticRegression","_colors","_d3Collection","_d3Force","_d3Polygon","_d3Shape","_d3Drag","_d3Scale","_animalShapes","Bubble","chartContainer","table","windowWidth","innerWidth","MARGIN","TOP","innerHeight","BOTTOM","LEFT","RIGHT","WIDTH","HEIGHT","mainGroups","showGroups","currentGroup","current","yGroupHeight","yLabelHeight","iconScale","collideRadius","cluster_padding","chartG","model","currentFeature","fluffScaleX","scaleLinear","weightScaleX","fluffScaleY","weightScaleY","colorScale","scaleOrdinal","intro","train","validation","offscreen","lineSeparator","formatData","addLabels","stages","labelData","addAnmials","runForce","drawHull","forceX","forceY","forceManyBody","forceCollide","includes","hullCentroid","hullMinY","hullPath","petCoords","centeredX","petDims","centeredy","height","convexHullData","polygonHull","polygonCentroid","hullText","getBBox","forceSimulation","forceCenter","currentNode","moveBoundary","updateDecisionBoundary","decisionBoundaryLine","easeBackInOut","display","colorApplication","bubbleG","eyeAnimations","_this2","labels","bbox","labelsRect","hullG","hullRect","upperCaseFeature","move","decisionLine","moveScatter","_extent2","dvX1","dvX2","hideLines","moveCenter","showLines","moveBee","calculatePerformance","_this3","dataset","accuracy","modelWeights","filteredNodes","pred","updateTable","trans","_this4","_this5","nonShowGroups","nonTrainSelector","_this6","labelSubset","_this7","lg","textSvg","nodeWidth","_this8","Table","tableContainer","columnNames","thead","startData","newRow","updatedRow","JSON","stringify","_Bubble","_Table","sections","bubbleChart","target2event","showAnimals","moveBack","colorAnimals","hideLabels","moveNodes","showLabels","trackCurrentGroups","hideNonTrainAnimals","drawHorizontalLine","drawDecisionBoundary","drawAxesLabels","drawTable","updateDataPosition","getElementById","observer","IntersectionObserver","navCheck","previousY","previousRatio","entry","currentRatio","intersectionRatio","className","activeAnchor","isIntersecting","entryIndex","redraw","section","observe"],"mappings":"A0JIA,A2IJ2B,A3EI3B,AwFFA,AaiBA,AEFA,ACXA,ACwCC,ACpCD,AIRA,AZEA,A9EAA,AQFA,ACAA,a7FFe,A2IAY,A3EAZ,AwFAA,AaAA,AEAA,ACAA,AC8Cd,AC7Cc,AIDA,AZAA,A9EAA,AQAA,ACAA,O8CAY,A8B8C1B,EzK9CcE,AgEAAA,AwFAAA,AaAAA,AEAAA,ACAAA,AECAA,AIDAA,AZAS+vD,A9EAT/vD,AQAAA,ACAAA,E7FASsD,AgEAAA,AwFAAA,AaAAA,AEAA+nD,ACAAI,AECA9iC,AIDArlB,AZAUA,A9EAVA,AQAA0F,ACAA0jB,E0EAU4+B,A3EAPriD,C5FCzB,AgEAA,AwFAA,AaAA,AGAA,AECAuiC,AIDA,AZAA,A9EAA,ASAA,E0EAA,AGCK,A9EDL,I8ECU,C1KDH,AgEAA,AwFAAloC,AaAAiF,AGAA,AMAAjF,AZAA,A9EAA,ASAAopB,C8CDkB,A8B8C1B,CjB5CD,AeDS,AOCT,AlFDSzjB,ACCT,C6EA8CzB,C9EDjCwB,CyEACs7B,AKCEthC,EAAI2lB,A9EDF,E+CDS,AaE3B,AaDkBrlB,AGAA2D,AC6CjB,AC5CqBxE,AIAtB,AlFDsBwG,ACCtB,E7FAI,AgEAA,AqGDkBV,AEAJtB,ALCd,A9EAA,AQDsB+B,C4ECtB,CDDqBuiD,A3EAK,EAAItiD,CyEAPwf,AEOvB,AGN0B5nB,E1KAnByC,AgEAAA,A0GAuB,ARAvBA,A9EAAA,AQD4B0F,C4EC5B/B,CDAP,AGAiCM,A9EDM,C5FG3C,AgEAA,AwGFiByjD,ANEjB,A9EAA,CuDJ2B,A0BCM1nD,AI6ChC,A7E7C8CgG,C+CDpB,A8B8C1B,AC5C0C,ClBA3C,AeAQzI,AOAR,AjFAA,C6EAkDA,CHAtCoG,A3EAZ,CyEDwC,AKCcjE,C1KEtD,AgEAA,AuGFkBP,ALElB,A9EAA,CoFFyB,C7BFE,A8B8C1B,CC5C0D5B,ClBA3D,AaAQyC,ASAR,AjFAA,C6ECI,A9EDJ,C+CF2B,A0BEjBynD,AI4CT,CF3COx8C,EAAI,CCDuB,EDE3B3L,AGDI+lB,E/BHe,A4BIf,AE0CX,AC3Ca9nB,C1KCd,AgEAA,AkGAA,A9EAA,CmFCQonB,CfHR,AsBAA,AjFAA,C2DAA,AeGYojC,AGDN,AIFN,AjFAA,C2EA4CxqD,CDGvB,A3EHrB,CyEAyB,CGCnB,AECK,C1KAX,AgEAA,AuGEQ4B,ALFR,A9EAA,EoEFA,AeIiB,AOJjB,AjFAA,C6EEgB8E,C/BJW,A0BEIyjD,AEMpBnqD,CGJU2G,A9EFrB,C+CFelE,AaEf,AeMe,ACLFmoD,AMDb,AjFAA,C4E4CC,AC1CyB5qD,EHINonB,ACLGpnB,AC2CtB,AC1C4B,C/BJdyC,C4BQS,C5BRTA,A0BEwB,CrKEvC,AgEAA,AkGAA,A9EAA,CpFAA,AgEAA,AwFFA,AsBAA,AZEA,A9EAA,ASFA,C8CFoB,A4BSVb,ACHV,AEDM,ELHuC,AEO1BwlB,AEqClB,C7E5CD,C+CF0B3kB,A4BSH,AGJZ,A9EHX,E5FEA,A2IJ2BvD,A3EI3B,AqGDQuD,AEMmBioD,ALL3B,A9EAA,CoEFA,AgBIA,AMJA,AjFAA,CwECUz2C,AKEiB,E1KD3B,AgEAA,AuGKkCmT,AEqCjC,AP1CD,A9EAA,CQFA,C2EOsC1f,AERtC,ACIoBhB,E/BLOtH,C/CE3B,C6EDIyrD,ACI0BnkD,CLFX,AEMwBihB,CvKL3C,AgEAA,AyGHS,ACI0B3nB,ARDnC,A9EAA,GiFKO,AEAwC,AGJT2G,C/BLXxH,A6BM3B,CDGkDurD,AGJP1qD,A9EH3C,E2EO0D4B,AGJZ,C1KD9C,AgEAA,AkGAA,A9EAA,GmFMM8L,CFDU08C,AGHhB,CDIQ/mD,AGJF,A9EJN,CyEOmCZ,EAAGy5B,EECzB91B,CFAX,CEAiBukD,CGJJ,ELIR3qD,EGJP,CHIYyC,AGJZ,AEAqBqlB,ELILoU,AKJOl8B,ELIHyC,AEASzC,CGJF,CLILqqD,CEAYjjC,ACJlC,EDIqCpnB,EAAIonB,ACJzC,AEAiCujB,EAASjkC,EAAK,GHKpC9E,CCLX,AEAkD8E,CLIdw1B,CECf9U,AGLkC,CLIf,CECf,CGFvB,CLC2C3kB,CECfioD,CFDiBL,AGJ/C,IDMMjjC,AGHG1gB,EHGC8jD,AGHI,EHGKzoD,AGHD+lB,EAAE5nB,CHGI6B,EAAI,GAAKyoD,AGHP,CLCsCvqD,CEEtB2B,AGHb8E,GAAM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","file":"js.3dfa47f8.js","sourceRoot":"..","sourcesContent":["export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export 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 empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n var group = select.apply(this, arguments);\n return group == null ? [] : array(group);\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return this.children;\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.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 Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport array from \"../array.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = array(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(selection) {\n if (!(selection instanceof Selection)) throw new Error(\"invalid merge\");\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","import creator from \"./creator.js\";\nimport select from \"./select.js\";\n\nexport default function(name) {\n return select(creator(name).call(document.documentElement));\n}\n","var nextId = 0;\n\nexport default function local() {\n return new Local;\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function(node) {\n var id = this._;\n while (!(id in node)) if (!(node = node.parentNode)) return;\n return node[id];\n },\n set: function(node, value) {\n return node[this._] = value;\n },\n remove: function(node) {\n return this._ in node && delete node[this._];\n },\n toString: function() {\n return this._;\n }\n};\n","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}\n","import pointer from \"./pointer.js\";\nimport sourceEvent from \"./sourceEvent.js\";\n\nexport default function(events, node) {\n if (events.target) { // i.e., instanceof Event, not TouchList or iterable\n events = sourceEvent(events);\n if (node === undefined) node = events.currentTarget;\n events = events.touches || [events];\n }\n return Array.from(events, event => pointer(event, node));\n}\n","import array from \"./array.js\";\nimport {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([selector == null ? [] : array(selector)], root);\n}\n","export {default as create} from \"./create.js\";\nexport {default as creator} from \"./creator.js\";\nexport {default as local} from \"./local.js\";\nexport {default as matcher} from \"./matcher.js\";\nexport {default as namespace} from \"./namespace.js\";\nexport {default as namespaces} from \"./namespaces.js\";\nexport {default as pointer} from \"./pointer.js\";\nexport {default as pointers} from \"./pointers.js\";\nexport {default as select} from \"./select.js\";\nexport {default as selectAll} from \"./selectAll.js\";\nexport {default as selection} from \"./selection/index.js\";\nexport {default as selector} from \"./selector.js\";\nexport {default as selectorAll} from \"./selectorAll.js\";\nexport {styleValue as style} from \"./selection/style.js\";\nexport {default as window} from \"./window.js\";\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","export {default as dispatch} from \"./dispatch.js\";\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 {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 {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 now,\n timer,\n timerFlush\n} from \"./timer.js\";\n\nexport {\n default as timeout\n} from \"./timeout.js\";\n\nexport {\n default as interval\n} from \"./interval.js\";\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","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export const radians = Math.PI / 180;\nexport const degrees = 180 / Math.PI;\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb} from \"./color.js\";\nimport {degrees, radians} from \"./math.js\";\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nconst K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter: function(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * degrees;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * radians;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter: function(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker: function(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb: function() {\n return hcl2lab(this).rgb();\n }\n}));\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color.js\";\nimport {degrees, radians} from \"./math.js\";\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * degrees - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * radians,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n","export {default as color, rgb, hsl} from \"./color.js\";\nexport {default as lab, hcl, lch, gray} from \"./lab.js\";\nexport {default as cubehelix} from \"./cubehelix.js\";\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(range) {\n var n = range.length;\n return function(t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\n","import {hue} from \"./color.js\";\n\nexport default function(a, b) {\n var i = hue(+a, +b);\n return function(t) {\n var x = i(t);\n return x - 360 * Math.floor(x / 360);\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","var epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\nexport default (function zoomRho(rho, rho2, rho4) {\n\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n\n return i;\n }\n\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);\n","import {hsl as colorHsl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hsl(hue) {\n return function(start, end) {\n var h = hue((start = colorHsl(start)).h, (end = colorHsl(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hsl(hue);\nexport var hslLong = hsl(color);\n","import {lab as colorLab} from \"d3-color\";\nimport color from \"./color.js\";\n\nexport default function lab(start, end) {\n var l = color((start = colorLab(start)).l, (end = colorLab(end)).l),\n a = color(start.a, end.a),\n b = color(start.b, end.b),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.l = l(t);\n start.a = a(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n}\n","import {hcl as colorHcl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = color(start.c, end.c),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);\n","import {cubehelix as colorCubehelix} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction cubehelix(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n\n return cubehelix;\n })(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);\n","import {default as value} from \"./value.js\";\n\nexport default function piecewise(interpolate, values) {\n if (values === undefined) values = interpolate, interpolate = value;\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n","export default function(interpolator, n) {\n var samples = new Array(n);\n for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));\n return samples;\n}\n","export {default as interpolate} from \"./value.js\";\nexport {default as interpolateArray} from \"./array.js\";\nexport {default as interpolateBasis} from \"./basis.js\";\nexport {default as interpolateBasisClosed} from \"./basisClosed.js\";\nexport {default as interpolateDate} from \"./date.js\";\nexport {default as interpolateDiscrete} from \"./discrete.js\";\nexport {default as interpolateHue} from \"./hue.js\";\nexport {default as interpolateNumber} from \"./number.js\";\nexport {default as interpolateNumberArray} from \"./numberArray.js\";\nexport {default as interpolateObject} from \"./object.js\";\nexport {default as interpolateRound} from \"./round.js\";\nexport {default as interpolateString} from \"./string.js\";\nexport {interpolateTransformCss, interpolateTransformSvg} from \"./transform/index.js\";\nexport {default as interpolateZoom} from \"./zoom.js\";\nexport {default as interpolateRgb, rgbBasis as interpolateRgbBasis, rgbBasisClosed as interpolateRgbBasisClosed} from \"./rgb.js\";\nexport {default as interpolateHsl, hslLong as interpolateHslLong} from \"./hsl.js\";\nexport {default as interpolateLab} from \"./lab.js\";\nexport {default as interpolateHcl, hclLong as interpolateHclLong} from \"./hcl.js\";\nexport {default as interpolateCubehelix, cubehelixLong as interpolateCubehelixLong} from \"./cubehelix.js\";\nexport {default as piecewise} from \"./piecewise.js\";\nexport {default as quantize} from \"./quantize.js\";\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","export const linear = t => +t;\n","export function quadIn(t) {\n return t * t;\n}\n\nexport function quadOut(t) {\n return t * (2 - t);\n}\n\nexport function quadInOut(t) {\n return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;\n}\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","var exponent = 3;\n\nexport var polyIn = (function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n\n return polyIn;\n})(exponent);\n\nexport var polyOut = (function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n\n return polyOut;\n})(exponent);\n\nexport var polyInOut = (function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n\n return polyInOut;\n})(exponent);\n","var pi = Math.PI,\n halfPi = pi / 2;\n\nexport function sinIn(t) {\n return (+t === 1) ? 1 : 1 - Math.cos(t * halfPi);\n}\n\nexport function sinOut(t) {\n return Math.sin(t * halfPi);\n}\n\nexport function sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}\n","// tpmt is two power minus ten times t scaled to [0,1]\nexport function tpmt(x) {\n return (Math.pow(2, -10 * x) - 0.0009765625) * 1.0009775171065494;\n}\n","import {tpmt} from \"./math.js\";\n\nexport function expIn(t) {\n return tpmt(1 - +t);\n}\n\nexport function expOut(t) {\n return 1 - tpmt(t);\n}\n\nexport function expInOut(t) {\n return ((t *= 2) <= 1 ? tpmt(1 - t) : 2 - tpmt(t - 1)) / 2;\n}\n","export function circleIn(t) {\n return 1 - Math.sqrt(1 - t * t);\n}\n\nexport function circleOut(t) {\n return Math.sqrt(1 - --t * t);\n}\n\nexport function circleInOut(t) {\n return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;\n}\n","var b1 = 4 / 11,\n b2 = 6 / 11,\n b3 = 8 / 11,\n b4 = 3 / 4,\n b5 = 9 / 11,\n b6 = 10 / 11,\n b7 = 15 / 16,\n b8 = 21 / 22,\n b9 = 63 / 64,\n b0 = 1 / b1 / b1;\n\nexport function bounceIn(t) {\n return 1 - bounceOut(1 - t);\n}\n\nexport function bounceOut(t) {\n return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;\n}\n\nexport function bounceInOut(t) {\n return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;\n}\n","var overshoot = 1.70158;\n\nexport var backIn = (function custom(s) {\n s = +s;\n\n function backIn(t) {\n return (t = +t) * t * (s * (t - 1) + t);\n }\n\n backIn.overshoot = custom;\n\n return backIn;\n})(overshoot);\n\nexport var backOut = (function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((t + 1) * s + t) + 1;\n }\n\n backOut.overshoot = custom;\n\n return backOut;\n})(overshoot);\n\nexport var backInOut = (function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n\n return backInOut;\n})(overshoot);\n","import {tpmt} from \"./math.js\";\n\nvar tau = 2 * Math.PI,\n amplitude = 1,\n period = 0.3;\n\nexport var elasticIn = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * tpmt(-(--t)) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n elasticIn.period = function(p) { return custom(a, p); };\n\n return elasticIn;\n})(amplitude, period);\n\nexport var elasticOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * tpmt(t = +t) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticOut.period = function(p) { return custom(a, p); };\n\n return elasticOut;\n})(amplitude, period);\n\nexport var elasticInOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0\n ? a * tpmt(-t) * Math.sin((s - t) / p)\n : 2 - a * tpmt(t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticInOut.period = function(p) { return custom(a, p); };\n\n return elasticInOut;\n})(amplitude, period);\n","export {\n linear as easeLinear\n} from \"./linear.js\";\n\nexport {\n quadInOut as easeQuad,\n quadIn as easeQuadIn,\n quadOut as easeQuadOut,\n quadInOut as easeQuadInOut\n} from \"./quad.js\";\n\nexport {\n cubicInOut as easeCubic,\n cubicIn as easeCubicIn,\n cubicOut as easeCubicOut,\n cubicInOut as easeCubicInOut\n} from \"./cubic.js\";\n\nexport {\n polyInOut as easePoly,\n polyIn as easePolyIn,\n polyOut as easePolyOut,\n polyInOut as easePolyInOut\n} from \"./poly.js\";\n\nexport {\n sinInOut as easeSin,\n sinIn as easeSinIn,\n sinOut as easeSinOut,\n sinInOut as easeSinInOut\n} from \"./sin.js\";\n\nexport {\n expInOut as easeExp,\n expIn as easeExpIn,\n expOut as easeExpOut,\n expInOut as easeExpInOut\n} from \"./exp.js\";\n\nexport {\n circleInOut as easeCircle,\n circleIn as easeCircleIn,\n circleOut as easeCircleOut,\n circleInOut as easeCircleInOut\n} from \"./circle.js\";\n\nexport {\n bounceOut as easeBounce,\n bounceIn as easeBounceIn,\n bounceOut as easeBounceOut,\n bounceInOut as easeBounceInOut\n} from \"./bounce.js\";\n\nexport {\n backInOut as easeBack,\n backIn as easeBackIn,\n backOut as easeBackOut,\n backInOut as easeBackInOut\n} from \"./back.js\";\n\nexport {\n elasticOut as easeElastic,\n elasticIn as easeElasticIn,\n elasticOut as easeElasticOut,\n elasticInOut as easeElasticInOut\n} from \"./elastic.js\";\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 \"./selection/index.js\";\nexport {default as transition} from \"./transition/index.js\";\nexport {default as active} from \"./active.js\";\nexport {default as interrupt} from \"./interrupt.js\";\n","export const animals = [\n {\n id: 1,\n class: \"train\",\n animal: \"cat\",\n fluffiness: 0.3395684301,\n weight: 3.8497090733,\n },\n {\n id: 2,\n class: \"train\",\n animal: \"cat\",\n fluffiness: 0.9329005738,\n weight: 4.1921745764,\n },\n {\n id: 3,\n class: \"train\",\n animal: \"cat\",\n fluffiness: 1.4649664364,\n weight: 4.980204621,\n },\n {\n id: 4,\n class: \"train\",\n animal: \"cat\",\n fluffiness: -1.754603978,\n weight: 2.3205771242,\n },\n {\n id: 5,\n class: \"train\",\n animal: \"cat\",\n fluffiness: 3.3171174006,\n weight: 1.4309180305,\n },\n {\n id: 6,\n class: \"validation\",\n animal: \"cat\",\n fluffiness: 5.969038196,\n weight: 5.4902168132,\n },\n {\n id: 7,\n class: \"train\",\n animal: \"cat\",\n fluffiness: 4.2734221774,\n weight: 1.3867782915,\n },\n {\n id: 8,\n class: \"test\",\n animal: \"cat\",\n fluffiness: 1.7798907274,\n weight: -0.4432623166,\n },\n {\n id: 9,\n class: \"validation\",\n animal: \"cat\",\n fluffiness: 0.9958266626,\n weight: 2.2605570081,\n },\n {\n id: 10,\n class: \"train\",\n animal: \"cat\",\n fluffiness: 1.9513266053,\n weight: 3.4254536937,\n },\n {\n id: 11,\n class: \"train\",\n animal: \"cat\",\n fluffiness: 0.7102687647,\n weight: 2.5828849987,\n },\n {\n id: 12,\n class: \"test\",\n animal: \"cat\",\n fluffiness: 2.2935555279,\n weight: 4.1506316501,\n },\n {\n id: 13,\n class: \"train\",\n animal: \"cat\",\n fluffiness: 1.243045228,\n weight: 5.0072872251,\n },\n {\n id: 14,\n class: \"validation\",\n animal: \"cat\",\n fluffiness: 1.3801740281,\n weight: 1.8401170569,\n },\n {\n id: 15,\n class: \"train\",\n animal: \"cat\",\n fluffiness: 2.2194120188,\n weight: 3.7368825622,\n },\n {\n id: 16,\n class: \"test\",\n animal: \"cat\",\n fluffiness: 1.1446295763,\n weight: -0.7676447929,\n },\n {\n id: 17,\n class: \"train\",\n animal: \"cat\",\n fluffiness: 4.9640417147,\n weight: 4.5967988261,\n },\n {\n id: 18,\n class: \"validation\",\n animal: \"cat\",\n fluffiness: 3.585817288,\n weight: 3.2829857923,\n },\n {\n id: 19,\n class: \"validation\",\n animal: \"cat\",\n fluffiness: 5.1693458925,\n weight: 0.3535120496,\n },\n {\n id: 20,\n class: \"test\",\n animal: \"cat\",\n fluffiness: 1.0451056615,\n weight: 2.3045578302,\n },\n {\n id: 21,\n class: \"test\",\n animal: \"cat\",\n fluffiness: 1.0740808468,\n weight: 0.1892981831,\n },\n {\n id: 22,\n class: \"test\",\n animal: \"cat\",\n fluffiness: 0.7764178017,\n weight: 1.9052039509,\n },\n {\n id: 23,\n class: \"train\",\n animal: \"cat\",\n fluffiness: 2.6598947539,\n weight: 0.0559172102,\n },\n {\n id: 24,\n class: \"train\",\n animal: \"cat\",\n fluffiness: 2.1372303538,\n weight: 3.9144280381,\n },\n {\n id: 25,\n class: \"test\",\n animal: \"cat\",\n fluffiness: 3.4749431662,\n weight: 5.1588436095,\n },\n {\n id: 26,\n class: \"train\",\n animal: \"cat\",\n fluffiness: 2.8535408727,\n weight: 0.6913539509,\n },\n {\n id: 27,\n class: \"train\",\n animal: \"cat\",\n fluffiness: 4.1249118506,\n weight: 2.5370126092,\n },\n {\n id: 28,\n class: \"validation\",\n animal: \"cat\",\n fluffiness: 8.456993295,\n weight: 7.6355901615,\n },\n {\n id: 29,\n class: \"validation\",\n animal: \"cat\",\n fluffiness: 4.8289402678,\n weight: 2.2588681402,\n },\n {\n id: 30,\n class: \"test\",\n animal: \"cat\",\n fluffiness: 4.7317139061,\n weight: 4.5245785086,\n },\n {\n id: 31,\n class: \"validation\",\n animal: \"cat\",\n fluffiness: -0.020449048,\n weight: 6.7229624238,\n },\n {\n id: 32,\n class: \"train\",\n animal: \"cat\",\n fluffiness: 0.3980243841,\n weight: 1.5793157914,\n },\n {\n id: 33,\n class: \"test\",\n animal: \"cat\",\n fluffiness: 1.1194665869,\n weight: 3.0749664648,\n },\n {\n id: 34,\n class: \"test\",\n animal: \"dog\",\n fluffiness: 4.1798149279,\n weight: 3.7530702897,\n },\n {\n id: 35,\n class: \"validation\",\n animal: \"dog\",\n fluffiness: 3.430356098,\n weight: 4.9522229119,\n },\n {\n id: 36,\n class: \"validation\",\n animal: \"dog\",\n fluffiness: 4.1092221307,\n weight: 5.1129316259,\n },\n {\n id: 37,\n class: \"test\",\n animal: \"dog\",\n fluffiness: 4.3597474532,\n weight: 4.8591861099,\n },\n {\n id: 38,\n class: \"train\",\n animal: \"dog\",\n fluffiness: 4.1680410042,\n weight: 4.2694119763,\n },\n {\n id: 39,\n class: \"train\",\n animal: \"dog\",\n fluffiness: 4.3136539571,\n weight: 4.8750020036,\n },\n {\n id: 40,\n class: \"validation\",\n animal: \"dog\",\n fluffiness: 2.9295977765,\n weight: 3.5141707844,\n },\n {\n id: 41,\n class: \"train\",\n animal: \"dog\",\n fluffiness: 4.7573689612,\n weight: 6.3884272365,\n },\n {\n id: 42,\n class: \"train\",\n animal: \"dog\",\n fluffiness: 6.0135223606,\n weight: 4.2875695824,\n },\n {\n id: 43,\n class: \"train\",\n animal: \"dog\",\n fluffiness: 3.1238974229,\n weight: 5.9264108312,\n },\n {\n id: 44,\n class: \"train\",\n animal: \"dog\",\n fluffiness: 5.8386068945,\n weight: 4.8610556341,\n },\n {\n id: 45,\n class: \"train\",\n animal: \"dog\",\n fluffiness: 2.8963612818,\n weight: 5.6217562101,\n },\n {\n id: 46,\n class: \"validation\",\n animal: \"dog\",\n fluffiness: 4.7228669078,\n weight: 3.5962935509,\n },\n {\n id: 47,\n class: \"train\",\n animal: \"dog\",\n fluffiness: 4.0018535795,\n weight: 3.6803748587,\n },\n {\n id: 48,\n class: \"test\",\n animal: \"dog\",\n fluffiness: 4.3172921474,\n weight: 5.1232517288,\n },\n {\n id: 49,\n class: \"test\",\n animal: \"dog\",\n fluffiness: 3.6360179255,\n weight: 7.3927980009,\n },\n {\n id: 50,\n class: \"train\",\n animal: \"dog\",\n fluffiness: 5.5713447453,\n weight: 6.1974414184,\n },\n {\n id: 51,\n class: \"validation\",\n animal: \"dog\",\n fluffiness: 5.4478954122,\n weight: 4.4923585338,\n },\n {\n id: 52,\n class: \"validation\",\n animal: \"dog\",\n fluffiness: 7.0171795504,\n weight: 5.0476809105,\n },\n {\n id: 53,\n class: \"test\",\n animal: \"dog\",\n fluffiness: 5.3263760362,\n weight: 3.3503760428,\n },\n {\n id: 54,\n class: \"train\",\n animal: \"dog\",\n fluffiness: 3.1220500159,\n weight: 5.5761419998,\n },\n {\n id: 55,\n class: \"validation\",\n animal: \"dog\",\n fluffiness: 3.8820683137,\n weight: 6.1581615814,\n },\n {\n id: 56,\n class: \"train\",\n animal: \"dog\",\n fluffiness: 5.961141133,\n weight: 6.1566959577,\n },\n {\n id: 57,\n class: \"test\",\n animal: \"dog\",\n fluffiness: 4.9399098656,\n weight: 6.768915416,\n },\n {\n id: 58,\n class: \"train\",\n animal: \"dog\",\n fluffiness: 3.0794095057,\n weight: 4.5547527302,\n },\n {\n id: 59,\n class: \"train\",\n animal: \"dog\",\n fluffiness: 5.2144455712,\n weight: 3.7487027893,\n },\n {\n id: 60,\n class: \"validation\",\n animal: \"dog\",\n fluffiness: 4.2903883693,\n weight: 5.8219822698,\n },\n {\n id: 61,\n class: \"test\",\n animal: \"dog\",\n fluffiness: 5.7338553022,\n weight: 5.1246676088,\n },\n {\n id: 62,\n class: \"train\",\n animal: \"dog\",\n fluffiness: 3.9063076337,\n weight: 4.4531077178,\n },\n];\n","import { animals } from \"./data\";\n\nexport class LogisticRegression {\n constructor(opts) {\n this.iterations = opts.iterations;\n this.startFeature = opts.startFeature;\n this.learningRate = opts.learningRate;\n this.X = animals.map((d) => {\n return {\n weight: d.weight,\n fluffiness: d.fluffiness,\n };\n });\n // this.X.filter((d) => d.class === \"train\");\n\n this.y = animals.map((d) => d.animal);\n this.yLabel = this.y.map((d) => (d === \"cat\" ? 0 : 1));\n\n this.fit(\"weight\", this.X);\n }\n\n fit(feature, data) {\n if (feature === \"both\") {\n // let's just start off with X1\n let trainData = [\n data.map((d) => +d[\"fluffiness\"]),\n data.map((d) => +d[\"weight\"]),\n ];\n let label = this.yLabel;\n this.weights = this.logReg(trainData, label);\n this.decisionBoundary = -this.weights[0] / this.weights[1];\n } else {\n // let's just start off with X1\n let trainData = [data.map((d) => +d[feature])];\n let label = this.yLabel;\n this.weights = this.logReg(trainData, label);\n this.decisionBoundary = -this.weights[0] / this.weights[1];\n }\n }\n\n sigmoid(scores) {\n // define equation: 1 / ( 1 + e( - z ) )\n const sigmoidEq = (d) => 1 / (1 + Math.exp(-d));\n // destructure arrays from matrix\n let [x1, x2] = scores;\n // evaluate sigmoid\n if (scores.length === 1) {\n return [x1.map(sigmoidEq)];\n } else {\n // 2 dimension case, so apply to each side\n x1 = x1.map(sigmoidEq);\n x2 = x2.map(sigmoidEq);\n return [x1, x2];\n }\n }\n\n // compute dot product between our features and weights\n dotProduct(a, weights) {\n const n = a[0].length;\n\n // init scores array\n let scores = [];\n\n for (let row = 0; row < n; row++) {\n let rowSum = 0;\n weights.map((weight, col) => {\n rowSum += a[col][row] * weight;\n });\n scores.push(rowSum);\n }\n return [scores];\n }\n\n logReg(features, target) {\n const self = this;\n // helper func\n const subtractArrays = (a, b) => a.map((x, i) => x - b[i]);\n\n // add intercept term\n const m = features[0].length;\n\n // add intercept to data\n const intercept = new Array(m).fill(1);\n features.unshift(intercept);\n\n // initialize weights\n // (get length here to pad for bias weight)\n const n = features.length;\n this.weights = new Array(n).fill(0.5);\n\n // perform updates\n for (let index = 0; index < self.iterations; index++) {\n let scores = this.dotProduct(features, this.weights);\n let predictions = this.sigmoid(scores);\n let error = subtractArrays(target, predictions[0]);\n let gradient = this.dotProduct(transpose(features), error);\n this.weights = this.weights.map((w, i) => {\n return w + gradient[0][i] * self.learningRate;\n });\n }\n\n return this.weights;\n }\n}\n\n// transpose matrix\nfunction transpose(m) {\n return m[0].map((x, i) => m.map((x) => x[i]));\n}\n","export const trainColor = \"#2D3142\";\nexport const testColor = \"#FF934F\";\nexport const validationColor = \"#058ED9\";\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function(f) {\n let delta = f;\n let compare = f;\n\n if (f.length === 1) {\n delta = (d, x) => f(d) - x;\n compare = ascendingComparator(f);\n }\n\n function left(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n }\n\n function right(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n\n function center(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction ascendingComparator(f) {\n return (d, x) => ascending(f(d), x);\n}\n","export default function(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export default function count(values, valueof) {\n let count = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n ++count;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n ++count;\n }\n }\n }\n return count;\n}\n","function length(array) {\n return array.length | 0;\n}\n\nfunction empty(length) {\n return !(length > 0);\n}\n\nfunction arrayify(values) {\n return typeof values !== \"object\" || \"length\" in values ? values : Array.from(values);\n}\n\nfunction reducer(reduce) {\n return values => reduce(...values);\n}\n\nexport default function cross(...values) {\n const reduce = typeof values[values.length - 1] === \"function\" && reducer(values.pop());\n values = values.map(arrayify);\n const lengths = values.map(length);\n const j = values.length - 1;\n const index = new Array(j + 1).fill(0);\n const product = [];\n if (j < 0 || lengths.some(empty)) return product;\n while (true) {\n product.push(index.map((j, i) => values[i][j]));\n let i = j;\n while (++index[i] === lengths[i]) {\n if (i === 0) return reduce ? product.map(reduce) : product;\n index[i--] = 0;\n }\n }\n}\n","export default function cumsum(values, valueof) {\n var sum = 0, index = 0;\n return Float64Array.from(values, valueof === undefined\n ? v => (sum += +v || 0)\n : v => (sum += +valueof(v, index++, values) || 0));\n}","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function variance(values, valueof) {\n let count = 0;\n let delta;\n let mean = 0;\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n delta = value - mean;\n mean += delta / ++count;\n sum += delta * (value - mean);\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n delta = value - mean;\n mean += delta / ++count;\n sum += delta * (value - mean);\n }\n }\n }\n if (count > 1) return sum / (count - 1);\n}\n","import variance from \"./variance.js\";\n\nexport default function deviation(values, valueof) {\n const v = variance(values, valueof);\n return v ? Math.sqrt(v) : v;\n}\n","export default function(values, valueof) {\n let min;\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n return [min, max];\n}\n","// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423\nexport class Adder {\n constructor() {\n this._partials = new Float64Array(32);\n this._n = 0;\n }\n add(x) {\n const p = this._partials;\n let i = 0;\n for (let j = 0; j < this._n && j < 32; j++) {\n const y = p[j],\n hi = x + y,\n lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);\n if (lo) p[i++] = lo;\n x = hi;\n }\n p[i] = x;\n this._n = i + 1;\n return this;\n }\n valueOf() {\n const p = this._partials;\n let n = this._n, x, y, lo, hi = 0;\n if (n > 0) {\n hi = p[--n];\n while (n > 0) {\n x = hi;\n y = p[--n];\n hi = x + y;\n lo = y - (hi - x);\n if (lo) break;\n }\n if (n > 0 && ((lo < 0 && p[n - 1] < 0) || (lo > 0 && p[n - 1] > 0))) {\n y = lo * 2;\n x = hi + y;\n if (y == x - hi) hi = x;\n }\n }\n return hi;\n }\n}\n\nexport function fsum(values, valueof) {\n const adder = new Adder();\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n adder.add(value);\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n adder.add(value);\n }\n }\n }\n return +adder;\n}\n\nexport function fcumsum(values, valueof) {\n const adder = new Adder();\n let index = -1;\n return Float64Array.from(values, valueof === undefined\n ? v => adder.add(+v || 0)\n : v => adder.add(+valueof(v, ++index, values) || 0)\n );\n}\n","export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(value);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n","export default function(x) {\n return x;\n}\n","import {InternMap} from \"internmap\";\nimport identity from \"./identity.js\";\n\nexport default function group(values, ...keys) {\n return nest(values, identity, identity, keys);\n}\n\nexport function groups(values, ...keys) {\n return nest(values, Array.from, identity, keys);\n}\n\nexport function rollup(values, reduce, ...keys) {\n return nest(values, identity, reduce, keys);\n}\n\nexport function rollups(values, reduce, ...keys) {\n return nest(values, Array.from, reduce, keys);\n}\n\nexport function index(values, ...keys) {\n return nest(values, identity, unique, keys);\n}\n\nexport function indexes(values, ...keys) {\n return nest(values, Array.from, unique, keys);\n}\n\nfunction unique(values) {\n if (values.length !== 1) throw new Error(\"duplicate key\");\n return values[0];\n}\n\nfunction nest(values, map, reduce, keys) {\n return (function regroup(values, i) {\n if (i >= keys.length) return reduce(values);\n const groups = new InternMap();\n const keyof = keys[i++];\n let index = -1;\n for (const value of values) {\n const key = keyof(value, ++index, values);\n const group = groups.get(key);\n if (group) group.push(value);\n else groups.set(key, [value]);\n }\n for (const [key, values] of groups) {\n groups.set(key, regroup(values, i));\n }\n return map(groups);\n })(values, 0);\n}\n","export default function(source, keys) {\n return Array.from(keys, key => source[key]);\n}\n","import ascending from \"./ascending.js\";\nimport permute from \"./permute.js\";\n\nexport default function sort(values, ...F) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n values = Array.from(values);\n let [f = ascending] = F;\n if (f.length === 1 || F.length > 1) {\n const index = Uint32Array.from(values, (d, i) => i);\n if (F.length > 1) {\n F = F.map(f => values.map(f));\n index.sort((i, j) => {\n for (const f of F) {\n const c = ascending(f[i], f[j]);\n if (c) return c;\n }\n });\n } else {\n f = values.map(f);\n index.sort((i, j) => ascending(f[i], f[j]));\n }\n return permute(values, index);\n }\n return values.sort(f);\n}\n","import ascending from \"./ascending.js\";\nimport group, {rollup} from \"./group.js\";\nimport sort from \"./sort.js\";\n\nexport default function groupSort(values, reduce, key) {\n return (reduce.length === 1\n ? sort(rollup(values, reduce, key), (([ak, av], [bk, bv]) => ascending(av, bv) || ascending(ak, bk)))\n : sort(group(values, key), (([ak, av], [bk, bv]) => reduce(av, bv) || ascending(ak, bk))))\n .map(([key]) => key);\n}\n","var array = Array.prototype;\n\nexport var slice = array.slice;\nexport var map = array.map;\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n let r0 = Math.round(start / step), r1 = Math.round(stop / step);\n if (r0 * step < start) ++r0;\n if (r1 * step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) * step;\n } else {\n step = -step;\n let r0 = Math.round(start * step), r1 = Math.round(stop * step);\n if (r0 / step < start) ++r0;\n if (r1 / step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","import {tickIncrement} from \"./ticks.js\";\n\nexport default function nice(start, stop, count) {\n let prestep;\n while (true) {\n const step = tickIncrement(start, stop, count);\n if (step === prestep || step === 0 || !isFinite(step)) {\n return [start, stop];\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n }\n prestep = step;\n }\n}\n","import count from \"../count.js\";\n\nexport default function(values) {\n return Math.ceil(Math.log(count(values)) / Math.LN2) + 1;\n}\n","import {slice} from \"./array.js\";\nimport bisect from \"./bisect.js\";\nimport constant from \"./constant.js\";\nimport extent from \"./extent.js\";\nimport identity from \"./identity.js\";\nimport nice from \"./nice.js\";\nimport ticks, {tickIncrement} from \"./ticks.js\";\nimport sturges from \"./threshold/sturges.js\";\n\nexport default function() {\n var value = identity,\n domain = extent,\n threshold = sturges;\n\n function histogram(data) {\n if (!Array.isArray(data)) data = Array.from(data);\n\n var i,\n n = data.length,\n x,\n values = new Array(n);\n\n for (i = 0; i < n; ++i) {\n values[i] = value(data[i], i, data);\n }\n\n var xz = domain(values),\n x0 = xz[0],\n x1 = xz[1],\n tz = threshold(values, x0, x1);\n\n // Convert number of thresholds into uniform thresholds, and nice the\n // default domain accordingly.\n if (!Array.isArray(tz)) {\n const max = x1, tn = +tz;\n if (domain === extent) [x0, x1] = nice(x0, x1, tn);\n tz = ticks(x0, x1, tn);\n\n // If the last threshold is coincident with the domain’s upper bound, the\n // last bin will be zero-width. If the default domain is used, and this\n // last threshold is coincident with the maximum input value, we can\n // extend the niced upper bound by one tick to ensure uniform bin widths;\n // otherwise, we simply remove the last threshold. Note that we don’t\n // coerce values or the domain to numbers, and thus must be careful to\n // compare order (>=) rather than strict equality (===)!\n if (tz[tz.length - 1] >= x1) {\n if (max >= x1 && domain === extent) {\n const step = tickIncrement(x0, x1, tn);\n if (isFinite(step)) {\n if (step > 0) {\n x1 = (Math.floor(x1 / step) + 1) * step;\n } else if (step < 0) {\n x1 = (Math.ceil(x1 * -step) + 1) / -step;\n }\n }\n } else {\n tz.pop();\n }\n }\n }\n\n // Remove any thresholds outside the domain.\n var m = tz.length;\n while (tz[0] <= x0) tz.shift(), --m;\n while (tz[m - 1] > x1) tz.pop(), --m;\n\n var bins = new Array(m + 1),\n bin;\n\n // Initialize bins.\n for (i = 0; i <= m; ++i) {\n bin = bins[i] = [];\n bin.x0 = i > 0 ? tz[i - 1] : x0;\n bin.x1 = i < m ? tz[i] : x1;\n }\n\n // Assign data to bins by value, ignoring any outside the domain.\n for (i = 0; i < n; ++i) {\n x = values[i];\n if (x0 <= x && x <= x1) {\n bins[bisect(tz, x, 0, m)].push(data[i]);\n }\n }\n\n return bins;\n }\n\n histogram.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(_), histogram) : value;\n };\n\n histogram.domain = function(_) {\n return arguments.length ? (domain = typeof _ === \"function\" ? _ : constant([_[0], _[1]]), histogram) : domain;\n };\n\n histogram.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;\n };\n\n return histogram;\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","import ascending from \"./ascending.js\";\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nexport default function quickselect(array, k, left = 0, right = array.length - 1, compare = ascending) {\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n const t = array[k];\n let i = left;\n let j = right;\n\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n while (compare(array[i], t) < 0) ++i;\n while (compare(array[j], t) > 0) --j;\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);\n else ++j, swap(array, j, right);\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n return array;\n}\n\nfunction swap(array, i, j) {\n const t = array[i];\n array[i] = array[j];\n array[j] = t;\n}\n","import max from \"./max.js\";\nimport min from \"./min.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\n\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n","import count from \"../count.js\";\nimport quantile from \"../quantile.js\";\n\nexport default function(values, min, max) {\n return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(count(values), -1 / 3)));\n}\n","import count from \"../count.js\";\nimport deviation from \"../deviation.js\";\n\nexport default function(values, min, max) {\n return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(count(values), -1 / 3)));\n}\n","export default function maxIndex(values, valueof) {\n let max;\n let maxIndex = -1;\n let index = -1;\n if (valueof === undefined) {\n for (const value of values) {\n ++index;\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value, maxIndex = index;\n }\n }\n } else {\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value, maxIndex = index;\n }\n }\n }\n return maxIndex;\n}\n","export default function mean(values, valueof) {\n let count = 0;\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n }\n }\n if (count) return sum / count;\n}\n","import quantile from \"./quantile.js\";\n\nexport default function(values, valueof) {\n return quantile(values, 0.5, valueof);\n}\n","function* flatten(arrays) {\n for (const array of arrays) {\n yield* array;\n }\n}\n\nexport default function merge(arrays) {\n return Array.from(flatten(arrays));\n}\n","export default function minIndex(values, valueof) {\n let min;\n let minIndex = -1;\n let index = -1;\n if (valueof === undefined) {\n for (const value of values) {\n ++index;\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value, minIndex = index;\n }\n }\n } else {\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value, minIndex = index;\n }\n }\n }\n return minIndex;\n}\n","export default function pairs(values, pairof = pair) {\n const pairs = [];\n let previous;\n let first = false;\n for (const value of values) {\n if (first) pairs.push(pairof(previous, value));\n previous = value;\n first = true;\n }\n return pairs;\n}\n\nexport function pair(a, b) {\n return [a, b];\n}\n","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function least(values, compare = ascending) {\n let min;\n let defined = false;\n if (compare.length === 1) {\n let minValue;\n for (const element of values) {\n const value = compare(element);\n if (defined\n ? ascending(value, minValue) < 0\n : ascending(value, value) === 0) {\n min = element;\n minValue = value;\n defined = true;\n }\n }\n } else {\n for (const value of values) {\n if (defined\n ? compare(value, min) < 0\n : compare(value, value) === 0) {\n min = value;\n defined = true;\n }\n }\n }\n return min;\n}\n","import ascending from \"./ascending.js\";\nimport minIndex from \"./minIndex.js\";\n\nexport default function leastIndex(values, compare = ascending) {\n if (compare.length === 1) return minIndex(values, compare);\n let minValue;\n let min = -1;\n let index = -1;\n for (const value of values) {\n ++index;\n if (min < 0\n ? compare(value, value) === 0\n : compare(value, minValue) < 0) {\n minValue = value;\n min = index;\n }\n }\n return min;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function greatest(values, compare = ascending) {\n let max;\n let defined = false;\n if (compare.length === 1) {\n let maxValue;\n for (const element of values) {\n const value = compare(element);\n if (defined\n ? ascending(value, maxValue) > 0\n : ascending(value, value) === 0) {\n max = element;\n maxValue = value;\n defined = true;\n }\n }\n } else {\n for (const value of values) {\n if (defined\n ? compare(value, max) > 0\n : compare(value, value) === 0) {\n max = value;\n defined = true;\n }\n }\n }\n return max;\n}\n","import ascending from \"./ascending.js\";\nimport maxIndex from \"./maxIndex.js\";\n\nexport default function greatestIndex(values, compare = ascending) {\n if (compare.length === 1) return maxIndex(values, compare);\n let maxValue;\n let max = -1;\n let index = -1;\n for (const value of values) {\n ++index;\n if (max < 0\n ? compare(value, value) === 0\n : compare(value, maxValue) > 0) {\n maxValue = value;\n max = index;\n }\n }\n return max;\n}\n","import leastIndex from \"./leastIndex.js\";\n\nexport default function scan(values, compare) {\n const index = leastIndex(values, compare);\n return index < 0 ? undefined : index;\n}\n","export default shuffler(Math.random);\n\nexport function shuffler(random) {\n return function shuffle(array, i0 = 0, i1 = array.length) {\n let m = i1 - (i0 = +i0);\n while (m) {\n const i = random() * m-- | 0, t = array[m + i0];\n array[m + i0] = array[i + i0];\n array[i + i0] = t;\n }\n return array;\n };\n}\n","export default function sum(values, valueof) {\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n sum += value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n sum += value;\n }\n }\n }\n return sum;\n}\n","import min from \"./min.js\";\n\nexport default function(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n}\n\nfunction length(d) {\n return d.length;\n}\n","import transpose from \"./transpose.js\";\n\nexport default function() {\n return transpose(arguments);\n}\n","export default function every(values, test) {\n if (typeof test !== \"function\") throw new TypeError(\"test is not a function\");\n let index = -1;\n for (const value of values) {\n if (!test(value, ++index, values)) {\n return false;\n }\n }\n return true;\n}\n","export default function some(values, test) {\n if (typeof test !== \"function\") throw new TypeError(\"test is not a function\");\n let index = -1;\n for (const value of values) {\n if (test(value, ++index, values)) {\n return true;\n }\n }\n return false;\n}\n","export default function filter(values, test) {\n if (typeof test !== \"function\") throw new TypeError(\"test is not a function\");\n const array = [];\n let index = -1;\n for (const value of values) {\n if (test(value, ++index, values)) {\n array.push(value);\n }\n }\n return array;\n}\n","export default function map(values, mapper) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n if (typeof mapper !== \"function\") throw new TypeError(\"mapper is not a function\");\n return Array.from(values, (value, index) => mapper(value, index, values));\n}\n","export default function reduce(values, reducer, value) {\n if (typeof reducer !== \"function\") throw new TypeError(\"reducer is not a function\");\n const iterator = values[Symbol.iterator]();\n let done, next, index = -1;\n if (arguments.length < 3) {\n ({done, value} = iterator.next());\n if (done) return;\n ++index;\n }\n while (({done, value: next} = iterator.next()), !done) {\n value = reducer(value, next, ++index, values);\n }\n return value;\n}\n","export default function reverse(values) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n return Array.from(values).reverse();\n}\n","export default function difference(values, ...others) {\n values = new Set(values);\n for (const other of others) {\n for (const value of other) {\n values.delete(value);\n }\n }\n return values;\n}\n","export default function disjoint(values, other) {\n const iterator = other[Symbol.iterator](), set = new Set();\n for (const v of values) {\n if (set.has(v)) return false;\n let value, done;\n while (({value, done} = iterator.next())) {\n if (done) break;\n if (Object.is(v, value)) return false;\n set.add(value);\n }\n }\n return true;\n}\n","export default function set(values) {\n return values instanceof Set ? values : new Set(values);\n}\n","import set from \"./set.js\";\n\nexport default function intersection(values, ...others) {\n values = new Set(values);\n others = others.map(set);\n out: for (const value of values) {\n for (const other of others) {\n if (!other.has(value)) {\n values.delete(value);\n continue out;\n }\n }\n }\n return values;\n}\n","export default function superset(values, other) {\n const iterator = values[Symbol.iterator](), set = new Set();\n for (const o of other) {\n if (set.has(o)) continue;\n let value, done;\n while (({value, done} = iterator.next())) {\n if (done) return false;\n set.add(value);\n if (Object.is(o, value)) break;\n }\n }\n return true;\n}\n","import superset from \"./superset.js\";\n\nexport default function subset(values, other) {\n return superset(other, values);\n}\n","export default function union(...others) {\n const set = new Set();\n for (const other of others) {\n for (const o of other) {\n set.add(o);\n }\n }\n return set;\n}\n","export {default as bisect, bisectRight, bisectLeft, bisectCenter} from \"./bisect.js\";\nexport {default as ascending} from \"./ascending.js\";\nexport {default as bisector} from \"./bisector.js\";\nexport {default as count} from \"./count.js\";\nexport {default as cross} from \"./cross.js\";\nexport {default as cumsum} from \"./cumsum.js\";\nexport {default as descending} from \"./descending.js\";\nexport {default as deviation} from \"./deviation.js\";\nexport {default as extent} from \"./extent.js\";\nexport {Adder, fsum, fcumsum} from \"./fsum.js\";\nexport {default as group, groups, index, indexes, rollup, rollups} from \"./group.js\";\nexport {default as groupSort} from \"./groupSort.js\";\nexport {default as bin, default as histogram} from \"./bin.js\"; // Deprecated; use bin.\nexport {default as thresholdFreedmanDiaconis} from \"./threshold/freedmanDiaconis.js\";\nexport {default as thresholdScott} from \"./threshold/scott.js\";\nexport {default as thresholdSturges} from \"./threshold/sturges.js\";\nexport {default as max} from \"./max.js\";\nexport {default as maxIndex} from \"./maxIndex.js\";\nexport {default as mean} from \"./mean.js\";\nexport {default as median} from \"./median.js\";\nexport {default as merge} from \"./merge.js\";\nexport {default as min} from \"./min.js\";\nexport {default as minIndex} from \"./minIndex.js\";\nexport {default as nice} from \"./nice.js\";\nexport {default as pairs} from \"./pairs.js\";\nexport {default as permute} from \"./permute.js\";\nexport {default as quantile, quantileSorted} from \"./quantile.js\";\nexport {default as quickselect} from \"./quickselect.js\";\nexport {default as range} from \"./range.js\";\nexport {default as least} from \"./least.js\";\nexport {default as leastIndex} from \"./leastIndex.js\";\nexport {default as greatest} from \"./greatest.js\";\nexport {default as greatestIndex} from \"./greatestIndex.js\";\nexport {default as scan} from \"./scan.js\"; // Deprecated; use leastIndex.\nexport {default as shuffle, shuffler} from \"./shuffle.js\";\nexport {default as sum} from \"./sum.js\";\nexport {default as ticks, tickIncrement, tickStep} from \"./ticks.js\";\nexport {default as transpose} from \"./transpose.js\";\nexport {default as variance} from \"./variance.js\";\nexport {default as zip} from \"./zip.js\";\nexport {default as every} from \"./every.js\";\nexport {default as some} from \"./some.js\";\nexport {default as filter} from \"./filter.js\";\nexport {default as map} from \"./map.js\";\nexport {default as reduce} from \"./reduce.js\";\nexport {default as reverse} from \"./reverse.js\";\nexport {default as sort} from \"./sort.js\";\nexport {default as difference} from \"./difference.js\";\nexport {default as disjoint} from \"./disjoint.js\";\nexport {default as intersection} from \"./intersection.js\";\nexport {default as subset} from \"./subset.js\";\nexport {default as superset} from \"./superset.js\";\nexport {default as union} from \"./union.js\";\nexport {InternMap, InternSet} from \"internmap\";\n","export var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\nexport default map;\n","import map from \"./map\";\n\nexport default function() {\n var keys = [],\n sortKeys = [],\n sortValues,\n rollup,\n nest;\n\n function apply(array, depth, createResult, setResult) {\n if (depth >= keys.length) {\n if (sortValues != null) array.sort(sortValues);\n return rollup != null ? rollup(array) : array;\n }\n\n var i = -1,\n n = array.length,\n key = keys[depth++],\n keyValue,\n value,\n valuesByKey = map(),\n values,\n result = createResult();\n\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(value = array[i]) + \"\")) {\n values.push(value);\n } else {\n valuesByKey.set(keyValue, [value]);\n }\n }\n\n valuesByKey.each(function(values, key) {\n setResult(result, key, apply(values, depth, createResult, setResult));\n });\n\n return result;\n }\n\n function entries(map, depth) {\n if (++depth > keys.length) return map;\n var array, sortKey = sortKeys[depth - 1];\n if (rollup != null && depth >= keys.length) array = map.entries();\n else array = [], map.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); });\n return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array;\n }\n\n return nest = {\n object: function(array) { return apply(array, 0, createObject, setObject); },\n map: function(array) { return apply(array, 0, createMap, setMap); },\n entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); },\n key: function(d) { keys.push(d); return nest; },\n sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; },\n sortValues: function(order) { sortValues = order; return nest; },\n rollup: function(f) { rollup = f; return nest; }\n };\n}\n\nfunction createObject() {\n return {};\n}\n\nfunction setObject(object, key, value) {\n object[key] = value;\n}\n\nfunction createMap() {\n return map();\n}\n\nfunction setMap(map, key, value) {\n map.set(key, value);\n}\n","import {default as map, prefix} from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\nexport default set;\n","export default function(map) {\n var keys = [];\n for (var key in map) keys.push(key);\n return keys;\n}\n","export default function(map) {\n var values = [];\n for (var key in map) values.push(map[key]);\n return values;\n}\n","export default function(map) {\n var entries = [];\n for (var key in map) entries.push({key: key, value: map[key]});\n return entries;\n}\n","export {default as nest} from \"./nest\";\nexport {default as set} from \"./set\";\nexport {default as map} from \"./map\";\nexport {default as keys} from \"./keys\";\nexport {default as values} from \"./values\";\nexport {default as entries} from \"./entries\";\n","export default function(x, y) {\n var nodes, strength = 1;\n\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force() {\n var i,\n n = nodes.length,\n node,\n sx = 0,\n sy = 0;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], sx += node.x, sy += node.y;\n }\n\n for (sx = (sx / n - x) * strength, sy = (sy / n - y) * strength, i = 0; i < n; ++i) {\n node = nodes[i], node.x -= sx, node.y -= sy;\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n return force;\n}\n","export default function(d) {\n const x = +this._x.call(null, d),\n y = +this._y.call(null, d);\n return add(this.cover(x, y), x, y, d);\n}\n\nfunction add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n y0 = tree._y0,\n x1 = tree._x1,\n y1 = tree._y1,\n xm,\n ym,\n xp,\n yp,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n var d, i, n = data.length,\n x,\n y,\n xz = new Array(n),\n yz = new Array(n),\n x0 = Infinity,\n y0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity;\n\n // Compute the points and their extent.\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n }\n\n // If there were no (valid) points, abort.\n if (x0 > x1 || y0 > y1) return this;\n\n // Expand the tree to cover the new points.\n this.cover(x0, y0).cover(x1, y1);\n\n // Add the new points.\n for (i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], data[i]);\n }\n\n return this;\n}\n","export default function(x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1;\n\n // If the quadtree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing quadrant boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else {\n var z = x1 - x0 || 1,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n i = (y < y0) << 1 | (x < x0);\n parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n switch (i) {\n case 0: x1 = x0 + z, y1 = y0 + z; break;\n case 1: x0 = x1 - z, y1 = y0 + z; break;\n case 2: x1 = x0 + z, y0 = y1 - z; break;\n case 3: x0 = x1 - z, y0 = y1 - z; break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n}\n","export default function() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n}\n","export default function(_) {\n return arguments.length\n ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])\n : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n}\n","export default function(node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(x, y, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n x1,\n y1,\n x2,\n y2,\n x3 = this._x1,\n y3 = this._y1,\n quads = [],\n node = this._root,\n q,\n i;\n\n if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n\n while (q = quads.pop()) {\n\n // Stop searching if this quadrant can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (y1 = q.y0) > y3\n || (x2 = q.x1) < x0\n || (y2 = q.y1) < y0) continue;\n\n // Bisect the current quadrant.\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2;\n\n quads.push(\n new Quad(node[3], xm, ym, x2, y2),\n new Quad(node[2], x1, ym, xm, y2),\n new Quad(node[1], xm, y1, x2, ym),\n new Quad(node[0], x1, y1, xm, ym)\n );\n\n // Visit the closest quadrant first.\n if (i = (y >= ym) << 1 | (x >= xm)) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n d2 = dx * dx + dy * dy;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}\n","export default function(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1,\n x,\n y,\n xm,\n ym,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1] || parent[2] || parent[3])\n && node === (parent[3] || parent[2] || parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n}\n\nexport function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n","export default function() {\n return this._root;\n}\n","export default function() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n }\n }\n return this;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], next = [], q;\n if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n return this;\n}\n","export function defaultX(d) {\n return d[0];\n}\n\nexport default function(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}\n","export function defaultY(d) {\n return d[1];\n}\n\nexport default function(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n}\n","import tree_add, {addAll as tree_addAll} from \"./add.js\";\nimport tree_cover from \"./cover.js\";\nimport tree_data from \"./data.js\";\nimport tree_extent from \"./extent.js\";\nimport tree_find from \"./find.js\";\nimport tree_remove, {removeAll as tree_removeAll} from \"./remove.js\";\nimport tree_root from \"./root.js\";\nimport tree_size from \"./size.js\";\nimport tree_visit from \"./visit.js\";\nimport tree_visitAfter from \"./visitAfter.js\";\nimport tree_x, {defaultX} from \"./x.js\";\nimport tree_y, {defaultY} from \"./y.js\";\n\nexport default function quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(4)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;\n","export {default as quadtree} from \"./quadtree.js\";\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(random) {\n return (random() - 0.5) * 1e-6;\n}\n","import {quadtree} from \"d3-quadtree\";\nimport constant from \"./constant.js\";\nimport jiggle from \"./jiggle.js\";\n\nfunction x(d) {\n return d.x + d.vx;\n}\n\nfunction y(d) {\n return d.y + d.vy;\n}\n\nexport default function(radius) {\n var nodes,\n radii,\n random,\n strength = 1,\n iterations = 1;\n\n if (typeof radius !== \"function\") radius = constant(radius == null ? 1 : +radius);\n\n function force() {\n var i, n = nodes.length,\n tree,\n node,\n xi,\n yi,\n ri,\n ri2;\n\n for (var k = 0; k < iterations; ++k) {\n tree = quadtree(nodes, x, y).visitAfter(prepare);\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n ri = radii[node.index], ri2 = ri * ri;\n xi = node.x + node.vx;\n yi = node.y + node.vy;\n tree.visit(apply);\n }\n }\n\n function apply(quad, x0, y0, x1, y1) {\n var data = quad.data, rj = quad.r, r = ri + rj;\n if (data) {\n if (data.index > node.index) {\n var x = xi - data.x - data.vx,\n y = yi - data.y - data.vy,\n l = x * x + y * y;\n if (l < r * r) {\n if (x === 0) x = jiggle(random), l += x * x;\n if (y === 0) y = jiggle(random), l += y * y;\n l = (r - (l = Math.sqrt(l))) / l * strength;\n node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));\n node.vy += (y *= l) * r;\n data.vx -= x * (r = 1 - r);\n data.vy -= y * r;\n }\n }\n return;\n }\n return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;\n }\n }\n\n function prepare(quad) {\n if (quad.data) return quad.r = radii[quad.data.index];\n for (var i = quad.r = 0; i < 4; ++i) {\n if (quad[i] && quad[i].r > quad.r) {\n quad.r = quad[i].r;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n radii = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);\n }\n\n force.initialize = function(_nodes, _random) {\n nodes = _nodes;\n random = _random;\n initialize();\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n return force;\n}\n","import constant from \"./constant.js\";\nimport jiggle from \"./jiggle.js\";\n\nfunction index(d) {\n return d.index;\n}\n\nfunction find(nodeById, nodeId) {\n var node = nodeById.get(nodeId);\n if (!node) throw new Error(\"node not found: \" + nodeId);\n return node;\n}\n\nexport default function(links) {\n var id = index,\n strength = defaultStrength,\n strengths,\n distance = constant(30),\n distances,\n nodes,\n count,\n bias,\n random,\n iterations = 1;\n\n if (links == null) links = [];\n\n function defaultStrength(link) {\n return 1 / Math.min(count[link.source.index], count[link.target.index]);\n }\n\n function force(alpha) {\n for (var k = 0, n = links.length; k < iterations; ++k) {\n for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {\n link = links[i], source = link.source, target = link.target;\n x = target.x + target.vx - source.x - source.vx || jiggle(random);\n y = target.y + target.vy - source.y - source.vy || jiggle(random);\n l = Math.sqrt(x * x + y * y);\n l = (l - distances[i]) / l * alpha * strengths[i];\n x *= l, y *= l;\n target.vx -= x * (b = bias[i]);\n target.vy -= y * b;\n source.vx += x * (b = 1 - b);\n source.vy += y * b;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n\n var i,\n n = nodes.length,\n m = links.length,\n nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d])),\n link;\n\n for (i = 0, count = new Array(n); i < m; ++i) {\n link = links[i], link.index = i;\n if (typeof link.source !== \"object\") link.source = find(nodeById, link.source);\n if (typeof link.target !== \"object\") link.target = find(nodeById, link.target);\n count[link.source.index] = (count[link.source.index] || 0) + 1;\n count[link.target.index] = (count[link.target.index] || 0) + 1;\n }\n\n for (i = 0, bias = new Array(m); i < m; ++i) {\n link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);\n }\n\n strengths = new Array(m), initializeStrength();\n distances = new Array(m), initializeDistance();\n }\n\n function initializeStrength() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n strengths[i] = +strength(links[i], i, links);\n }\n }\n\n function initializeDistance() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n distances[i] = +distance(links[i], i, links);\n }\n }\n\n force.initialize = function(_nodes, _random) {\n nodes = _nodes;\n random = _random;\n initialize();\n };\n\n force.links = function(_) {\n return arguments.length ? (links = _, initialize(), force) : links;\n };\n\n force.id = function(_) {\n return arguments.length ? (id = _, force) : id;\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initializeStrength(), force) : strength;\n };\n\n force.distance = function(_) {\n return arguments.length ? (distance = typeof _ === \"function\" ? _ : constant(+_), initializeDistance(), force) : distance;\n };\n\n return force;\n}\n","// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use\nconst a = 1664525;\nconst c = 1013904223;\nconst m = 4294967296; // 2^32\n\nexport default function() {\n let s = 1;\n return () => (s = (a * s + c) % m) / m;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer} from \"d3-timer\";\nimport lcg from \"./lcg.js\";\n\nexport function x(d) {\n return d.x;\n}\n\nexport function y(d) {\n return d.y;\n}\n\nvar initialRadius = 10,\n initialAngle = Math.PI * (3 - Math.sqrt(5));\n\nexport default function(nodes) {\n var simulation,\n alpha = 1,\n alphaMin = 0.001,\n alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),\n alphaTarget = 0,\n velocityDecay = 0.6,\n forces = new Map(),\n stepper = timer(step),\n event = dispatch(\"tick\", \"end\"),\n random = lcg();\n\n if (nodes == null) nodes = [];\n\n function step() {\n tick();\n event.call(\"tick\", simulation);\n if (alpha < alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation);\n }\n }\n\n function tick(iterations) {\n var i, n = nodes.length, node;\n\n if (iterations === undefined) iterations = 1;\n\n for (var k = 0; k < iterations; ++k) {\n alpha += (alphaTarget - alpha) * alphaDecay;\n\n forces.forEach(function(force) {\n force(alpha);\n });\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (node.fx == null) node.x += node.vx *= velocityDecay;\n else node.x = node.fx, node.vx = 0;\n if (node.fy == null) node.y += node.vy *= velocityDecay;\n else node.y = node.fy, node.vy = 0;\n }\n }\n\n return simulation;\n }\n\n function initializeNodes() {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.index = i;\n if (node.fx != null) node.x = node.fx;\n if (node.fy != null) node.y = node.fy;\n if (isNaN(node.x) || isNaN(node.y)) {\n var radius = initialRadius * Math.sqrt(0.5 + i), angle = i * initialAngle;\n node.x = radius * Math.cos(angle);\n node.y = radius * Math.sin(angle);\n }\n if (isNaN(node.vx) || isNaN(node.vy)) {\n node.vx = node.vy = 0;\n }\n }\n }\n\n function initializeForce(force) {\n if (force.initialize) force.initialize(nodes, random);\n return force;\n }\n\n initializeNodes();\n\n return simulation = {\n tick: tick,\n\n restart: function() {\n return stepper.restart(step), simulation;\n },\n\n stop: function() {\n return stepper.stop(), simulation;\n },\n\n nodes: function(_) {\n return arguments.length ? (nodes = _, initializeNodes(), forces.forEach(initializeForce), simulation) : nodes;\n },\n\n alpha: function(_) {\n return arguments.length ? (alpha = +_, simulation) : alpha;\n },\n\n alphaMin: function(_) {\n return arguments.length ? (alphaMin = +_, simulation) : alphaMin;\n },\n\n alphaDecay: function(_) {\n return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;\n },\n\n alphaTarget: function(_) {\n return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;\n },\n\n velocityDecay: function(_) {\n return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;\n },\n\n randomSource: function(_) {\n return arguments.length ? (random = _, forces.forEach(initializeForce), simulation) : random;\n },\n\n force: function(name, _) {\n return arguments.length > 1 ? ((_ == null ? forces.delete(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);\n },\n\n find: function(x, y, radius) {\n var i = 0,\n n = nodes.length,\n dx,\n dy,\n d2,\n node,\n closest;\n\n if (radius == null) radius = Infinity;\n else radius *= radius;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dx = x - node.x;\n dy = y - node.y;\n d2 = dx * dx + dy * dy;\n if (d2 < radius) closest = node, radius = d2;\n }\n\n return closest;\n },\n\n on: function(name, _) {\n return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n }\n };\n}\n","import {quadtree} from \"d3-quadtree\";\nimport constant from \"./constant.js\";\nimport jiggle from \"./jiggle.js\";\nimport {x, y} from \"./simulation.js\";\n\nexport default function() {\n var nodes,\n node,\n random,\n alpha,\n strength = constant(-30),\n strengths,\n distanceMin2 = 1,\n distanceMax2 = Infinity,\n theta2 = 0.81;\n\n function force(_) {\n var i, n = nodes.length, tree = quadtree(nodes, x, y).visitAfter(accumulate);\n for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n strengths = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);\n }\n\n function accumulate(quad) {\n var strength = 0, q, c, weight = 0, x, y, i;\n\n // For internal nodes, accumulate forces from child quadrants.\n if (quad.length) {\n for (x = y = i = 0; i < 4; ++i) {\n if ((q = quad[i]) && (c = Math.abs(q.value))) {\n strength += q.value, weight += c, x += c * q.x, y += c * q.y;\n }\n }\n quad.x = x / weight;\n quad.y = y / weight;\n }\n\n // For leaf nodes, accumulate forces from coincident quadrants.\n else {\n q = quad;\n q.x = q.data.x;\n q.y = q.data.y;\n do strength += strengths[q.data.index];\n while (q = q.next);\n }\n\n quad.value = strength;\n }\n\n function apply(quad, x1, _, x2) {\n if (!quad.value) return true;\n\n var x = quad.x - node.x,\n y = quad.y - node.y,\n w = x2 - x1,\n l = x * x + y * y;\n\n // Apply the Barnes-Hut approximation if possible.\n // Limit forces for very close nodes; randomize direction if coincident.\n if (w * w / theta2 < l) {\n if (l < distanceMax2) {\n if (x === 0) x = jiggle(random), l += x * x;\n if (y === 0) y = jiggle(random), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n node.vx += x * quad.value * alpha / l;\n node.vy += y * quad.value * alpha / l;\n }\n return true;\n }\n\n // Otherwise, process points directly.\n else if (quad.length || l >= distanceMax2) return;\n\n // Limit forces for very close nodes; randomize direction if coincident.\n if (quad.data !== node || quad.next) {\n if (x === 0) x = jiggle(random), l += x * x;\n if (y === 0) y = jiggle(random), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n }\n\n do if (quad.data !== node) {\n w = strengths[quad.data.index] * alpha / l;\n node.vx += x * w;\n node.vy += y * w;\n } while (quad = quad.next);\n }\n\n force.initialize = function(_nodes, _random) {\n nodes = _nodes;\n random = _random;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.distanceMin = function(_) {\n return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);\n };\n\n force.distanceMax = function(_) {\n return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);\n };\n\n force.theta = function(_) {\n return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);\n };\n\n return force;\n}\n","import constant from \"./constant.js\";\n\nexport default function(radius, x, y) {\n var nodes,\n strength = constant(0.1),\n strengths,\n radiuses;\n\n if (typeof radius !== \"function\") radius = constant(+radius);\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force(alpha) {\n for (var i = 0, n = nodes.length; i < n; ++i) {\n var node = nodes[i],\n dx = node.x - x || 1e-6,\n dy = node.y - y || 1e-6,\n r = Math.sqrt(dx * dx + dy * dy),\n k = (radiuses[i] - r) * strengths[i] * alpha / r;\n node.vx += dx * k;\n node.vy += dy * k;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n radiuses = new Array(n);\n for (i = 0; i < n; ++i) {\n radiuses[i] = +radius(nodes[i], i, nodes);\n strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _, initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n return force;\n}\n","import constant from \"./constant.js\";\n\nexport default function(x) {\n var strength = constant(0.1),\n nodes,\n strengths,\n xz;\n\n if (typeof x !== \"function\") x = constant(x == null ? 0 : +x);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n xz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : x;\n };\n\n return force;\n}\n","import constant from \"./constant.js\";\n\nexport default function(y) {\n var strength = constant(0.1),\n nodes,\n strengths,\n yz;\n\n if (typeof y !== \"function\") y = constant(y == null ? 0 : +y);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n yz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : y;\n };\n\n return force;\n}\n","export {default as forceCenter} from \"./center.js\";\nexport {default as forceCollide} from \"./collide.js\";\nexport {default as forceLink} from \"./link.js\";\nexport {default as forceManyBody} from \"./manyBody.js\";\nexport {default as forceRadial} from \"./radial.js\";\nexport {default as forceSimulation} from \"./simulation.js\";\nexport {default as forceX} from \"./x.js\";\nexport {default as forceY} from \"./y.js\";\n","export default function(polygon) {\n var i = -1,\n n = polygon.length,\n a,\n b = polygon[n - 1],\n area = 0;\n\n while (++i < n) {\n a = b;\n b = polygon[i];\n area += a[1] * b[0] - a[0] * b[1];\n }\n\n return area / 2;\n}\n","export default function(polygon) {\n var i = -1,\n n = polygon.length,\n x = 0,\n y = 0,\n a,\n b = polygon[n - 1],\n c,\n k = 0;\n\n while (++i < n) {\n a = b;\n b = polygon[i];\n k += c = a[0] * b[1] - b[0] * a[1];\n x += (a[0] + b[0]) * c;\n y += (a[1] + b[1]) * c;\n }\n\n return k *= 3, [x / k, y / k];\n}\n","// Returns the 2D cross product of AB and AC vectors, i.e., the z-component of\n// the 3D cross product in a quadrant I Cartesian coordinate system (+x is\n// right, +y is up). Returns a positive value if ABC is counter-clockwise,\n// negative if clockwise, and zero if the points are collinear.\nexport default function(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);\n}\n","import cross from \"./cross.js\";\n\nfunction lexicographicOrder(a, b) {\n return a[0] - b[0] || a[1] - b[1];\n}\n\n// Computes the upper convex hull per the monotone chain algorithm.\n// Assumes points.length >= 3, is sorted by x, unique in y.\n// Returns an array of indices into points in left-to-right order.\nfunction computeUpperHullIndexes(points) {\n const n = points.length,\n indexes = [0, 1];\n let size = 2, i;\n\n for (i = 2; i < n; ++i) {\n while (size > 1 && cross(points[indexes[size - 2]], points[indexes[size - 1]], points[i]) <= 0) --size;\n indexes[size++] = i;\n }\n\n return indexes.slice(0, size); // remove popped points\n}\n\nexport default function(points) {\n if ((n = points.length) < 3) return null;\n\n var i,\n n,\n sortedPoints = new Array(n),\n flippedPoints = new Array(n);\n\n for (i = 0; i < n; ++i) sortedPoints[i] = [+points[i][0], +points[i][1], i];\n sortedPoints.sort(lexicographicOrder);\n for (i = 0; i < n; ++i) flippedPoints[i] = [sortedPoints[i][0], -sortedPoints[i][1]];\n\n var upperIndexes = computeUpperHullIndexes(sortedPoints),\n lowerIndexes = computeUpperHullIndexes(flippedPoints);\n\n // Construct the hull polygon, removing possible duplicate endpoints.\n var skipLeft = lowerIndexes[0] === upperIndexes[0],\n skipRight = lowerIndexes[lowerIndexes.length - 1] === upperIndexes[upperIndexes.length - 1],\n hull = [];\n\n // Add upper hull in right-to-l order.\n // Then add lower hull in left-to-right order.\n for (i = upperIndexes.length - 1; i >= 0; --i) hull.push(points[sortedPoints[upperIndexes[i]][2]]);\n for (i = +skipLeft; i < lowerIndexes.length - skipRight; ++i) hull.push(points[sortedPoints[lowerIndexes[i]][2]]);\n\n return hull;\n}\n","export default function(polygon, point) {\n var n = polygon.length,\n p = polygon[n - 1],\n x = point[0], y = point[1],\n x0 = p[0], y0 = p[1],\n x1, y1,\n inside = false;\n\n for (var i = 0; i < n; ++i) {\n p = polygon[i], x1 = p[0], y1 = p[1];\n if (((y1 > y) !== (y0 > y)) && (x < (x0 - x1) * (y - y1) / (y0 - y1) + x1)) inside = !inside;\n x0 = x1, y0 = y1;\n }\n\n return inside;\n}\n","export default function(polygon) {\n var i = -1,\n n = polygon.length,\n b = polygon[n - 1],\n xa,\n ya,\n xb = b[0],\n yb = b[1],\n perimeter = 0;\n\n while (++i < n) {\n xa = xb;\n ya = yb;\n b = polygon[i];\n xb = b[0];\n yb = b[1];\n xa -= xb;\n ya -= yb;\n perimeter += Math.hypot(xa, ya);\n }\n\n return perimeter;\n}\n","export {default as polygonArea} from \"./area.js\";\nexport {default as polygonCentroid} from \"./centroid.js\";\nexport {default as polygonHull} from \"./hull.js\";\nexport {default as polygonContains} from \"./contains.js\";\nexport {default as polygonLength} from \"./length.js\";\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export {default as path} from \"./path.js\";\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 as arc} from \"./arc.js\";\nexport {default as area} from \"./area.js\";\nexport {default as line} from \"./line.js\";\nexport {default as pie} from \"./pie.js\";\nexport {default as areaRadial, default as radialArea} from \"./areaRadial.js\"; // Note: radialArea is deprecated!\nexport {default as lineRadial, default as radialLine} from \"./lineRadial.js\"; // Note: radialLine is deprecated!\nexport {default as pointRadial} from \"./pointRadial.js\";\nexport {linkHorizontal, linkVertical, linkRadial} from \"./link/index.js\";\n\nexport {default as symbol, symbols} from \"./symbol.js\";\nexport {default as symbolCircle} from \"./symbol/circle.js\";\nexport {default as symbolCross} from \"./symbol/cross.js\";\nexport {default as symbolDiamond} from \"./symbol/diamond.js\";\nexport {default as symbolSquare} from \"./symbol/square.js\";\nexport {default as symbolStar} from \"./symbol/star.js\";\nexport {default as symbolTriangle} from \"./symbol/triangle.js\";\nexport {default as symbolWye} from \"./symbol/wye.js\";\n\nexport {default as curveBasisClosed} from \"./curve/basisClosed.js\";\nexport {default as curveBasisOpen} from \"./curve/basisOpen.js\";\nexport {default as curveBasis} from \"./curve/basis.js\";\nexport {bumpX as curveBumpX, bumpY as curveBumpY} from \"./curve/bump.js\";\nexport {default as curveBundle} from \"./curve/bundle.js\";\nexport {default as curveCardinalClosed} from \"./curve/cardinalClosed.js\";\nexport {default as curveCardinalOpen} from \"./curve/cardinalOpen.js\";\nexport {default as curveCardinal} from \"./curve/cardinal.js\";\nexport {default as curveCatmullRomClosed} from \"./curve/catmullRomClosed.js\";\nexport {default as curveCatmullRomOpen} from \"./curve/catmullRomOpen.js\";\nexport {default as curveCatmullRom} from \"./curve/catmullRom.js\";\nexport {default as curveLinearClosed} from \"./curve/linearClosed.js\";\nexport {default as curveLinear} from \"./curve/linear.js\";\nexport {monotoneX as curveMonotoneX, monotoneY as curveMonotoneY} from \"./curve/monotone.js\";\nexport {default as curveNatural} from \"./curve/natural.js\";\nexport {default as curveStep, stepAfter as curveStepAfter, stepBefore as curveStepBefore} from \"./curve/step.js\";\n\nexport {default as stack} from \"./stack.js\";\nexport {default as stackOffsetExpand} from \"./offset/expand.js\";\nexport {default as stackOffsetDiverging} from \"./offset/diverging.js\";\nexport {default as stackOffsetNone} from \"./offset/none.js\";\nexport {default as stackOffsetSilhouette} from \"./offset/silhouette.js\";\nexport {default as stackOffsetWiggle} from \"./offset/wiggle.js\";\nexport {default as stackOrderAppearance} from \"./order/appearance.js\";\nexport {default as stackOrderAscending} from \"./order/ascending.js\";\nexport {default as stackOrderDescending} from \"./order/descending.js\";\nexport {default as stackOrderInsideOut} from \"./order/insideOut.js\";\nexport {default as stackOrderNone} from \"./order/none.js\";\nexport {default as stackOrderReverse} from \"./order/reverse.js\";\n","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, true);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, true);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, true);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","export default x => () => x;\n","export default function DragEvent(type, {\n sourceEvent,\n subject,\n target,\n identifier,\n active,\n x, y, dx, dy,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n subject: {value: subject, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n identifier: {value: identifier, enumerable: true, configurable: true},\n active: {value: active, enumerable: true, configurable: true},\n x: {value: x, enumerable: true, configurable: true},\n y: {value: y, enumerable: true, configurable: true},\n dx: {value: dx, enumerable: true, configurable: true},\n dy: {value: dy, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n","import {dispatch} from \"d3-dispatch\";\nimport {select, pointer} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(event, d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned(event, d) {\n if (touchending || !filter.call(this, event, d)) return;\n var gesture = beforestart(this, container.call(this, event, d), event, d, \"mouse\");\n if (!gesture) return;\n select(event.view).on(\"mousemove.drag\", mousemoved, true).on(\"mouseup.drag\", mouseupped, true);\n nodrag(event.view);\n nopropagation(event);\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\", event);\n }\n\n function mousemoved(event) {\n noevent(event);\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\", event);\n }\n\n function mouseupped(event) {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent(event);\n gestures.mouse(\"end\", event);\n }\n\n function touchstarted(event, d) {\n if (!filter.call(this, event, d)) return;\n var touches = event.changedTouches,\n c = container.call(this, event, d),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) {\n nopropagation(event);\n gesture(\"start\", event, touches[i]);\n }\n }\n }\n\n function touchmoved(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent(event);\n gesture(\"drag\", event, touches[i]);\n }\n }\n }\n\n function touchended(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation(event);\n gesture(\"end\", event, touches[i]);\n }\n }\n }\n\n function beforestart(that, container, event, d, identifier, touch) {\n var dispatch = listeners.copy(),\n p = pointer(touch || event, container), dx, dy,\n s;\n\n if ((s = subject.call(that, new DragEvent(\"beforestart\", {\n sourceEvent: event,\n target: drag,\n identifier,\n active,\n x: p[0],\n y: p[1],\n dx: 0,\n dy: 0,\n dispatch\n }), d)) == null) return;\n\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n\n return function gesture(type, event, touch) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[identifier] = gesture, n = active++; break;\n case \"end\": delete gestures[identifier], --active; // nobreak\n case \"drag\": p = pointer(touch || event, container), n = active; break;\n }\n dispatch.call(\n type,\n that,\n new DragEvent(type, {\n sourceEvent: event,\n subject: s,\n target: drag,\n identifier,\n active: n,\n x: p[0] + dx,\n y: p[1] + dy,\n dx: p[0] - p0[0],\n dy: p[1] - p0[1],\n dispatch\n }),\n d\n );\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n}\n","export {default as drag} from \"./drag.js\";\nexport {default as dragDisable, yesdrag as dragEnable} from \"./nodrag.js\";\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","export {default as formatDefaultLocale, format, formatPrefix} from \"./defaultLocale.js\";\nexport {default as formatLocale} from \"./locale.js\";\nexport {default as formatSpecifier, FormatSpecifier} from \"./formatSpecifier.js\";\nexport {default as precisionFixed} from \"./precisionFixed.js\";\nexport {default as precisionPrefix} from \"./precisionPrefix.js\";\nexport {default as precisionRound} from \"./precisionRound.js\";\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","import {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new Map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new Map();\n for (const value of _) {\n const key = value + \"\";\n if (index.has(key)) continue;\n index.set(key, domain.push(value));\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","export {default as formatDefaultLocale, format, formatPrefix} from \"./defaultLocale.js\";\nexport {default as formatLocale} from \"./locale.js\";\nexport {default as formatSpecifier, FormatSpecifier} from \"./formatSpecifier.js\";\nexport {default as precisionFixed} from \"./precisionFixed.js\";\nexport {default as precisionPrefix} from \"./precisionPrefix.js\";\nexport {default as precisionRound} from \"./precisionRound.js\";\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? Array.from(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nexport function loggish(transform) {\n var scale = transform(transformLog, transformExp),\n domain = scale.domain,\n base = 10,\n logs,\n pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, log()).base(scale.base());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, identity, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import continuous from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nfunction square(x) {\n return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nexport default function radial() {\n var squared = continuous(),\n range = [0, 1],\n round = false,\n unknown;\n\n function scale(x) {\n var y = unsquare(squared(x));\n return isNaN(y) ? unknown : round ? Math.round(y) : y;\n }\n\n scale.invert = function(y) {\n return squared.invert(square(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (squared.domain(_), scale) : squared.domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return scale.range(_).round(true);\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, scale) : round;\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return radial(squared.domain(), range)\n .round(round)\n .clamp(squared.clamp())\n .unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {ascending, bisect, quantileSorted as threshold} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {linearish} from \"./linear.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\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\";\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","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\";\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 {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 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 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","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\";\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 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","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 {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 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\";\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","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 {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","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 {\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 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 {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","export {default as timeFormatDefaultLocale, timeFormat, timeParse, utcFormat, utcParse} from \"./defaultLocale.js\";\nexport {default as timeFormatLocale} from \"./locale.js\";\nexport {default as isoFormat} from \"./isoFormat.js\";\nexport {default as isoParse} from \"./isoParse.js\";\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval} from \"d3-time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {calendar} from \"./time.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function utcTime() {\n return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","import {interpolate, interpolateRound} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1;\n return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile} from \"d3-array\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (x != null && !isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.range = function() {\n return domain.map((d, i) => interpolator(i / (domain.length - 1)));\n };\n\n scale.quantiles = function(n) {\n return Array.from({length: n + 1}, (_, i) => quantile(domain, i / n));\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {interpolate, interpolateRound, piecewise} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {copy} from \"./sequential.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n s = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1, r2;\n return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","export {\n default as scaleBand,\n point as scalePoint\n} from \"./band.js\";\n\nexport {\n default as scaleIdentity\n} from \"./identity.js\";\n\nexport {\n default as scaleLinear\n} from \"./linear.js\";\n\nexport {\n default as scaleLog\n} from \"./log.js\";\n\nexport {\n default as scaleSymlog\n} from \"./symlog.js\";\n\nexport {\n default as scaleOrdinal,\n implicit as scaleImplicit\n} from \"./ordinal.js\";\n\nexport {\n default as scalePow,\n sqrt as scaleSqrt\n} from \"./pow.js\";\n\nexport {\n default as scaleRadial\n} from \"./radial.js\";\n\nexport {\n default as scaleQuantile\n} from \"./quantile.js\";\n\nexport {\n default as scaleQuantize\n} from \"./quantize.js\";\n\nexport {\n default as scaleThreshold\n} from \"./threshold.js\";\n\nexport {\n default as scaleTime\n} from \"./time.js\";\n\nexport {\n default as scaleUtc\n} from \"./utcTime.js\";\n\nexport {\n default as scaleSequential,\n sequentialLog as scaleSequentialLog,\n sequentialPow as scaleSequentialPow,\n sequentialSqrt as scaleSequentialSqrt,\n sequentialSymlog as scaleSequentialSymlog\n} from \"./sequential.js\";\n\nexport {\n default as scaleSequentialQuantile\n} from \"./sequentialQuantile.js\";\n\nexport {\n default as scaleDiverging,\n divergingLog as scaleDivergingLog,\n divergingPow as scaleDivergingPow,\n divergingSqrt as scaleDivergingSqrt,\n divergingSymlog as scaleDivergingSymlog\n} from \"./diverging.js\";\n\nexport {\n default as tickFormat\n} from \"./tickFormat.js\";\n","export const catNose = `M43.107,60.675c0,4.168,7.546,7.55,7.546,7.55s7.55-3.382,7.55-7.55S43.107,56.507,43.107,60.675z`;\n\nexport const catEar = `M98.236,69.06l-9.263-1.48c0.557-1.164,1.032-2.373,1.438-3.615l7.062,1.131c0.13,0.021,0.258,0.028,0.386,0.028\n c1.167,0,2.193-0.845,2.382-2.034c0.212-1.317-0.686-2.558-2.003-2.769l-6.675-1.067c0.28-1.726,0.427-3.508,0.427-5.343\n c0-6.845-4.561-22.027-6.425-26.725c-1.431-3.602-2.868-5.95-4.531-8.67c-0.774-1.264-1.604-2.621-2.514-4.245\n c-0.403-0.718-1.142-1.181-1.964-1.23c-0.849-0.062-1.611,0.324-2.097,0.987c-3.021,4.139-7.708,8.75-9.605,8.75\n c-0.775,0-2.202-0.176-3.855-0.38c-2.922-0.36-6.562-0.81-10.338-0.81c-3.111,0-6.12,0.394-8.776,0.741\n c-1.843,0.241-3.434,0.449-4.533,0.449c-3.984,0-8.543-6.114-9.827-8.256c-0.434-0.723-1.213-1.17-2.058-1.175\n c-0.881-0.004-1.628,0.427-2.072,1.145c-2.846,4.602-4.725,7.642-6.769,12.961C14.749,32.337,10.35,47.23,10.35,53.91\n c0,1.735,0.136,3.422,0.386,5.062L2.311,60.32c-1.317,0.209-2.215,1.451-2.004,2.769c0.189,1.188,1.217,2.034,2.383,2.034\n c0.126,0,0.255-0.008,0.385-0.028l8.765-1.402c0.394,1.244,0.859,2.453,1.403,3.62L2.307,69.06\n c-1.317,0.211-2.215,1.451-2.005,2.771c0.19,1.187,1.217,2.034,2.383,2.034c0.127,0,0.256-0.01,0.386-0.028l12.746-2.039\n c6.81,9.795,19.501,15.824,35.349,15.824c15.708,0,28.317-5.926,35.172-15.568l11.136,1.781c0.13,0.021,0.258,0.029,0.386,0.029\n c1.167,0,2.193-0.847,2.382-2.034C100.452,70.511,99.553,69.271,98.236,69.06z `;\n\nexport const catHead = `M51.165,82.786\n c-11.613,0-23.289-3.759-30.068-11.836l2.122-0.338c1.318-0.211,2.215-1.45,2.004-2.77c-0.211-1.317-1.452-2.215-2.767-2.004\n l-4.327,0.693c-0.595-1.138-1.106-2.338-1.531-3.601l6.621-1.057c1.318-0.212,2.215-1.451,2.004-2.77\n c-0.211-1.316-1.452-2.215-2.767-2.005l-6.967,1.115c-0.195-1.376-0.31-2.805-0.31-4.302c0-5.423,3.863-19.281,5.955-24.725\n c1.408-3.665,2.707-6.117,4.445-9.015c2.48,3.151,6.775,7.44,11.767,7.44c1.414,0,3.149-0.227,5.16-0.489\n c2.508-0.328,5.352-0.7,8.15-0.7c3.479,0,6.953,0.428,9.746,0.772c1.886,0.232,3.375,0.417,4.446,0.417\n c3.909,0,8.436-4.511,11.267-7.873c0.271,0.448,0.534,0.88,0.793,1.301c1.609,2.635,2.883,4.715,4.16,7.93\n c2.081,5.247,6.083,19.387,6.083,24.941c0,1.6-0.129,3.12-0.352,4.58l-8.715-1.394c-1.33-0.215-2.558,0.687-2.769,2.005\n c-0.211,1.317,0.688,2.557,2.004,2.769l8.316,1.329c-0.438,1.258-0.958,2.46-1.567,3.592l-5.984-0.957\n c-1.332-0.212-2.559,0.687-2.77,2.004s0.688,2.558,2.003,2.769l3.694,0.592C74.207,79.103,62.656,82.786,51.165,82.786z`;\n\nexport const dogNose = `M36.399,64.384c0,7.885,8.166,14.282,14.277,14.282c6.111,0,14.28-6.397,14.28-14.282\nC64.956,56.5,36.399,56.5,36.399,64.384z`;\n\nexport const dogEar = `M100.659,42.526c-9.083-28.637-34.646-30.306-43.947-29.92c-1.93-0.323-3.935-0.503-6.034-0.503\nc-2.171,0-4.188,0.181-6.067,0.503c-9.299-0.387-34.867,1.279-43.952,29.92c0,0,2.469,8.597,14.729,9.255\nc-0.775,3.45-1.324,6.718-1.324,8.962c0,18.046,15.247,30.65,37.077,30.65c21.829,0,37.075-12.604,37.075-30.65\nc0-2.271-0.555-5.556-1.339-9.012C98.336,50.702,100.659,42.526,100.659,42.526z `;\n\nexport const dogHead = `M51.139,86.646\nc-16.09,0-32.327-8.009-32.327-25.9c0-2.71,1.074-7.764,2.354-12.563c5.087-6.791,12.715-21.385,19.399-29.519\nc2.853-1.112,6.173-1.808,10.112-1.808c3.825,0,7.093,0.62,9.941,1.643c7.361,8.878,15.897,25.73,20.932,31.409\nc1.076,4.235,1.913,8.434,1.913,10.838C83.464,78.637,67.229,86.646,51.139,86.646z`;\n","import { event, select, selectAll } from \"d3-selection\";\nimport { transition } from \"d3-transition\";\nimport { LogisticRegression } from \"./LogisticRegression\";\nimport { animals } from \"./data\";\nimport { trainColor, testColor, validationColor } from \"./colors\";\nimport { extent, max } from \"d3-array\";\nimport { keys } from \"d3-collection\";\nimport {\n forceSimulation,\n forceCenter,\n forceX,\n forceY,\n forceManyBody,\n forceCollide,\n} from \"d3-force\";\nimport { polygonCentroid, polygonHull } from \"d3-polygon\";\nimport { line } from \"d3-shape\";\nimport { drag } from \"d3-drag\";\nimport { easeBackInOut } from \"d3-ease\";\nimport { format } from \"d3-format\";\nimport { scaleLinear, scaleOrdinal } from \"d3-scale\";\n\nimport {\n catNose,\n catHead,\n catEar,\n dogNose,\n dogHead,\n dogEar,\n} from \"./animalShapes\";\n\nexport class Bubble {\n constructor(opts) {\n // set selections\n this.chartContainer = opts.chartContainer;\n this.table = opts.table;\n\n let windowWidth = window.innerWidth;\n\n // set SVG size parameters\n this.MARGIN = {\n TOP: window.innerHeight * 0,\n BOTTOM: window.innerHeight * 0,\n LEFT: window.innerWidth * 0,\n RIGHT: window.innerWidth * 0,\n };\n this.WIDTH =\n window.innerWidth < 950 ? windowWidth / 1.15 : windowWidth / 1.75;\n this.HEIGHT =\n window.innerWidth < 950\n ? window.innerHeight / 1.8\n : window.innerHeight / 1.95;\n\n // easy to track main groups here for different group filterings later\n this.mainGroups = [\"train\", \"test\", \"validation\"];\n this.showGroups = [\"train\"];\n\n this.currentGroup = \"pretrain\";\n // need to track which data\n this.current = \"intro\";\n\n // chart constants\n this.yGroupHeight = this.HEIGHT / 4.6;\n this.yLabelHeight = 45;\n\n this.iconScale = window.innerWidth >= 950 ? 0.3 : 0.26;\n this.collideRadius = window.innerWidth >= 950 ? 16 : 12.5;\n\n this.radius = 7;\n\n this.padding = 9;\n this.cluster_padding = 10;\n this.strength = 0.2;\n\n // create svg\n this.svg = select(this.chartContainer)\n .append(\"svg\")\n .attr(\"id\", `bubble-svg`)\n .attr(\"width\", this.WIDTH + this.MARGIN.LEFT + this.MARGIN.RIGHT)\n .attr(\"height\", this.HEIGHT + this.MARGIN.TOP + this.MARGIN.BOTTOM);\n\n // g container for bubble chart\n this.chartG = this.svg\n .append(\"g\")\n .attr(\"id\", `bubble-g`)\n .attr(\"transform\", `translate(${this.MARGIN.LEFT}, ${this.MARGIN.TOP})`);\n\n // Load data.\n this.data = animals;\n\n this.X = animals.map((d) => {\n return {\n weight: d.weight,\n fluffiness: d.fluffiness,\n };\n });\n\n // instantiate model\n this.model = new LogisticRegression({\n iterations: 10000,\n learningRate: 0.00025,\n startFeature: \"weight\",\n });\n\n this.currentFeature = this.model.startFeature;\n\n this.fluffScaleX = scaleLinear()\n .domain(extent(this.data, (d) => +d.fluffiness))\n .range([50, this.WIDTH - 50]);\n\n this.weightScaleX = scaleLinear()\n .domain(extent(this.data, (d) => +d.weight))\n .range([50, this.WIDTH - 50]);\n\n this.fluffScaleY = scaleLinear()\n .domain(extent(this.data, (d) => +d.fluffiness))\n .range([50, this.HEIGHT - 100]);\n\n this.weightScaleY = scaleLinear()\n .domain(extent(this.data, (d) => +d.weight))\n .range([50, this.HEIGHT - 100]);\n\n this.colorScale = scaleOrdinal()\n .domain([\"train\", \"test\", \"validation\"])\n .range([trainColor, testColor, validationColor]);\n\n // set groups\n // Group coordinates and meta info (update in redraw func)\n this.groups = {\n intro: {\n x: this.WIDTH / 2,\n y: this.HEIGHT / 2,\n fullname: \"Intro\",\n },\n test: {\n x: this.WIDTH / 5.5,\n y: this.yGroupHeight,\n fullname: \"Test\",\n },\n train: {\n x: this.WIDTH / 2,\n y: this.yGroupHeight,\n fullname: \"Train\",\n },\n validation: {\n x: this.WIDTH / 1.2,\n y: this.yGroupHeight,\n fullname: \"Validation\",\n },\n offscreen: {\n x: this.WIDTH / 2,\n y: -400,\n fullname: \"offscreen\",\n },\n };\n\n this.lineSeparator = this.chartG\n .append(\"line\")\n .attr(\"id\", \"line-x-dimension\")\n .attr(\"stroke\", \"black\")\n .style(\"stroke-width\", 2)\n .style(\"pointer-events\", \"none\")\n .attr(\"vector-effect\", \"non-scaling-stroke\")\n .style(\"opacity\", 0.4);\n\n this.formatData();\n this.addLabels();\n }\n\n formatData() {\n // track class state for closures\n const self = this;\n // Force to increment nodes to groups.\n\n // Create node data.\n this.nodes = this.data.map((d) => {\n return {\n id: \"node\" + d.id,\n fluffiness: d.fluffiness,\n weight: d.weight,\n animal: d.animal,\n class: d.class,\n x: self.WIDTH / 2 + Math.random(),\n y: self.HEIGHT / 2 + Math.random(),\n r: self.radius,\n group: d.class,\n stages: d.class,\n };\n });\n\n this.labelData = keys(this.groups).map(function (d) {\n return {\n name: d,\n };\n });\n\n // draw\n this.addAnmials();\n this.runForce();\n this.drawHull();\n }\n\n moveCenter() {\n const self = this;\n\n // Forces\n this.simulation\n .force(\"center\", null)\n .force(\"x\", (d) => forceX(d.x))\n .force(\"y\", (d) => forceY(d.y))\n .force(\"charge\", forceManyBody())\n .force(\"collide\", forceCollide(this.collideRadius))\n .alpha(0.02)\n .alphaDecay(0)\n .on(\"tick\", ticked);\n\n // get bounding box info for animals (for hull padding)\n const petDims = select(\"path.animal-head\").node().getBBox();\n\n function ticked(d) {\n // determine how to nudge nodes during force\n const l = 0.1 * self.strength;\n self.nodes.forEach(function (d, i) {\n if (!self.showGroups.includes(d.group)) {\n d.vx -= (d.x - self.groups[\"offscreen\"].x) * l;\n d.vy -= (d.y - self.groups[\"offscreen\"].y) * l;\n } else {\n d.vx -= (d.x - self.groups[\"intro\"].x) * l;\n d.vy -= (d.y - self.groups[\"intro\"].y) * l;\n }\n });\n\n // this is required for nodes to position based on above\n self.bubbles.attr(\"transform\", (d) => `translate(${d.x}, ${d.y})`);\n\n // hull constants\n const padding = 20;\n const inverseIconScale = 0.25;\n\n // init centroid for polygon\n let hullCentroid;\n let hullMinY;\n // update hull path\n self.hullPath.attr(\"d\", (g) => {\n // init arr to store box coords around each pet centroid\n let petCoords = [];\n\n // loop nodes in view to generate centroid\n self.nodes\n .filter((d) => self.showGroups.includes(d.group))\n .map((d) => {\n // get centroids of each animal\n const centeredX = d.x + petDims.width * inverseIconScale;\n const centeredy = d.y + petDims.height * inverseIconScale;\n\n // store square points around centroid\n petCoords.push([centeredX - padding, centeredy - padding]);\n petCoords.push([centeredX - padding, centeredy + padding]);\n petCoords.push([centeredX + padding, centeredy - padding]);\n petCoords.push([centeredX + padding, centeredy + padding]);\n });\n\n // get convexHull data\n self.convexHullData = polygonHull(petCoords);\n\n // need to force closed hull (else gap exists)\n self.convexHullData.push(self.convexHullData[0]);\n hullMinY = max(self.convexHullData, (d) => d[1]);\n // track hull centroid\n hullCentroid = polygonCentroid(self.convexHullData);\n\n // generate svg path of convex hull\n return line()(self.convexHullData);\n });\n // update position of hull text\n self.hullText\n .attr(\"opacity\", 1)\n .attr(\"x\", hullCentroid[0])\n .attr(\"y\", hullMinY)\n .attr(\"dy\", \"1.5rem\");\n }\n }\n\n runForce() {\n const self = this;\n\n // Forces\n this.simulation = forceSimulation(this.nodes)\n .force(\"x\", (d) => forceX(d.x))\n .force(\"y\", (d) => forceY(d.y))\n .force(\"charge\", forceManyBody())\n .force(\"center\", forceCenter(this.WIDTH / 2, this.HEIGHT / 2))\n .force(\"collide\", forceCollide(this.collideRadius))\n .alpha(0.09)\n .alphaDecay(0);\n\n function ticked() {\n // determine how to nudge nodes during force\n if (self.current === \"intro\") {\n const l = 0.1 * self.strength;\n self.nodes.forEach(function (d, i) {\n d.vx -= (d.x - self.groups[\"intro\"].x) * l;\n d.vy -= (d.y - self.groups[\"intro\"].y) * l;\n });\n } else if (self.current === \"groups\") {\n const l = 0.1 * self.strength;\n self.nodes.forEach(function (d, i) {\n d.vx -= (d.x - self.groups[d.group].x) * l;\n d.vy -= (d.y - self.groups[d.group].y) * l;\n });\n } else if (self.current === \"bee\") {\n const l = 0.1 * self.strength;\n self.nodes.forEach(function (d, i) {\n d.vx -= self.fluffScaleX(d.fluffiness) * l;\n d.vy -= (d.y - self.HEIGHT / 2) * l;\n });\n }\n\n // this is required for nodes to position based on above\n self.bubbles.attr(\"transform\", (d) => `translate(${d.x}, ${d.y})`);\n }\n\n // Adjust position of circles.\n this.simulation.on(\"tick\", ticked);\n\n // x is fluff, weight is y\n\n // set up drag\n this.drag = (simulation) => {\n function dragstarted(event, d) {\n if (!event.active) simulation.alphaTarget(0.3).restart();\n d.fx = d.x;\n d.fy = d.y;\n }\n\n function dragged(event, d) {\n d.fx = event.x;\n d.fy = event.y;\n }\n function dragended(event, d) {\n if (!event.active) simulation.alphaTarget(0);\n d.fx = null;\n d.fy = null;\n if (self.currentGroup === \"pretrain\") {\n d.fx = null;\n d.fy = null;\n } else {\n let scale =\n self.currentFeature === \"weight\"\n ? self.weightScaleX\n : self.fluffScaleX;\n // update current nodes value of selected feature(s)\n const currentNode = select(this)._groups[0][0].__data__;\n if (self.currentFeature === \"both\") {\n // update x pos\n currentNode[\"fluffiness\"] = self.fluffScaleX.invert(event.x);\n // update y pos\n currentNode[\"weight\"] = self.weightScaleY.invert(event.y);\n } else {\n currentNode[self.currentFeature] = scale.invert(event.x);\n }\n\n // update decision boundary (if not train data point)\n const moveBoundary = currentNode[\"group\"] === \"train\" ? true : false;\n self.updateDecisionBoundary(self.currentFeature, moveBoundary);\n }\n }\n\n return drag()\n .on(\"start\", dragstarted)\n .on(\"drag\", dragged)\n .on(\"end\", dragended);\n };\n self.bubbles.call(self.drag(self.simulation));\n }\n\n drawDecisionBoundary() {\n let scale =\n this.currentFeature === \"weight\" ? this.weightScaleX : this.fluffScaleX;\n\n this.decisionBoundaryLine\n .style(\"opacity\", 1)\n .attr(\"x1\", 0)\n .attr(\"x2\", 0)\n .attr(\"y1\", this.HEIGHT / 5)\n .attr(\"y2\", this.HEIGHT / 2 + (this.HEIGHT / 2 - this.HEIGHT / 5))\n .transition()\n .duration(1200)\n .ease(easeBackInOut)\n .attr(\"x1\", scale(this.model.decisionBoundary))\n .attr(\"x2\", scale(this.model.decisionBoundary))\n .attr(\"y1\", this.HEIGHT / 5)\n .attr(\"y2\", this.HEIGHT / 2 + (this.HEIGHT / 2 - this.HEIGHT / 5));\n\n this.updateDecisionBoundary(this.currentFeature, true);\n }\n\n // conditionally color animals by train/test/valiation group\n colorAnimals(display) {\n // determine if coloring animals or not\n const colorApplication =\n display === \"on\" ? (d) => this.colorScale(d.group) : \"black\";\n\n // class selectors for animal paths to color\n const animalClasses = [\n \".animal-ear\",\n \".animal-head\",\n \".animal-nose\",\n \".animal-eye1\",\n \".animal-eye2\",\n \".animal-eye3\",\n \".animal-eye4\",\n ];\n\n // color animal paths as desired\n animalClasses.forEach((d) => {\n selectAll(d).attr(\"fill\", colorApplication);\n });\n }\n\n addAnmials() {\n // need to track outer class' scope\n const self = this;\n\n // g to hold nodes\n this.bubbleG = this.svg.append(\"g\").selectAll(\".bubble-g\").data(this.nodes);\n\n // g for each animal\n this.bubbles = this.bubbleG\n .enter()\n .append(\"g\")\n .attr(\"class\", \"bubble-animal\")\n .attr(\"group\", (d) => d.class);\n\n // append animal svg to each animal g\n // note - in the func below, track the bubble's index (i) as well,\n // otherwise blinking will happen randomly across each individual eye,\n // not pairs of eyes. (handled in eyeAnimations func)\n selectAll(\".bubble-animal\").each(function (d, i) {\n // get current animal name\n const animal = d.animal;\n\n // draw animal's ears\n select(this)\n .append(\"path\")\n .attr(\"d\", animal === \"cat\" ? catEar : dogEar)\n .attr(\"class\", \"animal-ear\")\n .attr(\n \"transform\",\n `translate(-12,0) scale(${self.iconScale}, ${self.iconScale})`\n );\n\n // draw animal's head\n select(this)\n .append(\"path\")\n .attr(\"d\", animal === \"cat\" ? catHead : dogHead)\n .attr(\"class\", \"animal-head\")\n .attr(\n \"transform\",\n `translate(-12,0) scale(${self.iconScale}, ${self.iconScale})`\n );\n\n // draw animal's nose\n select(this)\n .append(\"path\")\n .attr(\"d\", animal === \"cat\" ? catNose : dogNose)\n .attr(\"class\", \"animal-nose\")\n .attr(\n \"transform\",\n `translate(-12,0) scale(${self.iconScale}, ${self.iconScale})`\n );\n\n // draw animal's cat's right eye\n select(this)\n .append(\"circle\")\n .attr(\"cx\", 66.599)\n .attr(\"cy\", 49.639)\n .attr(\"r\", 4.397)\n .attr(\"class\", (d) => eyeAnimations(i))\n .attr(\n \"transform\",\n `translate(-12,0) scale(${self.iconScale}, ${self.iconScale})`\n );\n\n // draw animal's left eye\n select(this)\n .append(\"circle\")\n .attr(\"cx\", 35.735)\n .attr(\"cy\", 49.639)\n .attr(\"r\", 4.397)\n .attr(\"class\", (d) => eyeAnimations(i))\n .attr(\n \"transform\",\n `translate(-12,0) scale(${self.iconScale}, ${self.iconScale})`\n );\n });\n }\n\n // add text labels and rect backgrounds to svg\n addLabels() {\n // margins for background rectangles\n const borderMarginX = 12;\n const borderMarginY = 5;\n const self = this;\n\n // add text\n this.labels = this.svg\n .selectAll(\".bubble-label\")\n .data(this.labelData.filter((d) => self.mainGroups.includes(d.name)))\n .join(\"text\")\n .attr(\"class\", \"bubble-label\")\n .attr(\"text-anchor\", \"middle\")\n .attr(\"x\", (d) => this.groups[d.name].x)\n .attr(\"y\", (d) => this.yLabelHeight)\n .text((d) => this.groups[d.name].fullname)\n .attr(\"visibility\", \"hidden\");\n\n // add bbox elements to data\n // note, this has to be done after\n // adding text to dom, so we can\n // get correct bbox of text elements\n this.svg\n .selectAll(\".bubble-label\")\n .join(this.labelData)\n .each(function (d) {\n d.bbox = this.getBBox();\n });\n\n // add background rects to labels\n this.labelsRect = this.svg\n .selectAll(\".bubble-rect\")\n .data(this.labelData.filter((d) => self.mainGroups.includes(d.name)))\n .join(\"rect\")\n .attr(\"class\", \"bubble-rect\")\n .attr(\"text-anchor\", \"middle\")\n .attr(\"x\", (d) => this.groups[d.name].x - d.bbox.width * 0.5)\n .attr(\"y\", (d) => this.yLabelHeight)\n .attr(\"width\", (d) => d.bbox.width + 2 * borderMarginX)\n .attr(\"height\", (d) => d.bbox.height + 2 * borderMarginY)\n .attr(\"transform\", function (d) {\n return `translate(-${borderMarginX}, -${d.bbox.height * 0.8 + borderMarginY})`;\n })\n .attr(\"visibility\", \"hidden\")\n .attr(\"stroke\", (d) => self.colorScale(d.name));\n\n // ensure text in front of background rects\n this.svg.selectAll(\".bubble-label\").raise();\n\n this.decisionBoundaryLine = this.chartG\n .append(\"line\")\n .attr(\"id\", \"line-decision-boundary\")\n .attr(\"stroke\", \"black\")\n .style(\"stroke-width\", 8)\n .style(\"pointer-events\", \"none\")\n .attr(\"vector-effect\", \"non-scaling-stroke\");\n // .style(\"opacity\", 0);\n }\n\n drawHull() {\n this.hullG = this.svg.append(\"g\").attr(\"id\", \"hull-g\");\n\n this.hullPath = this.hullG\n .append(\"path\")\n .attr(\"id\", \"hull-path\")\n .style(\"stroke\", \"black\")\n .style(\"fill\", \"none\")\n .style(\"stroke-width\", 5)\n .style(\"pointer-events\", \"none\")\n .style(\"stroke-linejoin\", \"round\");\n\n // append text to hull\n this.hullText = this.hullG\n .append(\"text\")\n .attr(\"id\", \"hull-text\")\n .text(\"Majority Vote: Cat\")\n .attr(\"text-anchor\", \"middle\")\n .attr(\"opacity\", 0);\n\n // append background rect for hull text\n this.hullRect = this.hullG\n .append(\"rect\")\n .attr(\"text-anchor\", \"middle\")\n .attr(\"width\", (d) => 50 + 2 * 12)\n .attr(\"height\", (d) => 20 + 2 * 5)\n .attr(\"transform\", function (d) {\n return `translate(-${12}, -${20 * 0.8 + 5})`;\n })\n .attr(\"visibility\", \"hidden\")\n .attr(\"stroke\", \"black\");\n }\n\n drawAxesLabels(feature) {\n // remove existing axes\n selectAll(\".axes-text\").remove();\n if (feature === \"neither\") {\n return;\n } else if (feature === \"both\") {\n // draw x\n this.svg\n .append(\"text\")\n .attr(\"class\", \"axes-text\")\n .attr(\"id\", \"x-axis-text\")\n .text(\"Fluffiness\")\n .attr(\"x\", this.WIDTH / 2)\n .attr(\"y\", this.HEIGHT * 0.95)\n .attr(\"text-anchor\", \"middle\");\n\n this.svg\n .append(\"text\")\n .attr(\"class\", \"axes-text\")\n .attr(\"id\", \"y-axis-text\")\n\n .attr(\"transform\", \"rotate(-90)\")\n .attr(\"y\", 0)\n .attr(\"x\", 0 - this.HEIGHT / 2)\n .attr(\"dy\", \"1rem\")\n .style(\"text-anchor\", \"middle\")\n .text(\"Weight\");\n } else {\n // draw x\n const upperCaseFeature = feature === \"weight\" ? \"Weight\" : \"Fluffiness\";\n this.svg\n .append(\"text\")\n .attr(\"class\", \"axes-text\")\n .text(upperCaseFeature)\n .attr(\"x\", this.WIDTH / 2)\n .attr(\"y\", this.HEIGHT * 0.95)\n .attr(\"text-anchor\", \"middle\");\n }\n }\n\n // color nodes\n\n // make decision bondary visible\n\n updateDecisionBoundary(feature, move) {\n // store feature to state of class\n this.currentFeature = feature;\n\n if (move === true) {\n if (feature === \"both\") {\n select(\"#hull-g\").style(\"opacity\", 0);\n const decisionLine = (x, weights) => {\n return -1 * (weights[1] / weights[2]) * x - weights[0] / weights[2];\n };\n\n this.model.fit(feature, this.nodes);\n this.moveScatter();\n const [dvX1, dvX2] = extent(this.data, (d) => +d.fluffiness);\n const y1 = decisionLine(dvX1, this.model.weights);\n const y2 = decisionLine(dvX2, this.model.weights);\n\n this.lineSeparator.style(\"opacity\", 0);\n this.decisionBoundaryLine.style(\"opacity\", 1);\n\n this.decisionBoundaryLine\n .transition()\n .duration(1200)\n .ease(easeBackInOut)\n .attr(\"x1\", this.fluffScaleX(dvX1))\n .attr(\"x2\", this.fluffScaleX(dvX2))\n .attr(\"y1\", this.weightScaleY(y1))\n .attr(\"y2\", this.weightScaleY(y2));\n } else if (feature === \"neither\") {\n select(\"#hull-g\").style(\"opacity\", 1);\n\n // this.moveBack();\n this.hideLines();\n this.moveCenter();\n } else {\n select(\"#hull-g\").style(\"opacity\", 0);\n\n // redraw lines\n this.showLines();\n // retrain model for the given feature\n this.model.fit(feature, this.nodes);\n let scale = feature === \"weight\" ? this.weightScaleX : this.fluffScaleX;\n // move nodes to correct position\n this.moveBee();\n\n // redraw horizontal line\n this.decisionBoundaryLine\n .attr(\"opacity\", 1)\n .transition()\n .duration(1200)\n .ease(easeBackInOut)\n .attr(\"y1\", this.HEIGHT / 5)\n .attr(\"y2\", this.HEIGHT / 2 + (this.HEIGHT / 2 - this.HEIGHT / 5))\n .attr(\"x1\", scale(this.model.decisionBoundary))\n .attr(\"x2\", scale(this.model.decisionBoundary))\n .attr(\"y1\", this.HEIGHT / 5)\n .attr(\"y2\", this.HEIGHT / 2 + (this.HEIGHT / 2 - this.HEIGHT / 5));\n\n this.lineSeparator.style(\"opacity\", 1);\n }\n } else {\n if (feature === \"both\") {\n select(\"#hull-g\").style(\"opacity\", 0);\n this.moveScatter();\n } else if (feature === \"neither\") {\n // this.moveBack();\n this.hideLines();\n this.moveCenter();\n } else {\n select(\"#hull-g\").style(\"opacity\", 0);\n this.moveBee();\n }\n }\n\n this.calculatePerformance();\n }\n\n calculatePerformance() {\n const self = this;\n // this.model.calculatePerformance(this.currentFeature);\n\n // init metrics to track\n const performance = {\n dataset: \"\",\n accuracy: 0,\n \"cat right\": 0,\n \"cat wrong\": 0,\n \"dog right\": 0,\n \"dog wrong\": 0,\n };\n performance[\"dataset\"] = this.currentGroup;\n performance[\"feature\"] = this.currentFeature;\n\n const modelWeights = this.model.weights;\n let z;\n // determine equation (depends on # of features)\n if (this.currentFeature === \"both\") {\n // if both, use both weights in equation\n z = (d) => {\n return (\n modelWeights[0] +\n modelWeights[1] * d[\"fluffiness\"] +\n modelWeights[2] * d[\"weight\"]\n );\n };\n } else if (this.currentFeature === \"neither\") {\n z = (d) => {\n // assign as all cats\n return -1;\n };\n } else {\n z = (d) => modelWeights[0] + modelWeights[1] * d[self.currentFeature];\n }\n\n // filter by group\n const filteredNodes = this.nodes.filter(\n (d) => d.class === this.currentGroup\n );\n\n filteredNodes.forEach((d) => {\n const zOutput = z(d);\n // use sign of z to determine class\n const pred = zOutput <= 0 ? \"cat\" : \"dog\";\n // assign predicted class to data\n d.pred = pred;\n\n // update performance metrics\n if (d.pred === d.animal) {\n performance[\"accuracy\"] += 1;\n if (d.animal === \"cat\") {\n performance[\"cat right\"] += 1;\n } else {\n performance[\"dog right\"] += 1;\n }\n } else {\n if (d.animal === \"cat\") {\n performance[\"cat wrong\"] += 1;\n } else {\n performance[\"dog wrong\"] += 1;\n }\n }\n });\n\n // track performance metrics\n performance[\"accuracy\"] /= filteredNodes.length;\n performance[\"accuracy\"] = format(\".1%\")(performance[\"accuracy\"]);\n\n if ([\"test\", \"validation\"].includes(this.currentGroup)) {\n this.table.updateTable(performance);\n }\n\n return performance;\n }\n\n moveNodes() {\n const self = this;\n\n this.simulation\n .force(\"center\", null)\n .force(\"x\", (d) => forceX(d.x))\n .force(\"y\", (d) => forceY(d.y))\n .force(\"charge\", forceManyBody())\n .force(\"collide\", forceCollide(this.collideRadius))\n .alpha(0.09)\n .alphaDecay(0);\n\n self.current = \"groups\";\n\n function ticked() {\n // determine how to nudge nodes during force\n if (self.current === \"intro\") {\n const l = 0.1 * self.strength;\n self.nodes.forEach(function (d, i) {\n d.vx -= (d.x - self.groups[\"intro\"].x) * l;\n d.vy -= (d.y - self.groups[\"intro\"].y) * l;\n });\n } else if (self.current === \"groups\") {\n const l = 0.1 * self.strength;\n self.nodes.forEach(function (d, i) {\n d.vx -= (d.x - self.groups[d.group].x) * l;\n d.vy -= (d.y - self.groups[d.group].y) * l;\n });\n }\n\n // this is required for nodes to position based on above\n self.bubbles.attr(\"transform\", (d) => `translate(${d.x}, ${d.y})`);\n }\n\n // Adjust position of circles.\n this.simulation.on(\"tick\", ticked);\n }\n\n hideNonTrainAnimals() {\n const trans = transition().duration(1200);\n // hide animal bodies\n this.bubbles\n .filter((d) => d.group !== \"train\")\n .selectAll(\"path\")\n .transition(trans)\n .attr(\"transform\", \"scale(0,0)\");\n\n // hide animal eyes\n this.bubbles\n .filter((d) => d.group !== \"train\")\n .selectAll(\"circle\")\n .transition(trans)\n .attr(\"transform\", \"scale(0,0)\");\n }\n\n hideNonValidationAnimals() {\n const trans = transition();\n // hide animal bodies\n this.bubbles\n .filter((d) => d.group !== \"validation\")\n .selectAll(\"path\")\n .transition(trans)\n .attr(\"transform\", \"scale(0,0)\");\n\n // hide animal eyes\n this.bubbles\n .filter((d) => d.group !== \"validation\")\n .selectAll(\"circle\")\n .transition(trans)\n .attr(\"transform\", \"scale(0,0)\");\n\n // hide non validation labels\n // re-position labels\n this.labels\n .filter((d, i) => [0, 1].includes(i))\n .transition(trans)\n .attr(\"y\", -this.HEIGHT / 5);\n this.labelsRect\n .filter((d, i) => [0, 1].includes(i))\n .transition(trans)\n .attr(\"y\", -this.HEIGHT / 5);\n }\n\n hideLines() {\n this.lineSeparator.transition().attr(\"x2\", 0);\n this.lineSeparator.lower();\n\n this.decisionBoundaryLine.style(\"opacity\", 0);\n }\n\n showLines() {\n this.lineSeparator.transition().attr(\"x2\", this.WIDTH);\n this.lineSeparator.lower();\n\n this.decisionBoundaryLine.style(\"opacity\", 1);\n }\n\n drawHorizontalLine() {\n if (\n this.currentFeature === \"weight\" ||\n this.currentFeature === \"fluffiness\"\n ) {\n if (this.lineSeparator.attr(\"x2\") < this.WIDTH) {\n this.lineSeparator\n .attr(\"x1\", 0)\n .attr(\"y1\", 10 + this.HEIGHT / 2)\n .attr(\"x2\", 0)\n .attr(\"y2\", 10 + this.HEIGHT / 2)\n .transition()\n .attr(\"x2\", this.WIDTH);\n\n this.lineSeparator.lower();\n }\n }\n }\n\n addValidationData() {\n // show animal bodies\n this.bubbles\n .filter((d) => d.group !== \"test\")\n .selectAll(\"path\")\n .transition()\n .attr(\"transform\", `scale(${this.iconScale}, ${this.iconScale})`);\n\n // show animal eyes\n this.bubbles\n .filter((d) => d.group !== \"test\")\n .selectAll(\"circle\")\n .transition()\n .attr(\"transform\", `scale(${this.iconScale}, ${this.iconScale})`);\n\n // hide non test labels\n // re-position labels\n this.labels\n .filter((d, i) => [0, 2].includes(i))\n .transition()\n .attr(\"y\", (d) => this.yLabelHeight);\n\n this.labelsRect\n .filter((d, i) => [0, 2].includes(i))\n .transition()\n .attr(\"y\", (d) => this.yLabelHeight);\n }\n\n showAnimals() {\n const self = this;\n this.nonShowGroups = this.mainGroups.filter(\n (x) => !this.showGroups.includes(x)\n );\n // show animal bodies\n this.bubbles\n .filter((d) => self.showGroups.includes(d.group))\n .selectAll(\"path\")\n .attr(\"opacity\", 1)\n .transition()\n .attr(\"transform\", `scale(${this.iconScale}, ${this.iconScale})`);\n\n // show animal eyes\n this.bubbles\n .filter((d) => self.showGroups.includes(d.group))\n .selectAll(\"circle\")\n .attr(\"opacity\", 1)\n .transition()\n .attr(\"transform\", `scale(${this.iconScale}, ${this.iconScale})`);\n\n // hide animal bodies\n this.bubbles\n .filter((d) => self.nonShowGroups.includes(d.group))\n .selectAll(\"path\")\n .transition()\n .attr(\"transform\", `scale(${this.iconScale}, ${this.iconScale})`)\n .transition();\n // .attr(\"opacity\", 0);\n\n // hide animal eyes\n this.bubbles\n .filter((d) => self.nonShowGroups.includes(d.group))\n .selectAll(\"circle\")\n .transition()\n .attr(\"transform\", `scale(${this.iconScale}, ${this.iconScale})`)\n .transition();\n // .attr(\"opacity\", 0);\n }\n\n showNonTrainAnimals() {\n const nonTrainSelector = (d) => d.group !== \"train\";\n // show animal bodies\n this.bubbles\n .filter(nonTrainSelector)\n .selectAll(\"path\")\n .transition()\n .attr(\"transform\", `scale(${this.iconScale}, ${this.iconScale})`);\n\n // show animal eyes\n this.bubbles\n .filter(nonTrainSelector)\n .selectAll(\"circle\")\n .transition()\n .attr(\"transform\", `scale(${this.iconScale}, ${this.iconScale})`);\n }\n\n showLabels(subset) {\n // resolve which subset of labels to show\n const labelSubset = subset === \"all\" ? [0, 1, 2] : [1];\n\n // set shared transition state\n const trans = transition().duration(1200);\n\n this.labels\n .filter((d, i) => labelSubset.includes(i))\n .transition(trans)\n .attr(\"visibility\", \"visible\")\n .attr(\"y\", (d) => this.yLabelHeight);\n this.labelsRect\n .filter((d, i) => labelSubset.includes(i))\n .transition(trans)\n .attr(\"visibility\", \"visible\")\n .attr(\"y\", (d) => this.yLabelHeight);\n }\n\n hideLabels(subset) {\n // resolve which subset of labels to hide\n const labelSubset = subset === \"all\" ? [0, 1, 2] : [0, 2];\n\n // set shared transition state\n const trans = transition().duration(1200);\n\n // hide labels\n this.labels\n .filter((d, i) => labelSubset.includes(i))\n .transition(trans)\n .attr(\"y\", -this.HEIGHT / 5);\n this.labelsRect\n .filter((d, i) => labelSubset.includes(i))\n .transition(trans)\n .attr(\"y\", -this.HEIGHT / 5);\n }\n\n updateDataPosition() {\n // if feature is both, add validation data to scatter plot\n if (this.currentFeature === \"both\") {\n this.moveScatter();\n } else if (this.currentFeature === \"neither\") {\n this.moveCenter();\n } else {\n this.moveBee();\n // show one dimension data for given feature\n }\n this.updateDecisionBoundary(this.currentFeature, true);\n }\n\n trackCurrentGroups(group) {\n const self = this;\n this.currentGroup = group;\n // need to track which data groups are shown, so can easily cycle between in update funcs\n if (group === \"train\") {\n this.showGroups = [\"train\"];\n } else if (group === \"validation\") {\n this.showGroups = [\"train\", \"validation\"];\n } else if (group === \"test\") {\n this.showGroups = [\"train\", \"test\", \"validation\"];\n }\n this.nonShowGroups = this.mainGroups.filter(\n (x) => !self.showGroups.includes(x)\n );\n }\n\n // moveScatter always uses both features, so only needs group\n moveScatter() {\n const self = this;\n\n this.simulation\n .alpha(0.012)\n .force(\"center\", null)\n .force(\"collide\", forceCollide(self.collideRadius))\n .force(\n \"x\",\n forceX((d) => {\n if (self.showGroups.includes(d.group)) {\n return self.fluffScaleX(d[\"fluffiness\"]);\n } else {\n return d.x;\n }\n }).strength(2)\n )\n .force(\n \"y\",\n forceY((d) => {\n if (self.showGroups.includes(d.group)) {\n return self.weightScaleY(d[\"weight\"]);\n } else {\n return d.y;\n }\n }).strength(4)\n )\n .on(\"tick\", changeNetwork);\n\n function changeNetwork() {\n self.bubbles\n .filter((d) => self.showGroups.includes(d.group))\n .attr(\"transform\", (d) => `translate(${d.x}, ${d.y})`);\n\n self.bubbles\n .filter((d) => self.nonShowGroups.includes(d.group))\n .attr(\"transform\", function (d) {\n const l = 0.01 * self.strength;\n self.nodes\n .filter((d) => self.nonShowGroups.includes(d.group))\n .forEach(function (d, i) {\n d.vx -= (d.x - self.groups[\"offscreen\"].x) * l;\n d.vy -= (d.y - self.groups[\"offscreen\"].y) * l;\n });\n return `translate(${d.x}, ${d.y})`;\n });\n }\n }\n\n moveBee() {\n const self = this;\n\n // handle case where feature is neither, and reset to fluffiness (need for scroll up 3)\n if (this.currentFeature === \"neither\") {\n this.currentFeature = \"weight\";\n }\n // determine scale for x-axis\n let scale =\n this.currentFeature === \"weight\" ? this.weightScaleX : this.fluffScaleX;\n\n this.simulation\n .alpha(0.012)\n .force(\"center\", null)\n .force(\"collide\", forceCollide(14))\n .force(\n \"x\",\n forceX((d) => {\n if (self.showGroups.includes(d.group)) {\n return scale(d[this.currentFeature]);\n } else {\n return d.x;\n }\n }).strength(2)\n )\n .force(\"y\", forceY(self.HEIGHT / 2).strength(4))\n .on(\"tick\", changeNetwork);\n\n function changeNetwork() {\n self.bubbles\n .filter((d) => self.showGroups.includes(d.group))\n .attr(\"transform\", (d) => `translate(${d.x}, ${d.y})`);\n\n self.bubbles\n .filter((d) => self.nonShowGroups.includes(d.group))\n .attr(\"transform\", function (d) {\n const l = 0.01 * self.strength;\n self.nodes\n .filter((d) => self.nonShowGroups.includes(d.group))\n .forEach(function (d, i) {\n d.vx -= (d.x - self.groups[\"offscreen\"].x) * l;\n d.vy -= (d.y - self.groups[\"offscreen\"].y) * l;\n });\n\n return `translate(${d.x}, ${d.y})`;\n });\n }\n }\n\n // move nodes to intro\n moveBack() {\n // intro step\n this.current = \"intro\";\n\n // hide train, test, validation text boxes\n this.labels.attr(\"visibility\", \"hidden\");\n this.labelsRect.attr(\"visibility\", \"hidden\");\n }\n\n addLegend() {\n const that = this;\n const legendData = [\"Train Error\", \"Test Error\"];\n\n const nodeWidth = (d) => d.getBBox().width;\n\n const legend = this.textSvg\n .append(\"g\")\n .attr(\"class\", \"dd-legend\")\n .attr(\"transform\", \"translate(0,30)\");\n\n const lg = legend.selectAll(\"g\").data(legendData).enter().append(\"g\");\n\n const legendCircle = lg\n .append(\"rect\")\n .attr(\"width\", 9.5)\n .attr(\"height\", 8.5)\n .attr(\"id\", (d, i) => (i % 2 == 0 ? \"dd-circle-train\" : \"dd-circle-test\"))\n .attr(\"x\", 0)\n .attr(\"y\", 1)\n .attr(\"stroke-width\", 0);\n\n lg.append(\"text\")\n .attr(\"class\", \"dd-legend-text\")\n .style(\"font-size\", \"14px\")\n .attr(\"x\", 11.5)\n .attr(\"y\", 10)\n .text((d) => d);\n\n let offset = 0;\n\n lg.attr(\"transform\", function (d) {\n let x = offset;\n offset += nodeWidth(this) + 10;\n return `translate(${x}, ${0})`;\n });\n }\n\n redraw() {\n // aaaa\n const windowWidth = window.innerWidth;\n const self = this;\n // Extract the width and height self was computed by CSS.\n this.MARGIN = {\n TOP: window.innerHeight * 0,\n BOTTOM: window.innerHeight * 0,\n LEFT: window.innerWidth * 0,\n RIGHT: window.innerWidth * 0,\n };\n this.WIDTH =\n window.innerWidth < 950 ? windowWidth / 1.15 : windowWidth / 1.75;\n this.HEIGHT =\n window.innerWidth < 950\n ? window.innerHeight / 1.8\n : window.innerHeight / 1.95;\n\n // Use the extracted size to set the size of an SVG element.\n this.svg\n .attr(\"width\", this.WIDTH + this.MARGIN.LEFT + this.MARGIN.RIGHT)\n .attr(\"height\", this.HEIGHT + this.MARGIN.TOP + this.MARGIN.BOTTOM);\n\n // reset group locations\n this.groups = {\n intro: {\n x: this.WIDTH / 2,\n y: this.HEIGHT / 2,\n fullname: \"Intro\",\n },\n test: {\n x: this.WIDTH / 5.5,\n y: this.yGroupHeight,\n fullname: \"Test\",\n },\n train: {\n x: this.WIDTH / 2,\n y: this.yGroupHeight,\n fullname: \"Train\",\n },\n validation: {\n x: this.WIDTH / 1.2,\n y: this.yGroupHeight,\n fullname: \"Validation\",\n },\n offscreen: {\n x: this.WIDTH / 2,\n y: -window.innerHeight * 0.8,\n fullname: \"offscreen\",\n },\n }; // end group\n\n // update scales\n this.fluffScaleX.range([50, this.WIDTH - 50]);\n\n this.weightScaleX.range([50, this.WIDTH - 50]);\n\n this.fluffScaleY.range([50, this.HEIGHT - 100]);\n\n this.weightScaleY.range([50, this.HEIGHT - 100]);\n\n // adjust animals to shown feature if later step\n if (this.currentGroup !== \"pretrain\") {\n // update decision boundary (if not train data point)\n self.updateDecisionBoundary(self.currentFeature, true);\n\n // move labels\n select(\"#x-axis-text\")\n .transition()\n .attr(\"x\", this.WIDTH / 2)\n .attr(\"y\", this.HEIGHT * 0.95);\n\n select(\"#y-axis-text\")\n .transition()\n .attr(\"x\", 0 - this.HEIGHT / 2);\n }\n // change each node to new position\n // re-position labels\n this.labels.transition().attr(\"x\", (d) => this.groups[d.name].x);\n this.labelsRect\n .transition()\n .attr(\"x\", (d) => this.groups[d.name].x - d.bbox.width * 0.5);\n }\n}\n\nfunction eyeAnimations(i) {\n if (i % 5 === 0) {\n return \"animal-eye1\";\n } else if (i % 3 === 0) {\n return \"animal-eye2\";\n } else if (i % 2 === 0) {\n return \"animal-eye3\";\n } else {\n return \"animal-eye4\";\n }\n}\n","import { select } from \"d3-selection\";\nimport { entries } from \"d3-collection\";\n\nexport class Table {\n constructor(opts) {\n this.tableContainer = opts.tableContainer;\n }\n\n drawTable() {\n // remove table if exists\n select(\"#data-table\").remove();\n\n // set col names\n this.columnNames = [\n \"dataset\",\n \"feature\",\n \"# cat right\",\n \"# cat wrong\",\n \"# dog right\",\n \"# dog wrong\",\n \"accuracy\",\n ];\n\n // draw base table\n this.table = select(this.tableContainer)\n .append(\"table\")\n .attr(\"id\", \"data-table\");\n\n // add header\n this.thead = this.table.append(\"thead\");\n\n // add columns\n this.thead\n .selectAll(\"th\")\n .data(this.columnNames, (d) => d)\n .join(\n (enter) => enter.append(\"th\").text((d) => d),\n (update) => {},\n (exit) => {}\n );\n\n this.startData = [];\n }\n\n updateTable(newRow) {\n const updatedRow = {\n dataset: newRow[\"dataset\"],\n feature: newRow[\"feature\"],\n \"# cat right\": newRow[\"cat right\"],\n \"# cat wrong\": newRow[\"cat wrong\"],\n \"# dog right\": newRow[\"dog right\"],\n \"# dog wrong\": newRow[\"dog wrong\"],\n accuracy: newRow[\"accuracy\"],\n };\n\n // update rows\n this.startData.unshift(updatedRow);\n\n // don't allow duplicates\n this.startData = Array.from(\n new Set(this.startData.map(JSON.stringify))\n ).map(JSON.parse);\n\n let rows = this.table\n .selectAll(\"tr\")\n .data(this.startData)\n .join((enter) => enter.append(\"tr\"));\n\n rows\n .selectAll(\"td\")\n .data((row) => entries(row))\n .join(\n (enter) => enter.append(\"td\").text((d) => d.value),\n (update) => update.text((d) => d.value)\n );\n }\n}\n","import { Bubble } from \"./Bubble\";\nimport { Table } from \"./Table\";\nimport { select, selectAll } from \"d3-selection\";\n\n// list of sections for intersectin observer to track\nconst sections = selectAll(\"section\").nodes();\n\n// add table to dom\nconst table = new Table({\n tableContainer: \"#table\",\n});\n\nconst bubbleChart = new Bubble({\n chartContainer: \"#chart\",\n table: table,\n});\n\n// options for intersection observer\nconst options = {\n threshold: 0.7,\n};\n\n// dict for function calls\nconst target2event = {\n 0: () => {\n // intro\n selectAll(\".axes-text\").remove();\n\n bubbleChart.showGroups = [\"train\", \"test\", \"validation\"];\n bubbleChart.showAnimals();\n bubbleChart.currentGroup = \"pretrain\";\n bubbleChart.currentFeature = \"weight\";\n bubbleChart.moveBack();\n bubbleChart.colorAnimals(\"off\");\n bubbleChart.hideLabels(\"all\");\n },\n 1: () => {\n // the split\n selectAll(\".axes-text\").remove();\n\n bubbleChart.currentGroup = \"pretrain\";\n bubbleChart.currentFeature = \"weight\";\n bubbleChart.moveNodes();\n bubbleChart.colorAnimals(\"on\");\n bubbleChart.nonShowGroups = [\"train\", \"test\", \"validation\"];\n bubbleChart.showAnimals();\n bubbleChart.showLabels(\"all\");\n },\n 2: () => {\n // train set\n // stuff to do to ensure refresh works\n bubbleChart.colorAnimals(\"on\");\n selectAll(\".axes-text\").remove();\n bubbleChart.nonShowGroups = [\"test\", \"validation\"];\n // reset weight button to be active\n selectAll(\"button.button\").classed(\"active\", false);\n select(`button[value=\"weight\"`).classed(\"active\", true);\n bubbleChart.currentFeature = \"weight\";\n select(\".button-container\").style(\"opacity\", 0);\n bubbleChart.trackCurrentGroups(\"train\");\n bubbleChart.showGroups = [\"train\"];\n bubbleChart.showAnimals();\n bubbleChart.moveNodes();\n bubbleChart.hideNonTrainAnimals();\n bubbleChart.hideLines();\n bubbleChart.hideLabels(\"train\");\n bubbleChart.showLabels(\"train\");\n bubbleChart.currentGroup = \"pretrain\";\n select(\"#hull-g\").style(\"opacity\", 0);\n },\n 3: () => {\n // model\n bubbleChart.nonShowGroups = [\"test\", \"validation\"];\n // stuff to do to ensure refresh works\n bubbleChart.colorAnimals(\"on\");\n selectAll(\".axes-text\").remove();\n select(\".button-container\").style(\"opacity\", 1);\n\n selectAll(\"button.button\").classed(\"active\", false);\n select(`button[value=\"weight\"`).classed(\"active\", true);\n\n select(\"#hull-g\").style(\"opacity\", 0);\n bubbleChart.showGroups = [\"train\"];\n bubbleChart.showAnimals();\n bubbleChart.currentGroup = \"train\";\n bubbleChart.currentFeature = \"weight\";\n bubbleChart.trackCurrentGroups(\"train\");\n\n bubbleChart.hideNonTrainAnimals();\n bubbleChart.moveBee();\n bubbleChart.drawHorizontalLine();\n bubbleChart.drawDecisionBoundary();\n bubbleChart.hideLabels(\"all\");\n bubbleChart.drawAxesLabels(\"weight\");\n // remove table if exists\n select(\"#data-table\").remove();\n },\n 4: () => {\n // validation set\n bubbleChart.nonShowGroups = [\"test\"];\n // stuff to do to ensure refresh works\n bubbleChart.drawHorizontalLine();\n select(\".button-container\").style(\"opacity\", 1);\n bubbleChart.trackCurrentGroups(\"validation\");\n bubbleChart.colorAnimals(\"on\");\n\n bubbleChart.showAnimals();\n bubbleChart.table.drawTable();\n bubbleChart.updateDataPosition();\n bubbleChart.calculatePerformance();\n },\n 5: () => {\n // test set\n bubbleChart.nonShowGroups = [];\n // stuff to do to ensure refresh works\n bubbleChart.colorAnimals(\"on\");\n bubbleChart.drawHorizontalLine();\n select(\".button-container\").style(\"opacity\", 1);\n\n bubbleChart.trackCurrentGroups(\"test\");\n // show validation data\n bubbleChart.showAnimals();\n // if table doesn't exist, draw it and calculate perf\n // (useful if refresh on this step)\n if (!document.getElementById(\"data-table\")) {\n bubbleChart.table.drawTable();\n }\n bubbleChart.updateDataPosition();\n bubbleChart.calculatePerformance();\n },\n 6: () => {\n // test set\n bubbleChart.nonShowGroups = [];\n\n // stuff to do to ensure refresh works\n bubbleChart.colorAnimals(\"on\");\n bubbleChart.drawHorizontalLine();\n select(\".button-container\").style(\"opacity\", 1);\n\n bubbleChart.trackCurrentGroups(\"test\");\n // show validation data\n bubbleChart.showAnimals();\n // if table doesn't exist, draw it and calculate perf\n // (useful if refresh on this step)\n if (!document.getElementById(\"data-table\")) {\n bubbleChart.table.drawTable();\n }\n bubbleChart.updateDataPosition();\n bubbleChart.calculatePerformance();\n }, // fin\n};\n\nlet observer = new IntersectionObserver(navCheck, options);\nlet previousY = 0;\nlet previousRatio = 0;\n\nfunction navCheck(entries) {\n entries.forEach((entry) => {\n const currentRatio = entry.intersectionRatio;\n\n previousRatio = currentRatio;\n\n const className = entry.target.className;\n\n const activeAnchor = select(`[data-page=${className}]`);\n\n // check if visible or not\n if (entry.isIntersecting) {\n // resolve stage in graph\n const target = entry.target.className;\n const entryIndex = entry.target.getAttribute(\"data-index\");\n\n if (entryIndex in target2event) {\n target2event[entryIndex]();\n }\n selectAll(\"a\").classed(\"selected\", false);\n\n activeAnchor.classed(\"selected\", true);\n }\n });\n}\n\nsections.forEach((section) => {\n observer.observe(section);\n});\n\nfunction redraw() {\n // resize chart\n bubbleChart.redraw();\n}\n\n// Draw for the first time to initialize.\nredraw();\n\n// Redraw based on the new size whenever the browser window is resized.\nwindow.addEventListener(\"resize\", redraw);\n\nselectAll(\"button.button\").on(\"click\", function (d) {\n let currentFeature;\n // get value of clicked button\n\n // update button colors\n selectAll(\"button.button\").classed(\"active\", false);\n select(this).classed(\"active\", true);\n currentFeature = select(this).attr(\"value\");\n\n // track current feature\n bubbleChart.currentFeature = currentFeature;\n bubbleChart.drawAxesLabels(currentFeature);\n // update decision boundary for current feature\n bubbleChart.updateDecisionBoundary(currentFeature, true);\n});\n"]}