{"version":3,"sources":["../../node_modules/.pnpm/css-unit-converter@1.1.2/node_modules/css-unit-converter/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-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-format@2.0.0/node_modules/d3-format/src/exponent.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-time-format@3.0.0/node_modules/d3-time-format/src/locale.js","../../node_modules/.pnpm/d3-time-format@3.0.0/node_modules/d3-time-format/src/defaultLocale.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/classnames@2.3.1/node_modules/classnames/index.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":["conversions","Math","PI","module","exports","value","sourceUnit","targetUnit","precision","hasOwnProperty","Error","converted","pow","parseInt","round","symbols","circle","cross","diamond","square","star","triangle","wye","type","size","context","constant","undefined","symbol","buffer","path","apply","arguments","draw","_","length","series","order","n","i","j","m","y","none","s0","s1","s2","si","sij0","sij1","s3","k","sk","skj0","skj1","stackValue","d","key","stackSeries","keys","orderNone","offset","offsetNone","stack","data","sz","Array","from","oz","array","index","BasisClosed","_context","prototype","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","push","a","b","r","ascendingBisect","bisector","ascending","bisectRight","right","bisectLeft","left","bisectCenter","number","center","t","grouping","thousands","width","g","max","substring","reverse","join","numerals","replace","s","out","slice","prefixExponent","p","formatDecimalParts","coefficient","exponent","min","floor","toFixed","toString","formatDecimal","toExponential","toPrecision","formatRounded","formatPrefixAuto","toUpperCase","map","prefixes","locale","group","identity","formatGroup","call","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","abs","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","localDate","date","Date","H","M","S","L","setFullYear","utcDate","UTC","setUTCFullYear","newDate","locale_dateTime","dateTime","locale_date","locale_time","time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","formatShortWeekday","formatWeekday","formatShortMonth","formatMonth","formatDayOfMonth","formatMicroseconds","formatYearISO","formatFullYearISO","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatPeriod","formatQuarter","formatUnixTimestamp","formatUnixTimestampSeconds","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatFullYear","formatZone","formatLiteralPercent","utcFormats","formatUTCShortWeekday","formatUTCWeekday","formatUTCShortMonth","formatUTCMonth","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCYearISO","formatUTCFullYearISO","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCPeriod","formatUTCQuarter","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","parseShortWeekday","parseWeekday","parseShortMonth","parseMonth","parseLocaleDateTime","parseDayOfMonth","parseMicroseconds","parseYear","parseFullYear","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parsePeriod","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseLocaleDate","parseLocaleTime","parseZone","parseLiteralPercent","X","string","pad","pads","charAt","newParse","Z","parseSpecifier","week","day","Q","q","V","w","getUTCDay","utcMonday","utcDay","getUTCFullYear","getUTCMonth","getUTCDate","getDay","timeMonday","timeDay","getFullYear","getMonth","getDate","W","U","parse","exec","getHours","getUTCHours","utcFormat","utcParse","numberRe","percentRe","requoteRe","requote","names","RegExp","name","timeYear","getMilliseconds","getMinutes","getSeconds","timeSunday","dISO","timeThursday","getTimezoneOffset","utcYear","getUTCMilliseconds","getUTCMinutes","getUTCSeconds","dow","utcSunday","UTCdISO","utcThursday","timeFormat","timeParse","calendar","tickInterval","year","month","hour","minute","second","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","timeTicks","timeTickInterval","timeMonth","timeWeek","timeHour","timeMinute","timeSecond","utcTime","utcTicks","utcTickInterval","utcMonth","utcWeek","utcHour","utcMinute","utcSecond","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","rect","ka","kr","kx","ky","sqrt3","y2","re","match","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","hasOwn","classNames","classes","arg","argType","isArray","inner","Object","default","define","factory","extend","parent","create","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","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","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.b9bb06f5.chunk.js","sourcesContent":["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","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 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","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(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 {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {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","/*!\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","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":""}