{"version":3,"sources":["webpack:///./node_modules/d3-selection/src/create.js","webpack:///./node_modules/d3-selection/src/local.js","webpack:///./node_modules/d3-selection/src/selectAll.js","webpack:///./node_modules/d3-selection/src/touches.js","webpack:///./node_modules/topojson-client/src/identity.js","webpack:///./node_modules/topojson-client/src/transform.js","webpack:///./node_modules/topojson-client/src/bbox.js","webpack:///./node_modules/topojson-client/src/feature.js","webpack:///./node_modules/topojson-client/src/reverse.js","webpack:///./node_modules/topojson-client/src/stitch.js","webpack:///./node_modules/topojson-client/src/mesh.js","webpack:///./node_modules/topojson-client/src/merge.js","webpack:///./node_modules/topojson-client/src/bisect.js","webpack:///./node_modules/topojson-client/src/neighbors.js","webpack:///./node_modules/topojson-client/src/untransform.js","webpack:///./node_modules/topojson-client/src/quantize.js","webpack:///./node_modules/d3-geo/src/projection/resample.js","webpack:///./node_modules/d3-geo/src/projection/index.js","webpack:///./node_modules/d3-dispatch/src/dispatch.js","webpack:///./node_modules/d3-drag/src/noevent.js","webpack:///./node_modules/d3-drag/src/nodrag.js","webpack:///./node_modules/d3-interpolate/src/zoom.js","webpack:///./node_modules/d3-timer/src/timer.js","webpack:///./node_modules/d3-timer/src/timeout.js","webpack:///./node_modules/d3-transition/src/transition/schedule.js","webpack:///./node_modules/d3-transition/src/interrupt.js","webpack:///./node_modules/d3-interpolate/src/transform/parse.js","webpack:///./node_modules/d3-interpolate/src/number.js","webpack:///./node_modules/d3-interpolate/src/transform/decompose.js","webpack:///./node_modules/d3-interpolate/src/transform/index.js","webpack:///./node_modules/d3-transition/src/transition/tween.js","webpack:///./node_modules/d3-color/src/define.js","webpack:///./node_modules/d3-color/src/color.js","webpack:///./node_modules/d3-interpolate/src/basis.js","webpack:///./node_modules/d3-interpolate/src/constant.js","webpack:///./node_modules/d3-interpolate/src/color.js","webpack:///./node_modules/d3-interpolate/src/rgb.js","webpack:///./node_modules/d3-interpolate/src/basisClosed.js","webpack:///./node_modules/d3-interpolate/src/string.js","webpack:///./node_modules/d3-transition/src/transition/interpolate.js","webpack:///./node_modules/d3-transition/src/transition/attr.js","webpack:///./node_modules/d3-transition/src/transition/attrTween.js","webpack:///./node_modules/d3-transition/src/transition/delay.js","webpack:///./node_modules/d3-transition/src/transition/duration.js","webpack:///./node_modules/d3-transition/src/transition/ease.js","webpack:///./node_modules/d3-transition/src/transition/on.js","webpack:///./node_modules/d3-transition/src/transition/remove.js","webpack:///./node_modules/d3-transition/src/transition/selection.js","webpack:///./node_modules/d3-transition/src/transition/style.js","webpack:///./node_modules/d3-transition/src/transition/styleTween.js","webpack:///./node_modules/d3-transition/src/transition/textTween.js","webpack:///./node_modules/d3-transition/src/transition/index.js","webpack:///./node_modules/d3-transition/src/transition/select.js","webpack:///./node_modules/d3-transition/src/transition/selectAll.js","webpack:///./node_modules/d3-transition/src/transition/filter.js","webpack:///./node_modules/d3-transition/src/transition/merge.js","webpack:///./node_modules/d3-transition/src/transition/transition.js","webpack:///./node_modules/d3-transition/src/transition/text.js","webpack:///./node_modules/d3-transition/src/transition/end.js","webpack:///./node_modules/d3-transition/src/selection/transition.js","webpack:///./node_modules/d3-ease/src/cubic.js","webpack:///./node_modules/d3-transition/src/selection/index.js","webpack:///./node_modules/d3-transition/src/selection/interrupt.js","webpack:///./node_modules/d3-transition/src/active.js","webpack:///./node_modules/d3-zoom/src/constant.js","webpack:///./node_modules/d3-zoom/src/event.js","webpack:///./node_modules/d3-zoom/src/transform.js","webpack:///./node_modules/d3-zoom/src/noevent.js","webpack:///./node_modules/d3-zoom/src/zoom.js","webpack:///./node_modules/d3-selection/src/mouse.js","webpack:///./node_modules/d3-selection/src/namespaces.js","webpack:///./node_modules/d3-selection/src/selection/sparse.js","webpack:///./node_modules/d3-selection/src/selection/enter.js","webpack:///./node_modules/d3-selection/src/selection/data.js","webpack:///./node_modules/d3-selection/src/selection/sort.js","webpack:///./node_modules/d3-selection/src/selection/call.js","webpack:///./node_modules/d3-selection/src/selection/attr.js","webpack:///./node_modules/d3-selection/src/selection/property.js","webpack:///./node_modules/d3-selection/src/selection/classed.js","webpack:///./node_modules/d3-selection/src/selection/text.js","webpack:///./node_modules/d3-selection/src/selection/html.js","webpack:///./node_modules/d3-selection/src/selection/raise.js","webpack:///./node_modules/d3-selection/src/selection/lower.js","webpack:///./node_modules/d3-selection/src/selection/insert.js","webpack:///./node_modules/d3-selection/src/selection/remove.js","webpack:///./node_modules/d3-selection/src/selection/clone.js","webpack:///./node_modules/d3-selection/src/selection/dispatch.js","webpack:///./node_modules/d3-selection/src/selection/index.js","webpack:///./node_modules/d3-selection/src/selection/select.js","webpack:///./node_modules/d3-selection/src/selection/selectAll.js","webpack:///./node_modules/d3-selection/src/selection/filter.js","webpack:///./node_modules/d3-selection/src/constant.js","webpack:///./node_modules/d3-selection/src/selection/exit.js","webpack:///./node_modules/d3-selection/src/selection/join.js","webpack:///./node_modules/d3-selection/src/selection/merge.js","webpack:///./node_modules/d3-selection/src/selection/order.js","webpack:///./node_modules/d3-selection/src/selection/nodes.js","webpack:///./node_modules/d3-selection/src/selection/node.js","webpack:///./node_modules/d3-selection/src/selection/size.js","webpack:///./node_modules/d3-selection/src/selection/empty.js","webpack:///./node_modules/d3-selection/src/selection/each.js","webpack:///./node_modules/d3-selection/src/selection/append.js","webpack:///./node_modules/d3-selection/src/selection/datum.js","webpack:///./node_modules/d3-geo/src/clip/rejoin.js","webpack:///./node_modules/d3-geo/src/polygonContains.js","webpack:///./node_modules/d3-selection/src/point.js","webpack:///./src/components/read-next.js","webpack:///./node_modules/d3-geo/src/clip/antimeridian.js","webpack:///./node_modules/d3-selection/src/select.js","webpack:///./node_modules/d3-selection/src/selection/on.js","webpack:///./node_modules/d3-selection/src/matcher.js","webpack:///./node_modules/core-js/modules/es6.math.sign.js","webpack:///./node_modules/d3-geo/src/clip/rectangle.js","webpack:///./node_modules/d3-geo/src/clip/line.js","webpack:///./node_modules/d3-geo/src/identity.js","webpack:///./node_modules/d3-selection/src/selection/style.js","webpack:///./node_modules/core-js/modules/_array-fill.js","webpack:///./node_modules/d3-geo/src/clip/buffer.js","webpack:///./node_modules/d3-geo/src/clip/circle.js","webpack:///./node_modules/d3-selection/src/selectorAll.js","webpack:///./node_modules/d3-geo/src/math.js","webpack:///./node_modules/d3-geo/src/path/bounds.js","webpack:///./node_modules/react-simple-maps/dist/index.umd.js","webpack:///./node_modules/d3-selection/src/sourceEvent.js","webpack:///./node_modules/d3-selection/src/creator.js","webpack:///./node_modules/d3-geo-projection/src/math.js","webpack:///./node_modules/d3-geo-projection/src/miller.js","webpack:///./src/components/lending-map-patterns.js","webpack:///./src/helpers/numbers.js","webpack:///./src/components/lending-map.js","webpack:///./src/pages/what-we-do/lending.js","webpack:///./node_modules/d3-geo/src/projection/fit.js","webpack:///./node_modules/d3-selection/src/touch.js","webpack:///./node_modules/d3-geo/src/cartesian.js","webpack:///./node_modules/d3-selection/src/selector.js","webpack:///./node_modules/core-js/modules/es6.array.fill.js","webpack:///./node_modules/d3-selection/src/namespace.js","webpack:///./node_modules/d3-geo/src/rotation.js","webpack:///./node_modules/d3-geo/src/pointEqual.js","webpack:///./node_modules/core-js/modules/_math-sign.js","webpack:///./node_modules/d3-geo/src/noop.js","webpack:///./node_modules/d3-geo/src/area.js","webpack:///./node_modules/d3-geo/src/bounds.js","webpack:///./node_modules/d3-geo/src/centroid.js","webpack:///./node_modules/d3-geo/src/length.js","webpack:///./node_modules/d3-geo/src/clip/extent.js","webpack:///./node_modules/d3-geo/src/distance.js","webpack:///./node_modules/d3-geo/src/contains.js","webpack:///./node_modules/d3-geo/src/graticule.js","webpack:///./node_modules/d3-geo/src/interpolate.js","webpack:///./node_modules/d3-geo/src/path/area.js","webpack:///./node_modules/d3-geo/src/path/centroid.js","webpack:///./node_modules/d3-geo/src/path/context.js","webpack:///./node_modules/d3-geo/src/path/measure.js","webpack:///./node_modules/d3-geo/src/path/string.js","webpack:///./node_modules/d3-geo/src/path/index.js","webpack:///./node_modules/d3-geo/src/projection/conic.js","webpack:///./node_modules/d3-geo/src/projection/conicEqualArea.js","webpack:///./node_modules/d3-geo/src/projection/cylindricalEqualArea.js","webpack:///./node_modules/d3-geo/src/projection/albers.js","webpack:///./node_modules/d3-geo/src/projection/albersUsa.js","webpack:///./node_modules/d3-geo/src/projection/azimuthal.js","webpack:///./node_modules/d3-geo/src/projection/azimuthalEqualArea.js","webpack:///./node_modules/d3-geo/src/projection/azimuthalEquidistant.js","webpack:///./node_modules/d3-geo/src/projection/mercator.js","webpack:///./node_modules/d3-geo/src/projection/conicConformal.js","webpack:///./node_modules/d3-geo/src/projection/equirectangular.js","webpack:///./node_modules/d3-geo/src/projection/conicEquidistant.js","webpack:///./node_modules/d3-geo/src/projection/equalEarth.js","webpack:///./node_modules/d3-geo/src/projection/gnomonic.js","webpack:///./node_modules/d3-geo/src/projection/identity.js","webpack:///./node_modules/d3-geo/src/projection/naturalEarth1.js","webpack:///./node_modules/d3-geo/src/projection/orthographic.js","webpack:///./node_modules/d3-geo/src/projection/stereographic.js","webpack:///./node_modules/d3-geo/src/projection/transverseMercator.js","webpack:///./node_modules/d3-selection/src/window.js","webpack:///./node_modules/d3-geo/src/clip/index.js","webpack:///./node_modules/d3-geo/src/compose.js","webpack:///./node_modules/d3-geo/src/transform.js","webpack:///./node_modules/core-js/modules/es6.string.link.js","webpack:///./node_modules/d3-geo/src/stream.js","webpack:///./node_modules/d3-geo/src/adder.js","webpack:///./node_modules/d3-array/src/ascending.js","webpack:///./node_modules/d3-array/src/bisect.js","webpack:///./node_modules/d3-array/src/bisector.js","webpack:///./node_modules/d3-array/src/cross.js","webpack:///./node_modules/d3-array/src/array.js","webpack:///./node_modules/d3-array/src/range.js","webpack:///./node_modules/d3-array/src/ticks.js","webpack:///./node_modules/d3-array/src/threshold/sturges.js","webpack:///./node_modules/d3-array/src/merge.js","webpack:///./node_modules/d3-geo/src/constant.js","webpack:///./node_modules/d3-geo/src/circle.js"],"names":["creator","name","call","document","documentElement","nextId","local","Local","this","_","toString","prototype","constructor","get","node","id","parentNode","set","value","remove","selector","querySelectorAll","touches","sourceEvent","i","n","length","points","Array","point","x","transform","identity","x0","y0","kx","scale","ky","dx","translate","dy","input","j","output","key","t","topology","Infinity","x1","y1","bboxPoint","p","bboxGeometry","o","type","geometries","forEach","coordinates","arcs","arc","objects","features","map","bbox","properties","geometry","transformPoint","pop","a","k","push","array","reverse","line","ring","polygon","stitchedArcs","fragmentByStart","fragmentByEnd","fragments","emptyIndex","flush","f","start","end","g","e","p1","p0","dp","ends","fg","concat","unshift","gf","meshArcs","apply","arguments","object","filter","extractArcs","stitch","geom","geomsByArc","extract0","extract1","extract2","extract3","geoms","mergeArcs","polygonsByArc","polygons","groups","extract","area","b","Math","abs","planarRingArea","group","neighbors","ki","lo","hi","mid","indexesByArc","geometryType","LineString","MultiLineString","Polygon","MultiPolygon","indexes","m","ij","ik","bisect","splice","round","Error","box","floor","untransform","inputs","outputs","quantizePoint","quantizeGeometry","cosMinDistance","delta2","project","resampleLineTo","lambda0","a0","b0","c0","lambda1","a1","b1","c1","depth","stream","d2","c","phi2","lambda2","x2","y2","dx2","dy2","dz","lambda00","x00","y00","a00","b00","c00","resampleStream","lineStart","lineEnd","polygonStart","ringStart","polygonEnd","y","NaN","linePoint","lambda","phi","cartesian","ringPoint","ringEnd","resampleNone","transformRadians","scaleTranslate","sx","sy","invert","scaleTranslateRotate","alpha","cosAlpha","sinAlpha","ai","bi","ci","fi","projectionMutator","projectAt","rotate","projectResample","projectTransform","projectRotateTransform","cache","cacheStream","deltaLambda","deltaPhi","deltaGamma","theta","preclip","postclip","projection","recenter","center","compose","resample","reset","r","transformRotate","undefined","clipAngle","clipExtent","angle","reflectX","reflectY","precision","fitExtent","extent","fit","fitSize","size","fitWidth","width","fitHeight","height","noop","dispatch","test","Dispatch","parseTypenames","typenames","types","trim","split","indexOf","slice","hasOwnProperty","callback","on","typename","T","copy","that","args","preventDefault","stopImmediatePropagation","root","view","selection","noevent","__noselect","style","MozUserSelect","yesdrag","noclick","setTimeout","rho","SQRT2","cosh","exp","taskHead","taskTail","S","ux0","uy0","w0","ux1","uy1","w1","log","d1","sqrt","r0","r1","s","coshr0","u","sinh","duration","timeout","interval","clockLast","clockNow","clockSkew","clock","performance","now","Date","setFrame","window","requestAnimationFrame","bind","clearNow","Timer","_call","_time","_next","timer","delay","time","restart","wake","timerFlush","t0","t2","t1","sleep","nap","poke","clearTimeout","clearInterval","setInterval","TypeError","stop","elapsed","emptyOn","emptyTween","schedules","__transition","self","tween","state","__data__","index","tick","ease","create","timing","init","schedule","cssNode","cssRoot","cssView","svgNode","active","empty","degrees","PI","translateX","translateY","skewX","scaleX","scaleY","d","atan2","atan","interpolateTransform","parse","pxComma","pxParen","degParen","q","xa","ya","xb","yb","number","join","interpolateTransformCss","createElement","defaultView","getComputedStyle","appendChild","getPropertyValue","removeChild","decompose","interpolateTransformSvg","createElementNS","setAttribute","baseVal","consolidate","matrix","tweenRemove","tween0","tween1","tweenFunction","tweenValue","transition","_id","each","factory","extend","parent","definition","Object","Color","reI","reN","reP","reHex","reRgbInteger","RegExp","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","format","l","toLowerCase","exec","parseInt","rgbn","Rgb","rgba","hsla","rgbConvert","opacity","rgb_formatHex","hex","rgb_formatRgb","isNaN","max","min","h","Hsl","hslConvert","hsl2rgb","m1","m2","basis","v0","v1","v2","v3","t3","define","channels","assign","displayable","formatHsl","brighter","pow","darker","linear","gamma","nogamma","exponential","constant","color","rgbGamma","rgbSpline","spline","colors","values","reA","reB","source","am","bm","bs","lastIndex","one","zero","attrRemove","removeAttribute","attrRemoveNS","fullname","removeAttributeNS","space","attrConstant","interpolate","value1","string00","interpolate0","string1","string0","getAttribute","attrConstantNS","getAttributeNS","attrFunction","string10","attrFunctionNS","attrInterpolate","attrInterpolateNS","setAttributeNS","attrTweenNS","i0","_value","attrTween","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","onFunction","listener","on0","on1","sit","every","Selection","styleRemove","removeProperty","styleInterpolate","priority","setProperty","styleTween","textInterpolate","textContent","textTween","Transition","parents","_groups","_parents","_name","newId","selection_prototype","select","subgroups","subnode","subgroup","selectAll","selectorAll","child","children","inherit","match","matcher","merge","groups0","groups1","m0","merges","group0","group1","id0","id1","nodes","attr","namespace","styleNull","styleFunction","listener0","event","styleMaybeRemove","styleConstant","text","textFunction","textConstant","Promise","resolve","reject","cancel","interrupt","defaultTiming","ZoomEvent","target","Transform","applyX","applyY","location","invertX","invertY","rescaleX","domain","range","rescaleY","__zoom","defaultFilter","ctrlKey","button","defaultExtent","SVGElement","ownerSVGElement","hasAttribute","viewBox","clientWidth","clientHeight","defaultTransform","defaultWheelDelta","deltaY","deltaMode","defaultTouchable","navigator","maxTouchPoints","defaultConstrain","translateExtent","dx0","dx1","dy0","dy1","touchstarting","touchending","constrain","wheelDelta","touchable","scaleExtent","listeners","clickDistance2","zoom","property","wheeled","mousedowned","dblclicked","touchstarted","touchmoved","touchended","centroid","gesture","w","clean","__zooming","Gesture","taps","mouse","wheel","wheelidled","v","mousemoved","mouseupped","clientX","clientY","moved","k1","shiftKey","started","changedTouches","touch","identifier","touch0","touch1","l0","l1","dl","collection","scaleBy","scaleTo","k0","translateBy","translateTo","emit","clickDistance","xhtml","svg","xlink","xml","xmlns","update","EnterNode","datum","ownerDocument","namespaceURI","_parent","insertBefore","next","querySelector","bindIndex","enter","exit","data","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","keyValues","ascending","propertyRemove","propertyConstant","propertyFunction","classArray","string","classList","ClassList","_node","_names","classedAdd","names","list","add","classedRemove","classedTrue","classedFalse","classedFunction","contains","textRemove","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","lower","previousSibling","firstChild","constantNull","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","dispatchEvent","params","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","enterGroup","updateGroup","previous","i1","_enter","_exit","sparse","onenter","append","onupdate","onexit","order","compareDocumentPosition","sort","compareNode","compare","sortgroups","sortgroup","classed","html","insert","before","deep","Intersection","other","entry","z","link","subject","clip","segments","segment","compareIntersection","startInside","current","isSubject","sum","longitude","sinPhi","normal","winding","point0","phi0","sinPhi0","cosPhi0","sinPhi1","cosPhi1","point1","phi1","delta","sign","absDelta","antimeridian","intersection","phiArc","createSVGPoint","matrixTransform","getScreenCTM","inverse","rect","getBoundingClientRect","left","clientLeft","top","clientTop","ReadNext","sectionID","pageID","menu","findObject","menuData","content","className","to","href","path","featured_image","alt","_clean","sign0","sign1","sinLambda0Lambda1","clipAntimeridianIntersect","from","direction","filterEvents","mouseenter","mouseleave","filterContextListener","contextListener","related","relatedTarget","event1","event0","onRemove","__on","removeEventListener","capture","onAdd","wrap","addEventListener","customEvent","matches","$export","clipRectangle","visible","corner","comparePoint","ca","cb","x__","y__","v__","x_","y_","v_","first","activeStream","bufferStream","clipStream","rejoin","result","polygonInside","cleanInside","ax","ay","styleValue","toObject","toAbsoluteIndex","toLength","module","exports","O","aLen","endPos","lines","shift","cr","radius","smallRadius","notHemisphere","intersect","two","pa","pb","n1","n2","n2n2","n1n2","determinant","c2","n1xn2","A","B","uu","polar","q1","code","v00","point2","epsilon","epsilon2","pi","halfPi","quarterPi","tau","radians","cos","ceil","sin","acos","asin","haversin","boundsStream","bounds","default","isArray","Symbol","iterator","done","return","geoPath","createContext","projectionConfig","M","E","parallels","N","C","useMemo","useCallback","Provider","propTypes","oneOfType","func","feature","keys","geography","parseGeographies","useContext","useState","useEffect","fetch","then","ok","statusText","json","catch","console","geographies","rsmKey","svgPath","onMouseEnter","onMouseLeave","onMouseDown","onMouseUp","onFocus","onBlur","tabIndex","memo","fill","stroke","step","geoGraticule","filterZoomEvent","onMoveStart","onMoveEnd","onMove","useRef","P","Z","G","L","F","D","U","W","R","I","dragging","zoomIdentity","mapRef","position","transformString","minZoom","maxZoom","ref","arrayOf","strokeWidth","Fragment","pointerEvents","connectorProps","curve","Annotation","ComposableMap","Geographies","Geography","Graticule","Line","Marker","Sphere","ZoomableGroup","useGeographies","useZoomPan","defineProperty","creatorInherit","uri","creatorFixed","SQRT1_2","millerRaw","LendingMapPattern","stopsNumber","patternSize","stops","offset","gradientUnits","spreadMethod","stopColor","LendingMapPatterns","patterns","lendingMapData","dataItem","agreements","getColors","colorNames","colorValues","patternID","pattern","addCommas","numberString","replace","formatNumber","includes","roundNumber","convertTo","decimals","convertNumber","Number","LendingMap","lendingMapComponent","mapWrapper","mapOverlayRef","mapIsActive","setMapIsActive","mapFilter","setMapFilter","mapTooltipActive","setMapTooltipActive","mapTooltipCountry","setMapTooltipCountry","mapTooltipCoordinates","setMapTooltipCoordinates","mapAgreementHighlights","setMapAgreementHighlights","mapAgreementButtonHovered","setMapAgreementButtonHovered","mapOverlayIsActive","setMapOverlayIsActive","mapOverlayAgreementAbbreviation","setMapOverlayAgreementAbbreviation","customProjection","processedData","lendingMapFilters","slug","dataset","reduce","acc","country","agreement","filterDataByFilter","filteredData","toggleMapOverlay","agreementAbbreviation","body","handleScroll","innerHeight","bottom","handleCountryMouseEnter","targetRect","right","handleCountryMouseLeave","handleKeydown","keyCode","aria-labelledby","aria-pressed","aria-controls","onClick","role","title","description","onChange","handleSelectChange","aria-label","geo","CONTINENT","ISO_A2","filteredCountry","activeCountry","getFill","aria-haspopup","lakes","LendingMapTooltip","LendingMapFooter","LendingMapOverlay","data-active","countryAgreement","lendingMapAgreements","abbreviation","iso_a2","amount","AgreementTypeKey","augmented","approval_date","highlightedCountry","agreementTotal","getAgreementTotal","agreementTotalIsNotZero","parseFloat","uppercase","filterTitle","disabled","returnFocus","noFocusGuards","aria-hidden","details","AgreementOverlaySection","footnotes","dangerouslySetInnerHTML","__html","AgreementOverlaySectionTable","countries","filterDataByAgreement","class","rel","datasetAgreement","item","Lending","withPrefix","page","fitBounds","spherical","cosPhi","cartesianDot","cartesianCross","cartesianAddInPlace","cartesianScale","vector","cartesianNormalizeInPlace","none","prefix","rotationIdentity","rotateRadians","rotationLambda","rotationPhiGamma","forwardRotationLambda","rotation","cosDeltaPhi","sinDeltaPhi","cosDeltaGamma","sinDeltaGamma","forward","phi00","areaRingSum","adder","areaSum","areaStream","areaRingStart","areaRingEnd","areaRing","sphere","areaPointFirst","areaPoint","dLambda","sdLambda","adLambda","ranges","deltaSum","boundsPoint","boundsLineStart","boundsLineEnd","boundsRingPoint","boundsRingStart","boundsRingEnd","equatorial","inflection","phii","lambdai","rangeCompare","rangeContains","W0","W1","Z0","Z1","X2","Y2","Z2","z0","merged","deltaMax","centroidStream","centroidPoint","centroidLineStart","centroidLineEnd","centroidRingStart","centroidRingEnd","centroidPointCartesian","centroidLinePointFirst","centroidLinePoint","centroidRingPointFirst","centroidRingPoint","cx","cy","cz","_stream","lengthSum","lengthStream","lengthPointFirst","lengthLineEnd","lengthPoint","cosDelta","containsObjectType","Feature","containsGeometry","FeatureCollection","containsGeometryType","Point","containsPoint","MultiPoint","containsLine","containsPolygon","GeometryCollection","distance","ao","bo","ab","polygonContains","ringRadians","pointRadians","graticuleX","graticuleY","X1","X0","Y1","Y0","X","Y","DX","DY","graticule","outline","extentMajor","extentMinor","stepMajor","stepMinor","graticule10","cy0","sy0","cy1","sy1","kx0","ky0","kx1","ky1","centroidPointFirstLine","centroidPointLine","centroidPointFirstRing","centroidPointRing","PathContext","context","_context","_radius","pointRadius","_line","_point","closePath","moveTo","lineTo","lengthRing","PathString","_string","_circle","projectionStream","contextStream","measure","conicProjection","conicEqualAreaRaw","cylindricalEqualAreaRaw","r0y","conicEqualArea","lower48Point","alaskaPoint","hawaiiPoint","lower48","albers","alaska","hawaii","pointStream","albersUsa","streams","azimuthalRaw","azimuthalInvert","sc","cc","azimuthalEqualAreaRaw","cxcy","azimuthalEquidistantRaw","mercatorRaw","mercatorProjection","reclip","tany","conicConformalRaw","fy","equirectangularRaw","conicEquidistantRaw","gy","nx","A1","A2","A3","A4","equalEarthRaw","l2","l6","gnomonicRaw","sa","tx","ty","naturalEarth1Raw","phi4","orthographicRaw","stereographicRaw","transverseMercatorRaw","validSegment","sink","clipLine","ringBuffer","ringSink","polygonStarted","pointRing","pointVisible","pointLine","ringSegments","transformer","methods","TransformStream","createHTML","url","streamGeometry","streamGeometryType","streamObjectType","streamLine","streamPolygon","closed","coordinate","Adder","_add","temp","valueOf","bv","av","arrays","circleStream","cosRadius","sinRadius","circleRadius","circle"],"mappings":"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","file":"component---src-pages-what-we-do-lending-js-a489bac66b5cd57914cc.js","sourcesContent":["import creator from \"./creator\";\nimport select from \"./select\";\nexport default function (name) {\n return select(creator(name).call(document.documentElement));\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.object.to-string\";\nvar nextId = 0;\nexport default function local() {\n return new Local();\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function get(node) {\n var id = this._;\n\n while (!(id in node)) {\n if (!(node = node.parentNode)) return;\n }\n\n return node[id];\n },\n set: function set(node, value) {\n return node[this._] = value;\n },\n remove: function remove(node) {\n return this._ in node && delete node[this._];\n },\n toString: function toString() {\n return this._;\n }\n};","import { Selection, root } from \"./selection/index\";\nexport default function (selector) {\n return typeof selector === \"string\" ? new Selection([document.querySelectorAll(selector)], [document.documentElement]) : new Selection([selector == null ? [] : selector], root);\n}","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\nexport default function (node, touches) {\n if (touches == null) touches = sourceEvent().touches;\n\n for (var i = 0, n = touches ? touches.length : 0, points = new Array(n); i < n; ++i) {\n points[i] = point(node, touches[i]);\n }\n\n return points;\n}","export default function (x) {\n return x;\n}","import identity from \"./identity.js\";\nexport default function (transform) {\n if (transform == null) return identity;\n var x0,\n y0,\n kx = transform.scale[0],\n ky = transform.scale[1],\n dx = transform.translate[0],\n dy = transform.translate[1];\n return function (input, i) {\n if (!i) x0 = y0 = 0;\n var j = 2,\n n = input.length,\n output = new Array(n);\n output[0] = (x0 += input[0]) * kx + dx;\n output[1] = (y0 += input[1]) * ky + dy;\n\n while (j < n) {\n output[j] = input[j], ++j;\n }\n\n return output;\n };\n}","import transform from \"./transform.js\";\nexport default function (topology) {\n var t = transform(topology.transform),\n key,\n x0 = Infinity,\n y0 = x0,\n x1 = -x0,\n y1 = -x0;\n\n function bboxPoint(p) {\n p = t(p);\n if (p[0] < x0) x0 = p[0];\n if (p[0] > x1) x1 = p[0];\n if (p[1] < y0) y0 = p[1];\n if (p[1] > y1) y1 = p[1];\n }\n\n function bboxGeometry(o) {\n switch (o.type) {\n case \"GeometryCollection\":\n o.geometries.forEach(bboxGeometry);\n break;\n\n case \"Point\":\n bboxPoint(o.coordinates);\n break;\n\n case \"MultiPoint\":\n o.coordinates.forEach(bboxPoint);\n break;\n }\n }\n\n topology.arcs.forEach(function (arc) {\n var i = -1,\n n = arc.length,\n p;\n\n while (++i < n) {\n p = t(arc[i], i);\n if (p[0] < x0) x0 = p[0];\n if (p[0] > x1) x1 = p[0];\n if (p[1] < y0) y0 = p[1];\n if (p[1] > y1) y1 = p[1];\n }\n });\n\n for (key in topology.objects) {\n bboxGeometry(topology.objects[key]);\n }\n\n return [x0, y0, x1, y1];\n}","import reverse from \"./reverse.js\";\nimport transform from \"./transform.js\";\nexport default function (topology, o) {\n if (typeof o === \"string\") o = topology.objects[o];\n return o.type === \"GeometryCollection\" ? {\n type: \"FeatureCollection\",\n features: o.geometries.map(function (o) {\n return feature(topology, o);\n })\n } : feature(topology, o);\n}\n\nfunction feature(topology, o) {\n var id = o.id,\n bbox = o.bbox,\n properties = o.properties == null ? {} : o.properties,\n geometry = object(topology, o);\n return id == null && bbox == null ? {\n type: \"Feature\",\n properties: properties,\n geometry: geometry\n } : bbox == null ? {\n type: \"Feature\",\n id: id,\n properties: properties,\n geometry: geometry\n } : {\n type: \"Feature\",\n id: id,\n bbox: bbox,\n properties: properties,\n geometry: geometry\n };\n}\n\nexport function object(topology, o) {\n var transformPoint = transform(topology.transform),\n arcs = topology.arcs;\n\n function arc(i, points) {\n if (points.length) points.pop();\n\n for (var a = arcs[i < 0 ? ~i : i], k = 0, n = a.length; k < n; ++k) {\n points.push(transformPoint(a[k], k));\n }\n\n if (i < 0) reverse(points, n);\n }\n\n function point(p) {\n return transformPoint(p);\n }\n\n function line(arcs) {\n var points = [];\n\n for (var i = 0, n = arcs.length; i < n; ++i) {\n arc(arcs[i], points);\n }\n\n if (points.length < 2) points.push(points[0]); // This should never happen per the specification.\n\n return points;\n }\n\n function ring(arcs) {\n var points = line(arcs);\n\n while (points.length < 4) {\n points.push(points[0]);\n } // This may happen if an arc has only two points.\n\n\n return points;\n }\n\n function polygon(arcs) {\n return arcs.map(ring);\n }\n\n function geometry(o) {\n var type = o.type,\n coordinates;\n\n switch (type) {\n case \"GeometryCollection\":\n return {\n type: type,\n geometries: o.geometries.map(geometry)\n };\n\n case \"Point\":\n coordinates = point(o.coordinates);\n break;\n\n case \"MultiPoint\":\n coordinates = o.coordinates.map(point);\n break;\n\n case \"LineString\":\n coordinates = line(o.arcs);\n break;\n\n case \"MultiLineString\":\n coordinates = o.arcs.map(line);\n break;\n\n case \"Polygon\":\n coordinates = polygon(o.arcs);\n break;\n\n case \"MultiPolygon\":\n coordinates = o.arcs.map(polygon);\n break;\n\n default:\n return null;\n }\n\n return {\n type: type,\n coordinates: coordinates\n };\n }\n\n return geometry(o);\n}","export default function (array, n) {\n var t,\n j = array.length,\n i = j - n;\n\n while (i < --j) {\n t = array[i], array[i++] = array[j], array[j] = t;\n }\n}","export default function (topology, arcs) {\n var stitchedArcs = {},\n fragmentByStart = {},\n fragmentByEnd = {},\n fragments = [],\n emptyIndex = -1; // Stitch empty arcs first, since they may be subsumed by other arcs.\n\n arcs.forEach(function (i, j) {\n var arc = topology.arcs[i < 0 ? ~i : i],\n t;\n\n if (arc.length < 3 && !arc[1][0] && !arc[1][1]) {\n t = arcs[++emptyIndex], arcs[emptyIndex] = i, arcs[j] = t;\n }\n });\n arcs.forEach(function (i) {\n var e = ends(i),\n start = e[0],\n end = e[1],\n f,\n g;\n\n if (f = fragmentByEnd[start]) {\n delete fragmentByEnd[f.end];\n f.push(i);\n f.end = end;\n\n if (g = fragmentByStart[end]) {\n delete fragmentByStart[g.start];\n var fg = g === f ? f : f.concat(g);\n fragmentByStart[fg.start = f.start] = fragmentByEnd[fg.end = g.end] = fg;\n } else {\n fragmentByStart[f.start] = fragmentByEnd[f.end] = f;\n }\n } else if (f = fragmentByStart[end]) {\n delete fragmentByStart[f.start];\n f.unshift(i);\n f.start = start;\n\n if (g = fragmentByEnd[start]) {\n delete fragmentByEnd[g.end];\n var gf = g === f ? f : g.concat(f);\n fragmentByStart[gf.start = g.start] = fragmentByEnd[gf.end = f.end] = gf;\n } else {\n fragmentByStart[f.start] = fragmentByEnd[f.end] = f;\n }\n } else {\n f = [i];\n fragmentByStart[f.start = start] = fragmentByEnd[f.end = end] = f;\n }\n });\n\n function ends(i) {\n var arc = topology.arcs[i < 0 ? ~i : i],\n p0 = arc[0],\n p1;\n if (topology.transform) p1 = [0, 0], arc.forEach(function (dp) {\n p1[0] += dp[0], p1[1] += dp[1];\n });else p1 = arc[arc.length - 1];\n return i < 0 ? [p1, p0] : [p0, p1];\n }\n\n function flush(fragmentByEnd, fragmentByStart) {\n for (var k in fragmentByEnd) {\n var f = fragmentByEnd[k];\n delete fragmentByStart[f.start];\n delete f.start;\n delete f.end;\n f.forEach(function (i) {\n stitchedArcs[i < 0 ? ~i : i] = 1;\n });\n fragments.push(f);\n }\n }\n\n flush(fragmentByEnd, fragmentByStart);\n flush(fragmentByStart, fragmentByEnd);\n arcs.forEach(function (i) {\n if (!stitchedArcs[i < 0 ? ~i : i]) fragments.push([i]);\n });\n return fragments;\n}","import { object } from \"./feature.js\";\nimport stitch from \"./stitch.js\";\nexport default function (topology) {\n return object(topology, meshArcs.apply(this, arguments));\n}\nexport function meshArcs(topology, object, filter) {\n var arcs, i, n;\n if (arguments.length > 1) arcs = extractArcs(topology, object, filter);else for (i = 0, arcs = new Array(n = topology.arcs.length); i < n; ++i) {\n arcs[i] = i;\n }\n return {\n type: \"MultiLineString\",\n arcs: stitch(topology, arcs)\n };\n}\n\nfunction extractArcs(topology, object, filter) {\n var arcs = [],\n geomsByArc = [],\n geom;\n\n function extract0(i) {\n var j = i < 0 ? ~i : i;\n (geomsByArc[j] || (geomsByArc[j] = [])).push({\n i: i,\n g: geom\n });\n }\n\n function extract1(arcs) {\n arcs.forEach(extract0);\n }\n\n function extract2(arcs) {\n arcs.forEach(extract1);\n }\n\n function extract3(arcs) {\n arcs.forEach(extract2);\n }\n\n function geometry(o) {\n switch (geom = o, o.type) {\n case \"GeometryCollection\":\n o.geometries.forEach(geometry);\n break;\n\n case \"LineString\":\n extract1(o.arcs);\n break;\n\n case \"MultiLineString\":\n case \"Polygon\":\n extract2(o.arcs);\n break;\n\n case \"MultiPolygon\":\n extract3(o.arcs);\n break;\n }\n }\n\n geometry(object);\n geomsByArc.forEach(filter == null ? function (geoms) {\n arcs.push(geoms[0].i);\n } : function (geoms) {\n if (filter(geoms[0].g, geoms[geoms.length - 1].g)) arcs.push(geoms[0].i);\n });\n return arcs;\n}","import { object } from \"./feature.js\";\nimport stitch from \"./stitch.js\";\n\nfunction planarRingArea(ring) {\n var i = -1,\n n = ring.length,\n a,\n b = ring[n - 1],\n area = 0;\n\n while (++i < n) {\n a = b, b = ring[i], area += a[0] * b[1] - a[1] * b[0];\n }\n\n return Math.abs(area); // Note: doubled area!\n}\n\nexport default function (topology) {\n return object(topology, mergeArcs.apply(this, arguments));\n}\nexport function mergeArcs(topology, objects) {\n var polygonsByArc = {},\n polygons = [],\n groups = [];\n objects.forEach(geometry);\n\n function geometry(o) {\n switch (o.type) {\n case \"GeometryCollection\":\n o.geometries.forEach(geometry);\n break;\n\n case \"Polygon\":\n extract(o.arcs);\n break;\n\n case \"MultiPolygon\":\n o.arcs.forEach(extract);\n break;\n }\n }\n\n function extract(polygon) {\n polygon.forEach(function (ring) {\n ring.forEach(function (arc) {\n (polygonsByArc[arc = arc < 0 ? ~arc : arc] || (polygonsByArc[arc] = [])).push(polygon);\n });\n });\n polygons.push(polygon);\n }\n\n function area(ring) {\n return planarRingArea(object(topology, {\n type: \"Polygon\",\n arcs: [ring]\n }).coordinates[0]);\n }\n\n polygons.forEach(function (polygon) {\n if (!polygon._) {\n var group = [],\n neighbors = [polygon];\n polygon._ = 1;\n groups.push(group);\n\n while (polygon = neighbors.pop()) {\n group.push(polygon);\n polygon.forEach(function (ring) {\n ring.forEach(function (arc) {\n polygonsByArc[arc < 0 ? ~arc : arc].forEach(function (polygon) {\n if (!polygon._) {\n polygon._ = 1;\n neighbors.push(polygon);\n }\n });\n });\n });\n }\n }\n });\n polygons.forEach(function (polygon) {\n delete polygon._;\n });\n return {\n type: \"MultiPolygon\",\n arcs: groups.map(function (polygons) {\n var arcs = [],\n n; // Extract the exterior (unique) arcs.\n\n polygons.forEach(function (polygon) {\n polygon.forEach(function (ring) {\n ring.forEach(function (arc) {\n if (polygonsByArc[arc < 0 ? ~arc : arc].length < 2) {\n arcs.push(arc);\n }\n });\n });\n }); // Stitch the arcs into one or more rings.\n\n arcs = stitch(topology, arcs); // If more than one ring is returned,\n // at most one of these rings can be the exterior;\n // choose the one with the greatest absolute area.\n\n if ((n = arcs.length) > 1) {\n for (var i = 1, k = area(arcs[0]), ki, t; i < n; ++i) {\n if ((ki = area(arcs[i])) > k) {\n t = arcs[0], arcs[0] = arcs[i], arcs[i] = t, k = ki;\n }\n }\n }\n\n return arcs;\n }).filter(function (arcs) {\n return arcs.length > 0;\n })\n };\n}","export default function (a, x) {\n var lo = 0,\n hi = a.length;\n\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (a[mid] < x) lo = mid + 1;else hi = mid;\n }\n\n return lo;\n}","import bisect from \"./bisect.js\";\nexport default function (objects) {\n var indexesByArc = {},\n // arc index -> array of object indexes\n neighbors = objects.map(function () {\n return [];\n });\n\n function line(arcs, i) {\n arcs.forEach(function (a) {\n if (a < 0) a = ~a;\n var o = indexesByArc[a];\n if (o) o.push(i);else indexesByArc[a] = [i];\n });\n }\n\n function polygon(arcs, i) {\n arcs.forEach(function (arc) {\n line(arc, i);\n });\n }\n\n function geometry(o, i) {\n if (o.type === \"GeometryCollection\") o.geometries.forEach(function (o) {\n geometry(o, i);\n });else if (o.type in geometryType) geometryType[o.type](o.arcs, i);\n }\n\n var geometryType = {\n LineString: line,\n MultiLineString: polygon,\n Polygon: polygon,\n MultiPolygon: function MultiPolygon(arcs, i) {\n arcs.forEach(function (arc) {\n polygon(arc, i);\n });\n }\n };\n objects.forEach(geometry);\n\n for (var i in indexesByArc) {\n for (var indexes = indexesByArc[i], m = indexes.length, j = 0; j < m; ++j) {\n for (var k = j + 1; k < m; ++k) {\n var ij = indexes[j],\n ik = indexes[k],\n n;\n if ((n = neighbors[ij])[i = bisect(n, ik)] !== ik) n.splice(i, 0, ik);\n if ((n = neighbors[ik])[i = bisect(n, ij)] !== ij) n.splice(i, 0, ij);\n }\n }\n }\n\n return neighbors;\n}","import identity from \"./identity.js\";\nexport default function (transform) {\n if (transform == null) return identity;\n var x0,\n y0,\n kx = transform.scale[0],\n ky = transform.scale[1],\n dx = transform.translate[0],\n dy = transform.translate[1];\n return function (input, i) {\n if (!i) x0 = y0 = 0;\n var j = 2,\n n = input.length,\n output = new Array(n),\n x1 = Math.round((input[0] - dx) / kx),\n y1 = Math.round((input[1] - dy) / ky);\n output[0] = x1 - x0, x0 = x1;\n output[1] = y1 - y0, y0 = y1;\n\n while (j < n) {\n output[j] = input[j], ++j;\n }\n\n return output;\n };\n}","import bbox from \"./bbox.js\";\nimport untransform from \"./untransform.js\";\nexport default function (topology, transform) {\n if (topology.transform) throw new Error(\"already quantized\");\n\n if (!transform || !transform.scale) {\n if (!((n = Math.floor(transform)) >= 2)) throw new Error(\"n must be ≥2\");\n box = topology.bbox || bbox(topology);\n var x0 = box[0],\n y0 = box[1],\n x1 = box[2],\n y1 = box[3],\n n;\n transform = {\n scale: [x1 - x0 ? (x1 - x0) / (n - 1) : 1, y1 - y0 ? (y1 - y0) / (n - 1) : 1],\n translate: [x0, y0]\n };\n } else {\n box = topology.bbox;\n }\n\n var t = untransform(transform),\n box,\n key,\n inputs = topology.objects,\n outputs = {};\n\n function quantizePoint(point) {\n return t(point);\n }\n\n function quantizeGeometry(input) {\n var output;\n\n switch (input.type) {\n case \"GeometryCollection\":\n output = {\n type: \"GeometryCollection\",\n geometries: input.geometries.map(quantizeGeometry)\n };\n break;\n\n case \"Point\":\n output = {\n type: \"Point\",\n coordinates: quantizePoint(input.coordinates)\n };\n break;\n\n case \"MultiPoint\":\n output = {\n type: \"MultiPoint\",\n coordinates: input.coordinates.map(quantizePoint)\n };\n break;\n\n default:\n return input;\n }\n\n if (input.id != null) output.id = input.id;\n if (input.bbox != null) output.bbox = input.bbox;\n if (input.properties != null) output.properties = input.properties;\n return output;\n }\n\n function quantizeArc(input) {\n var i = 0,\n j = 1,\n n = input.length,\n p,\n output = new Array(n); // pessimistic\n\n output[0] = t(input[0], 0);\n\n while (++i < n) {\n if ((p = t(input[i], i))[0] || p[1]) output[j++] = p;\n } // non-coincident points\n\n\n if (j === 1) output[j++] = [0, 0]; // an arc must have at least two points\n\n output.length = j;\n return output;\n }\n\n for (key in inputs) {\n outputs[key] = quantizeGeometry(inputs[key]);\n }\n\n return {\n type: \"Topology\",\n bbox: box,\n transform: transform,\n objects: outputs,\n arcs: topology.arcs.map(quantizeArc)\n };\n}","import { cartesian } from \"../cartesian.js\";\nimport { abs, asin, atan2, cos, epsilon, radians, sqrt } from \"../math.js\";\nimport { transformer } from \"../transform.js\";\nvar maxDepth = 16,\n // maximum depth of subdivision\ncosMinDistance = cos(30 * radians); // cos(minimum angular distance)\n\nexport default function (project, delta2) {\n return +delta2 ? resample(project, delta2) : resampleNone(project);\n}\n\nfunction resampleNone(project) {\n return transformer({\n point: function point(x, y) {\n x = project(x, y);\n this.stream.point(x[0], x[1]);\n }\n });\n}\n\nfunction resample(project, delta2) {\n function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0,\n dy = y1 - y0,\n d2 = dx * dx + dy * dy;\n\n if (d2 > 4 * delta2 && depth--) {\n var a = a0 + a1,\n b = b0 + b1,\n c = c0 + c1,\n m = sqrt(a * a + b * b + c * c),\n phi2 = asin(c /= m),\n lambda2 = abs(abs(c) - 1) < epsilon || abs(lambda0 - lambda1) < epsilon ? (lambda0 + lambda1) / 2 : atan2(b, a),\n p = project(lambda2, phi2),\n x2 = p[0],\n y2 = p[1],\n dx2 = x2 - x0,\n dy2 = y2 - y0,\n dz = dy * dx2 - dx * dy2;\n\n if (dz * dz / d2 > delta2 // perpendicular projected distance\n || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end\n || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) {\n // angular distance\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);\n }\n }\n }\n\n return function (stream) {\n var lambda00, x00, y00, a00, b00, c00, // first point\n lambda0, x0, y0, a0, b0, c0; // previous point\n\n var resampleStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function polygonStart() {\n stream.polygonStart();\n resampleStream.lineStart = ringStart;\n },\n polygonEnd: function polygonEnd() {\n stream.polygonEnd();\n resampleStream.lineStart = lineStart;\n }\n };\n\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n\n function lineStart() {\n x0 = NaN;\n resampleStream.point = linePoint;\n stream.lineStart();\n }\n\n function linePoint(lambda, phi) {\n var c = cartesian([lambda, phi]),\n p = project(lambda, phi);\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n\n function lineEnd() {\n resampleStream.point = point;\n stream.lineEnd();\n }\n\n function ringStart() {\n lineStart();\n resampleStream.point = ringPoint;\n resampleStream.lineEnd = ringEnd;\n }\n\n function ringPoint(lambda, phi) {\n linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resampleStream.point = linePoint;\n }\n\n function ringEnd() {\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);\n resampleStream.lineEnd = lineEnd;\n lineEnd();\n }\n\n return resampleStream;\n };\n}","import clipAntimeridian from \"../clip/antimeridian.js\";\nimport clipCircle from \"../clip/circle.js\";\nimport clipRectangle from \"../clip/rectangle.js\";\nimport compose from \"../compose.js\";\nimport identity from \"../identity.js\";\nimport { cos, degrees, radians, sin, sqrt } from \"../math.js\";\nimport { rotateRadians } from \"../rotation.js\";\nimport { transformer } from \"../transform.js\";\nimport { fitExtent, fitSize, fitWidth, fitHeight } from \"./fit.js\";\nimport resample from \"./resample.js\";\nvar transformRadians = transformer({\n point: function point(x, y) {\n this.stream.point(x * radians, y * radians);\n }\n});\n\nfunction transformRotate(rotate) {\n return transformer({\n point: function point(x, y) {\n var r = rotate(x, y);\n return this.stream.point(r[0], r[1]);\n }\n });\n}\n\nfunction scaleTranslate(k, dx, dy, sx, sy) {\n function transform(x, y) {\n x *= sx;\n y *= sy;\n return [dx + k * x, dy - k * y];\n }\n\n transform.invert = function (x, y) {\n return [(x - dx) / k * sx, (dy - y) / k * sy];\n };\n\n return transform;\n}\n\nfunction scaleTranslateRotate(k, dx, dy, sx, sy, alpha) {\n var cosAlpha = cos(alpha),\n sinAlpha = sin(alpha),\n a = cosAlpha * k,\n b = sinAlpha * k,\n ai = cosAlpha / k,\n bi = sinAlpha / k,\n ci = (sinAlpha * dy - cosAlpha * dx) / k,\n fi = (sinAlpha * dx + cosAlpha * dy) / k;\n\n function transform(x, y) {\n x *= sx;\n y *= sy;\n return [a * x - b * y + dx, dy - b * x - a * y];\n }\n\n transform.invert = function (x, y) {\n return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)];\n };\n\n return transform;\n}\n\nexport default function projection(project) {\n return projectionMutator(function () {\n return project;\n })();\n}\nexport function projectionMutator(projectAt) {\n var project,\n k = 150,\n // scale\n x = 480,\n y = 250,\n // translate\n lambda = 0,\n phi = 0,\n // center\n deltaLambda = 0,\n deltaPhi = 0,\n deltaGamma = 0,\n rotate,\n // pre-rotate\n alpha = 0,\n // post-rotate angle\n sx = 1,\n // reflectX\n sy = 1,\n // reflectX\n theta = null,\n preclip = clipAntimeridian,\n // pre-clip angle\n x0 = null,\n y0,\n x1,\n y1,\n postclip = identity,\n // post-clip extent\n delta2 = 0.5,\n // precision\n projectResample,\n projectTransform,\n projectRotateTransform,\n cache,\n cacheStream;\n\n function projection(point) {\n return projectRotateTransform(point[0] * radians, point[1] * radians);\n }\n\n function invert(point) {\n point = projectRotateTransform.invert(point[0], point[1]);\n return point && [point[0] * degrees, point[1] * degrees];\n }\n\n projection.stream = function (stream) {\n return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));\n };\n\n projection.preclip = function (_) {\n return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;\n };\n\n projection.postclip = function (_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n };\n\n projection.clipAngle = function (_) {\n return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees;\n };\n\n projection.clipExtent = function (_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n projection.scale = function (_) {\n return arguments.length ? (k = +_, recenter()) : k;\n };\n\n projection.translate = function (_) {\n return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n };\n\n projection.center = function (_) {\n return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];\n };\n\n projection.rotate = function (_) {\n return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];\n };\n\n projection.angle = function (_) {\n return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees;\n };\n\n projection.reflectX = function (_) {\n return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0;\n };\n\n projection.reflectY = function (_) {\n return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0;\n };\n\n projection.precision = function (_) {\n return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);\n };\n\n projection.fitExtent = function (extent, object) {\n return fitExtent(projection, extent, object);\n };\n\n projection.fitSize = function (size, object) {\n return fitSize(projection, size, object);\n };\n\n projection.fitWidth = function (width, object) {\n return fitWidth(projection, width, object);\n };\n\n projection.fitHeight = function (height, object) {\n return fitHeight(projection, height, object);\n };\n\n function recenter() {\n var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)),\n transform = (alpha ? scaleTranslateRotate : scaleTranslate)(k, x - center[0], y - center[1], sx, sy, alpha);\n rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma);\n projectTransform = compose(project, transform);\n projectRotateTransform = compose(rotate, projectTransform);\n projectResample = resample(projectTransform, delta2);\n return reset();\n }\n\n function reset() {\n cache = cacheStream = null;\n return projection;\n }\n\n return function () {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return recenter();\n };\n}","import \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.split\";\nvar noop = {\n value: function value() {}\n};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || t in _ || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function (t) {\n var name = \"\",\n i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {\n type: t,\n name: name\n };\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function on(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length; // If no callback was specified, return the callback of the given type and name.\n\n if (arguments.length < 2) {\n while (++i < n) {\n if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n }\n\n return;\n } // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n\n\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);else if (callback == null) for (t in _) {\n _[t] = set(_[t], typename.name, null);\n }\n }\n\n return this;\n },\n copy: function copy() {\n var copy = {},\n _ = this._;\n\n for (var t in _) {\n copy[t] = _[t].slice();\n }\n\n return new Dispatch(copy);\n },\n call: function call(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) {\n args[i] = arguments[i + 2];\n }\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) {\n t[i].value.apply(that, args);\n }\n },\n apply: function apply(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) {\n t[i].value.apply(that, args);\n }\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n\n if (callback != null) type.push({\n name: name,\n value: callback\n });\n return type;\n}\n\nexport default dispatch;","import { event } from \"d3-selection\";\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\nexport default function () {\n event.preventDefault();\n event.stopImmediatePropagation();\n}","import { select } from \"d3-selection\";\nimport noevent from \"./noevent.js\";\nexport default function (view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, true);\n\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, true);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n\n if (noclick) {\n selection.on(\"click.drag\", noevent, true);\n setTimeout(function () {\n selection.on(\"click.drag\", null);\n }, 0);\n }\n\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}","var rho = Math.SQRT2,\n rho2 = 2,\n rho4 = 4,\n epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n} // p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\n\n\nexport default function (p0, p1) {\n var ux0 = p0[0],\n uy0 = p0[1],\n w0 = p0[2],\n ux1 = p1[0],\n uy1 = p1[1],\n w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S; // Special case for u0 ≅ u1.\n\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n\n i = function i(t) {\n return [ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(rho * t * S)];\n };\n } // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n\n i = function i(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / cosh(rho * s + r0)];\n };\n }\n\n i.duration = S * 1000;\n return i;\n}","var frame = 0,\n // is an animation frame pending?\ntimeout = 0,\n // is a timeout pending?\ninterval = 0,\n // are any timers active?\npokeDelay = 1000,\n // how frequently we check for clock skew\ntaskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function (f) {\n setTimeout(f, 17);\n};\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call = this._time = this._next = null;\n}\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function restart(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;else taskHead = this;\n taskTail = this;\n }\n\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function stop() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\nexport function timer(callback, delay, time) {\n var t = new Timer();\n t.restart(callback, delay, time);\n return t;\n}\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n\n var t = taskHead,\n e;\n\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(),\n delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0,\n t1 = taskHead,\n t2,\n time = Infinity;\n\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}","import { Timer } from \"./timer.js\";\nexport default function (callback, delay, time) {\n var t = new Timer();\n delay = delay == null ? 0 : +delay;\n t.restart(function (elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}","import \"core-js/modules/es6.function.name\";\nimport { dispatch } from \"d3-dispatch\";\nimport { timer, timeout } from \"d3-timer\";\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\nexport default function (node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index,\n // For context during callback.\n group: group,\n // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween; // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time); // If the elapsed delay is less than our first sleep, start immediately.\n\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o; // If the state is not SCHEDULED, then we previously errored on start.\n\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue; // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n\n if (o.state === STARTED) return timeout(start); // Interrupt the active transition, if any.\n\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n } // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n } // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n\n\n timeout(function () {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n }); // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n\n self.state = STARTED; // Initialize the tween, deleting null tween.\n\n tween = new Array(n = self.tween.length);\n\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n } // Dispatch the end event.\n\n\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n\n for (var i in schedules) {\n return;\n } // eslint-disable-line no-unused-vars\n\n\n delete node.__transition;\n }\n}","import \"core-js/modules/es6.function.name\";\nimport { STARTING, ENDING, ENDED } from \"./transition/schedule.js\";\nexport default function (node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n if (!schedules) return;\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) {\n empty = false;\n continue;\n }\n\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}","import \"core-js/modules/es6.regexp.split\";\nimport decompose, { identity } from \"./decompose.js\";\nvar cssNode, cssRoot, cssView, svgNode;\nexport function parseCss(value) {\n if (value === \"none\") return identity;\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}","export default function (a, b) {\n return a = +a, b = +b, function (t) {\n return a * (1 - t) + b * t;\n };\n}","var degrees = 180 / Math.PI;\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\nexport default function (a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}","import number from \"../number.js\";\nimport { parseCss, parseSvg } from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({\n i: i - 4,\n x: number(xa, xb)\n }, {\n i: i - 2,\n x: number(ya, yb)\n });\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360;else if (b - a > 180) a += 360; // shortest path\n\n q.push({\n i: s.push(pop(s) + \"rotate(\", null, degParen) - 2,\n x: number(a, b)\n });\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({\n i: s.push(pop(s) + \"skewX(\", null, degParen) - 2,\n x: number(a, b)\n });\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({\n i: i - 4,\n x: number(xa, xb)\n }, {\n i: i - 2,\n x: number(ya, yb)\n });\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function (a, b) {\n var s = [],\n // string constants and placeholders\n q = []; // number interpolators\n\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n\n return function (t) {\n var i = -1,\n n = q.length,\n o;\n\n while (++i < n) {\n s[(o = q[i]).i] = o.x(t);\n }\n\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");","import \"core-js/modules/es6.function.name\";\nimport { get, set } from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function () {\n var schedule = set(this, id),\n tween = schedule.tween; // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error();\n return function () {\n var schedule = set(this, id),\n tween = schedule.tween; // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n\n for (var t = {\n name: name,\n value: value\n }, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function (name, value) {\n var id = this._id;\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n transition.each(function () {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n return function (node) {\n return get(node, id).value[name];\n };\n}","export default function (constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n\n for (var key in definition) {\n prototype[key] = definition[key];\n }\n\n return prototype;\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.object.assign\";\nimport \"core-js/modules/es6.regexp.constructor\";\nimport define, { extend } from \"./define.js\";\nexport function Color() {}\nvar _darker = 0.7;\nexport { _darker as darker };\n\nvar _brighter = 1 / _darker;\n\nexport { _brighter as brighter };\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] + \"\\\\)$\");\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};\ndefine(Color, color, {\n copy: function copy(channels) {\n return Object.assign(new this.constructor(), this, channels);\n },\n displayable: function displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex,\n // 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) : 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}\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\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}\ndefine(Rgb, rgb, extend(Color, {\n brighter: function brighter(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 darker(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 rgb() {\n return this;\n },\n displayable: function displayable() {\n return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1;\n },\n hex: rgb_formatHex,\n // 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;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\") + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + (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;else if (l <= 0 || l >= 1) h = s = NaN;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\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;else if (g === max) h = (b - r) / s + 2;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\n return new Hsl(h, s, l, o.opacity);\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 brighter(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 darker(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 rgb() {\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(hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), hsl2rgb(h, m1, m2), hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), this.opacity);\n },\n displayable: function displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;\n },\n formatHsl: function formatHsl() {\n var a = this.opacity;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\") + (this.h || 0) + \", \" + (this.s || 0) * 100 + \"%, \" + (this.l || 0) * 100 + \"%\" + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n/* From FvD 13.37, CSS Color Module Level 3 */\n\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;\n}","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1,\n t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6;\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}","export default function (x) {\n return function () {\n return x;\n };\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}\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}\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}","import { rgb as colorRgb } from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, { gamma } from \"./color.js\";\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 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,\n color;\n\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\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);","import { basis } from \"./basis.js\";\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}","import \"core-js/modules/es6.regexp.constructor\";\nimport number from \"./number.js\";\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,\n // scan index for next number in b\n am,\n // current match in a\n bm,\n // current match in b\n bs,\n // string preceding current number in b, if any\n i = -1,\n // index in s\n s = [],\n // string constants and placeholders\n q = []; // number interpolators\n // Coerce inputs to strings.\n\n a = a + \"\", b = b + \"\"; // Interpolate pairs of numbers in a & b.\n\n while ((am = reA.exec(a)) && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) {\n // 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\n if ((am = am[0]) === (bm = bm[0])) {\n // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else {\n // interpolate non-matching numbers\n s[++i] = null;\n q.push({\n i: i,\n x: number(am, bm)\n });\n }\n\n bi = reB.lastIndex;\n } // Add remains of b.\n\n\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 } // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n\n\n return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function (t) {\n for (var i = 0, o; i < b; ++i) {\n s[(o = q[i]).i] = o.x(t);\n }\n\n return s.join(\"\");\n });\n}","import { color } from \"d3-color\";\nimport { interpolateNumber, interpolateRgb, interpolateString } from \"d3-interpolate\";\nexport default function (a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber : b instanceof color ? interpolateRgb : (c = color(b)) ? (b = c, interpolateRgb) : interpolateString)(a, b);\n}","import { interpolateTransformSvg as interpolateTransform } from \"d3-interpolate\";\nimport { namespace } from \"d3-selection\";\nimport { tweenValue } from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function () {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function () {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function () {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function () {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00, string10, interpolate0;\n return function () {\n var string0,\n value1 = value(this),\n string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00, string10, interpolate0;\n return function () {\n var string0,\n value1 = value(this),\n string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function (name, value) {\n var fullname = namespace(name),\n i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\" ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value)) : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname) : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}","import { namespace } from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function (t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function (t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n\n tween._value = value;\n return tween;\n}\n\nexport default function (name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error();\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}","import { get, init } from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function () {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function () {\n init(this, id).delay = value;\n };\n}\n\nexport default function (value) {\n var id = this._id;\n return arguments.length ? this.each((typeof value === \"function\" ? delayFunction : delayConstant)(id, value)) : get(this.node(), id).delay;\n}","import { get, set } from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function () {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function () {\n set(this, id).duration = value;\n };\n}\n\nexport default function (value) {\n var id = this._id;\n return arguments.length ? this.each((typeof value === \"function\" ? durationFunction : durationConstant)(id, value)) : get(this.node(), id).duration;\n}","import { get, set } from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error();\n return function () {\n set(this, id).ease = value;\n };\n}\n\nexport default function (value) {\n var id = this._id;\n return arguments.length ? this.each(easeConstant(id, value)) : get(this.node(), id).ease;\n}","import \"core-js/modules/es6.regexp.split\";\nimport { get, set, init } from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function (t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0,\n on1,\n sit = start(name) ? init : set;\n return function () {\n var schedule = sit(this, id),\n on = schedule.on; // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n schedule.on = on1;\n };\n}\n\nexport default function (name, listener) {\n var id = this._id;\n return arguments.length < 2 ? get(this.node(), id).on.on(name) : this.each(onFunction(id, name, listener));\n}","function removeFunction(id) {\n return function () {\n var parent = this.parentNode;\n\n for (var i in this.__transition) {\n if (+i !== id) return;\n }\n\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function () {\n return this.on(\"end.remove\", removeFunction(this._id));\n}","import { selection } from \"d3-selection\";\nvar Selection = selection.prototype.constructor;\nexport default function () {\n return new Selection(this._groups, this._parents);\n}","import { interpolateTransformCss as interpolateTransform } from \"d3-interpolate\";\nimport { style } from \"d3-selection\";\nimport { set } from \"./schedule.js\";\nimport { tweenValue } from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00, string10, interpolate0;\n return function () {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function () {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function () {\n var string0 = style(this, name);\n return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00, string10, interpolate0;\n return function () {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0,\n on1,\n listener0,\n key = \"style.\" + name,\n event = \"end.\" + key,\n remove;\n return function () {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined; // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n schedule.on = on1;\n };\n}\n\nexport default function (name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this.styleTween(name, styleNull(name, i)).on(\"end.style.\" + name, styleRemove(name)) : typeof value === \"function\" ? this.styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value))).each(styleMaybeRemove(this._id, name)) : this.styleTween(name, styleConstant(name, i, value), priority).on(\"end.style.\" + name, null);\n}","function styleInterpolate(name, i, priority) {\n return function (t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n\n tween._value = value;\n return tween;\n}\n\nexport default function (name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error();\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}","function textInterpolate(i) {\n return function (t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n\n tween._value = value;\n return tween;\n}\n\nexport default function (value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error();\n return this.tween(key, textTween(value));\n}","import { selection } from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\nvar id = 0;\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\nexport default function transition(name) {\n return selection().transition(name);\n}\nexport function newId() {\n return ++id;\n}\nvar selection_prototype = selection.prototype;\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n end: transition_end\n};","import { selector } from \"d3-selection\";\nimport { Transition } from \"./index.js\";\nimport schedule, { get } from \"./schedule.js\";\nexport default function (select) {\n var name = this._name,\n id = this._id;\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}","import { selectorAll } from \"d3-selection\";\nimport { Transition } from \"./index.js\";\nimport schedule, { get } from \"./schedule.js\";\nexport default function (select) {\n var name = this._name,\n id = this._id;\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}","import { matcher } from \"d3-selection\";\nimport { Transition } from \"./index.js\";\nexport default function (match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}","import { Transition } from \"./index.js\";\nexport default function (transition) {\n if (transition._id !== this._id) throw new Error();\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}","import { Transition, newId } from \"./index.js\";\nimport schedule, { get } from \"./schedule.js\";\nexport default function () {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}","import { tweenValue } from \"./tween.js\";\n\nfunction textConstant(value) {\n return function () {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function () {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function (value) {\n return this.tween(\"text\", typeof value === \"function\" ? textFunction(tweenValue(this, \"text\", value)) : textConstant(value == null ? \"\" : value + \"\"));\n}","import \"core-js/modules/es6.promise\";\nimport \"core-js/modules/es6.object.to-string\";\nimport { set } from \"./schedule.js\";\nexport default function () {\n var on0,\n on1,\n that = this,\n id = that._id,\n size = that.size();\n return new Promise(function (resolve, reject) {\n var cancel = {\n value: reject\n },\n end = {\n value: function value() {\n if (--size === 0) resolve();\n }\n };\n that.each(function () {\n var schedule = set(this, id),\n on = schedule.on; // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n\n if (on !== on0) {\n on1 = (on0 = on).copy();\n\n on1._.cancel.push(cancel);\n\n on1._.interrupt.push(cancel);\n\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n });\n}","import { Transition, newId } from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport { easeCubicInOut } from \"d3-ease\";\nimport { now } from \"d3-timer\";\nvar defaultTiming = {\n time: null,\n // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n return defaultTiming.time = now(), defaultTiming;\n }\n }\n\n return timing;\n}\n\nexport default function (name) {\n var id, timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}","export function cubicIn(t) {\n return t * t * t;\n}\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}","import { selection } from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;","import interrupt from \"../interrupt.js\";\nexport default function (name) {\n return this.each(function () {\n interrupt(this, name);\n });\n}","import \"core-js/modules/es6.function.name\";\nimport { Transition } from \"./transition/index.js\";\nimport { SCHEDULED } from \"./transition/schedule.js\";\nvar root = [null];\nexport default function (node, name) {\n var schedules = node.__transition,\n schedule,\n i;\n\n if (schedules) {\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {\n return new Transition([[node]], root, name, +i);\n }\n }\n }\n\n return null;\n}","export default function (x) {\n return function () {\n return x;\n };\n}","export default function ZoomEvent(target, type, transform) {\n this.target = target;\n this.type = type;\n this.transform = transform;\n}","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\nTransform.prototype = {\n constructor: Transform,\n scale: function scale(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function translate(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function apply(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function applyX(x) {\n return x * this.k + this.x;\n },\n applyY: function applyY(y) {\n return y * this.k + this.y;\n },\n invert: function invert(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function invertX(x) {\n return (x - this.x) / this.k;\n },\n invertY: function invertY(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function rescaleX(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function rescaleY(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function toString() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\nexport var identity = new Transform(1, 0, 0);\ntransform.prototype = Transform.prototype;\nexport default function transform(node) {\n while (!node.__zoom) {\n if (!(node = node.parentNode)) return identity;\n }\n\n return node.__zoom;\n}","import { event } from \"d3-selection\";\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\nexport default function () {\n event.preventDefault();\n event.stopImmediatePropagation();\n}","import { dispatch } from \"d3-dispatch\";\nimport { dragDisable, dragEnable } from \"d3-drag\";\nimport { interpolateZoom } from \"d3-interpolate\";\nimport { event, customEvent, select, mouse, touch } from \"d3-selection\";\nimport { interrupt } from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport { Transform, identity } from \"./transform.js\";\nimport noevent, { nopropagation } from \"./noevent.js\"; // Ignore right-click, since that should open the context menu.\n\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta() {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || \"ontouchstart\" in this;\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1), dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1));\n}\n\nexport default function () {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0;\n\n function zoom(selection) {\n selection.property(\"__zoom\", defaultTransform).on(\"wheel.zoom\", wheeled).on(\"mousedown.zoom\", mousedowned).on(\"dblclick.zoom\", dblclicked).filter(touchable).on(\"touchstart.zoom\", touchstarted).on(\"touchmove.zoom\", touchmoved).on(\"touchend.zoom touchcancel.zoom\", touchended).style(\"touch-action\", \"none\").style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function (collection, transform, point) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n\n if (collection !== selection) {\n schedule(collection, transform, point);\n } else {\n selection.interrupt().each(function () {\n gesture(this, arguments).start().zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform).end();\n });\n }\n };\n\n zoom.scaleBy = function (selection, k, p) {\n zoom.scaleTo(selection, function () {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p);\n };\n\n zoom.scaleTo = function (selection, k, p) {\n zoom.transform(selection, function () {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p);\n };\n\n zoom.translateBy = function (selection, x, y) {\n zoom.transform(selection, function () {\n return constrain(this.__zoom.translate(typeof x === \"function\" ? x.apply(this, arguments) : x, typeof y === \"function\" ? y.apply(this, arguments) : y), extent.apply(this, arguments), translateExtent);\n });\n };\n\n zoom.translateTo = function (selection, x, y, p) {\n zoom.transform(selection, function () {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(typeof x === \"function\" ? -x.apply(this, arguments) : -x, typeof y === \"function\" ? -y.apply(this, arguments) : -y), e, translateExtent);\n }, p);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k,\n y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point) {\n transition.on(\"start.zoom\", function () {\n gesture(this, arguments).start();\n }).on(\"interrupt.zoom end.zoom\", function () {\n gesture(this, arguments).end();\n }).tween(\"zoom\", function () {\n var that = this,\n args = arguments,\n g = gesture(that, args),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function (t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else {\n var l = i(t),\n k = w / l[2];\n t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k);\n }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return !clean && that.__zooming || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n start: function start() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n\n return this;\n },\n zoom: function zoom(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function end() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n\n return this;\n },\n emit: function emit(type) {\n customEvent(new ZoomEvent(zoom, type, this.that.__zoom), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function wheeled() {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, arguments),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = mouse(this); // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n\n clearTimeout(g.wheel);\n } // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return; // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent();\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var g = gesture(this, arguments, true),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = mouse(this),\n x0 = event.clientX,\n y0 = event.clientY;\n dragDisable(event.view);\n nopropagation();\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved() {\n noevent();\n\n if (!g.moved) {\n var dx = event.clientX - x0,\n dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n\n g.zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = mouse(g.that), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped() {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent();\n g.end();\n }\n }\n\n function dblclicked() {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = mouse(this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, arguments), translateExtent);\n noevent();\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0);else select(this).call(zoom.transform, t1);\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, arguments, event.changedTouches.length === n),\n started,\n i,\n t,\n p;\n nopropagation();\n\n for (i = 0; i < n; ++i) {\n t = touches[i], p = touch(this, touches, t.identifier);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchstarting = setTimeout(function () {\n touchstarting = null;\n }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved() {\n if (!this.__zooming) return;\n var g = gesture(this, arguments),\n touches = event.changedTouches,\n n = touches.length,\n i,\n t,\n p,\n l;\n noevent();\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n g.taps = 0;\n\n for (i = 0; i < n; ++i) {\n t = touches[i], p = touch(this, touches, t.identifier);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n\n t = g.that.__zoom;\n\n if (g.touch1) {\n var p0 = g.touch0[0],\n l0 = g.touch0[1],\n p1 = g.touch1[0],\n l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n } else if (g.touch0) p = g.touch0[0], l = g.touch0[1];else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended() {\n if (!this.__zooming) return;\n var g = gesture(this, arguments),\n touches = event.changedTouches,\n n = touches.length,\n i,\n t;\n nopropagation();\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function () {\n touchending = null;\n }, touchDelay);\n\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);else {\n g.end(); // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n\n if (g.taps === 2) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n\n zoom.wheelDelta = function (_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function (_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function (_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function (_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function (_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function (_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function (_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function (_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function (_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function () {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function (_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n return zoom;\n}","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\nexport default function (node) {\n var event = sourceEvent();\n if (event.changedTouches) event = event.changedTouches[0];\n return point(node, event);\n}","export var xhtml = \"http://www.w3.org/1999/xhtml\";\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};","export default function (update) {\n return new Array(update.length);\n}","import sparse from \"./sparse\";\nimport { Selection } from \"./index\";\nexport default function () {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function appendChild(child) {\n return this._parent.insertBefore(child, this._next);\n },\n insertBefore: function insertBefore(child, next) {\n return this._parent.insertBefore(child, next);\n },\n querySelector: function querySelector(selector) {\n return this._parent.querySelector(selector);\n },\n querySelectorAll: function querySelectorAll(selector) {\n return this._parent.querySelectorAll(selector);\n }\n};","import { Selection } from \"./index\";\nimport { EnterNode } from \"./enter\";\nimport constant from \"../constant\";\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length; // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n } // Put any non-null nodes that don’t fit into exit.\n\n\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue; // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n } // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n\n\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n } // Add any remaining nodes that were not bound to data to exit.\n\n\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && nodeByKeyValue[keyValues[i]] === node) {\n exit[i] = node;\n }\n }\n}\n\nexport default function (value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function (d) {\n data[++j] = d;\n });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key); // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n\n while (!(next = updateGroup[i1]) && ++i1 < dataLength) {\n ;\n }\n\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}","import { Selection } from \"./index\";\nexport default function (compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}","export default function () {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}","import namespace from \"../namespace\";\n\nfunction attrRemove(name) {\n return function () {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function () {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function () {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function () {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function (name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local ? node.getAttributeNS(fullname.space, fullname.local) : node.getAttribute(fullname);\n }\n\n return this.each((value == null ? fullname.local ? attrRemoveNS : attrRemove : typeof value === \"function\" ? fullname.local ? attrFunctionNS : attrFunction : fullname.local ? attrConstantNS : attrConstant)(fullname, value));\n}","function propertyRemove(name) {\n return function () {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function () {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];else this[name] = v;\n };\n}\n\nexport default function (name, value) {\n return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === \"function\" ? propertyFunction : propertyConstant)(name, value)) : this.node()[name];\n}","import \"core-js/modules/es6.regexp.split\";\n\nfunction classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function add(name) {\n var i = this._names.indexOf(name);\n\n if (i < 0) {\n this._names.push(name);\n\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function remove(name) {\n var i = this._names.indexOf(name);\n\n if (i >= 0) {\n this._names.splice(i, 1);\n\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function contains(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node),\n i = -1,\n n = names.length;\n\n while (++i < n) {\n list.add(names[i]);\n }\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node),\n i = -1,\n n = names.length;\n\n while (++i < n) {\n list.remove(names[i]);\n }\n}\n\nfunction classedTrue(names) {\n return function () {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function () {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function () {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function (name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()),\n i = -1,\n n = names.length;\n\n while (++i < n) {\n if (!list.contains(names[i])) return false;\n }\n\n return true;\n }\n\n return this.each((typeof value === \"function\" ? classedFunction : value ? classedTrue : classedFalse)(names, value));\n}","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function () {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function () {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function (value) {\n return arguments.length ? this.each(value == null ? textRemove : (typeof value === \"function\" ? textFunction : textConstant)(value)) : this.node().textContent;\n}","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function () {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function () {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function (value) {\n return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === \"function\" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML;\n}","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function () {\n return this.each(raise);\n}","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function () {\n return this.each(lower);\n}","import creator from \"../creator\";\nimport selector from \"../selector\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function (name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function () {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function () {\n return this.each(remove);\n}","function selection_cloneShallow() {\n var clone = this.cloneNode(false),\n parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true),\n parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function (deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}","import defaultView from \"../window\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function () {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function () {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function (type, params) {\n return this.each((typeof params === \"function\" ? dispatchFunction : dispatchConstant)(type, params));\n}","import selection_select from \"./select\";\nimport selection_selectAll from \"./selectAll\";\nimport selection_filter from \"./filter\";\nimport selection_data from \"./data\";\nimport selection_enter from \"./enter\";\nimport selection_exit from \"./exit\";\nimport selection_join from \"./join\";\nimport selection_merge from \"./merge\";\nimport selection_order from \"./order\";\nimport selection_sort from \"./sort\";\nimport selection_call from \"./call\";\nimport selection_nodes from \"./nodes\";\nimport selection_node from \"./node\";\nimport selection_size from \"./size\";\nimport selection_empty from \"./empty\";\nimport selection_each from \"./each\";\nimport selection_attr from \"./attr\";\nimport selection_style from \"./style\";\nimport selection_property from \"./property\";\nimport selection_classed from \"./classed\";\nimport selection_text from \"./text\";\nimport selection_html from \"./html\";\nimport selection_raise from \"./raise\";\nimport selection_lower from \"./lower\";\nimport selection_append from \"./append\";\nimport selection_insert from \"./insert\";\nimport selection_remove from \"./remove\";\nimport selection_clone from \"./clone\";\nimport selection_datum from \"./datum\";\nimport selection_on from \"./on\";\nimport selection_dispatch from \"./dispatch\";\nexport var root = [null];\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\nexport default selection;","import { Selection } from \"./index\";\nimport selector from \"../selector\";\nexport default function (select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}","import { Selection } from \"./index\";\nimport selectorAll from \"../selectorAll\";\nexport default function (select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}","import { Selection } from \"./index\";\nimport matcher from \"../matcher\";\nexport default function (match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}","export default function (x) {\n return function () {\n return x;\n };\n}","import sparse from \"./sparse\";\nimport { Selection } from \"./index\";\nexport default function () {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}","export default function (onenter, onupdate, onexit) {\n var enter = this.enter(),\n update = this,\n exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove();else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}","import { Selection } from \"./index\";\nexport default function (selection) {\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}","export default function () {\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}","export default function () {\n var nodes = new Array(this.size()),\n i = -1;\n this.each(function () {\n nodes[++i] = this;\n });\n return nodes;\n}","export default function () {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}","export default function () {\n var size = 0;\n this.each(function () {\n ++size;\n });\n return size;\n}","export default function () {\n return !this.node();\n}","export default function (callback) {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}","import creator from \"../creator\";\nexport default function (name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function () {\n return this.appendChild(create.apply(this, arguments));\n });\n}","export default function (value) {\n return arguments.length ? this.property(\"__data__\", value) : this.node().__data__;\n}","import pointEqual from \"../pointEqual.js\";\nimport { epsilon } from \"../math.js\";\n\nfunction Intersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other; // another intersection\n\n this.e = entry; // is an entry?\n\n this.v = false; // visited\n\n this.n = this.p = null; // next & previous\n} // A generalized polygon clipping algorithm: given a polygon that has been cut\n// into its visible line segments, and rejoins the segments by interpolating\n// along the clip edge.\n\n\nexport default function (segments, compareIntersection, startInside, interpolate, stream) {\n var subject = [],\n clip = [],\n i,\n n;\n segments.forEach(function (segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n,\n p0 = segment[0],\n p1 = segment[n],\n x;\n\n if (pointEqual(p0, p1)) {\n if (!p0[2] && !p1[2]) {\n stream.lineStart();\n\n for (i = 0; i < n; ++i) {\n stream.point((p0 = segment[i])[0], p0[1]);\n }\n\n stream.lineEnd();\n return;\n } // handle degenerate cases by moving the point\n\n\n p1[0] += 2 * epsilon;\n }\n\n subject.push(x = new Intersection(p0, segment, null, true));\n clip.push(x.o = new Intersection(p0, null, x, false));\n subject.push(x = new Intersection(p1, segment, null, false));\n clip.push(x.o = new Intersection(p1, null, x, true));\n });\n if (!subject.length) return;\n clip.sort(compareIntersection);\n link(subject);\n link(clip);\n\n for (i = 0, n = clip.length; i < n; ++i) {\n clip[i].e = startInside = !startInside;\n }\n\n var start = subject[0],\n points,\n point;\n\n while (1) {\n // Find first unvisited intersection.\n var current = start,\n isSubject = true;\n\n while (current.v) {\n if ((current = current.n) === start) return;\n }\n\n points = current.z;\n stream.lineStart();\n\n do {\n current.v = current.o.v = true;\n\n if (current.e) {\n if (isSubject) {\n for (i = 0, n = points.length; i < n; ++i) {\n stream.point((point = points[i])[0], point[1]);\n }\n } else {\n interpolate(current.x, current.n.x, 1, stream);\n }\n\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n\n for (i = points.length - 1; i >= 0; --i) {\n stream.point((point = points[i])[0], point[1]);\n }\n } else {\n interpolate(current.x, current.p.x, -1, stream);\n }\n\n current = current.p;\n }\n\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n\n stream.lineEnd();\n }\n}\n\nfunction link(array) {\n if (!(n = array.length)) return;\n var n,\n i = 0,\n a = array[0],\n b;\n\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n\n a.n = b = array[0];\n b.p = a;\n}","import adder from \"./adder.js\";\nimport { cartesian, cartesianCross, cartesianNormalizeInPlace } from \"./cartesian.js\";\nimport { abs, asin, atan2, cos, epsilon, halfPi, pi, quarterPi, sign, sin, tau } from \"./math.js\";\nvar sum = adder();\n\nfunction longitude(point) {\n if (abs(point[0]) <= pi) return point[0];else return sign(point[0]) * ((abs(point[0]) + pi) % tau - pi);\n}\n\nexport default function (polygon, point) {\n var lambda = longitude(point),\n phi = point[1],\n sinPhi = sin(phi),\n normal = [sin(lambda), -cos(lambda), 0],\n angle = 0,\n winding = 0;\n sum.reset();\n if (sinPhi === 1) phi = halfPi + epsilon;else if (sinPhi === -1) phi = -halfPi - epsilon;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n if (!(m = (ring = polygon[i]).length)) continue;\n var ring,\n m,\n point0 = ring[m - 1],\n lambda0 = longitude(point0),\n phi0 = point0[1] / 2 + quarterPi,\n sinPhi0 = sin(phi0),\n cosPhi0 = cos(phi0);\n\n for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {\n var point1 = ring[j],\n lambda1 = longitude(point1),\n phi1 = point1[1] / 2 + quarterPi,\n sinPhi1 = sin(phi1),\n cosPhi1 = cos(phi1),\n delta = lambda1 - lambda0,\n sign = delta >= 0 ? 1 : -1,\n absDelta = sign * delta,\n antimeridian = absDelta > pi,\n k = sinPhi0 * sinPhi1;\n sum.add(atan2(k * sign * sin(absDelta), cosPhi0 * cosPhi1 + k * cos(absDelta)));\n angle += antimeridian ? delta + sign * tau : delta; // Are the longitudes either side of the point’s meridian (lambda),\n // and are the latitudes smaller than the parallel (phi)?\n\n if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {\n var arc = cartesianCross(cartesian(point0), cartesian(point1));\n cartesianNormalizeInPlace(arc);\n var intersection = cartesianCross(normal, arc);\n cartesianNormalizeInPlace(intersection);\n var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);\n\n if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n winding += antimeridian ^ delta >= 0 ? 1 : -1;\n }\n }\n }\n } // First, determine whether the South pole is inside or outside:\n //\n // It is inside if:\n // * the polygon winds around it in a clockwise direction.\n // * the polygon does not (cumulatively) wind around it, but has a negative\n // (counter-clockwise) area.\n //\n // Second, count the (signed) number of times a segment crosses a lambda\n // from the point to the South pole. If it is zero, then the point is the\n // same side as the South pole.\n\n\n return (angle < -epsilon || angle < epsilon && sum < -epsilon) ^ winding & 1;\n}","export default function (node, event) {\n var svg = node.ownerSVGElement || node;\n\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n}","import React from \"react\"\nimport Image from \"../components/image\"\nimport menuData from \"../data/menu.json\"\nimport findObject from \"../helpers/find-object\"\nimport { Link } from \"gatsby\"\n\nexport default function ReadNext({ sectionID, pageID }) {\n const menu = findObject(menuData, \"id\", sectionID)\n const content =\n menu && pageID ? findObject(menu.children, \"id\", pageID) : menu\n\n return (\n \n
\n \n Read Next\n \n

{content.name}

\n
\n\n \n \n )\n}\n","import clip from \"./index.js\";\nimport { abs, atan, cos, epsilon, halfPi, pi, sin } from \"../math.js\";\nexport default clip(function () {\n return true;\n}, clipAntimeridianLine, clipAntimeridianInterpolate, [-pi, -halfPi]); // Takes a line and cuts into visible segments. Return values: 0 - there were\n// intersections or the line was empty; 1 - no intersections; 2 - there were\n// intersections, and the first and last segments should be rejoined.\n\nfunction clipAntimeridianLine(stream) {\n var lambda0 = NaN,\n phi0 = NaN,\n sign0 = NaN,\n _clean; // no intersections\n\n\n return {\n lineStart: function lineStart() {\n stream.lineStart();\n _clean = 1;\n },\n point: function point(lambda1, phi1) {\n var sign1 = lambda1 > 0 ? pi : -pi,\n delta = abs(lambda1 - lambda0);\n\n if (abs(delta - pi) < epsilon) {\n // line crosses a pole\n stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi : -halfPi);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n stream.point(lambda1, phi0);\n _clean = 0;\n } else if (sign0 !== sign1 && delta >= pi) {\n // line crosses antimeridian\n if (abs(lambda0 - sign0) < epsilon) lambda0 -= sign0 * epsilon; // handle degeneracies\n\n if (abs(lambda1 - sign1) < epsilon) lambda1 -= sign1 * epsilon;\n phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n _clean = 0;\n }\n\n stream.point(lambda0 = lambda1, phi0 = phi1);\n sign0 = sign1;\n },\n lineEnd: function lineEnd() {\n stream.lineEnd();\n lambda0 = phi0 = NaN;\n },\n clean: function clean() {\n return 2 - _clean; // if intersections, rejoin first and last segments\n }\n };\n}\n\nfunction clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {\n var cosPhi0,\n cosPhi1,\n sinLambda0Lambda1 = sin(lambda0 - lambda1);\n return abs(sinLambda0Lambda1) > epsilon ? atan((sin(phi0) * (cosPhi1 = cos(phi1)) * sin(lambda1) - sin(phi1) * (cosPhi0 = cos(phi0)) * sin(lambda0)) / (cosPhi0 * cosPhi1 * sinLambda0Lambda1)) : (phi0 + phi1) / 2;\n}\n\nfunction clipAntimeridianInterpolate(from, to, direction, stream) {\n var phi;\n\n if (from == null) {\n phi = direction * halfPi;\n stream.point(-pi, phi);\n stream.point(0, phi);\n stream.point(pi, phi);\n stream.point(pi, 0);\n stream.point(pi, -phi);\n stream.point(0, -phi);\n stream.point(-pi, -phi);\n stream.point(-pi, 0);\n stream.point(-pi, phi);\n } else if (abs(from[0] - to[0]) > epsilon) {\n var lambda = from[0] < to[0] ? pi : -pi;\n phi = direction * lambda / 2;\n stream.point(-lambda, phi);\n stream.point(0, phi);\n stream.point(lambda, phi);\n } else {\n stream.point(to[0], to[1]);\n }\n}","import { Selection, root } from \"./selection/index\";\nexport default function (selector) {\n return typeof selector === \"string\" ? new Selection([[document.querySelector(selector)]], [document.documentElement]) : new Selection([[selector]], root);\n}","import \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.split\";\nvar filterEvents = {};\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\"\n };\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function (event) {\n var related = event.relatedTarget;\n\n if (!related || related !== this && !(related.compareDocumentPosition(this) & 8)) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function (event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n\n event = event1;\n\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function (t) {\n var name = \"\",\n i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {\n type: t,\n name: name\n };\n });\n}\n\nfunction onRemove(typename) {\n return function () {\n var on = this.__on;\n if (!on) return;\n\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n\n if (++i) on.length = i;else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function (d, i, group) {\n var on = this.__on,\n o,\n listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {\n type: typename.type,\n name: typename.name,\n value: value,\n listener: listener,\n capture: capture\n };\n if (!on) this.__on = [o];else on.push(o);\n };\n}\n\nexport default function (typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"),\n i,\n n = typenames.length,\n t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n\n for (i = 0; i < n; ++i) {\n this.each(on(typenames[i], value, capture));\n }\n\n return this;\n}\nexport function customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}","export default function (selector) {\n return function () {\n return this.matches(selector);\n };\n}","// 20.2.2.28 Math.sign(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { sign: require('./_math-sign') });\n","import { abs, epsilon } from \"../math.js\";\nimport clipBuffer from \"./buffer.js\";\nimport clipLine from \"./line.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport { merge } from \"d3-array\";\nvar clipMax = 1e9,\n clipMin = -clipMax; // TODO Use d3-polygon’s polygonContains here for the ring check?\n// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?\n\nexport default function clipRectangle(x0, y0, x1, y1) {\n function visible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n\n function interpolate(from, to, direction, stream) {\n var a = 0,\n a1 = 0;\n\n if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoint(from, to) < 0 ^ direction > 0) {\n do {\n stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n } while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n\n function corner(p, direction) {\n return abs(p[0] - x0) < epsilon ? direction > 0 ? 0 : 3 : abs(p[0] - x1) < epsilon ? direction > 0 ? 2 : 1 : abs(p[1] - y0) < epsilon ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon\n }\n\n function compareIntersection(a, b) {\n return comparePoint(a.x, b.x);\n }\n\n function comparePoint(a, b) {\n var ca = corner(a, 1),\n cb = corner(b, 1);\n return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0];\n }\n\n return function (stream) {\n var activeStream = stream,\n bufferStream = clipBuffer(),\n segments,\n polygon,\n ring,\n x__,\n y__,\n v__,\n // first point\n x_,\n y_,\n v_,\n // previous point\n first,\n clean;\n var clipStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: polygonStart,\n polygonEnd: polygonEnd\n };\n\n function point(x, y) {\n if (visible(x, y)) activeStream.point(x, y);\n }\n\n function polygonInside() {\n var winding = 0;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {\n a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];\n\n if (a1 <= y1) {\n if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding;\n } else {\n if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding;\n }\n }\n }\n\n return winding;\n } // Buffer geometry within a polygon and then clip it en masse.\n\n\n function polygonStart() {\n activeStream = bufferStream, segments = [], polygon = [], clean = true;\n }\n\n function polygonEnd() {\n var startInside = polygonInside(),\n cleanInside = clean && startInside,\n visible = (segments = merge(segments)).length;\n\n if (cleanInside || visible) {\n stream.polygonStart();\n\n if (cleanInside) {\n stream.lineStart();\n interpolate(null, null, 1, stream);\n stream.lineEnd();\n }\n\n if (visible) {\n clipRejoin(segments, compareIntersection, startInside, interpolate, stream);\n }\n\n stream.polygonEnd();\n }\n\n activeStream = stream, segments = polygon = ring = null;\n }\n\n function lineStart() {\n clipStream.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n } // TODO rather than special-case polygons, simply handle them separately.\n // Ideally, coincident intersection points should be jittered to avoid\n // clipping issues.\n\n\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferStream.rejoin();\n segments.push(bufferStream.result());\n }\n\n clipStream.point = point;\n if (v_) activeStream.lineEnd();\n }\n\n function linePoint(x, y) {\n var v = visible(x, y);\n if (polygon) ring.push([x, y]);\n\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n\n if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n }\n } else {\n if (v && v_) activeStream.point(x, y);else {\n var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],\n b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];\n\n if (clipLine(a, b, x0, y0, x1, y1)) {\n if (!v_) {\n activeStream.lineStart();\n activeStream.point(a[0], a[1]);\n }\n\n activeStream.point(b[0], b[1]);\n if (!v) activeStream.lineEnd();\n clean = false;\n } else if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n clean = false;\n }\n }\n }\n\n x_ = x, y_ = y, v_ = v;\n }\n\n return clipStream;\n };\n}","export default function (a, b, x0, y0, x1, y1) {\n var ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;\n if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;\n return true;\n}","export default function (x) {\n return x;\n}","import defaultView from \"../window\";\n\nfunction styleRemove(name) {\n return function () {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function () {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function (name, value, priority) {\n return arguments.length > 1 ? this.each((value == null ? styleRemove : typeof value === \"function\" ? styleFunction : styleConstant)(name, value, priority == null ? \"\" : priority)) : styleValue(this.node(), name);\n}\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name) || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var aLen = arguments.length;\n var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n var end = aLen > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","import noop from \"../noop.js\";\nexport default function () {\n var lines = [],\n line;\n return {\n point: function point(x, y, m) {\n line.push([x, y, m]);\n },\n lineStart: function lineStart() {\n lines.push(line = []);\n },\n lineEnd: noop,\n rejoin: function rejoin() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n },\n result: function result() {\n var result = lines;\n lines = [];\n line = null;\n return result;\n }\n };\n}","import { cartesian, cartesianAddInPlace, cartesianCross, cartesianDot, cartesianScale, spherical } from \"../cartesian.js\";\nimport { circleStream } from \"../circle.js\";\nimport { abs, cos, epsilon, pi, radians, sqrt } from \"../math.js\";\nimport pointEqual from \"../pointEqual.js\";\nimport clip from \"./index.js\";\nexport default function (radius) {\n var cr = cos(radius),\n delta = 6 * radians,\n smallRadius = cr > 0,\n notHemisphere = abs(cr) > epsilon; // TODO optimise for this common case\n\n function interpolate(from, to, direction, stream) {\n circleStream(stream, radius, delta, direction, from, to);\n }\n\n function visible(lambda, phi) {\n return cos(lambda) * cos(phi) > cr;\n } // Takes a line and cuts into visible segments. Return values used for polygon\n // clipping: 0 - there were intersections or the line was empty; 1 - no\n // intersections 2 - there were intersections, and the first and last segments\n // should be rejoined.\n\n\n function clipLine(stream) {\n var point0, // previous point\n c0, // code for previous point\n v0, // visibility of previous point\n v00, // visibility of first point\n _clean; // no intersections\n\n\n return {\n lineStart: function lineStart() {\n v00 = v0 = false;\n _clean = 1;\n },\n point: function point(lambda, phi) {\n var point1 = [lambda, phi],\n point2,\n v = visible(lambda, phi),\n c = smallRadius ? v ? 0 : code(lambda, phi) : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;\n if (!point0 && (v00 = v0 = v)) stream.lineStart();\n\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2)) point1[2] = 1;\n }\n\n if (v !== v0) {\n _clean = 0;\n\n if (v) {\n // outside going in\n stream.lineStart();\n point2 = intersect(point1, point0);\n stream.point(point2[0], point2[1]);\n } else {\n // inside going out\n point2 = intersect(point0, point1);\n stream.point(point2[0], point2[1], 2);\n stream.lineEnd();\n }\n\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t; // If the codes for two points are different, or are both zero,\n // and there this segment intersects with the small circle.\n\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n _clean = 0;\n\n if (smallRadius) {\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n } else {\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n stream.lineStart();\n stream.point(t[0][0], t[0][1], 3);\n }\n }\n }\n\n if (v && (!point0 || !pointEqual(point0, point1))) {\n stream.point(point1[0], point1[1]);\n }\n\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function lineEnd() {\n if (v0) stream.lineEnd();\n point0 = null;\n },\n // Rejoin first and last segments if there were intersections and the first\n // and last points were visible.\n clean: function clean() {\n return _clean | (v00 && v0) << 1;\n }\n };\n } // Intersects the great circle between a and b with the clip circle.\n\n\n function intersect(a, b, two) {\n var pa = cartesian(a),\n pb = cartesian(b); // We have two planes, n1.p = d1 and n2.p = d2.\n // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).\n\n var n1 = [1, 0, 0],\n // normal\n n2 = cartesianCross(pa, pb),\n n2n2 = cartesianDot(n2, n2),\n n1n2 = n2[0],\n // cartesianDot(n1, n2),\n determinant = n2n2 - n1n2 * n1n2; // Two polar points.\n\n if (!determinant) return !two && a;\n var c1 = cr * n2n2 / determinant,\n c2 = -cr * n1n2 / determinant,\n n1xn2 = cartesianCross(n1, n2),\n A = cartesianScale(n1, c1),\n B = cartesianScale(n2, c2);\n cartesianAddInPlace(A, B); // Solve |p(t)|^2 = 1.\n\n var u = n1xn2,\n w = cartesianDot(A, u),\n uu = cartesianDot(u, u),\n t2 = w * w - uu * (cartesianDot(A, A) - 1);\n if (t2 < 0) return;\n var t = sqrt(t2),\n q = cartesianScale(u, (-w - t) / uu);\n cartesianAddInPlace(q, A);\n q = spherical(q);\n if (!two) return q; // Two intersection points.\n\n var lambda0 = a[0],\n lambda1 = b[0],\n phi0 = a[1],\n phi1 = b[1],\n z;\n if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;\n var delta = lambda1 - lambda0,\n polar = abs(delta - pi) < epsilon,\n meridian = polar || delta < epsilon;\n if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z; // Check that the first point is between a and b.\n\n if (meridian ? polar ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon ? phi0 : phi1) : phi0 <= q[1] && q[1] <= phi1 : delta > pi ^ (lambda0 <= q[0] && q[0] <= lambda1)) {\n var q1 = cartesianScale(u, (-w + t) / uu);\n cartesianAddInPlace(q1, A);\n return [q, spherical(q1)];\n }\n } // Generates a 4-bit vector representing the location of a point relative to\n // the small circle's bounding box.\n\n\n function code(lambda, phi) {\n var r = smallRadius ? radius : pi - radius,\n code = 0;\n if (lambda < -r) code |= 1; // left\n else if (lambda > r) code |= 2; // right\n\n if (phi < -r) code |= 4; // below\n else if (phi > r) code |= 8; // above\n\n return code;\n }\n\n return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi, radius - pi]);\n}","function empty() {\n return [];\n}\n\nexport default function (selector) {\n return selector == null ? empty : function () {\n return this.querySelectorAll(selector);\n };\n}","import \"core-js/modules/es6.math.sign\";\nexport var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var quarterPi = pi / 4;\nexport var tau = pi * 2;\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\nexport var abs = Math.abs;\nexport var atan = Math.atan;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var ceil = Math.ceil;\nexport var exp = Math.exp;\nexport var floor = Math.floor;\nexport var log = Math.log;\nexport var pow = Math.pow;\nexport var sin = Math.sin;\nexport var sign = Math.sign || function (x) {\n return x > 0 ? 1 : x < 0 ? -1 : 0;\n};\nexport var sqrt = Math.sqrt;\nexport var tan = Math.tan;\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\nexport function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\nexport function haversin(x) {\n return (x = sin(x / 2)) * x;\n}","import noop from \"../noop.js\";\nvar x0 = Infinity,\n y0 = x0,\n x1 = -x0,\n y1 = x1;\nvar boundsStream = {\n point: boundsPoint,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop,\n result: function result() {\n var bounds = [[x0, y0], [x1, y1]];\n x1 = y1 = -(y0 = x0 = Infinity);\n return bounds;\n }\n};\n\nfunction boundsPoint(x, y) {\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n}\n\nexport default boundsStream;","require(\"core-js/modules/es6.array.fill\");\n\nrequire(\"core-js/modules/es6.array.iterator\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es6.object.keys\");\n\nrequire(\"core-js/modules/es7.symbol.async-iterator\");\n\nrequire(\"core-js/modules/es6.symbol\");\n\nrequire(\"core-js/modules/web.dom.iterable\");\n\nrequire(\"core-js/modules/es6.object.assign\");\n\n!function (e, t) {\n \"object\" == typeof exports && \"undefined\" != typeof module ? t(exports, require(\"react\"), require(\"prop-types\"), require(\"d3-geo\"), require(\"topojson-client\"), require(\"d3-zoom\"), require(\"d3-selection\")) : \"function\" == typeof define && define.amd ? define([\"exports\", \"react\", \"prop-types\", \"d3-geo\", \"topojson-client\", \"d3-zoom\", \"d3-selection\"], t) : t((e = e || self).reactSimpleMaps = e.reactSimpleMaps || {}, e.React, e.PropTypes, e.d3, e.topojson, e.d3, e.d3);\n}(this, function (e, t, o, n, r, a, s) {\n \"use strict\";\n\n var i = \"default\" in t ? t.default : t;\n o = o && o.hasOwnProperty(\"default\") ? o.default : o;\n\n var c = Object.assign || function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var o = arguments[t];\n\n for (var n in o) {\n Object.prototype.hasOwnProperty.call(o, n) && (e[n] = o[n]);\n }\n }\n\n return e;\n },\n u = function u(e, t) {\n var o = {};\n\n for (var n in e) {\n t.indexOf(n) >= 0 || Object.prototype.hasOwnProperty.call(e, n) && (o[n] = e[n]);\n }\n\n return o;\n },\n l = function l(e, t) {\n if (Array.isArray(e)) return e;\n if (Symbol.iterator in Object(e)) return function (e, t) {\n var o = [],\n n = !0,\n r = !1,\n a = void 0;\n\n try {\n for (var s, i = e[Symbol.iterator](); !(n = (s = i.next()).done) && (o.push(s.value), !t || o.length !== t); n = !0) {\n ;\n }\n } catch (e) {\n r = !0, a = e;\n } finally {\n try {\n !n && i.return && i.return();\n } finally {\n if (r) throw a;\n }\n }\n\n return o;\n }(e, t);\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n },\n f = n.geoPath,\n p = u(n, [\"geoPath\"]),\n d = t.createContext(),\n m = function m(e) {\n var o = e.width,\n n = e.height,\n r = e.projection,\n a = e.projectionConfig,\n s = u(e, [\"width\", \"height\", \"projection\", \"projectionConfig\"]),\n m = a.center || [],\n v = l(m, 2),\n h = v[0],\n g = v[1],\n y = a.rotate || [],\n M = l(y, 3),\n E = M[0],\n j = M[1],\n x = M[2],\n k = a.parallels || [],\n b = l(k, 2),\n N = b[0],\n w = b[1],\n C = a.scale || null,\n S = t.useMemo(function () {\n return function (e) {\n var t = e.projectionConfig,\n o = void 0 === t ? {} : t,\n n = e.projection,\n r = void 0 === n ? \"geoEqualEarth\" : n,\n a = e.width,\n s = void 0 === a ? 800 : a,\n i = e.height,\n c = void 0 === i ? 600 : i;\n if (\"function\" == typeof r) return r;\n var u = p[r]().translate([s / 2, c / 2]);\n return [u.center ? \"center\" : null, u.rotate ? \"rotate\" : null, u.scale ? \"scale\" : null, u.parallels ? \"parallels\" : null].forEach(function (e) {\n e && (u = u[e](o[e] || u[e]()));\n }), u;\n }({\n projectionConfig: {\n center: h || 0 === h || g || 0 === g ? [h, g] : null,\n rotate: E || 0 === E || j || 0 === j ? [E, j, x] : null,\n parallels: N || 0 === N || w || 0 === w ? [N, w] : null,\n scale: C\n },\n projection: r,\n width: o,\n height: n\n });\n }, [o, n, r, h, g, E, j, x, N, w, C]),\n T = t.useCallback(S, [S]),\n O = t.useMemo(function () {\n return {\n width: o,\n height: n,\n projection: T,\n path: f().projection(T)\n };\n }, [o, n, T]);\n return i.createElement(d.Provider, c({\n value: O\n }, s));\n };\n\n m.propTypes = {\n width: o.number,\n height: o.number,\n projection: o.oneOfType([o.string, o.func]),\n projectionConfig: o.object\n };\n\n var v = function v(e) {\n var t = e.width,\n o = void 0 === t ? 800 : t,\n n = e.height,\n r = void 0 === n ? 600 : n,\n a = e.projection,\n s = void 0 === a ? \"geoEqualEarth\" : a,\n l = e.projectionConfig,\n f = void 0 === l ? {} : l,\n p = e.className,\n d = void 0 === p ? \"\" : p,\n v = u(e, [\"width\", \"height\", \"projection\", \"projectionConfig\", \"className\"]);\n return i.createElement(m, {\n width: o,\n height: r,\n projection: s,\n projectionConfig: f\n }, i.createElement(\"svg\", c({\n viewBox: \"0 0 \" + o + \" \" + r,\n className: \"rsm-svg \" + d\n }, v)));\n };\n\n function h(e, t, o) {\n var n = (e * o.k - e) / 2,\n r = (t * o.k - t) / 2;\n return [e / 2 - (n + o.x) / o.k, t / 2 - (r + o.y) / o.k];\n }\n\n function g(e, t) {\n if (Array.isArray(e)) return t ? t(e) : e;\n var o = r.feature(e, e.objects[Object.keys(e.objects)[0]]).features;\n return t ? t(o) : o;\n }\n\n function y(e) {\n var o = e.geography,\n n = e.parseGeographies,\n r = t.useContext(d).path,\n a = t.useState(),\n s = l(a, 2),\n i = s[0],\n u = s[1];\n return t.useEffect(function () {\n var e;\n \"undefined\" != typeof window && (\"string\" == typeof o ? (e = o, fetch(e).then(function (e) {\n if (!e.ok) throw Error(e.statusText);\n return e.json();\n }).catch(function (e) {\n console.log(\"There was a problem when fetching the data: \", e);\n })).then(function (e) {\n e && u(g(e, n));\n }) : u(g(o, n)));\n }, [o, n]), {\n geographies: t.useMemo(function () {\n return function (e, t) {\n return e ? e.map(function (e, o) {\n return c({}, e, {\n rsmKey: \"geo-\" + o,\n svgPath: t(e)\n });\n }) : [];\n }(i, r);\n }, [i, r])\n };\n }\n\n v.propTypes = {\n width: o.number,\n height: o.number,\n projection: o.oneOfType([o.string, o.func]),\n projectionConfig: o.object,\n className: o.string\n };\n\n var M = function M(e) {\n var o = e.geography,\n n = e.children,\n r = e.parseGeographies,\n a = e.className,\n s = void 0 === a ? \"\" : a,\n l = u(e, [\"geography\", \"children\", \"parseGeographies\", \"className\"]),\n f = t.useContext(d),\n p = f.path,\n m = f.projection,\n v = y({\n geography: o,\n parseGeographies: r\n }).geographies;\n return i.createElement(\"g\", c({\n className: \"rsm-geographies \" + s\n }, l), v && v.length > 0 && n({\n geographies: v,\n path: p,\n projection: m\n }));\n };\n\n M.propTypes = {\n geography: o.oneOfType([o.string, o.object, o.array]),\n children: o.func,\n parseGeographies: o.func,\n className: o.string\n };\n\n var E = function E(e) {\n var o = e.geography,\n n = e.onMouseEnter,\n r = e.onMouseLeave,\n a = e.onMouseDown,\n s = e.onMouseUp,\n f = e.onFocus,\n p = e.onBlur,\n d = e.style,\n m = void 0 === d ? {} : d,\n v = e.className,\n h = void 0 === v ? \"\" : v,\n g = u(e, [\"geography\", \"onMouseEnter\", \"onMouseLeave\", \"onMouseDown\", \"onMouseUp\", \"onFocus\", \"onBlur\", \"style\", \"className\"]),\n y = t.useState(!1),\n M = l(y, 2),\n E = M[0],\n j = M[1],\n x = t.useState(!1),\n k = l(x, 2),\n b = k[0],\n N = k[1];\n return i.createElement(\"path\", c({\n tabIndex: \"0\",\n className: \"rsm-geography \" + h,\n d: o.svgPath,\n onMouseEnter: function onMouseEnter(e) {\n N(!0), n && n(e);\n },\n onMouseLeave: function onMouseLeave(e) {\n N(!1), E && j(!1), r && r(e);\n },\n onFocus: function onFocus(e) {\n N(!0), f && f(e);\n },\n onBlur: function onBlur(e) {\n N(!1), E && j(!1), p && p(e);\n },\n onMouseDown: function onMouseDown(e) {\n j(!0), a && a(e);\n },\n onMouseUp: function onMouseUp(e) {\n j(!1), s && s(e);\n },\n style: m[E || b ? E ? \"pressed\" : \"hover\" : \"default\"]\n }, g));\n };\n\n E.propTypes = {\n geography: o.object,\n onMouseEnter: o.func,\n onMouseLeave: o.func,\n onMouseDown: o.func,\n onMouseUp: o.func,\n onFocus: o.func,\n onBlur: o.func,\n style: o.object,\n className: o.string\n };\n\n var j = t.memo(E),\n x = function x(e) {\n var o = e.fill,\n r = void 0 === o ? \"transparent\" : o,\n a = e.stroke,\n s = void 0 === a ? \"currentcolor\" : a,\n l = e.step,\n f = void 0 === l ? [10, 10] : l,\n p = e.className,\n m = void 0 === p ? \"\" : p,\n v = u(e, [\"fill\", \"stroke\", \"step\", \"className\"]),\n h = t.useContext(d).path;\n return i.createElement(\"path\", c({\n d: h(n.geoGraticule().step(f)()),\n fill: r,\n stroke: s,\n className: \"rsm-graticule \" + m\n }, v));\n };\n\n x.propTypes = {\n fill: o.string,\n stroke: o.string,\n step: o.array,\n className: o.string\n };\n var k = t.memo(x);\n\n function b(e) {\n var o = e.center,\n n = e.filterZoomEvent,\n r = e.onMoveStart,\n i = e.onMoveEnd,\n c = e.onMove,\n u = e.translateExtent,\n f = void 0 === u ? [[-1 / 0, -1 / 0], [1 / 0, 1 / 0]] : u,\n p = e.scaleExtent,\n m = void 0 === p ? [1, 8] : p,\n v = e.zoom,\n g = void 0 === v ? 1 : v,\n y = t.useContext(d),\n M = y.width,\n E = y.height,\n j = y.projection,\n x = l(o, 2),\n k = x[0],\n b = x[1],\n N = t.useState({\n x: 0,\n y: 0,\n k: 1\n }),\n w = l(N, 2),\n C = w[0],\n S = w[1],\n T = t.useRef({\n x: 0,\n y: 0,\n k: 1\n }),\n O = t.useRef(),\n P = t.useRef(),\n z = t.useRef(!1),\n Z = l(f, 2),\n G = Z[0],\n L = Z[1],\n B = l(G, 2),\n F = B[0],\n q = B[1],\n D = l(L, 2),\n U = D[0],\n W = D[1],\n A = l(m, 2),\n R = A[0],\n I = A[1];\n return t.useEffect(function () {\n var e = s.select(O.current);\n var t = a.zoom().filter(function () {\n return n ? n(s.event) : !!s.event && !s.event.ctrlKey && !s.event.button;\n }).scaleExtent([R, I]).translateExtent([[F, F], [U, W]]).on(\"start\", function () {\n r && !z.current && r({\n coordinates: j.invert(h(M, E, s.event.transform)),\n zoom: s.event.transform.k\n }, s.event);\n }).on(\"zoom\", function () {\n if (!z.current) {\n var e = s.event.transform,\n t = s.event.sourceEvent;\n S({\n x: e.x,\n y: e.y,\n k: e.k,\n dragging: t\n }), c && c({\n x: e.x,\n y: e.y,\n k: e.k,\n dragging: t\n }, s.event);\n }\n }).on(\"end\", function () {\n if (z.current) z.current = !1;else {\n var e = j.invert(h(M, E, s.event.transform)),\n t = l(e, 2),\n o = t[0],\n n = t[1];\n T.current = {\n x: o,\n y: n,\n k: s.event.transform.k\n }, i && i({\n coordinates: [o, n],\n zoom: s.event.transform.k\n }, s.event);\n }\n });\n P.current = t, e.call(t);\n }, [M, E, F, q, U, W, R, I, j, r, c, i, n]), t.useEffect(function () {\n if (k !== T.current.x || b !== T.current.y || g !== T.current.k) {\n var e = j([k, b]),\n t = e[0] * g,\n o = e[1] * g,\n n = s.select(O.current);\n z.current = !0, n.call(P.current.transform, a.zoomIdentity.translate(M / 2 - t, E / 2 - o).scale(g)), S({\n x: M / 2 - t,\n y: E / 2 - o,\n k: g\n }), T.current = {\n x: k,\n y: b,\n k: g\n };\n }\n }, [k, b, g, M, E, j]), {\n mapRef: O,\n position: C,\n transformString: \"translate(\" + C.x + \" \" + C.y + \") scale(\" + C.k + \")\"\n };\n }\n\n var N = function N(e) {\n var o = e.center,\n n = void 0 === o ? [0, 0] : o,\n r = e.zoom,\n a = void 0 === r ? 1 : r,\n s = e.minZoom,\n l = void 0 === s ? 1 : s,\n f = e.maxZoom,\n p = void 0 === f ? 8 : f,\n m = e.translateExtent,\n v = e.filterZoomEvent,\n h = e.onMoveStart,\n g = e.onMove,\n y = e.onMoveEnd,\n M = e.className,\n E = u(e, [\"center\", \"zoom\", \"minZoom\", \"maxZoom\", \"translateExtent\", \"filterZoomEvent\", \"onMoveStart\", \"onMove\", \"onMoveEnd\", \"className\"]),\n j = t.useContext(d),\n x = j.width,\n k = j.height,\n N = b({\n center: n,\n filterZoomEvent: v,\n onMoveStart: h,\n onMove: g,\n onMoveEnd: y,\n scaleExtent: [l, p],\n translateExtent: m,\n zoom: a\n }),\n w = N.mapRef,\n C = N.transformString;\n return i.createElement(\"g\", {\n ref: w\n }, i.createElement(\"rect\", {\n width: x,\n height: k,\n fill: \"transparent\"\n }), i.createElement(\"g\", c({\n transform: C,\n className: \"rsm-zoomable-group \" + M\n }, E)));\n };\n\n N.propTypes = {\n center: o.array,\n zoom: o.number,\n minZoom: o.number,\n maxZoom: o.number,\n translateExtent: o.arrayOf(o.array),\n onMoveStart: o.func,\n onMove: o.func,\n onMoveEnd: o.func,\n className: o.string\n };\n\n var w = function w(e) {\n var o = e.id,\n n = void 0 === o ? \"rsm-sphere\" : o,\n r = e.fill,\n a = void 0 === r ? \"transparent\" : r,\n s = e.stroke,\n l = void 0 === s ? \"currentcolor\" : s,\n f = e.strokeWidth,\n p = void 0 === f ? .5 : f,\n m = e.className,\n v = void 0 === m ? \"\" : m,\n h = u(e, [\"id\", \"fill\", \"stroke\", \"strokeWidth\", \"className\"]),\n g = t.useContext(d).path,\n y = t.useMemo(function () {\n return g({\n type: \"Sphere\"\n });\n }, [g]);\n return i.createElement(t.Fragment, null, i.createElement(\"defs\", null, i.createElement(\"clipPath\", {\n id: n\n }, i.createElement(\"path\", {\n d: y\n }))), i.createElement(\"path\", c({\n d: y,\n fill: a,\n stroke: l,\n strokeWidth: p,\n style: {\n pointerEvents: \"none\"\n },\n className: \"rsm-sphere \" + v\n }, h)));\n };\n\n w.propTypes = {\n id: o.string,\n fill: o.string,\n stroke: o.string,\n strokeWidth: o.number,\n className: o.string\n };\n\n var C = t.memo(w),\n S = function S(e) {\n var o = e.coordinates,\n n = e.children,\n r = e.onMouseEnter,\n a = e.onMouseLeave,\n s = e.onMouseDown,\n f = e.onMouseUp,\n p = e.onFocus,\n m = e.onBlur,\n v = e.style,\n h = void 0 === v ? {} : v,\n g = e.className,\n y = void 0 === g ? \"\" : g,\n M = u(e, [\"coordinates\", \"children\", \"onMouseEnter\", \"onMouseLeave\", \"onMouseDown\", \"onMouseUp\", \"onFocus\", \"onBlur\", \"style\", \"className\"]),\n E = t.useContext(d).projection,\n j = t.useState(!1),\n x = l(j, 2),\n k = x[0],\n b = x[1],\n N = t.useState(!1),\n w = l(N, 2),\n C = w[0],\n S = w[1],\n T = E(o),\n O = l(T, 2),\n P = O[0],\n z = O[1];\n return i.createElement(\"g\", c({\n transform: \"translate(\" + P + \", \" + z + \")\",\n className: \"rsm-marker \" + y,\n onMouseEnter: function onMouseEnter(e) {\n S(!0), r && r(e);\n },\n onMouseLeave: function onMouseLeave(e) {\n S(!1), k && b(!1), a && a(e);\n },\n onFocus: function onFocus(e) {\n S(!0), p && p(e);\n },\n onBlur: function onBlur(e) {\n S(!1), k && b(!1), m && m(e);\n },\n onMouseDown: function onMouseDown(e) {\n b(!0), s && s(e);\n },\n onMouseUp: function onMouseUp(e) {\n b(!1), f && f(e);\n },\n style: h[k || C ? k ? \"pressed\" : \"hover\" : \"default\"]\n }, M), n);\n };\n\n S.propTypes = {\n coordinates: o.array,\n children: o.oneOfType([o.node, o.arrayOf(o.node)]),\n onMouseEnter: o.func,\n onMouseLeave: o.func,\n onMouseDown: o.func,\n onMouseUp: o.func,\n onFocus: o.func,\n onBlur: o.func,\n style: o.object,\n className: o.string\n };\n\n var T = function T(e) {\n var o = e.from,\n n = void 0 === o ? [0, 0] : o,\n r = e.to,\n a = void 0 === r ? [0, 0] : r,\n s = e.coordinates,\n l = e.stroke,\n f = void 0 === l ? \"currentcolor\" : l,\n p = e.strokeWidth,\n m = void 0 === p ? 3 : p,\n v = e.fill,\n h = void 0 === v ? \"transparent\" : v,\n g = e.className,\n y = void 0 === g ? \"\" : g,\n M = u(e, [\"from\", \"to\", \"coordinates\", \"stroke\", \"strokeWidth\", \"fill\", \"className\"]),\n E = t.useContext(d).path,\n j = {\n type: \"LineString\",\n coordinates: s || [n, a]\n };\n return i.createElement(\"path\", c({\n d: E(j),\n className: \"rsm-line \" + y,\n stroke: f,\n strokeWidth: m,\n fill: h\n }, M));\n };\n\n T.propTypes = {\n from: o.array,\n to: o.array,\n coordinates: o.array,\n stroke: o.string,\n strokeWidth: o.number,\n fill: o.string,\n className: o.string\n };\n\n var O = function O(e) {\n var o = e.subject,\n n = e.children,\n r = e.connectorProps,\n a = e.dx,\n s = void 0 === a ? 30 : a,\n f = e.dy,\n p = void 0 === f ? 30 : f,\n m = e.curve,\n v = void 0 === m ? 0 : m,\n h = e.className,\n g = void 0 === h ? \"\" : h,\n y = u(e, [\"subject\", \"children\", \"connectorProps\", \"dx\", \"dy\", \"curve\", \"className\"]),\n M = (0, t.useContext(d).projection)(o),\n E = l(M, 2),\n j = E[0],\n x = E[1],\n k = function () {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 30,\n t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 30,\n o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : .5,\n n = Array.isArray(o) ? o : [o, o];\n return \"M0,0 Q\" + (-e / 2 - e / 2 * n[0]) + \",\" + (-t / 2 + t / 2 * n[1]) + \" \" + -e + \",\" + -t;\n }(s, p, v);\n\n return i.createElement(\"g\", c({\n transform: \"translate(\" + (j + s) + \", \" + (x + p) + \")\",\n className: \"rsm-annotation \" + g\n }, y), i.createElement(\"path\", c({\n d: k,\n fill: \"transparent\",\n stroke: \"#000\"\n }, r)), n);\n };\n\n O.propTypes = {\n subject: o.array,\n children: o.oneOfType([o.node, o.arrayOf(o.node)]),\n dx: o.number,\n dy: o.number,\n curve: o.number,\n connectorProps: o.object,\n className: o.string\n }, e.Annotation = O, e.ComposableMap = v, e.Geographies = M, e.Geography = j, e.Graticule = k, e.Line = T, e.Marker = S, e.Sphere = C, e.ZoomableGroup = N, e.useGeographies = y, e.useZoomPan = b, Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n});","import { event } from \"./selection/on\";\nexport default function () {\n var current = event,\n source;\n\n while (source = current.sourceEvent) {\n current = source;\n }\n\n return current;\n}","import namespace from \"./namespace\";\nimport { xhtml } from \"./namespaces\";\n\nfunction creatorInherit(name) {\n return function () {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml ? document.createElement(name) : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function () {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function (name) {\n var fullname = namespace(name);\n return (fullname.local ? creatorFixed : creatorInherit)(fullname);\n}","import \"core-js/modules/es6.math.sign\";\nexport var abs = Math.abs;\nexport var atan = Math.atan;\nexport var atan2 = Math.atan2;\nexport var ceil = Math.ceil;\nexport var cos = Math.cos;\nexport var exp = Math.exp;\nexport var floor = Math.floor;\nexport var log = Math.log;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var pow = Math.pow;\nexport var round = Math.round;\nexport var sign = Math.sign || function (x) {\n return x > 0 ? 1 : x < 0 ? -1 : 0;\n};\nexport var sin = Math.sin;\nexport var tan = Math.tan;\nexport var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var quarterPi = pi / 4;\nexport var sqrt1_2 = Math.SQRT1_2;\nexport var sqrt2 = sqrt(2);\nexport var sqrtPi = sqrt(pi);\nexport var tau = pi * 2;\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\nexport function sinci(x) {\n return x ? x / Math.sin(x) : 1;\n}\nexport function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\nexport function sqrt(x) {\n return x > 0 ? Math.sqrt(x) : 0;\n}\nexport function tanh(x) {\n x = exp(2 * x);\n return (x - 1) / (x + 1);\n}\nexport function sinh(x) {\n return (exp(x) - exp(-x)) / 2;\n}\nexport function cosh(x) {\n return (exp(x) + exp(-x)) / 2;\n}\nexport function arsinh(x) {\n return log(x + sqrt(x * x + 1));\n}\nexport function arcosh(x) {\n return log(x + sqrt(x * x - 1));\n}","import { geoProjection as projection } from \"d3-geo\";\nimport { atan, exp, log, quarterPi, pi, tan } from \"./math.js\";\nexport function millerRaw(lambda, phi) {\n return [lambda, 1.25 * log(tan(quarterPi + 0.4 * phi))];\n}\n\nmillerRaw.invert = function (x, y) {\n return [x, 2.5 * atan(exp(0.8 * y)) - 0.625 * pi];\n};\n\nexport default function () {\n return projection(millerRaw).scale(108.318);\n}","import React from \"react\"\nimport lendingMapData from \"../data/lending-map-data.json\"\nimport { getColors } from \"./lending-map\"\nimport findObject from \"../helpers/find-object\"\n\n// Creates an svg element that contains all patterns required for the lending map\nfunction LendingMapPatterns() {\n var patterns = [] // Initialize patterns array\n\n // Iterate through the countries that have agreements\n lendingMapData.forEach(dataItem => {\n if (dataItem.agreements.length > 1) {\n // Get the color names and values that apply to the data item\n var { colorNames, colorValues } = getColors(dataItem)\n\n let patternID = `pattern-stripe-${colorNames.sort().join(\"-\")}`, // Sort colorNames to ensure predictable ids to check against\n patternExists = findObject(patterns, \"id\", patternID) // Check if the pattern id already exists\n\n // Ignore duplicate patterns\n if (patternExists) {\n return\n }\n\n // Push new patterns to array\n patterns.push({\n id: patternID,\n colors: colorValues,\n })\n }\n })\n\n return (\n \n \n {patterns.map(pattern => {\n return (\n \n )\n })}\n \n \n )\n}\n\n// Creates a single pattern for the LendingMapPatterns() svg\nfunction LendingMapPattern({ id, colors }) {\n const stopsNumber = colors.length,\n patternScale = \"2.5\", // px value relative to base SVG size\n patternSize = `${colors.length * patternScale}px`\n\n var stops = [] // Initialize stops array\n\n // Iterate through the colors\n colors.forEach((color, index) => {\n // Push data to stops array\n // Due to linearGradient behavior, must push a 0% offset stop before each desired stop\n stops.push(\n {\n offset: \"0%\",\n color: color,\n },\n {\n offset: `${((index + 1) / stopsNumber) * 100}%`,\n color: color,\n }\n )\n })\n\n return (\n \n {stops.map((stop, index) => {\n return (\n \n )\n })}\n \n )\n}\n\nexport default LendingMapPatterns\n","// Adds commas to every thousands place of a number string\n// H/T for regex https://blog.abelotech.com/posts/number-currency-formatting-javascript/\nfunction addCommas(numberString) {\n return numberString.replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, \"$1,\")\n}\n\n// Returns a number string with commas for every thousands place\n// Example: formatNumber(1000.1) returns '1,000.1'\nfunction formatNumber(number) {\n number = number.toString()\n\n if (number.includes(\".\")) {\n let split = number.split(\".\")\n\n split[0] = addCommas(split[0])\n\n return split.join(\".\")\n }\n\n return addCommas(number)\n}\n\n// Returns a number converted to a given value\n// Example: roundNumber(1999985000, 'millions') returns '1999.985'\n// Structure H/T https://www.react-simple-maps.io/examples/map-chart-with-tooltip/\nfunction convertNumber(number, convertTo) {\n if (convertTo === \"trillions\") {\n number = number / 1000000000000\n } else if (convertTo === \"billions\") {\n number = number / 1000000000\n } else if (convertTo === \"millions\") {\n number = number / 1000000\n } else if (convertTo === \"thousands\") {\n number = number / 1000\n }\n\n return number\n}\n\n// Returns a formatted number string rounded to a given value, adding as many decimals as specified\n// Example: roundNumber(1999985000, 'millions', 2) returns '1,999.99'\nfunction roundNumber(number, convertTo, decimals = 0) {\n number = convertNumber(number, convertTo)\n\n if (decimals === \"all\") {\n return formatNumber(number)\n }\n\n // Decimals rounding H/T https://www.jacklmoore.com/notes/rounding-in-javascript/\n return formatNumber(\n Number(Math.round(number + \"e\" + decimals) + \"e-\" + decimals)\n )\n}\n\nexport { roundNumber }\n","import React, { useState, useEffect, useRef } from \"react\"\nimport { ComposableMap, Geographies, Geography } from \"react-simple-maps\"\nimport { geoMiller } from \"d3-geo-projection\"\nimport LendingMapPatterns from \"./lending-map-patterns\"\nimport findObject from \"../helpers/find-object\"\nimport { roundNumber } from \"../helpers/numbers\"\nimport IconExternalLink from \"../components/svg/icon-external-link\"\nimport FocusLock from \"react-focus-lock\"\n\n// Data imports\nimport geography from \"../data/world-110m-custom-shapes.json\"\nimport lakes from \"../data/world-110m-lakes.json\"\nimport lendingMapData from \"../data/lending-map-data.json\"\nimport lendingMapAgreements from \"../data/lending-map-agreements.json\"\nimport lendingMapFilters from \"../data/lending-map-filters.json\"\n\n// MAP NOTES:\n// - File: '../data/world-110m-custom-shapes.json'\n// - Source: https://international.ipums.org/international/gis.shtml\n// - Converted to TopoJSON with https://mapshaper.org/\n// Simplification settings: 0.40%, use planar geometry, Visvalingam/weighted area method\n// - Merged with data of '../data/raw/world-110m-raw.json' from React Simple Maps\n// - Data modified to match IMF data/taxonomies\n\n// Create the lending map\nfunction LendingMap() {\n const lendingMapComponent = useRef()\n const mapWrapper = useRef()\n const map = useRef()\n const mapOverlayRef = useRef()\n const [mapIsActive, setMapIsActive] = useState(false)\n const [mapFilter, setMapFilter] = useState(\"all\") // Accepts a filter slug\n const [mapTooltipActive, setMapTooltipActive] = useState(false)\n const [mapTooltipCountry, setMapTooltipCountry] = useState(\"\") // Accepts a country ID\n const [mapTooltipCoordinates, setMapTooltipCoordinates] = useState({\n x: -999,\n y: -999,\n }) // Position off screen as a safeguard\n const [mapAgreementHighlights, setMapAgreementHighlights] = useState(\"\") // Accepts a country ID\n const [mapAgreementButtonHovered, setMapAgreementButtonHovered] = useState(\"\")\n const [mapOverlayIsActive, setMapOverlayIsActive] = useState(false)\n const [\n mapOverlayAgreementAbbreviation,\n setMapOverlayAgreementAbbreviation,\n ] = useState(\"\")\n\n // Setup the projection\n const width = 800\n const height = 450\n\n const customProjection = geoMiller()\n .translate([width / 2, height / 2])\n .rotate([-10, 0, 0])\n\n // Process and store the lending map data *once* into datasets based on the lending map filters\n var processedData = []\n\n lendingMapFilters.forEach(filter => {\n if (filter.slug) {\n if (filter.slug === \"all\") {\n processedData[filter.slug] = lendingMapData\n } else {\n processedData[filter.slug] = filterDataByFilter(\n lendingMapData,\n filter.slug\n )\n }\n }\n })\n\n // Update the current dataset according to the mapFilter state\n var filteredData = processedData[mapFilter]\n\n //\n // Event Handlers\n //\n\n function toggleMapOverlay(agreementAbbreviation) {\n const BODY_LOCK = \"util__body-lock\"\n\n if (mapOverlayIsActive) {\n setMapOverlayIsActive(false)\n document.body.classList.remove(BODY_LOCK)\n } else {\n setMapOverlayIsActive(true)\n setMapOverlayAgreementAbbreviation(agreementAbbreviation)\n document.body.classList.add(BODY_LOCK)\n }\n }\n\n function handleScroll() {\n if (\n lendingMapComponent.current.getBoundingClientRect().top >=\n window.innerHeight * 0.45 ||\n lendingMapComponent.current.getBoundingClientRect().bottom <=\n window.innerHeight * 0.85\n ) {\n setMapIsActive(false)\n } else {\n setMapIsActive(true)\n }\n }\n\n function handleCountryMouseEnter(e) {\n setMapTooltipActive(true)\n setMapTooltipCountry(e.target.id)\n setMapAgreementHighlights(e.target.id)\n\n let targetRect = e.target.getBoundingClientRect()\n let rect = lendingMapComponent.current.getBoundingClientRect()\n\n // Set coordinates as relative to the center-right position of the target country shape\n setMapTooltipCoordinates({\n x: targetRect.right - rect.left,\n y: targetRect.top + targetRect.height / 2 - rect.top,\n })\n }\n\n function handleCountryMouseLeave() {\n setMapTooltipActive(false)\n setMapAgreementHighlights(\"\")\n }\n\n function handleSelectChange(e) {\n setMapFilter(e.target.value)\n }\n\n // Simple listener to close overlay on escape key hit\n function handleKeydown(e) {\n if (mapOverlayIsActive && e.keyCode === 27) {\n toggleMapOverlay()\n }\n }\n\n //\n // Effects\n //\n\n useEffect(() => {\n handleScroll() // Initial call makes sure loads/reloads render the map correctly whatever the scroll position\n\n window.addEventListener(\"scroll\", handleScroll)\n return () => {\n window.removeEventListener(\"scroll\", handleScroll)\n }\n })\n\n useEffect(() => {\n document.addEventListener(\"keydown\", handleKeydown)\n return () => {\n document.removeEventListener(\"keydown\", handleKeydown)\n }\n })\n\n return (\n \n
\n
\n

\n Lending and Debt Relief\n

\n

\n (In millions of Special Drawing Rights)\n

\n

\n Lending map as of September 15, 2020. Visit{\" \"}\n imf.org for the latest\n information.\n

\n
\n
\n \n Filter By\n
\n \n {lendingMapFilters.map(filter => {\n return (\n {\n mapIsActive && setMapFilter(filter.slug)\n }}\n >\n
\n
\n {filter.title}\n \n

\n {filter.description}\n

\n \n )\n })}\n \n {\n mapIsActive && handleSelectChange(e)\n }}\n aria-labelledby=\"lending-map__filters__header\"\n aria-label=\"Filter the lending map results\"\n aria-controls=\"lending-map\"\n >\n {lendingMapFilters.map(filter => {\n return (\n \n {filter.title}\n \n )\n })}\n \n \n \n\n \n\n
\n \n \n \n {({ geographies }) => {\n return geographies\n .filter(geo => geo.properties.CONTINENT !== \"Antarctica\")\n .map((geo, index) => {\n const { ISO_A2 } = geo.properties\n\n let country = findObject(lendingMapData, \"iso_a2\", ISO_A2)\n let filteredCountry = findObject(\n filteredData,\n \"iso_a2\",\n ISO_A2\n )\n let activeCountry =\n (mapIsActive &&\n filteredCountry &&\n !mapAgreementButtonHovered) ||\n (mapIsActive &&\n filteredCountry &&\n mapAgreementButtonHovered &&\n findObject(\n filteredCountry.agreements,\n \"abbreviation\",\n mapAgreementButtonHovered\n ))\n\n // Return a grey base shape for all countries\n // Plus, return an additional filled shape for all countries that match the unfiltered data\n // States and filtered data control which filled shapes are visible or not, via className. See lending-map.scss\n return (\n \n \n {country && (\n \n )}\n \n )\n })\n }}\n \n\n \n {({ geographies }) => {\n return geographies.map((geo, index) => {\n return (\n \n )\n })\n }}\n \n \n
\n \n\n \n\n \n\n \n \n )\n}\n\n//\n// Subcomponents\n//\n\n// Creates the lending map tooltip, containing the information of the country passed to it\nfunction LendingMapTooltip({\n data,\n mapTooltipCountry,\n mapTooltipCoordinates,\n mapTooltipActive,\n}) {\n let country = findObject(data, \"iso_a2\", mapTooltipCountry)\n\n return (\n \n {country && (\n
\n

{country.name}

\n
    \n {country.agreements.map((countryAgreement, index) => {\n let agreement = findObject(\n lendingMapAgreements,\n \"abbreviation\",\n countryAgreement.abbreviation\n )\n\n return (\n \n {countryAgreement.amount === 0 ? (\n

    \n * (See Agreement Overlay)\n

    \n ) : (\n

    \n {roundNumber(countryAgreement.amount, \"millions\", \"all\")}\n M SDR\n

    \n )}\n \n

    \n Approved on {countryAgreement.approval_date}\n

    \n \n )\n })}\n
\n
\n )}\n \n )\n}\n\n// Creates the lending map footer, containing the agreements list with numbers for the data passed to it\nfunction LendingMapFooter({\n data,\n mapIsActive,\n mapAgreementHighlights,\n toggleMapOverlay,\n mapAgreementButtonHovered,\n setMapAgreementButtonHovered,\n}) {\n let highlightedCountry = findObject(data, \"iso_a2\", mapAgreementHighlights)\n\n return (\n
\n

\n Click on a Lending Agreement to See More Info\n

\n
\n {lendingMapAgreements.map((agreement, index) => {\n let agreementTotal = roundNumber(\n getAgreementTotal(data, agreement.abbreviation),\n \"millions\"\n )\n\n let agreementTotalIsNotZero = parseFloat(agreementTotal) > 0\n\n return (\n {\n mapIsActive &&\n agreementTotalIsNotZero &&\n toggleMapOverlay(agreement.abbreviation)\n }}\n onMouseEnter={() => {\n agreementTotalIsNotZero &&\n setMapAgreementButtonHovered(agreement.abbreviation)\n }}\n onMouseLeave={() => {\n agreementTotalIsNotZero && setMapAgreementButtonHovered(\"\")\n }}\n >\n

\n {agreementTotal}\n \n M SDR\n \n

\n \n \n )\n })}\n
\n
\n
\n

SDR/USD Exchange Rates

\n

\n April 30, 2020: SDR1 = US$1.36640\n

\n

\n September 15, 2020: SDR1 = US$1.41664\n

\n
\n

\n Country borders do not necessarily reflect the IMF's official\n position.\n
\n Aug. = Augmentation\n

\n
\n
\n )\n}\n\n// Creates the lending map overlay, containing the information of the agreement passed to it\nfunction LendingMapOverlay({\n mapOverlayRef,\n data,\n mapFilter,\n toggleMapOverlay,\n mapOverlayIsActive,\n mapOverlayAgreementAbbreviation,\n}) {\n let agreement = findObject(\n lendingMapAgreements,\n \"abbreviation\",\n mapOverlayAgreementAbbreviation\n )\n\n let filterTitle = findObject(lendingMapFilters, \"slug\", mapFilter).title\n\n return (\n \n \n {agreement && (\n
\n
\n \n {agreement.type}\n \n \n
\n
\n

\n {roundNumber(\n getAgreementTotal(data, agreement.abbreviation),\n \"millions\"\n )}\n \n {\" \"}\n Milllion SDR{mapFilter !== \"all\" ? ` in ${filterTitle}` : \"\"}\n \n

\n
\n
\n
\n {agreement.details.length === 1 ? (\n \n ) : (\n
\n {agreement.details.map(detail => (\n \n ))}\n
\n )}\n {agreement.footnotes && (\n \n )}\n
\n
\n \n {agreement.footnotes && (\n \n )}\n
\n
\n
\n )}\n \n \n )\n}\n\n// Overlay subcomponent\nfunction AgreementOverlaySection({ title, content }) {\n return (\n
\n

{title}

\n
\n
\n )\n}\n\n// Overlay subcomponent\nfunction AgreementOverlaySectionTable({ title, data, agreementAbbreviation }) {\n let countries = filterDataByAgreement(data, agreementAbbreviation)\n\n return (\n
\n

{title}

\n \n \n \n \n \n \n \n \n \n \n {countries &&\n countries.map(country => {\n return (\n country.agreements &&\n country.agreements.map((agreement, index) => {\n return (\n 0\n ? \" lending-map__overlay__table-row--secondary\"\n : \"\")\n }\n >\n \n \n \n \n \n )\n })\n )\n })}\n \n
CountryDate of ApprovalAmount (SDR)Press Release
\n {index > 0 ? (\n \n {country.name}\n \n ) : (\n country.name\n )}\n \n {agreement.approval_date}\n \n {agreement.amount === 0 ? (\n \"*\"\n ) : (\n <>\n {roundNumber(agreement.amount, \"millions\", \"all\")}\n Million\n {agreement.augmented && (\n \n \n \n )}\n \n )}\n \n \n \n \n
\n
\n )\n}\n\n// General subcomponent\nfunction AgreementTypeKey({ type, color, uppercase, augmented }) {\n return (\n \n {augmented && \"Aug. of \"}\n {type}\n \n )\n}\n\n//\n// Utilities\n//\n\n// Returns an object containing arrays of the agreement color names and color values that match the given dataset\nfunction getColors(dataset) {\n // Initialize arrays\n let colorNames = [],\n colorValues = []\n\n dataset.agreements.forEach(datasetAgreement => {\n let agreement = findObject(\n lendingMapAgreements,\n \"abbreviation\",\n datasetAgreement.abbreviation\n )\n\n if (!colorNames.includes(agreement.color.name)) {\n colorNames.push(agreement.color.name) // Only push novel color names\n }\n\n if (!colorValues.includes(agreement.color.hex)) {\n colorValues.push(agreement.color.hex) // Only push novel color values\n }\n })\n\n return {\n colorNames,\n colorValues,\n }\n}\n\n// Returns the default fill, agreement fill, or agreement fill pattern string to be used as the fill for a country\nfunction getFill(country) {\n // Get the color names and values that apply to the country\n var { colorNames, colorValues } = getColors(country)\n\n // If there is more than one fill color, pass a predictable URL string for the fill, then generate a to inject into the svg \n if (colorNames.length > 1 && colorValues.length > 1) {\n let fillPatternString = `pattern-stripe-${colorNames.sort().join(\"-\")}`\n\n return `url('#${fillPatternString}')`\n }\n\n // If there is only one fill color, pass its value\n return colorValues[0]\n}\n\n// Returns an array of only the countries with agreements (and only the agreements therein) that match the filter\n// H/T https://stackoverflow.com/a/42167998\nfunction filterDataByFilter(dataset, filter) {\n return dataset.reduce(function (acc, country) {\n const agreements = country.agreements.filter(\n agreement => agreement[filter] === true\n )\n return !agreements.length\n ? acc\n : acc.concat(\n Object.assign({}, country, {\n agreements,\n })\n )\n }, [])\n}\n\n// Modified version of the above function to be consolidated later\n// Returns an array of only the countries with agreements (and only the agreements therein) that match the agreement type\nfunction filterDataByAgreement(dataset, agreementAbbreviation) {\n return dataset.reduce(function (acc, country) {\n const agreements = country.agreements.filter(\n agreement => agreement.abbreviation === agreementAbbreviation\n )\n return !agreements.length\n ? acc\n : acc.concat(\n Object.assign({}, country, {\n agreements,\n })\n )\n }, [])\n}\n\n// Returns the sum of all agreements of a given type across all countries of a dataset\nfunction getAgreementTotal(dataset, agreementAbbreviation) {\n let agreementTotal = 0 // Initialize the total at zero to avoid NaN errors\n\n dataset.forEach(item => {\n item.agreements.forEach(agreement => {\n if (agreementAbbreviation === agreement.abbreviation) {\n agreementTotal += parseInt(agreement.amount)\n }\n })\n })\n\n return agreementTotal\n}\n\n// Returns the sum of all agreements across all countries of a dataset\nfunction getAgreementsGrandTotal(dataset) {\n let agreementsGrandTotal = 0 // Initialize the total at zero to avoid NaN errors\n\n dataset.forEach(item => {\n item.agreements.forEach(agreement => {\n agreementsGrandTotal += parseInt(agreement.amount)\n })\n })\n\n return agreementsGrandTotal\n}\n\nexport { LendingMap as default, getColors }\n","import React from \"react\"\nimport Layout from \"../../components/layout\"\nimport SubNavigation from \"../../components/sub-navigation\"\nimport LendingMap from \"../../components/lending-map\"\nimport ReadNext from \"../../components/read-next\"\nimport { Appendix } from \"../../components/appendix\"\nimport { Link, withPrefix } from \"gatsby\"\n\nconst PAGESLUG = \"lending\"\n\nexport default function Lending() {\n return (\n \n \n
\n
\n
\n

Lending

\n

\n $165 billion to 83 countries, including $16.1 billion to 49\n low-income countries\n

\n

\n About $91 billion in financing to 80 countries, including $11.3\n billion to 48 low-income countries since the onset of the pandemic\n in late March and as of September 15, 2020.\n

\n

\n Out of this lending*, the IMF channeled $30 billion (equivalent to\n SDR 21.2 billion) in financing to 69 countries through emergency\n lending facilities.\n

\n

\n The IMF provides financing to member countries experiencing\n actual, potential, or prospective balance of payments problems to\n help them rebuild their international reserves and restore\n conditions for strong economic growth, while correcting underlying\n problems. The IMF also provides emergency financing and has\n massively stepped up such financing to help member countries\n address the immediate impact of the COVID-19 pandemic.\n

\n
\n

\n *Lending information covers May 1, 2019–September 15, 2020.\n

\n
\n
\n
\n \n
\n
\n
\n

\n Unlike development banks, the IMF does not lend for specific\n projects. Instead, IMF financing is meant to help member countries\n tackle balance of payments problems, stabilize their economies,\n and restore sustainable economic growth. IMF financing can also be\n provided in response to natural disasters or pandemics. Finally,\n the IMF also provides precautionary financing to help prevent and\n insure against future crises and continues to enhance the tools\n available for crisis prevention.\n

\n

\n In broad terms, the IMF has two types of lending—loans provided at\n nonconcessional interest rates and loans provided to low-income\n countries on concessional terms. Currently, concessional loans do\n not bear any interest.\n

\n

\n The IMF has responded to the COVID-19 pandemic with unprecedented\n speed and magnitude, making use of its current $1 trillion lending\n capacity.¹\n

\n

\n This response has entailed provision of financial assistance to\n countries with urgent or potential balance of payments needs with\n the aim to help protect the lives and livelihoods of people,\n especially the most vulnerable. Between the onset of the pandemic\n in late March and September 15, 2020, about $91 billion (or SDR 64\n billion) has been committed to 80 member countries, of which $30\n billion was emergency financing (RCF and RFI). On the lending\n front, actions have focused on five tracks:\n

\n
    \n
  1. \n

    \n Emergency financing under the RFI and RCF\n

    \n

    \n The IMF is responding to a record number of requests for\n emergency financing—from 69 countries as of September 15,\n 2020. The Board temporarily doubled the access limits to the\n emergency facilities—\n \n the Rapid Credit Facility (RCF)\n {\" \"}\n and{\" \"}\n \n Rapid Financing Instrument (RFI)\n \n —allowing it to meet the expected immediate demand from member\n countries (see RFI and RCF agreement details on Access Limits\n in the interactive lending map{\" \"}\n above). These facilities allow the IMF to provide emergency\n assistance without the need for the member to have a\n full-fledged program in place.\n

    \n
  2. \n
  3. \n

    \n Augmenting existing lending arrangements\n

    \n

    \n The IMF is also augmenting existing lending programs to\n accommodate urgent new needs arising from the coronavirus,\n thereby enabling a response to the COVID-19 crisis within the\n context of the ongoing policy dialogue. Augmentation requests\n have been approved by the Board for eight countries as of\n September 15, 2020.\n

    \n
  4. \n
  5. \n

    \n New lending arrangements, including precautionary arrangements\n

    \n

    \n The Board approved six new IMF-supported programs to five\n countries to mitigate the economic and social impact of the\n crisis while maintaining macroeconomic stability. In addition,{\" \"}\n \n Flexible Credit Lines (FCLs)\n {\" \"}\n were made available for three countries with very strong\n policy frameworks and track records in economic performance.\n (In all three cases, the authorities intend to treat their\n respective arrangements as precautionary.)\n

    \n
  6. \n
  7. \n

    Enhancing liquidity

    \n

    \n The Board approved the establishment of a{\" \"}\n \n Short-Term Liquidity Line (SLL)\n {\" \"}\n to further strengthen the global financial safety net (see{\" \"}\n \n Table 2.1\n {\" \"}\n on Financial Terms Under IMF General Resources Account\n Credit). The facility is a revolving and renewable backstop\n for member countries with very strong policies and\n fundamentals in need of short-term moderate balance of\n payments support.\n

    \n
  8. \n
  9. \n

    Debt relief

    \n

    \n In March 2020, the{\" \"}\n \n Catastrophe Containment and Relief Trust (CCRT)\n {\" \"}\n was enhanced to provide debt relief on a grant basis to the\n IMF’s poorest members affected by the COVID-19 pandemic.\n Twenty-nine eligible countries² have received debt service\n relief of SDR 344 million in two six-month tranches, which\n were approved by the Executive Board on April 13, 2020 and\n October 2, 2020, respectively.\n

    \n
  10. \n
\n

\n The Board has also temporarily streamlined the internal processes\n to allow the IMF to respond more quickly to members’ requests for\n emergency assistance during the COVID-19 pandemic, and in many\n cases the IMF made financing available within weeks of a request\n for emergency financing. In addition, the Board has also\n temporarily suspended the application of high-access procedures\n for RCF requests.³\n

\n

\n Policy safeguards were introduced in August 2020 to help mitigate\n financial risks from a member having high levels of combined high\n access from both the Poverty Reduction and Growth Trust and\n General Resources Account lending facilities. Under the new\n policy, safeguards apply to any Fund member with combined access\n to GRA and PRGT resources that exceeds quota-based thresholds set\n at the same level that triggers the exceptional access framework\n of the GRA.\n

\n
\n
    \n
  1. \n Including pre-pandemic commitments, as of September 15, 2020,\n total undisbursed lending commitments and credit outstanding\n under the IMF’s GRA lending were about SDR 174.9 billion, while\n the corresponding total under the Poverty Reduction and Growth\n Trust, which provides concessional lending to low-income\n countries, was about SDR 14.4 billion.\n
  2. \n
  3. \n Chad is one of 29 countries approved to benefit from the CCRT\n debt service relief. However, the first tranche of CCRT relief\n covers debt service falling due during April 13-October 13,\n 2020, during which Chad does not have any debt service to the\n IMF falling due. Hence, no CCRT relief was disbursed to Chad\n during this period.\n
  4. \n
  5. \n High-access procedures require an informal Board session based\n on a short staff note that includes discussion of program\n strength, capacity to repay, and debt vulnerabilities. The\n high-access procedures are triggered when (1) a request for Fund\n financing brings total access to more than 180 percent of quota\n over a 36-month period or (2) total outstanding credit from the\n PRGT exceeds or is projected to exceed 225 percent of quota.\n
  6. \n
\n
\n
\n
\n \n \n
\n )\n}\n","import { default as geoStream } from \"../stream.js\";\nimport boundsStream from \"../path/bounds.js\";\n\nfunction fit(projection, fitBounds, object) {\n var clip = projection.clipExtent && projection.clipExtent();\n projection.scale(150).translate([0, 0]);\n if (clip != null) projection.clipExtent(null);\n geoStream(object, projection.stream(boundsStream));\n fitBounds(boundsStream.result());\n if (clip != null) projection.clipExtent(clip);\n return projection;\n}\n\nexport function fitExtent(projection, extent, object) {\n return fit(projection, function (b) {\n var w = extent[1][0] - extent[0][0],\n h = extent[1][1] - extent[0][1],\n k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),\n x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,\n y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\nexport function fitSize(projection, size, object) {\n return fitExtent(projection, [[0, 0], size], object);\n}\nexport function fitWidth(projection, width, object) {\n return fit(projection, function (b) {\n var w = +width,\n k = w / (b[1][0] - b[0][0]),\n x = (w - k * (b[1][0] + b[0][0])) / 2,\n y = -k * b[0][1];\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\nexport function fitHeight(projection, height, object) {\n return fit(projection, function (b) {\n var h = +height,\n k = h / (b[1][1] - b[0][1]),\n x = -k * b[0][0],\n y = (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\nexport default function (node, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;\n\n for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return point(node, touch);\n }\n }\n\n return null;\n}","import { asin, atan2, cos, sin, sqrt } from \"./math.js\";\nexport function spherical(cartesian) {\n return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];\n}\nexport function cartesian(spherical) {\n var lambda = spherical[0],\n phi = spherical[1],\n cosPhi = cos(phi);\n return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];\n}\nexport function cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\nexport function cartesianCross(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n} // TODO return a\n\nexport function cartesianAddInPlace(a, b) {\n a[0] += b[0], a[1] += b[1], a[2] += b[2];\n}\nexport function cartesianScale(vector, k) {\n return [vector[0] * k, vector[1] * k, vector[2] * k];\n} // TODO return d\n\nexport function cartesianNormalizeInPlace(d) {\n var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l, d[1] /= l, d[2] /= l;\n}","function none() {}\n\nexport default function (selector) {\n return selector == null ? none : function () {\n return this.querySelector(selector);\n };\n}","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { fill: require('./_array-fill') });\n\nrequire('./_add-to-unscopables')('fill');\n","import namespaces from \"./namespaces\";\nexport default function (name) {\n var prefix = name += \"\",\n i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {\n space: namespaces[prefix],\n local: name\n } : name;\n}","import compose from \"./compose.js\";\nimport { abs, asin, atan2, cos, degrees, pi, radians, sin, tau } from \"./math.js\";\n\nfunction rotationIdentity(lambda, phi) {\n return [abs(lambda) > pi ? lambda + Math.round(-lambda / tau) * tau : lambda, phi];\n}\n\nrotationIdentity.invert = rotationIdentity;\nexport function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n return (deltaLambda %= tau) ? deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma)) : rotationLambda(deltaLambda) : deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma) : rotationIdentity;\n}\n\nfunction forwardRotationLambda(deltaLambda) {\n return function (lambda, phi) {\n return lambda += deltaLambda, [lambda > pi ? lambda - tau : lambda < -pi ? lambda + tau : lambda, phi];\n };\n}\n\nfunction rotationLambda(deltaLambda) {\n var rotation = forwardRotationLambda(deltaLambda);\n rotation.invert = forwardRotationLambda(-deltaLambda);\n return rotation;\n}\n\nfunction rotationPhiGamma(deltaPhi, deltaGamma) {\n var cosDeltaPhi = cos(deltaPhi),\n sinDeltaPhi = sin(deltaPhi),\n cosDeltaGamma = cos(deltaGamma),\n sinDeltaGamma = sin(deltaGamma);\n\n function rotation(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaPhi + x * sinDeltaPhi;\n return [atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi), asin(k * cosDeltaGamma + y * sinDeltaGamma)];\n }\n\n rotation.invert = function (lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaGamma - y * sinDeltaGamma;\n return [atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi), asin(k * cosDeltaPhi - x * sinDeltaPhi)];\n };\n\n return rotation;\n}\n\nexport default function (rotate) {\n rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);\n\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n }\n\n forward.invert = function (coordinates) {\n coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n };\n\n return forward;\n}","import { abs, epsilon } from \"./math.js\";\nexport default function (a, b) {\n return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n}","// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","export default function noop() {}","import adder from \"./adder.js\";\nimport { atan2, cos, quarterPi, radians, sin, tau } from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\nexport var areaRingSum = adder();\nvar areaSum = adder(),\n lambda00,\n phi00,\n lambda0,\n cosPhi0,\n sinPhi0;\nexport var areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function polygonStart() {\n areaRingSum.reset();\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function polygonEnd() {\n var areaRing = +areaRingSum;\n areaSum.add(areaRing < 0 ? tau + areaRing : areaRing);\n this.lineStart = this.lineEnd = this.point = noop;\n },\n sphere: function sphere() {\n areaSum.add(tau);\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaRingEnd() {\n areaPoint(lambda00, phi00);\n}\n\nfunction areaPointFirst(lambda, phi) {\n areaStream.point = areaPoint;\n lambda00 = lambda, phi00 = phi;\n lambda *= radians, phi *= radians;\n lambda0 = lambda, cosPhi0 = cos(phi = phi / 2 + quarterPi), sinPhi0 = sin(phi);\n}\n\nfunction areaPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n phi = phi / 2 + quarterPi; // half the angular distance from south pole\n // Spherical excess E for a spherical triangle with vertices: south pole,\n // previous point, current point. Uses a formula derived from Cagnoli’s\n // theorem. See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2).\n\n var dLambda = lambda - lambda0,\n sdLambda = dLambda >= 0 ? 1 : -1,\n adLambda = sdLambda * dLambda,\n cosPhi = cos(phi),\n sinPhi = sin(phi),\n k = sinPhi0 * sinPhi,\n u = cosPhi0 * cosPhi + k * cos(adLambda),\n v = k * sdLambda * sin(adLambda);\n areaRingSum.add(atan2(v, u)); // Advance the previous points.\n\n lambda0 = lambda, cosPhi0 = cosPhi, sinPhi0 = sinPhi;\n}\n\nexport default function (object) {\n areaSum.reset();\n stream(object, areaStream);\n return areaSum * 2;\n}","import adder from \"./adder.js\";\nimport { areaStream, areaRingSum } from \"./area.js\";\nimport { cartesian, cartesianCross, cartesianNormalizeInPlace, spherical } from \"./cartesian.js\";\nimport { abs, degrees, epsilon, radians } from \"./math.js\";\nimport stream from \"./stream.js\";\nvar lambda0,\n phi0,\n lambda1,\n phi1,\n // bounds\nlambda2,\n // previous lambda-coordinate\nlambda00,\n phi00,\n // first point\np0,\n // previous 3D point\ndeltaSum = adder(),\n ranges,\n range;\nvar boundsStream = {\n point: boundsPoint,\n lineStart: boundsLineStart,\n lineEnd: boundsLineEnd,\n polygonStart: function polygonStart() {\n boundsStream.point = boundsRingPoint;\n boundsStream.lineStart = boundsRingStart;\n boundsStream.lineEnd = boundsRingEnd;\n deltaSum.reset();\n areaStream.polygonStart();\n },\n polygonEnd: function polygonEnd() {\n areaStream.polygonEnd();\n boundsStream.point = boundsPoint;\n boundsStream.lineStart = boundsLineStart;\n boundsStream.lineEnd = boundsLineEnd;\n if (areaRingSum < 0) lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);else if (deltaSum > epsilon) phi1 = 90;else if (deltaSum < -epsilon) phi0 = -90;\n range[0] = lambda0, range[1] = lambda1;\n },\n sphere: function sphere() {\n lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n }\n};\n\nfunction boundsPoint(lambda, phi) {\n ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n}\n\nfunction linePoint(lambda, phi) {\n var p = cartesian([lambda * radians, phi * radians]);\n\n if (p0) {\n var normal = cartesianCross(p0, p),\n equatorial = [normal[1], -normal[0], 0],\n inflection = cartesianCross(equatorial, normal);\n cartesianNormalizeInPlace(inflection);\n inflection = spherical(inflection);\n var delta = lambda - lambda2,\n sign = delta > 0 ? 1 : -1,\n lambdai = inflection[0] * degrees * sign,\n phii,\n antimeridian = abs(delta) > 180;\n\n if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = inflection[1] * degrees;\n if (phii > phi1) phi1 = phii;\n } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = -inflection[1] * degrees;\n if (phii < phi0) phi0 = phii;\n } else {\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n }\n\n if (antimeridian) {\n if (lambda < lambda2) {\n if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;\n }\n } else {\n if (lambda1 >= lambda0) {\n if (lambda < lambda0) lambda0 = lambda;\n if (lambda > lambda1) lambda1 = lambda;\n } else {\n if (lambda > lambda2) {\n if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;\n }\n }\n }\n } else {\n ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);\n }\n\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n p0 = p, lambda2 = lambda;\n}\n\nfunction boundsLineStart() {\n boundsStream.point = linePoint;\n}\n\nfunction boundsLineEnd() {\n range[0] = lambda0, range[1] = lambda1;\n boundsStream.point = boundsPoint;\n p0 = null;\n}\n\nfunction boundsRingPoint(lambda, phi) {\n if (p0) {\n var delta = lambda - lambda2;\n deltaSum.add(abs(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);\n } else {\n lambda00 = lambda, phi00 = phi;\n }\n\n areaStream.point(lambda, phi);\n linePoint(lambda, phi);\n}\n\nfunction boundsRingStart() {\n areaStream.lineStart();\n}\n\nfunction boundsRingEnd() {\n boundsRingPoint(lambda00, phi00);\n areaStream.lineEnd();\n if (abs(deltaSum) > epsilon) lambda0 = -(lambda1 = 180);\n range[0] = lambda0, range[1] = lambda1;\n p0 = null;\n} // Finds the left-right distance between two longitudes.\n// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want\n// the distance between ±180° to be 360°.\n\n\nfunction angle(lambda0, lambda1) {\n return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1;\n}\n\nfunction rangeCompare(a, b) {\n return a[0] - b[0];\n}\n\nfunction rangeContains(range, x) {\n return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;\n}\n\nexport default function (feature) {\n var i, n, a, b, merged, deltaMax, delta;\n phi1 = lambda1 = -(lambda0 = phi0 = Infinity);\n ranges = [];\n stream(feature, boundsStream); // First, sort ranges by their minimum longitudes.\n\n if (n = ranges.length) {\n ranges.sort(rangeCompare); // Then, merge any ranges that overlap.\n\n for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {\n b = ranges[i];\n\n if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {\n if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];\n if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];\n } else {\n merged.push(a = b);\n }\n } // Finally, find the largest gap between the merged ranges.\n // The final bounding box will be the inverse of this gap.\n\n\n for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {\n b = merged[i];\n if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0 = b[0], lambda1 = a[1];\n }\n }\n\n ranges = range = null;\n return lambda0 === Infinity || phi0 === Infinity ? [[NaN, NaN], [NaN, NaN]] : [[lambda0, phi0], [lambda1, phi1]];\n}","import { asin, atan2, cos, degrees, epsilon, epsilon2, radians, sin, sqrt } from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\nvar W0, W1, X0, Y0, Z0, X1, Y1, Z1, X2, Y2, Z2, lambda00, phi00, // first point\nx0, y0, z0; // previous point\n\nvar centroidStream = {\n sphere: noop,\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function polygonStart() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function polygonEnd() {\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n }\n}; // Arithmetic mean of Cartesian vectors.\n\nfunction centroidPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi);\n centroidPointCartesian(cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi));\n}\n\nfunction centroidPointCartesian(x, y, z) {\n ++W0;\n X0 += (x - X0) / W0;\n Y0 += (y - Y0) / W0;\n Z0 += (z - Z0) / W0;\n}\n\nfunction centroidLineStart() {\n centroidStream.point = centroidLinePointFirst;\n}\n\nfunction centroidLinePointFirst(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi);\n x0 = cosPhi * cos(lambda);\n y0 = cosPhi * sin(lambda);\n z0 = sin(phi);\n centroidStream.point = centroidLinePoint;\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidLinePoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi),\n x = cosPhi * cos(lambda),\n y = cosPhi * sin(lambda),\n z = sin(phi),\n w = atan2(sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);\n W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n} // See J. E. Brock, The Inertia Tensor for a Spherical Triangle,\n// J. Applied Mechanics 42, 239 (1975).\n\n\nfunction centroidRingStart() {\n centroidStream.point = centroidRingPointFirst;\n}\n\nfunction centroidRingEnd() {\n centroidRingPoint(lambda00, phi00);\n centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingPointFirst(lambda, phi) {\n lambda00 = lambda, phi00 = phi;\n lambda *= radians, phi *= radians;\n centroidStream.point = centroidRingPoint;\n var cosPhi = cos(phi);\n x0 = cosPhi * cos(lambda);\n y0 = cosPhi * sin(lambda);\n z0 = sin(phi);\n centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidRingPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var cosPhi = cos(phi),\n x = cosPhi * cos(lambda),\n y = cosPhi * sin(lambda),\n z = sin(phi),\n cx = y0 * z - z0 * y,\n cy = z0 * x - x0 * z,\n cz = x0 * y - y0 * x,\n m = sqrt(cx * cx + cy * cy + cz * cz),\n w = asin(m),\n // line weight = angle\n v = m && -w / m; // area weight multiplier\n\n X2 += v * cx;\n Y2 += v * cy;\n Z2 += v * cz;\n W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n}\n\nexport default function (object) {\n W0 = W1 = X0 = Y0 = Z0 = X1 = Y1 = Z1 = X2 = Y2 = Z2 = 0;\n stream(object, centroidStream);\n var x = X2,\n y = Y2,\n z = Z2,\n m = x * x + y * y + z * z; // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid.\n\n if (m < epsilon2) {\n x = X1, y = Y1, z = Z1; // If the feature has zero length, fall back to arithmetic mean of point vectors.\n\n if (W1 < epsilon) x = X0, y = Y0, z = Z0;\n m = x * x + y * y + z * z; // If the feature still has an undefined ccentroid, then return.\n\n if (m < epsilon2) return [NaN, NaN];\n }\n\n return [atan2(y, x) * degrees, asin(z / sqrt(m)) * degrees];\n}","import adder from \"./adder.js\";\nimport { abs, atan2, cos, radians, sin, sqrt } from \"./math.js\";\nimport noop from \"./noop.js\";\nimport stream from \"./stream.js\";\nvar lengthSum = adder(),\n lambda0,\n sinPhi0,\n cosPhi0;\nvar lengthStream = {\n sphere: noop,\n point: noop,\n lineStart: lengthLineStart,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop\n};\n\nfunction lengthLineStart() {\n lengthStream.point = lengthPointFirst;\n lengthStream.lineEnd = lengthLineEnd;\n}\n\nfunction lengthLineEnd() {\n lengthStream.point = lengthStream.lineEnd = noop;\n}\n\nfunction lengthPointFirst(lambda, phi) {\n lambda *= radians, phi *= radians;\n lambda0 = lambda, sinPhi0 = sin(phi), cosPhi0 = cos(phi);\n lengthStream.point = lengthPoint;\n}\n\nfunction lengthPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var sinPhi = sin(phi),\n cosPhi = cos(phi),\n delta = abs(lambda - lambda0),\n cosDelta = cos(delta),\n sinDelta = sin(delta),\n x = cosPhi * sinDelta,\n y = cosPhi0 * sinPhi - sinPhi0 * cosPhi * cosDelta,\n z = sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosDelta;\n lengthSum.add(atan2(sqrt(x * x + y * y), z));\n lambda0 = lambda, sinPhi0 = sinPhi, cosPhi0 = cosPhi;\n}\n\nexport default function (object) {\n lengthSum.reset();\n stream(object, lengthStream);\n return +lengthSum;\n}","import clipRectangle from \"./rectangle.js\";\nexport default function () {\n var x0 = 0,\n y0 = 0,\n x1 = 960,\n y1 = 500,\n cache,\n cacheStream,\n clip;\n return clip = {\n stream: function stream(_stream) {\n return cache && cacheStream === _stream ? cache : cache = clipRectangle(x0, y0, x1, y1)(cacheStream = _stream);\n },\n extent: function extent(_) {\n return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]];\n }\n };\n}","import length from \"./length.js\";\nvar coordinates = [null, null],\n object = {\n type: \"LineString\",\n coordinates: coordinates\n};\nexport default function (a, b) {\n coordinates[0] = a;\n coordinates[1] = b;\n return length(object);\n}","import { default as polygonContains } from \"./polygonContains.js\";\nimport { default as distance } from \"./distance.js\";\nimport { epsilon2, radians } from \"./math.js\";\nvar containsObjectType = {\n Feature: function Feature(object, point) {\n return containsGeometry(object.geometry, point);\n },\n FeatureCollection: function FeatureCollection(object, point) {\n var features = object.features,\n i = -1,\n n = features.length;\n\n while (++i < n) {\n if (containsGeometry(features[i].geometry, point)) return true;\n }\n\n return false;\n }\n};\nvar containsGeometryType = {\n Sphere: function Sphere() {\n return true;\n },\n Point: function Point(object, point) {\n return containsPoint(object.coordinates, point);\n },\n MultiPoint: function MultiPoint(object, point) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n\n while (++i < n) {\n if (containsPoint(coordinates[i], point)) return true;\n }\n\n return false;\n },\n LineString: function LineString(object, point) {\n return containsLine(object.coordinates, point);\n },\n MultiLineString: function MultiLineString(object, point) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n\n while (++i < n) {\n if (containsLine(coordinates[i], point)) return true;\n }\n\n return false;\n },\n Polygon: function Polygon(object, point) {\n return containsPolygon(object.coordinates, point);\n },\n MultiPolygon: function MultiPolygon(object, point) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n\n while (++i < n) {\n if (containsPolygon(coordinates[i], point)) return true;\n }\n\n return false;\n },\n GeometryCollection: function GeometryCollection(object, point) {\n var geometries = object.geometries,\n i = -1,\n n = geometries.length;\n\n while (++i < n) {\n if (containsGeometry(geometries[i], point)) return true;\n }\n\n return false;\n }\n};\n\nfunction containsGeometry(geometry, point) {\n return geometry && containsGeometryType.hasOwnProperty(geometry.type) ? containsGeometryType[geometry.type](geometry, point) : false;\n}\n\nfunction containsPoint(coordinates, point) {\n return distance(coordinates, point) === 0;\n}\n\nfunction containsLine(coordinates, point) {\n var ao, bo, ab;\n\n for (var i = 0, n = coordinates.length; i < n; i++) {\n bo = distance(coordinates[i], point);\n if (bo === 0) return true;\n\n if (i > 0) {\n ab = distance(coordinates[i], coordinates[i - 1]);\n if (ab > 0 && ao <= ab && bo <= ab && (ao + bo - ab) * (1 - Math.pow((ao - bo) / ab, 2)) < epsilon2 * ab) return true;\n }\n\n ao = bo;\n }\n\n return false;\n}\n\nfunction containsPolygon(coordinates, point) {\n return !!polygonContains(coordinates.map(ringRadians), pointRadians(point));\n}\n\nfunction ringRadians(ring) {\n return ring = ring.map(pointRadians), ring.pop(), ring;\n}\n\nfunction pointRadians(point) {\n return [point[0] * radians, point[1] * radians];\n}\n\nexport default function (object, point) {\n return (object && containsObjectType.hasOwnProperty(object.type) ? containsObjectType[object.type] : containsGeometry)(object, point);\n}","import { range } from \"d3-array\";\nimport { abs, ceil, epsilon } from \"./math.js\";\n\nfunction graticuleX(y0, y1, dy) {\n var y = range(y0, y1 - epsilon, dy).concat(y1);\n return function (x) {\n return y.map(function (y) {\n return [x, y];\n });\n };\n}\n\nfunction graticuleY(x0, x1, dx) {\n var x = range(x0, x1 - epsilon, dx).concat(x1);\n return function (y) {\n return x.map(function (x) {\n return [x, y];\n });\n };\n}\n\nexport default function graticule() {\n var x1,\n x0,\n X1,\n X0,\n y1,\n y0,\n Y1,\n Y0,\n dx = 10,\n dy = dx,\n DX = 90,\n DY = 360,\n x,\n y,\n X,\n Y,\n precision = 2.5;\n\n function graticule() {\n return {\n type: \"MultiLineString\",\n coordinates: lines()\n };\n }\n\n function lines() {\n return range(ceil(X0 / DX) * DX, X1, DX).map(X).concat(range(ceil(Y0 / DY) * DY, Y1, DY).map(Y)).concat(range(ceil(x0 / dx) * dx, x1, dx).filter(function (x) {\n return abs(x % DX) > epsilon;\n }).map(x)).concat(range(ceil(y0 / dy) * dy, y1, dy).filter(function (y) {\n return abs(y % DY) > epsilon;\n }).map(y));\n }\n\n graticule.lines = function () {\n return lines().map(function (coordinates) {\n return {\n type: \"LineString\",\n coordinates: coordinates\n };\n });\n };\n\n graticule.outline = function () {\n return {\n type: \"Polygon\",\n coordinates: [X(X0).concat(Y(Y1).slice(1), X(X1).reverse().slice(1), Y(Y0).reverse().slice(1))]\n };\n };\n\n graticule.extent = function (_) {\n if (!arguments.length) return graticule.extentMinor();\n return graticule.extentMajor(_).extentMinor(_);\n };\n\n graticule.extentMajor = function (_) {\n if (!arguments.length) return [[X0, Y0], [X1, Y1]];\n X0 = +_[0][0], X1 = +_[1][0];\n Y0 = +_[0][1], Y1 = +_[1][1];\n if (X0 > X1) _ = X0, X0 = X1, X1 = _;\n if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;\n return graticule.precision(precision);\n };\n\n graticule.extentMinor = function (_) {\n if (!arguments.length) return [[x0, y0], [x1, y1]];\n x0 = +_[0][0], x1 = +_[1][0];\n y0 = +_[0][1], y1 = +_[1][1];\n if (x0 > x1) _ = x0, x0 = x1, x1 = _;\n if (y0 > y1) _ = y0, y0 = y1, y1 = _;\n return graticule.precision(precision);\n };\n\n graticule.step = function (_) {\n if (!arguments.length) return graticule.stepMinor();\n return graticule.stepMajor(_).stepMinor(_);\n };\n\n graticule.stepMajor = function (_) {\n if (!arguments.length) return [DX, DY];\n DX = +_[0], DY = +_[1];\n return graticule;\n };\n\n graticule.stepMinor = function (_) {\n if (!arguments.length) return [dx, dy];\n dx = +_[0], dy = +_[1];\n return graticule;\n };\n\n graticule.precision = function (_) {\n if (!arguments.length) return precision;\n precision = +_;\n x = graticuleX(y0, y1, 90);\n y = graticuleY(x0, x1, precision);\n X = graticuleX(Y0, Y1, 90);\n Y = graticuleY(X0, X1, precision);\n return graticule;\n };\n\n return graticule.extentMajor([[-180, -90 + epsilon], [180, 90 - epsilon]]).extentMinor([[-180, -80 - epsilon], [180, 80 + epsilon]]);\n}\nexport function graticule10() {\n return graticule()();\n}","import { asin, atan2, cos, degrees, haversin, radians, sin, sqrt } from \"./math.js\";\nexport default function (a, b) {\n var x0 = a[0] * radians,\n y0 = a[1] * radians,\n x1 = b[0] * radians,\n y1 = b[1] * radians,\n cy0 = cos(y0),\n sy0 = sin(y0),\n cy1 = cos(y1),\n sy1 = sin(y1),\n kx0 = cy0 * cos(x0),\n ky0 = cy0 * sin(x0),\n kx1 = cy1 * cos(x1),\n ky1 = cy1 * sin(x1),\n d = 2 * asin(sqrt(haversin(y1 - y0) + cy0 * cy1 * haversin(x1 - x0))),\n k = sin(d);\n var interpolate = d ? function (t) {\n var B = sin(t *= d) / k,\n A = sin(d - t) / k,\n x = A * kx0 + B * kx1,\n y = A * ky0 + B * ky1,\n z = A * sy0 + B * sy1;\n return [atan2(y, x) * degrees, atan2(z, sqrt(x * x + y * y)) * degrees];\n } : function () {\n return [x0 * degrees, y0 * degrees];\n };\n interpolate.distance = d;\n return interpolate;\n}","import adder from \"../adder.js\";\nimport { abs } from \"../math.js\";\nimport noop from \"../noop.js\";\nvar areaSum = adder(),\n areaRingSum = adder(),\n x00,\n y00,\n x0,\n y0;\nvar areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function polygonStart() {\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function polygonEnd() {\n areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop;\n areaSum.add(abs(areaRingSum));\n areaRingSum.reset();\n },\n result: function result() {\n var area = areaSum / 2;\n areaSum.reset();\n return area;\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaPointFirst(x, y) {\n areaStream.point = areaPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction areaPoint(x, y) {\n areaRingSum.add(y0 * x - x0 * y);\n x0 = x, y0 = y;\n}\n\nfunction areaRingEnd() {\n areaPoint(x00, y00);\n}\n\nexport default areaStream;","import { sqrt } from \"../math.js\"; // TODO Enforce positive area for exterior, negative area for interior?\n\nvar X0 = 0,\n Y0 = 0,\n Z0 = 0,\n X1 = 0,\n Y1 = 0,\n Z1 = 0,\n X2 = 0,\n Y2 = 0,\n Z2 = 0,\n x00,\n y00,\n x0,\n y0;\nvar centroidStream = {\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function polygonStart() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function polygonEnd() {\n centroidStream.point = centroidPoint;\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n },\n result: function result() {\n var centroid = Z2 ? [X2 / Z2, Y2 / Z2] : Z1 ? [X1 / Z1, Y1 / Z1] : Z0 ? [X0 / Z0, Y0 / Z0] : [NaN, NaN];\n X0 = Y0 = Z0 = X1 = Y1 = Z1 = X2 = Y2 = Z2 = 0;\n return centroid;\n }\n};\n\nfunction centroidPoint(x, y) {\n X0 += x;\n Y0 += y;\n ++Z0;\n}\n\nfunction centroidLineStart() {\n centroidStream.point = centroidPointFirstLine;\n}\n\nfunction centroidPointFirstLine(x, y) {\n centroidStream.point = centroidPointLine;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidPointLine(x, y) {\n var dx = x - x0,\n dy = y - y0,\n z = sqrt(dx * dx + dy * dy);\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidLineEnd() {\n centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingStart() {\n centroidStream.point = centroidPointFirstRing;\n}\n\nfunction centroidRingEnd() {\n centroidPointRing(x00, y00);\n}\n\nfunction centroidPointFirstRing(x, y) {\n centroidStream.point = centroidPointRing;\n centroidPoint(x00 = x0 = x, y00 = y0 = y);\n}\n\nfunction centroidPointRing(x, y) {\n var dx = x - x0,\n dy = y - y0,\n z = sqrt(dx * dx + dy * dy);\n X1 += z * (x0 + x) / 2;\n Y1 += z * (y0 + y) / 2;\n Z1 += z;\n z = y0 * x - x0 * y;\n X2 += z * (x0 + x);\n Y2 += z * (y0 + y);\n Z2 += z * 3;\n centroidPoint(x0 = x, y0 = y);\n}\n\nexport default centroidStream;","import { tau } from \"../math.js\";\nimport noop from \"../noop.js\";\nexport default function PathContext(context) {\n this._context = context;\n}\nPathContext.prototype = {\n _radius: 4.5,\n pointRadius: function pointRadius(_) {\n return this._radius = _, this;\n },\n polygonStart: function polygonStart() {\n this._line = 0;\n },\n polygonEnd: function polygonEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line === 0) this._context.closePath();\n this._point = NaN;\n },\n point: function point(x, y) {\n switch (this._point) {\n case 0:\n {\n this._context.moveTo(x, y);\n\n this._point = 1;\n break;\n }\n\n case 1:\n {\n this._context.lineTo(x, y);\n\n break;\n }\n\n default:\n {\n this._context.moveTo(x + this._radius, y);\n\n this._context.arc(x, y, this._radius, 0, tau);\n\n break;\n }\n }\n },\n result: noop\n};","import adder from \"../adder.js\";\nimport { sqrt } from \"../math.js\";\nimport noop from \"../noop.js\";\nvar lengthSum = adder(),\n lengthRing,\n x00,\n y00,\n x0,\n y0;\nvar lengthStream = {\n point: noop,\n lineStart: function lineStart() {\n lengthStream.point = lengthPointFirst;\n },\n lineEnd: function lineEnd() {\n if (lengthRing) lengthPoint(x00, y00);\n lengthStream.point = noop;\n },\n polygonStart: function polygonStart() {\n lengthRing = true;\n },\n polygonEnd: function polygonEnd() {\n lengthRing = null;\n },\n result: function result() {\n var length = +lengthSum;\n lengthSum.reset();\n return length;\n }\n};\n\nfunction lengthPointFirst(x, y) {\n lengthStream.point = lengthPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction lengthPoint(x, y) {\n x0 -= x, y0 -= y;\n lengthSum.add(sqrt(x0 * x0 + y0 * y0));\n x0 = x, y0 = y;\n}\n\nexport default lengthStream;","export default function PathString() {\n this._string = [];\n}\nPathString.prototype = {\n _radius: 4.5,\n _circle: circle(4.5),\n pointRadius: function pointRadius(_) {\n if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;\n return this;\n },\n polygonStart: function polygonStart() {\n this._line = 0;\n },\n polygonEnd: function polygonEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line === 0) this._string.push(\"Z\");\n this._point = NaN;\n },\n point: function point(x, y) {\n switch (this._point) {\n case 0:\n {\n this._string.push(\"M\", x, \",\", y);\n\n this._point = 1;\n break;\n }\n\n case 1:\n {\n this._string.push(\"L\", x, \",\", y);\n\n break;\n }\n\n default:\n {\n if (this._circle == null) this._circle = circle(this._radius);\n\n this._string.push(\"M\", x, \",\", y, this._circle);\n\n break;\n }\n }\n },\n result: function result() {\n if (this._string.length) {\n var result = this._string.join(\"\");\n\n this._string = [];\n return result;\n } else {\n return null;\n }\n }\n};\n\nfunction circle(radius) {\n return \"m0,\" + radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius + \"z\";\n}","import identity from \"../identity.js\";\nimport stream from \"../stream.js\";\nimport pathArea from \"./area.js\";\nimport pathBounds from \"./bounds.js\";\nimport pathCentroid from \"./centroid.js\";\nimport PathContext from \"./context.js\";\nimport pathMeasure from \"./measure.js\";\nimport PathString from \"./string.js\";\nexport default function (projection, context) {\n var pointRadius = 4.5,\n projectionStream,\n contextStream;\n\n function path(object) {\n if (object) {\n if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n stream(object, projectionStream(contextStream));\n }\n\n return contextStream.result();\n }\n\n path.area = function (object) {\n stream(object, projectionStream(pathArea));\n return pathArea.result();\n };\n\n path.measure = function (object) {\n stream(object, projectionStream(pathMeasure));\n return pathMeasure.result();\n };\n\n path.bounds = function (object) {\n stream(object, projectionStream(pathBounds));\n return pathBounds.result();\n };\n\n path.centroid = function (object) {\n stream(object, projectionStream(pathCentroid));\n return pathCentroid.result();\n };\n\n path.projection = function (_) {\n return arguments.length ? (projectionStream = _ == null ? (projection = null, identity) : (projection = _).stream, path) : projection;\n };\n\n path.context = function (_) {\n if (!arguments.length) return context;\n contextStream = _ == null ? (context = null, new PathString()) : new PathContext(context = _);\n if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n return path;\n };\n\n path.pointRadius = function (_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n\n return path.projection(projection).context(context);\n}","import { degrees, pi, radians } from \"../math.js\";\nimport { projectionMutator } from \"./index.js\";\nexport function conicProjection(projectAt) {\n var phi0 = 0,\n phi1 = pi / 3,\n m = projectionMutator(projectAt),\n p = m(phi0, phi1);\n\n p.parallels = function (_) {\n return arguments.length ? m(phi0 = _[0] * radians, phi1 = _[1] * radians) : [phi0 * degrees, phi1 * degrees];\n };\n\n return p;\n}","import { abs, asin, atan2, cos, epsilon, pi, sign, sin, sqrt } from \"../math.js\";\nimport { conicProjection } from \"./conic.js\";\nimport { cylindricalEqualAreaRaw } from \"./cylindricalEqualArea.js\";\nexport function conicEqualAreaRaw(y0, y1) {\n var sy0 = sin(y0),\n n = (sy0 + sin(y1)) / 2; // Are the parallels symmetrical around the Equator?\n\n if (abs(n) < epsilon) return cylindricalEqualAreaRaw(y0);\n var c = 1 + sy0 * (2 * n - sy0),\n r0 = sqrt(c) / n;\n\n function project(x, y) {\n var r = sqrt(c - 2 * n * sin(y)) / n;\n return [r * sin(x *= n), r0 - r * cos(x)];\n }\n\n project.invert = function (x, y) {\n var r0y = r0 - y,\n l = atan2(x, abs(r0y)) * sign(r0y);\n if (r0y * n < 0) l -= pi * sign(x) * sign(r0y);\n return [l / n, asin((c - (x * x + r0y * r0y) * n * n) / (2 * n))];\n };\n\n return project;\n}\nexport default function () {\n return conicProjection(conicEqualAreaRaw).scale(155.424).center([0, 33.6442]);\n}","import { asin, cos, sin } from \"../math.js\";\nexport function cylindricalEqualAreaRaw(phi0) {\n var cosPhi0 = cos(phi0);\n\n function forward(lambda, phi) {\n return [lambda * cosPhi0, sin(phi) / cosPhi0];\n }\n\n forward.invert = function (x, y) {\n return [x / cosPhi0, asin(y * cosPhi0)];\n };\n\n return forward;\n}","import conicEqualArea from \"./conicEqualArea.js\";\nexport default function () {\n return conicEqualArea().parallels([29.5, 45.5]).scale(1070).translate([480, 250]).rotate([96, 0]).center([-0.6, 38.7]);\n}","import { epsilon } from \"../math.js\";\nimport albers from \"./albers.js\";\nimport conicEqualArea from \"./conicEqualArea.js\";\nimport { fitExtent, fitSize, fitWidth, fitHeight } from \"./fit.js\"; // The projections must have mutually exclusive clip regions on the sphere,\n// as this will avoid emitting interleaving lines and polygons.\n\nfunction multiplex(streams) {\n var n = streams.length;\n return {\n point: function point(x, y) {\n var i = -1;\n\n while (++i < n) {\n streams[i].point(x, y);\n }\n },\n sphere: function sphere() {\n var i = -1;\n\n while (++i < n) {\n streams[i].sphere();\n }\n },\n lineStart: function lineStart() {\n var i = -1;\n\n while (++i < n) {\n streams[i].lineStart();\n }\n },\n lineEnd: function lineEnd() {\n var i = -1;\n\n while (++i < n) {\n streams[i].lineEnd();\n }\n },\n polygonStart: function polygonStart() {\n var i = -1;\n\n while (++i < n) {\n streams[i].polygonStart();\n }\n },\n polygonEnd: function polygonEnd() {\n var i = -1;\n\n while (++i < n) {\n streams[i].polygonEnd();\n }\n }\n };\n} // A composite projection for the United States, configured by default for\n// 960×500. The projection also works quite well at 960×600 if you change the\n// scale to 1285 and adjust the translate accordingly. The set of standard\n// parallels for each region comes from USGS, which is published here:\n// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers\n\n\nexport default function () {\n var cache,\n cacheStream,\n lower48 = albers(),\n lower48Point,\n alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]),\n alaskaPoint,\n // EPSG:3338\n hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]),\n hawaiiPoint,\n // ESRI:102007\n _point,\n pointStream = {\n point: function point(x, y) {\n _point = [x, y];\n }\n };\n\n function albersUsa(coordinates) {\n var x = coordinates[0],\n y = coordinates[1];\n return _point = null, (lower48Point.point(x, y), _point) || (alaskaPoint.point(x, y), _point) || (hawaiiPoint.point(x, y), _point);\n }\n\n albersUsa.invert = function (coordinates) {\n var k = lower48.scale(),\n t = lower48.translate(),\n x = (coordinates[0] - t[0]) / k,\n y = (coordinates[1] - t[1]) / k;\n return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii : lower48).invert(coordinates);\n };\n\n albersUsa.stream = function (stream) {\n return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);\n };\n\n albersUsa.precision = function (_) {\n if (!arguments.length) return lower48.precision();\n lower48.precision(_), alaska.precision(_), hawaii.precision(_);\n return reset();\n };\n\n albersUsa.scale = function (_) {\n if (!arguments.length) return lower48.scale();\n lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);\n return albersUsa.translate(lower48.translate());\n };\n\n albersUsa.translate = function (_) {\n if (!arguments.length) return lower48.translate();\n var k = lower48.scale(),\n x = +_[0],\n y = +_[1];\n lower48Point = lower48.translate(_).clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]]).stream(pointStream);\n alaskaPoint = alaska.translate([x - 0.307 * k, y + 0.201 * k]).clipExtent([[x - 0.425 * k + epsilon, y + 0.120 * k + epsilon], [x - 0.214 * k - epsilon, y + 0.234 * k - epsilon]]).stream(pointStream);\n hawaiiPoint = hawaii.translate([x - 0.205 * k, y + 0.212 * k]).clipExtent([[x - 0.214 * k + epsilon, y + 0.166 * k + epsilon], [x - 0.115 * k - epsilon, y + 0.234 * k - epsilon]]).stream(pointStream);\n return reset();\n };\n\n albersUsa.fitExtent = function (extent, object) {\n return fitExtent(albersUsa, extent, object);\n };\n\n albersUsa.fitSize = function (size, object) {\n return fitSize(albersUsa, size, object);\n };\n\n albersUsa.fitWidth = function (width, object) {\n return fitWidth(albersUsa, width, object);\n };\n\n albersUsa.fitHeight = function (height, object) {\n return fitHeight(albersUsa, height, object);\n };\n\n function reset() {\n cache = cacheStream = null;\n return albersUsa;\n }\n\n return albersUsa.scale(1070);\n}","import { asin, atan2, cos, sin, sqrt } from \"../math.js\";\nexport function azimuthalRaw(scale) {\n return function (x, y) {\n var cx = cos(x),\n cy = cos(y),\n k = scale(cx * cy);\n return [k * cy * sin(x), k * sin(y)];\n };\n}\nexport function azimuthalInvert(angle) {\n return function (x, y) {\n var z = sqrt(x * x + y * y),\n c = angle(z),\n sc = sin(c),\n cc = cos(c);\n return [atan2(x * sc, z * cc), asin(z && y * sc / z)];\n };\n}","import { asin, sqrt } from \"../math.js\";\nimport { azimuthalRaw, azimuthalInvert } from \"./azimuthal.js\";\nimport projection from \"./index.js\";\nexport var azimuthalEqualAreaRaw = azimuthalRaw(function (cxcy) {\n return sqrt(2 / (1 + cxcy));\n});\nazimuthalEqualAreaRaw.invert = azimuthalInvert(function (z) {\n return 2 * asin(z / 2);\n});\nexport default function () {\n return projection(azimuthalEqualAreaRaw).scale(124.75).clipAngle(180 - 1e-3);\n}","import { acos, sin } from \"../math.js\";\nimport { azimuthalRaw, azimuthalInvert } from \"./azimuthal.js\";\nimport projection from \"./index.js\";\nexport var azimuthalEquidistantRaw = azimuthalRaw(function (c) {\n return (c = acos(c)) && c / sin(c);\n});\nazimuthalEquidistantRaw.invert = azimuthalInvert(function (z) {\n return z;\n});\nexport default function () {\n return projection(azimuthalEquidistantRaw).scale(79.4188).clipAngle(180 - 1e-3);\n}","import { atan, exp, halfPi, log, pi, tan, tau } from \"../math.js\";\nimport rotation from \"../rotation.js\";\nimport projection from \"./index.js\";\nexport function mercatorRaw(lambda, phi) {\n return [lambda, log(tan((halfPi + phi) / 2))];\n}\n\nmercatorRaw.invert = function (x, y) {\n return [x, 2 * atan(exp(y)) - halfPi];\n};\n\nexport default function () {\n return mercatorProjection(mercatorRaw).scale(961 / tau);\n}\nexport function mercatorProjection(project) {\n var m = projection(project),\n center = m.center,\n scale = m.scale,\n translate = m.translate,\n clipExtent = m.clipExtent,\n x0 = null,\n y0,\n x1,\n y1; // clip extent\n\n m.scale = function (_) {\n return arguments.length ? (scale(_), reclip()) : scale();\n };\n\n m.translate = function (_) {\n return arguments.length ? (translate(_), reclip()) : translate();\n };\n\n m.center = function (_) {\n return arguments.length ? (center(_), reclip()) : center();\n };\n\n m.clipExtent = function (_) {\n return arguments.length ? (_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n function reclip() {\n var k = pi * scale(),\n t = m(rotation(m.rotate()).invert([0, 0]));\n return clipExtent(x0 == null ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]] : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);\n }\n\n return reclip();\n}","import { abs, atan, atan2, cos, epsilon, halfPi, log, pi, pow, sign, sin, sqrt, tan } from \"../math.js\";\nimport { conicProjection } from \"./conic.js\";\nimport { mercatorRaw } from \"./mercator.js\";\n\nfunction tany(y) {\n return tan((halfPi + y) / 2);\n}\n\nexport function conicConformalRaw(y0, y1) {\n var cy0 = cos(y0),\n n = y0 === y1 ? sin(y0) : log(cy0 / cos(y1)) / log(tany(y1) / tany(y0)),\n f = cy0 * pow(tany(y0), n) / n;\n if (!n) return mercatorRaw;\n\n function project(x, y) {\n if (f > 0) {\n if (y < -halfPi + epsilon) y = -halfPi + epsilon;\n } else {\n if (y > halfPi - epsilon) y = halfPi - epsilon;\n }\n\n var r = f / pow(tany(y), n);\n return [r * sin(n * x), f - r * cos(n * x)];\n }\n\n project.invert = function (x, y) {\n var fy = f - y,\n r = sign(n) * sqrt(x * x + fy * fy),\n l = atan2(x, abs(fy)) * sign(fy);\n if (fy * n < 0) l -= pi * sign(x) * sign(fy);\n return [l / n, 2 * atan(pow(f / r, 1 / n)) - halfPi];\n };\n\n return project;\n}\nexport default function () {\n return conicProjection(conicConformalRaw).scale(109.5).parallels([30, 30]);\n}","import projection from \"./index.js\";\nexport function equirectangularRaw(lambda, phi) {\n return [lambda, phi];\n}\nequirectangularRaw.invert = equirectangularRaw;\nexport default function () {\n return projection(equirectangularRaw).scale(152.63);\n}","import { abs, atan2, cos, epsilon, pi, sign, sin, sqrt } from \"../math.js\";\nimport { conicProjection } from \"./conic.js\";\nimport { equirectangularRaw } from \"./equirectangular.js\";\nexport function conicEquidistantRaw(y0, y1) {\n var cy0 = cos(y0),\n n = y0 === y1 ? sin(y0) : (cy0 - cos(y1)) / (y1 - y0),\n g = cy0 / n + y0;\n if (abs(n) < epsilon) return equirectangularRaw;\n\n function project(x, y) {\n var gy = g - y,\n nx = n * x;\n return [gy * sin(nx), g - gy * cos(nx)];\n }\n\n project.invert = function (x, y) {\n var gy = g - y,\n l = atan2(x, abs(gy)) * sign(gy);\n if (gy * n < 0) l -= pi * sign(x) * sign(gy);\n return [l / n, g - sign(n) * sqrt(x * x + gy * gy)];\n };\n\n return project;\n}\nexport default function () {\n return conicProjection(conicEquidistantRaw).scale(131.154).center([0, 13.9389]);\n}","import projection from \"./index.js\";\nimport { abs, asin, cos, epsilon2, sin, sqrt } from \"../math.js\";\nvar A1 = 1.340264,\n A2 = -0.081106,\n A3 = 0.000893,\n A4 = 0.003796,\n M = sqrt(3) / 2,\n iterations = 12;\nexport function equalEarthRaw(lambda, phi) {\n var l = asin(M * sin(phi)),\n l2 = l * l,\n l6 = l2 * l2 * l2;\n return [lambda * cos(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))), l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2))];\n}\n\nequalEarthRaw.invert = function (x, y) {\n var l = y,\n l2 = l * l,\n l6 = l2 * l2 * l2;\n\n for (var i = 0, delta, fy, fpy; i < iterations; ++i) {\n fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y;\n fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2);\n l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2;\n if (abs(delta) < epsilon2) break;\n }\n\n return [M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / cos(l), asin(sin(l) / M)];\n};\n\nexport default function () {\n return projection(equalEarthRaw).scale(177.158);\n}","import { atan, cos, sin } from \"../math.js\";\nimport { azimuthalInvert } from \"./azimuthal.js\";\nimport projection from \"./index.js\";\nexport function gnomonicRaw(x, y) {\n var cy = cos(y),\n k = cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n}\ngnomonicRaw.invert = azimuthalInvert(atan);\nexport default function () {\n return projection(gnomonicRaw).scale(144.049).clipAngle(60);\n}","import clipRectangle from \"../clip/rectangle.js\";\nimport identity from \"../identity.js\";\nimport { transformer } from \"../transform.js\";\nimport { fitExtent, fitSize, fitWidth, fitHeight } from \"./fit.js\";\nimport { cos, degrees, radians, sin } from \"../math.js\";\nexport default function () {\n var k = 1,\n tx = 0,\n ty = 0,\n sx = 1,\n sy = 1,\n // scale, translate and reflect\n alpha = 0,\n ca,\n sa,\n // angle\n x0 = null,\n y0,\n x1,\n y1,\n // clip extent\n kx = 1,\n ky = 1,\n transform = transformer({\n point: function point(x, y) {\n var p = projection([x, y]);\n this.stream.point(p[0], p[1]);\n }\n }),\n postclip = identity,\n cache,\n cacheStream;\n\n function reset() {\n kx = k * sx;\n ky = k * sy;\n cache = cacheStream = null;\n return projection;\n }\n\n function projection(p) {\n var x = p[0] * kx,\n y = p[1] * ky;\n\n if (alpha) {\n var t = y * ca - x * sa;\n x = x * ca + y * sa;\n y = t;\n }\n\n return [x + tx, y + ty];\n }\n\n projection.invert = function (p) {\n var x = p[0] - tx,\n y = p[1] - ty;\n\n if (alpha) {\n var t = y * ca + x * sa;\n x = x * ca - y * sa;\n y = t;\n }\n\n return [x / kx, y / ky];\n };\n\n projection.stream = function (stream) {\n return cache && cacheStream === stream ? cache : cache = transform(postclip(cacheStream = stream));\n };\n\n projection.postclip = function (_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n };\n\n projection.clipExtent = function (_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n projection.scale = function (_) {\n return arguments.length ? (k = +_, reset()) : k;\n };\n\n projection.translate = function (_) {\n return arguments.length ? (tx = +_[0], ty = +_[1], reset()) : [tx, ty];\n };\n\n projection.angle = function (_) {\n return arguments.length ? (alpha = _ % 360 * radians, sa = sin(alpha), ca = cos(alpha), reset()) : alpha * degrees;\n };\n\n projection.reflectX = function (_) {\n return arguments.length ? (sx = _ ? -1 : 1, reset()) : sx < 0;\n };\n\n projection.reflectY = function (_) {\n return arguments.length ? (sy = _ ? -1 : 1, reset()) : sy < 0;\n };\n\n projection.fitExtent = function (extent, object) {\n return fitExtent(projection, extent, object);\n };\n\n projection.fitSize = function (size, object) {\n return fitSize(projection, size, object);\n };\n\n projection.fitWidth = function (width, object) {\n return fitWidth(projection, width, object);\n };\n\n projection.fitHeight = function (height, object) {\n return fitHeight(projection, height, object);\n };\n\n return projection;\n}","import projection from \"./index.js\";\nimport { abs, epsilon } from \"../math.js\";\nexport function naturalEarth1Raw(lambda, phi) {\n var phi2 = phi * phi,\n phi4 = phi2 * phi2;\n return [lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))), phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))];\n}\n\nnaturalEarth1Raw.invert = function (x, y) {\n var phi = y,\n i = 25,\n delta;\n\n do {\n var phi2 = phi * phi,\n phi4 = phi2 * phi2;\n phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) / (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4)));\n } while (abs(delta) > epsilon && --i > 0);\n\n return [x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))), phi];\n};\n\nexport default function () {\n return projection(naturalEarth1Raw).scale(175.295);\n}","import { asin, cos, epsilon, sin } from \"../math.js\";\nimport { azimuthalInvert } from \"./azimuthal.js\";\nimport projection from \"./index.js\";\nexport function orthographicRaw(x, y) {\n return [cos(y) * sin(x), sin(y)];\n}\northographicRaw.invert = azimuthalInvert(asin);\nexport default function () {\n return projection(orthographicRaw).scale(249.5).clipAngle(90 + epsilon);\n}","import { atan, cos, sin } from \"../math.js\";\nimport { azimuthalInvert } from \"./azimuthal.js\";\nimport projection from \"./index.js\";\nexport function stereographicRaw(x, y) {\n var cy = cos(y),\n k = 1 + cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n}\nstereographicRaw.invert = azimuthalInvert(function (z) {\n return 2 * atan(z);\n});\nexport default function () {\n return projection(stereographicRaw).scale(250).clipAngle(142);\n}","import { atan, exp, halfPi, log, tan } from \"../math.js\";\nimport { mercatorProjection } from \"./mercator.js\";\nexport function transverseMercatorRaw(lambda, phi) {\n return [log(tan((halfPi + phi) / 2)), -lambda];\n}\n\ntransverseMercatorRaw.invert = function (x, y) {\n return [-y, 2 * atan(exp(x)) - halfPi];\n};\n\nexport default function () {\n var m = mercatorProjection(transverseMercatorRaw),\n center = m.center,\n rotate = m.rotate;\n\n m.center = function (_) {\n return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);\n };\n\n m.rotate = function (_) {\n return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);\n };\n\n return rotate([0, 0, 90]).scale(159.155);\n}","export default function (node) {\n return node.ownerDocument && node.ownerDocument.defaultView || // node is a Node\n node.document && node // node is a Window\n || node.defaultView; // node is a Document\n}","import clipBuffer from \"./buffer.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport { epsilon, halfPi } from \"../math.js\";\nimport polygonContains from \"../polygonContains.js\";\nimport { merge } from \"d3-array\";\nexport default function (pointVisible, clipLine, interpolate, start) {\n return function (sink) {\n var line = clipLine(sink),\n ringBuffer = clipBuffer(),\n ringSink = clipLine(ringBuffer),\n polygonStarted = false,\n polygon,\n segments,\n ring;\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function polygonStart() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function polygonEnd() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = merge(segments);\n var startInside = polygonContains(polygon, start);\n\n if (segments.length) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n clipRejoin(segments, compareIntersection, startInside, interpolate, sink);\n } else if (startInside) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n }\n\n if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function sphere() {\n sink.polygonStart();\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n sink.polygonEnd();\n }\n };\n\n function point(lambda, phi) {\n if (pointVisible(lambda, phi)) sink.point(lambda, phi);\n }\n\n function pointLine(lambda, phi) {\n line.point(lambda, phi);\n }\n\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n\n function pointRing(lambda, phi) {\n ring.push([lambda, phi]);\n ringSink.point(lambda, phi);\n }\n\n function ringStart() {\n ringSink.lineStart();\n ring = [];\n }\n\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringSink.lineEnd();\n var clean = ringSink.clean(),\n ringSegments = ringBuffer.result(),\n i,\n n = ringSegments.length,\n m,\n segment,\n point;\n ring.pop();\n polygon.push(ring);\n ring = null;\n if (!n) return; // No intersections.\n\n if (clean & 1) {\n segment = ringSegments[0];\n\n if ((m = segment.length - 1) > 0) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n\n for (i = 0; i < m; ++i) {\n sink.point((point = segment[i])[0], point[1]);\n }\n\n sink.lineEnd();\n }\n\n return;\n } // Rejoin connected segments.\n // TODO reuse ringBuffer.rejoin()?\n\n\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n segments.push(ringSegments.filter(validSegment));\n }\n\n return clip;\n };\n}\n\nfunction validSegment(segment) {\n return segment.length > 1;\n} // Intersections are sorted along the clip edge. For both antimeridian cutting\n// and circle clipping, the same comparison is used.\n\n\nfunction compareIntersection(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1]) - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);\n}","export default function (a, b) {\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n\n if (a.invert && b.invert) compose.invert = function (x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n return compose;\n}","export default function (methods) {\n return {\n stream: transformer(methods)\n };\n}\nexport function transformer(methods) {\n return function (stream) {\n var s = new TransformStream();\n\n for (var key in methods) {\n s[key] = methods[key];\n }\n\n s.stream = stream;\n return s;\n };\n}\n\nfunction TransformStream() {}\n\nTransformStream.prototype = {\n constructor: TransformStream,\n point: function point(x, y) {\n this.stream.point(x, y);\n },\n sphere: function sphere() {\n this.stream.sphere();\n },\n lineStart: function lineStart() {\n this.stream.lineStart();\n },\n lineEnd: function lineEnd() {\n this.stream.lineEnd();\n },\n polygonStart: function polygonStart() {\n this.stream.polygonStart();\n },\n polygonEnd: function polygonEnd() {\n this.stream.polygonEnd();\n }\n};","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n return function link(url) {\n return createHTML(this, 'a', 'href', url);\n };\n});\n","function streamGeometry(geometry, stream) {\n if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n streamGeometryType[geometry.type](geometry, stream);\n }\n}\n\nvar streamObjectType = {\n Feature: function Feature(object, stream) {\n streamGeometry(object.geometry, stream);\n },\n FeatureCollection: function FeatureCollection(object, stream) {\n var features = object.features,\n i = -1,\n n = features.length;\n\n while (++i < n) {\n streamGeometry(features[i].geometry, stream);\n }\n }\n};\nvar streamGeometryType = {\n Sphere: function Sphere(object, stream) {\n stream.sphere();\n },\n Point: function Point(object, stream) {\n object = object.coordinates;\n stream.point(object[0], object[1], object[2]);\n },\n MultiPoint: function MultiPoint(object, stream) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n\n while (++i < n) {\n object = coordinates[i], stream.point(object[0], object[1], object[2]);\n }\n },\n LineString: function LineString(object, stream) {\n streamLine(object.coordinates, stream, 0);\n },\n MultiLineString: function MultiLineString(object, stream) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n\n while (++i < n) {\n streamLine(coordinates[i], stream, 0);\n }\n },\n Polygon: function Polygon(object, stream) {\n streamPolygon(object.coordinates, stream);\n },\n MultiPolygon: function MultiPolygon(object, stream) {\n var coordinates = object.coordinates,\n i = -1,\n n = coordinates.length;\n\n while (++i < n) {\n streamPolygon(coordinates[i], stream);\n }\n },\n GeometryCollection: function GeometryCollection(object, stream) {\n var geometries = object.geometries,\n i = -1,\n n = geometries.length;\n\n while (++i < n) {\n streamGeometry(geometries[i], stream);\n }\n }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n var i = -1,\n n = coordinates.length - closed,\n coordinate;\n stream.lineStart();\n\n while (++i < n) {\n coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n }\n\n stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n var i = -1,\n n = coordinates.length;\n stream.polygonStart();\n\n while (++i < n) {\n streamLine(coordinates[i], stream, 1);\n }\n\n stream.polygonEnd();\n}\n\nexport default function (object, stream) {\n if (object && streamObjectType.hasOwnProperty(object.type)) {\n streamObjectType[object.type](object, stream);\n } else {\n streamGeometry(object, stream);\n }\n}","// Adds floating point numbers with twice the normal precision.\n// Reference: J. R. Shewchuk, Adaptive Precision Floating-Point Arithmetic and\n// Fast Robust Geometric Predicates, Discrete & Computational Geometry 18(3)\n// 305–363 (1997).\n// Code adapted from GeographicLib by Charles F. F. Karney,\n// http://geographiclib.sourceforge.net/\nexport default function () {\n return new Adder();\n}\n\nfunction Adder() {\n this.reset();\n}\n\nAdder.prototype = {\n constructor: Adder,\n reset: function reset() {\n this.s = // rounded value\n this.t = 0; // exact error\n },\n add: function add(y) {\n _add(temp, y, this.t);\n\n _add(this, temp.s, this.s);\n\n if (this.s) this.t += temp.t;else this.s = temp.t;\n },\n valueOf: function valueOf() {\n return this.s;\n }\n};\nvar temp = new Adder();\n\nfunction _add(adder, a, b) {\n var x = adder.s = a + b,\n bv = x - a,\n av = x - bv;\n adder.t = a - av + (b - bv);\n}","export default function (a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;","import ascending from \"./ascending\";\nexport default function (compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function left(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;else hi = mid;\n }\n\n return lo;\n },\n right: function right(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;else lo = mid + 1;\n }\n\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function (d, x) {\n return ascending(f(d), x);\n };\n}","import { pair } from \"./pairs\";\nexport default function (values0, values1, reduce) {\n var n0 = values0.length,\n n1 = values1.length,\n values = new Array(n0 * n1),\n i0,\n i1,\n i,\n value0;\n if (reduce == null) reduce = pair;\n\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n\n return values;\n}","var array = Array.prototype;\nexport var slice = array.slice;\nexport var map = array.map;","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 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}","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\nexport default function (start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\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 start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n\n while (++i < n) {\n ticks[i] = (start + i) * step;\n }\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n\n while (++i < n) {\n ticks[i] = (start - i) / step;\n }\n }\n\n if (reverse) ticks.reverse();\n return ticks;\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 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\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;else if (error >= e5) step1 *= 5;else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}","export default function (values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n}","export default function (arrays) {\n var n = arrays.length,\n m,\n i = -1,\n j = 0,\n merged,\n array;\n\n while (++i < n) {\n j += arrays[i].length;\n }\n\n merged = new Array(j);\n\n while (--n >= 0) {\n array = arrays[n];\n m = array.length;\n\n while (--m >= 0) {\n merged[--j] = array[m];\n }\n }\n\n return merged;\n}","export default function (x) {\n return function () {\n return x;\n };\n}","import { cartesian, cartesianNormalizeInPlace, spherical } from \"./cartesian.js\";\nimport constant from \"./constant.js\";\nimport { acos, cos, degrees, epsilon, radians, sin, tau } from \"./math.js\";\nimport { rotateRadians } from \"./rotation.js\"; // Generates a circle centered at [0°, 0°], with a given radius and precision.\n\nexport function circleStream(stream, radius, delta, direction, t0, t1) {\n if (!delta) return;\n var cosRadius = cos(radius),\n sinRadius = sin(radius),\n step = direction * delta;\n\n if (t0 == null) {\n t0 = radius + direction * tau;\n t1 = radius - step / 2;\n } else {\n t0 = circleRadius(cosRadius, t0);\n t1 = circleRadius(cosRadius, t1);\n if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau;\n }\n\n for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {\n point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);\n stream.point(point[0], point[1]);\n }\n} // Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].\n\nfunction circleRadius(cosRadius, point) {\n point = cartesian(point), point[0] -= cosRadius;\n cartesianNormalizeInPlace(point);\n var radius = acos(-point[1]);\n return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;\n}\n\nexport default function () {\n var center = constant([0, 0]),\n radius = constant(90),\n precision = constant(6),\n ring,\n rotate,\n stream = {\n point: point\n };\n\n function point(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= degrees, x[1] *= degrees;\n }\n\n function circle() {\n var c = center.apply(this, arguments),\n r = radius.apply(this, arguments) * radians,\n p = precision.apply(this, arguments) * radians;\n ring = [];\n rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;\n circleStream(stream, r, p, 1);\n c = {\n type: \"Polygon\",\n coordinates: [ring]\n };\n ring = rotate = null;\n return c;\n }\n\n circle.center = function (_) {\n return arguments.length ? (center = typeof _ === \"function\" ? _ : constant([+_[0], +_[1]]), circle) : center;\n };\n\n circle.radius = function (_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), circle) : radius;\n };\n\n circle.precision = function (_) {\n return arguments.length ? (precision = typeof _ === \"function\" ? _ : constant(+_), circle) : precision;\n };\n\n return circle;\n}"],"sourceRoot":""}