{"version":3,"sources":["../../node_modules/.pnpm/classnames@2.3.1/node_modules/classnames/index.js","../../node_modules/.pnpm/css-unit-converter@1.1.2/node_modules/css-unit-converter/index.js","../../node_modules/.pnpm/classnames@2.3.2/node_modules/classnames/index.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/symbol.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/offset/expand.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/offset/silhouette.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/offset/wiggle.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/stack.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/curve/basisClosed.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/curve/basisOpen.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/curve/linearClosed.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/curve/natural.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/exponent.js","../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/bisect.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/round.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/formatGroup.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/formatNumerals.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/formatTrim.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/formatPrefixAuto.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/formatRounded.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/formatTypes.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/identity.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/locale.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/defaultLocale.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/offset/none.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/formatDecimal.js","../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/range.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/band.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/math.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/number.js","../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/ascending.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/array.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/noop.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/curve/linear.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/point.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/ordinal.js","../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/number.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/number.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/curve/basis.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/symbol/circle.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/precisionPrefix.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/precisionRound.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/precisionFixed.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/tickFormat.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/identity.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/nice.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/log.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/symlog.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/pow.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/radial.js","../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/max.js","../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/min.js","../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/quickselect.js","../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/quantile.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/quantile.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/quantize.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/threshold.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/time.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/utcTime.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/sequential.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/sequentialQuantile.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/piecewise.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/diverging.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/index.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/order/none.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/area.js","../../src/index.ts","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/symbol/cross.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/symbol/diamond.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/symbol/square.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/symbol/star.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/symbol/triangle.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/symbol/wye.js","../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/formatSpecifier.js","../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/bisector.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/line.js","../../node_modules/.pnpm/d3-path@2.0.0/node_modules/d3-path/src/path.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/curve/step.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/init.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/constant.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/constant.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/continuous.js","../../node_modules/.pnpm/d3-color@2.0.0/node_modules/d3-color/src/define.js","../../node_modules/.pnpm/d3-color@2.0.0/node_modules/d3-color/src/color.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/basis.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/basisClosed.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/constant.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/color.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/rgb.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/numberArray.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/array.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/date.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/object.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/string.js","../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/value.js","../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/ticks.js","../../node_modules/.pnpm/d3-shape@2.1.0/node_modules/d3-shape/src/curve/monotone.js","../../node_modules/.pnpm/copy-to-clipboard@3.3.1/node_modules/copy-to-clipboard/index.js","../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/linear.js"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","Object","prototype","key","call","join","module","exports","default","define","conversions","Math","PI","value","sourceUnit","targetUnit","precision","Error","converted","pow","parseInt","round","nativeCodeString","includes","symbols","circle","cross","diamond","square","star","triangle","wye","type","size","context","constant","undefined","symbol","buffer","path","draw","_","series","order","n","j","m","y","none","s0","s1","s2","si","sij0","sij1","s3","k","sk","skj0","skj1","stackValue","d","stackSeries","keys","orderNone","offset","offsetNone","stack","data","sz","from","oz","array","index","BasisClosed","_context","areaStart","noop","areaEnd","lineStart","_x0","_x1","_x2","_x3","_x4","_y0","_y1","_y2","_y3","_y4","NaN","_point","lineEnd","moveTo","closePath","lineTo","point","x","BasisOpen","_line","x0","y0","LinearClosed","Natural","_x","_y","px","controlPoints","py","i0","i1","bezierCurveTo","a","b","r","formatDecimalParts","abs","ascendingBisect","bisector","ascending","bisectRight","right","bisectLeft","left","bisectCenter","number","center","t","grouping","thousands","width","g","max","substring","reverse","numerals","replace","s","out","slice","prefixExponent","p","coefficient","exponent","min","floor","toFixed","formatDecimal","toExponential","toPrecision","formatRounded","formatPrefixAuto","toUpperCase","map","prefixes","locale","group","identity","formatGroup","Number","currencyPrefix","currency","currencySuffix","decimal","formatNumerals","String","percent","minus","nan","newFormat","specifier","formatSpecifier","fill","align","sign","zero","comma","trim","formatTypes","prefix","test","toLowerCase","suffix","formatType","maybeSuffix","format","valuePrefix","valueSuffix","c","valueNegative","isNaN","formatTrim","charCodeAt","Infinity","padding","formatPrefix","f","e","defaultLocale","definition","formatLocale","toLocaleString","indexOf","start","stop","step","ceil","range","band","scale","ordinal","unknown","domain","ordinalRange","r0","r1","bandwidth","paddingInner","paddingOuter","rescale","values","sequence","rangeRound","copy","initRange","pointish","atan2","cos","sin","sqrt","epsilon","pi","halfPi","tau","acos","asin","Linear","implicit","Symbol","Map","get","set","has","numbers","valueof","that","Basis","arc","tickFormat","count","tickStep","precisionPrefix","precisionRound","precisionFixed","invert","linearish","nice","interval","x1","transformLog","log","transformExp","exp","transformLogn","transformExpn","pow10","isFinite","powp","base","E","logp","log10","log2","reflect","loggish","transform","logs","pows","ticks","u","v","z","transformer","transformSymlog","log1p","transformSymexp","expm1","symlogish","symlog","transformPow","transformSqrt","transformSquare","powish","unsquare","radial","squared","continuous","clamp","quickselect","compare","sd","newLeft","newRight","swap","quantile","Float64Array","value0","subarray","value1","quantileSorted","thresholds","threshold","bisect","invertExtent","sort","quantiles","quantize","date","Date","calendar","tickInterval","year","month","week","day","hour","minute","second","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","formatYear","time","timeTicks","timeTickInterval","timeYear","timeMonth","timeWeek","timeDay","timeHour","timeMinute","timeSecond","timeFormat","utcTime","utcTicks","utcTickInterval","utcYear","utcMonth","utcWeek","utcDay","utcHour","utcMinute","utcSecond","utcFormat","UTC","t0","t1","k10","interpolator","interpolate","interpolateRound","source","target","sequential","initInterpolator","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","piecewise","I","x2","t2","k21","r2","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","o","y1","defined","curve","curveLinear","output","pointX","pointY","area","defined0","x0z","y0z","arealine","line","lineX0","lineY0","lineY1","lineX1","isElement","el","nodeType","canOverflow","overflow","skipOverflowHiddenElements","isScrollable","clientHeight","scrollHeight","clientWidth","scrollWidth","style","getComputedStyle","overflowY","overflowX","frame","ownerDocument","defaultView","frameElement","getFrameElement","isHiddenByFrame","alignNearest","scrollingEdgeStart","scrollingEdgeEnd","scrollingSize","scrollingBorderStart","scrollingBorderEnd","elementEdgeStart","elementEdgeEnd","elementSize","options","windowWithViewport","window","scrollMode","block","inline","boundary","checkBoundary","node","TypeError","scrollingElement","document","documentElement","frames","cursor","parentElement","body","viewportWidth","visualViewport","innerWidth","viewportHeight","height","innerHeight","viewportX","scrollX","pageXOffset","viewportY","scrollY","pageYOffset","getBoundingClientRect","targetHeight","targetWidth","targetTop","top","targetRight","targetBottom","bottom","targetLeft","targetBlock","targetInline","computations","frameStyle","borderLeft","borderLeftWidth","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","blockScroll","inlineScroll","scrollbarWidth","offsetWidth","scrollbarHeight","offsetHeight","scrollLeft","scrollTop","tan30","tan30_2","w","rect","ka","kr","kx","ky","sqrt3","y2","re","match","exec","FormatSpecifier","delta","ascendingComparator","lo","hi","mid","tauEpsilon","Path","constructor","quadraticCurveTo","arcTo","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","l","tan","t01","t21","a0","a1","ccw","dx","dy","cw","da","h","Step","_t","stepBefore","stepAfter","constants","unit","normalize","clamper","bimap","d0","d1","polymap","interpolateValue","untransform","input","interpolateNumber","factory","extend","parent","create","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","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color","channels","assign","displayable","rgb","hex","color_formatHex","formatHex","formatHsl","color_formatHsl","formatRgb","color_formatRgb","hslConvert","rgbn","Rgb","rgba","hsla","rgbConvert","opacity","rgb_formatHex","rgb_formatRgb","Hsl","hsl","m2","m1","hsl2rgb","basis","v0","v1","v2","v3","t3","linear","exponential","hue","gamma","nogamma","rgbGamma","end","colorRgb","rgbSpline","spline","colors","rgbBasis","rgbBasisClosed","basisClosed","isNumberArray","ArrayBuffer","isView","DataView","numberArray","genericArray","nb","na","setTime","reA","reB","one","bi","lastIndex","am","bm","bs","q","string","valueOf","object","e10","e5","e2","tickIncrement","power","LN10","error","step0","step1","slope3","h0","h1","slope2","MonotoneX","_t0","MonotoneY","ReflectContext","monotoneX","monotoneY","deselectCurrent","require","clipboardToIE11Formatting","defaultMessage","message","copyKey","navigator","userAgent","text","debug","reselectPrevious","selection","mark","success","createRange","getSelection","createElement","textContent","all","position","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","stopPropagation","preventDefault","clipboardData","console","warn","clearData","setData","onCopy","appendChild","selectNodeContents","addRange","successful","execCommand","err","prompt","removeRange","removeAllRanges","removeChild","prestep","maxIter"],"mappings":"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","file":"static/js/vendors~main~f41a22d6.efba55ce.chunk.js","sourcesContent":["/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","var conversions = {\r\n // length\r\n 'px': {\r\n 'px': 1,\r\n 'cm': 96.0/2.54,\r\n 'mm': 96.0/25.4,\r\n 'in': 96,\r\n 'pt': 96.0/72.0,\r\n 'pc': 16\r\n },\r\n 'cm': {\r\n 'px': 2.54/96.0,\r\n 'cm': 1,\r\n 'mm': 0.1,\r\n 'in': 2.54,\r\n 'pt': 2.54/72.0,\r\n 'pc': 2.54/6.0\r\n },\r\n 'mm': {\r\n 'px': 25.4/96.0,\r\n 'cm': 10,\r\n 'mm': 1,\r\n 'in': 25.4,\r\n 'pt': 25.4/72.0,\r\n 'pc': 25.4/6.0\r\n },\r\n 'in': {\r\n 'px': 1.0/96.0,\r\n 'cm': 1.0/2.54,\r\n 'mm': 1.0/25.4,\r\n 'in': 1,\r\n 'pt': 1.0/72.0,\r\n 'pc': 1.0/6.0\r\n },\r\n 'pt': {\r\n 'px': 0.75,\r\n 'cm': 72.0/2.54,\r\n 'mm': 72.0/25.4,\r\n 'in': 72,\r\n 'pt': 1,\r\n 'pc': 12\r\n },\r\n 'pc': {\r\n 'px': 6.0/96.0,\r\n 'cm': 6.0/2.54,\r\n 'mm': 6.0/25.4,\r\n 'in': 6,\r\n 'pt': 6.0/72.0,\r\n 'pc': 1\r\n },\r\n // angle\r\n 'deg': {\r\n 'deg': 1,\r\n 'grad': 0.9,\r\n 'rad': 180/Math.PI,\r\n 'turn': 360\r\n },\r\n 'grad': {\r\n 'deg': 400/360,\r\n 'grad': 1,\r\n 'rad': 200/Math.PI,\r\n 'turn': 400\r\n },\r\n 'rad': {\r\n 'deg': Math.PI/180,\r\n 'grad': Math.PI/200,\r\n 'rad': 1,\r\n 'turn': Math.PI*2\r\n },\r\n 'turn': {\r\n 'deg': 1/360,\r\n 'grad': 1/400,\r\n 'rad': 0.5/Math.PI,\r\n 'turn': 1\r\n },\r\n // time\r\n 's': {\r\n 's': 1,\r\n 'ms': 1/1000\r\n },\r\n 'ms': {\r\n 's': 1000,\r\n 'ms': 1\r\n },\r\n // frequency\r\n 'Hz': {\r\n 'Hz': 1,\r\n 'kHz': 1000\r\n },\r\n 'kHz': {\r\n 'Hz': 1/1000,\r\n 'kHz': 1\r\n },\r\n // resolution\r\n 'dpi': {\r\n 'dpi': 1,\r\n 'dpcm': 1.0/2.54,\r\n 'dppx': 1/96\r\n },\r\n 'dpcm': {\r\n 'dpi': 2.54,\r\n 'dpcm': 1,\r\n 'dppx': 2.54/96.0\r\n },\r\n 'dppx': {\r\n 'dpi': 96,\r\n 'dpcm': 96.0/2.54,\r\n 'dppx': 1\r\n }\r\n};\r\n\r\nmodule.exports = function (value, sourceUnit, targetUnit, precision) {\r\n if (!conversions.hasOwnProperty(targetUnit))\r\n throw new Error(\"Cannot convert to \" + targetUnit);\r\n\r\n if (!conversions[targetUnit].hasOwnProperty(sourceUnit))\r\n throw new Error(\"Cannot convert from \" + sourceUnit + \" to \" + targetUnit);\r\n \r\n var converted = conversions[targetUnit][sourceUnit] * value;\r\n \r\n if (precision !== false) {\r\n precision = Math.pow(10, parseInt(precision) || 5);\r\n return Math.round(converted * precision) / precision;\r\n }\r\n \r\n return converted;\r\n};\r\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\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","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","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 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 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","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 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","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\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(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\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","// 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","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(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","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 {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 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","export default function number(x) {\n return +x;\n}\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\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","export default function() {}\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 {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","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","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\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 {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","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","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\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 {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","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 {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","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 {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","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 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 {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","// Compute what scrolling needs to be done on required scrolling boxes for target to be in view\n\n// The type names here are named after the spec to make it easier to find more information around what they mean:\n// To reduce churn and reduce things that need be maintained things from the official TS DOM library is used here\n// https://drafts.csswg.org/cssom-view/\n\n// For a definition on what is \"block flow direction\" exactly, check this: https://drafts.csswg.org/css-writing-modes-4/#block-flow-direction\n\n// add support for visualViewport object currently implemented in chrome\ninterface visualViewport {\n height: number\n width: number\n}\n\ntype ScrollLogicalPosition = 'start' | 'center' | 'end' | 'nearest'\n// This new option is tracked in this PR, which is the most likely candidate at the time: https://github.com/w3c/csswg-drafts/pull/1805\ntype ScrollMode = 'always' | 'if-needed'\n// New option that skips auto-scrolling all nodes with overflow: hidden set\n// See FF implementation: https://hg.mozilla.org/integration/fx-team/rev/c48c3ec05012#l7.18\ntype SkipOverflowHiddenElements = boolean\n\ninterface Options {\n block?: ScrollLogicalPosition\n inline?: ScrollLogicalPosition\n scrollMode?: ScrollMode\n boundary?: CustomScrollBoundary\n skipOverflowHiddenElements?: SkipOverflowHiddenElements\n}\n\n// Custom behavior, not in any spec\ntype CustomScrollBoundaryCallback = (parent: Element) => boolean\ntype CustomScrollBoundary = Element | CustomScrollBoundaryCallback | null\ninterface CustomScrollAction {\n el: Element\n top: number\n left: number\n}\n\n// @TODO better shadowdom test, 11 = document fragment\nfunction isElement(el: any): el is Element {\n return typeof el === 'object' && el != null && el.nodeType === 1\n}\n\nfunction canOverflow(\n overflow: string | null,\n skipOverflowHiddenElements?: boolean\n) {\n if (skipOverflowHiddenElements && overflow === 'hidden') {\n return false\n }\n\n return overflow !== 'visible' && overflow !== 'clip'\n}\n\nfunction getFrameElement(el: Element) {\n if (!el.ownerDocument || !el.ownerDocument.defaultView) {\n return null\n }\n\n try {\n return el.ownerDocument.defaultView.frameElement\n } catch (e) {\n return null\n }\n}\n\nfunction isHiddenByFrame(el: Element): boolean {\n const frame = getFrameElement(el)\n if (!frame) {\n return false\n }\n\n return (\n frame.clientHeight < el.scrollHeight || frame.clientWidth < el.scrollWidth\n )\n}\n\nfunction isScrollable(el: Element, skipOverflowHiddenElements?: boolean) {\n if (el.clientHeight < el.scrollHeight || el.clientWidth < el.scrollWidth) {\n const style = getComputedStyle(el, null)\n return (\n canOverflow(style.overflowY, skipOverflowHiddenElements) ||\n canOverflow(style.overflowX, skipOverflowHiddenElements) ||\n isHiddenByFrame(el)\n )\n }\n\n return false\n}\n/**\n * Find out which edge to align against when logical scroll position is \"nearest\"\n * Interesting fact: \"nearest\" works similarily to \"if-needed\", if the element is fully visible it will not scroll it\n *\n * Legends:\n * ┌────────┐ ┏ ━ ━ ━ ┓\n * │ target │ frame\n * └────────┘ ┗ ━ ━ ━ ┛\n */\nfunction alignNearest(\n scrollingEdgeStart: number,\n scrollingEdgeEnd: number,\n scrollingSize: number,\n scrollingBorderStart: number,\n scrollingBorderEnd: number,\n elementEdgeStart: number,\n elementEdgeEnd: number,\n elementSize: number\n) {\n /**\n * If element edge A and element edge B are both outside scrolling box edge A and scrolling box edge B\n *\n * ┌──┐\n * ┏━│━━│━┓\n * │ │\n * ┃ │ │ ┃ do nothing\n * │ │\n * ┗━│━━│━┛\n * └──┘\n *\n * If element edge C and element edge D are both outside scrolling box edge C and scrolling box edge D\n *\n * ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐\n * │┃ ┃│ do nothing\n * └───────────┘\n * ┗ ━ ━ ━ ━ ┛\n */\n if (\n (elementEdgeStart < scrollingEdgeStart &&\n elementEdgeEnd > scrollingEdgeEnd) ||\n (elementEdgeStart > scrollingEdgeStart && elementEdgeEnd < scrollingEdgeEnd)\n ) {\n return 0\n }\n\n /**\n * If element edge A is outside scrolling box edge A and element height is less than scrolling box height\n *\n * ┌──┐\n * ┏━│━━│━┓ ┏━┌━━┐━┓\n * └──┘ │ │\n * from ┃ ┃ to ┃ └──┘ ┃\n *\n * ┗━ ━━ ━┛ ┗━ ━━ ━┛\n *\n * If element edge B is outside scrolling box edge B and element height is greater than scrolling box height\n *\n * ┏━ ━━ ━┓ ┏━┌━━┐━┓\n * │ │\n * from ┃ ┌──┐ ┃ to ┃ │ │ ┃\n * │ │ │ │\n * ┗━│━━│━┛ ┗━│━━│━┛\n * │ │ └──┘\n * │ │\n * └──┘\n *\n * If element edge C is outside scrolling box edge C and element width is less than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───┐ ┌───┐\n * │ ┃ │ ┃ ┃ │ ┃\n * └───┘ └───┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n * If element edge D is outside scrolling box edge D and element width is greater than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐ ┌───────────┐\n * ┃ │ ┃ │ ┃ ┃ │\n * └───────────┘ └───────────┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n */\n if (\n (elementEdgeStart <= scrollingEdgeStart && elementSize <= scrollingSize) ||\n (elementEdgeEnd >= scrollingEdgeEnd && elementSize >= scrollingSize)\n ) {\n return elementEdgeStart - scrollingEdgeStart - scrollingBorderStart\n }\n\n /**\n * If element edge B is outside scrolling box edge B and element height is less than scrolling box height\n *\n * ┏━ ━━ ━┓ ┏━ ━━ ━┓\n *\n * from ┃ ┃ to ┃ ┌──┐ ┃\n * ┌──┐ │ │\n * ┗━│━━│━┛ ┗━└━━┘━┛\n * └──┘\n *\n * If element edge A is outside scrolling box edge A and element height is greater than scrolling box height\n *\n * ┌──┐\n * │ │\n * │ │ ┌──┐\n * ┏━│━━│━┓ ┏━│━━│━┓\n * │ │ │ │\n * from ┃ └──┘ ┃ to ┃ │ │ ┃\n * │ │\n * ┗━ ━━ ━┛ ┗━└━━┘━┛\n *\n * If element edge C is outside scrolling box edge C and element width is greater than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐ ┌───────────┐\n * │ ┃ │ ┃ │ ┃ ┃\n * └───────────┘ └───────────┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n * If element edge D is outside scrolling box edge D and element width is less than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───┐ ┌───┐\n * ┃ │ ┃ │ ┃ │ ┃\n * └───┘ └───┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n */\n if (\n (elementEdgeEnd > scrollingEdgeEnd && elementSize < scrollingSize) ||\n (elementEdgeStart < scrollingEdgeStart && elementSize > scrollingSize)\n ) {\n return elementEdgeEnd - scrollingEdgeEnd + scrollingBorderEnd\n }\n\n return 0\n}\n\nexport default (target: Element, options: Options): CustomScrollAction[] => {\n //TODO: remove this hack when microbundle will support typescript >= 4.0\n const windowWithViewport = (window as unknown) as Window & {\n visualViewport: visualViewport\n }\n\n const {\n scrollMode,\n block,\n inline,\n boundary,\n skipOverflowHiddenElements,\n } = options\n // Allow using a callback to check the boundary\n // The default behavior is to check if the current target matches the boundary element or not\n // If undefined it'll check that target is never undefined (can happen as we recurse up the tree)\n const checkBoundary =\n typeof boundary === 'function' ? boundary : (node: any) => node !== boundary\n\n if (!isElement(target)) {\n throw new TypeError('Invalid target')\n }\n\n // Used to handle the top most element that can be scrolled\n const scrollingElement = document.scrollingElement || document.documentElement\n\n // Collect all the scrolling boxes, as defined in the spec: https://drafts.csswg.org/cssom-view/#scrolling-box\n const frames: Element[] = []\n let cursor: Element | null = target\n while (isElement(cursor) && checkBoundary(cursor)) {\n // Move cursor to parent\n cursor = cursor.parentElement\n\n // Stop when we reach the viewport\n if (cursor === scrollingElement) {\n frames.push(cursor)\n break\n }\n\n // Skip document.body if it's not the scrollingElement and documentElement isn't independently scrollable\n if (\n cursor != null &&\n cursor === document.body &&\n isScrollable(cursor) &&\n !isScrollable(document.documentElement)\n ) {\n continue\n }\n\n // Now we check if the element is scrollable, this code only runs if the loop haven't already hit the viewport or a custom boundary\n if (cursor != null && isScrollable(cursor, skipOverflowHiddenElements)) {\n frames.push(cursor)\n }\n }\n\n // Support pinch-zooming properly, making sure elements scroll into the visual viewport\n // Browsers that don't support visualViewport will report the layout viewport dimensions on document.documentElement.clientWidth/Height\n // and viewport dimensions on window.innerWidth/Height\n // https://www.quirksmode.org/mobile/viewports2.html\n // https://bokand.github.io/viewport/index.html\n const viewportWidth = windowWithViewport.visualViewport\n ? windowWithViewport.visualViewport.width\n : innerWidth\n const viewportHeight = windowWithViewport.visualViewport\n ? windowWithViewport.visualViewport.height\n : innerHeight\n\n // Newer browsers supports scroll[X|Y], page[X|Y]Offset is\n const viewportX = window.scrollX || pageXOffset\n const viewportY = window.scrollY || pageYOffset\n\n const {\n height: targetHeight,\n width: targetWidth,\n top: targetTop,\n right: targetRight,\n bottom: targetBottom,\n left: targetLeft,\n } = target.getBoundingClientRect()\n\n // These values mutate as we loop through and generate scroll coordinates\n let targetBlock: number =\n block === 'start' || block === 'nearest'\n ? targetTop\n : block === 'end'\n ? targetBottom\n : targetTop + targetHeight / 2 // block === 'center\n let targetInline: number =\n inline === 'center'\n ? targetLeft + targetWidth / 2\n : inline === 'end'\n ? targetRight\n : targetLeft // inline === 'start || inline === 'nearest\n\n // Collect new scroll positions\n const computations: CustomScrollAction[] = []\n // In chrome there's no longer a difference between caching the `frames.length` to a var or not, so we don't in this case (size > speed anyways)\n for (let index = 0; index < frames.length; index++) {\n const frame = frames[index]\n\n // @TODO add a shouldScroll hook here that allows userland code to take control\n\n const {\n height,\n width,\n top,\n right,\n bottom,\n left,\n } = frame.getBoundingClientRect()\n\n // If the element is already visible we can end it here\n // @TODO targetBlock and targetInline should be taken into account to be compliant with https://github.com/w3c/csswg-drafts/pull/1805/files#diff-3c17f0e43c20f8ecf89419d49e7ef5e0R1333\n if (\n scrollMode === 'if-needed' &&\n targetTop >= 0 &&\n targetLeft >= 0 &&\n targetBottom <= viewportHeight &&\n targetRight <= viewportWidth &&\n targetTop >= top &&\n targetBottom <= bottom &&\n targetLeft >= left &&\n targetRight <= right\n ) {\n // Break the loop and return the computations for things that are not fully visible\n return computations\n }\n\n const frameStyle = getComputedStyle(frame)\n const borderLeft = parseInt(frameStyle.borderLeftWidth as string, 10)\n const borderTop = parseInt(frameStyle.borderTopWidth as string, 10)\n const borderRight = parseInt(frameStyle.borderRightWidth as string, 10)\n const borderBottom = parseInt(frameStyle.borderBottomWidth as string, 10)\n\n let blockScroll: number = 0\n let inlineScroll: number = 0\n\n // The property existance checks for offfset[Width|Height] is because only HTMLElement objects have them, but any Element might pass by here\n // @TODO find out if the \"as HTMLElement\" overrides can be dropped\n const scrollbarWidth =\n 'offsetWidth' in frame\n ? (frame as HTMLElement).offsetWidth -\n (frame as HTMLElement).clientWidth -\n borderLeft -\n borderRight\n : 0\n const scrollbarHeight =\n 'offsetHeight' in frame\n ? (frame as HTMLElement).offsetHeight -\n (frame as HTMLElement).clientHeight -\n borderTop -\n borderBottom\n : 0\n\n if (scrollingElement === frame) {\n // Handle viewport logic (document.documentElement or document.body)\n\n if (block === 'start') {\n blockScroll = targetBlock\n } else if (block === 'end') {\n blockScroll = targetBlock - viewportHeight\n } else if (block === 'nearest') {\n blockScroll = alignNearest(\n viewportY,\n viewportY + viewportHeight,\n viewportHeight,\n borderTop,\n borderBottom,\n viewportY + targetBlock,\n viewportY + targetBlock + targetHeight,\n targetHeight\n )\n } else {\n // block === 'center' is the default\n blockScroll = targetBlock - viewportHeight / 2\n }\n\n if (inline === 'start') {\n inlineScroll = targetInline\n } else if (inline === 'center') {\n inlineScroll = targetInline - viewportWidth / 2\n } else if (inline === 'end') {\n inlineScroll = targetInline - viewportWidth\n } else {\n // inline === 'nearest' is the default\n inlineScroll = alignNearest(\n viewportX,\n viewportX + viewportWidth,\n viewportWidth,\n borderLeft,\n borderRight,\n viewportX + targetInline,\n viewportX + targetInline + targetWidth,\n targetWidth\n )\n }\n\n // Apply scroll position offsets and ensure they are within bounds\n // @TODO add more test cases to cover this 100%\n blockScroll = Math.max(0, blockScroll + viewportY)\n inlineScroll = Math.max(0, inlineScroll + viewportX)\n } else {\n // Handle each scrolling frame that might exist between the target and the viewport\n\n if (block === 'start') {\n blockScroll = targetBlock - top - borderTop\n } else if (block === 'end') {\n blockScroll = targetBlock - bottom + borderBottom + scrollbarHeight\n } else if (block === 'nearest') {\n blockScroll = alignNearest(\n top,\n bottom,\n height,\n borderTop,\n borderBottom + scrollbarHeight,\n targetBlock,\n targetBlock + targetHeight,\n targetHeight\n )\n } else {\n // block === 'center' is the default\n blockScroll = targetBlock - (top + height / 2) + scrollbarHeight / 2\n }\n\n if (inline === 'start') {\n inlineScroll = targetInline - left - borderLeft\n } else if (inline === 'center') {\n inlineScroll = targetInline - (left + width / 2) + scrollbarWidth / 2\n } else if (inline === 'end') {\n inlineScroll = targetInline - right + borderRight + scrollbarWidth\n } else {\n // inline === 'nearest' is the default\n inlineScroll = alignNearest(\n left,\n right,\n width,\n borderLeft,\n borderRight + scrollbarWidth,\n targetInline,\n targetInline + targetWidth,\n targetWidth\n )\n }\n\n const { scrollLeft, scrollTop } = frame\n // Ensure scroll coordinates are not out of bounds while applying scroll offsets\n blockScroll = Math.max(\n 0,\n Math.min(\n scrollTop + blockScroll,\n frame.scrollHeight - height + scrollbarHeight\n )\n )\n inlineScroll = Math.max(\n 0,\n Math.min(\n scrollLeft + inlineScroll,\n frame.scrollWidth - width + scrollbarWidth\n )\n )\n\n // Cache the offset so that parent frames can scroll this into view correctly\n targetBlock += scrollTop - blockScroll\n targetInline += scrollLeft - inlineScroll\n }\n\n computations.push({ el: frame, top: blockScroll, left: inlineScroll })\n }\n\n return computations\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","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","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","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","// [[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","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","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","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","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 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","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\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(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 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","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","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","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","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\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"],"sourceRoot":""}