{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/react/index.js-exposed","webpack:///./Client/translator.ts","webpack:///./node_modules/react-redux/es/components/Context.js","webpack:///./node_modules/react-redux/es/utils/batch.js","webpack:///./node_modules/react-redux/es/utils/Subscription.js","webpack:///./node_modules/react-redux/es/components/Provider.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","webpack:///./node_modules/react-redux/es/components/connectAdvanced.js","webpack:///./node_modules/react-redux/es/utils/shallowEqual.js","webpack:///./node_modules/react-redux/es/connect/wrapMapToProps.js","webpack:///./node_modules/react-redux/es/connect/mapDispatchToProps.js","webpack:///./node_modules/react-redux/es/connect/mapStateToProps.js","webpack:///./node_modules/react-redux/es/connect/mergeProps.js","webpack:///./node_modules/react-redux/es/connect/selectorFactory.js","webpack:///./node_modules/react-redux/es/connect/connect.js","webpack:///./node_modules/react-redux/es/hooks/useSelector.js","webpack:///./node_modules/react-redux/es/index.js","webpack:///./Client/store/dataExplorer.ts","webpack:///./Client/reducers/dataExplorerReducer.ts","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/redux/es/redux.js","webpack:///./Client/common/BrowserDetection.ts","webpack:///./node_modules/d3-array/src/ascending.js","webpack:///./node_modules/d3-array/src/bisector.js","webpack:///./node_modules/d3-array/src/bisect.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/max.js","webpack:///./node_modules/d3-array/src/zip.js","webpack:///./node_modules/d3-axis/src/array.js","webpack:///./node_modules/d3-axis/src/identity.js","webpack:///./node_modules/d3-axis/src/axis.js","webpack:///./node_modules/d3-dispatch/src/dispatch.js","webpack:///./node_modules/d3-selection/src/selector.js","webpack:///./node_modules/d3-selection/src/selectorAll.js","webpack:///./node_modules/d3-selection/src/matcher.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/namespaces.js","webpack:///./node_modules/d3-selection/src/namespace.js","webpack:///./node_modules/d3-selection/src/selection/attr.js","webpack:///./node_modules/d3-selection/src/window.js","webpack:///./node_modules/d3-selection/src/selection/style.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/creator.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/on.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-selection/src/select.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/numberArray.js","webpack:///./node_modules/d3-interpolate/src/array.js","webpack:///./node_modules/d3-interpolate/src/date.js","webpack:///./node_modules/d3-interpolate/src/number.js","webpack:///./node_modules/d3-interpolate/src/object.js","webpack:///./node_modules/d3-interpolate/src/string.js","webpack:///./node_modules/d3-timer/src/timer.js","webpack:///./node_modules/d3-interpolate/src/value.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/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-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-brush/src/brush.js","webpack:///./node_modules/d3-chord/src/math.js","webpack:///./node_modules/d3-chord/src/array.js","webpack:///./node_modules/d3-chord/src/chord.js","webpack:///./node_modules/d3-path/src/path.js","webpack:///./node_modules/d3-collection/src/map.js","webpack:///./node_modules/d3-collection/src/set.js","webpack:///./node_modules/d3-contour/src/array.js","webpack:///./node_modules/d3-fetch/src/buffer.js","webpack:///./node_modules/d3-dsv/src/dsv.js","webpack:///./node_modules/d3-dsv/src/csv.js","webpack:///./node_modules/d3-dsv/src/tsv.js","webpack:///./node_modules/d3-fetch/src/text.js","webpack:///./node_modules/d3-fetch/src/dsv.js","webpack:///./node_modules/d3-fetch/src/xml.js","webpack:///./node_modules/d3-quadtree/src/add.js","webpack:///./node_modules/d3-quadtree/src/cover.js","webpack:///./node_modules/d3-quadtree/src/quad.js","webpack:///./node_modules/d3-quadtree/src/x.js","webpack:///./node_modules/d3-quadtree/src/y.js","webpack:///./node_modules/d3-quadtree/src/quadtree.js","webpack:///./node_modules/d3-quadtree/src/data.js","webpack:///./node_modules/d3-quadtree/src/extent.js","webpack:///./node_modules/d3-quadtree/src/find.js","webpack:///./node_modules/d3-quadtree/src/remove.js","webpack:///./node_modules/d3-quadtree/src/root.js","webpack:///./node_modules/d3-quadtree/src/size.js","webpack:///./node_modules/d3-quadtree/src/visit.js","webpack:///./node_modules/d3-quadtree/src/visitAfter.js","webpack:///./node_modules/d3-force/src/simulation.js","webpack:///./node_modules/d3-random/src/defaultSource.js","webpack:///./node_modules/d3-random/src/normal.js","webpack:///./node_modules/d3-random/src/uniform.js","webpack:///./node_modules/d3-random/src/irwinHall.js","webpack:///./node_modules/d3-random/src/logNormal.js","webpack:///./node_modules/d3-random/src/bates.js","webpack:///./node_modules/d3-random/src/exponential.js","webpack:///./node_modules/d3-scale/src/init.js","webpack:///./node_modules/d3-scale/src/array.js","webpack:///./node_modules/d3-scale/src/ordinal.js","webpack:///./node_modules/d3-scale/src/band.js","webpack:///./node_modules/d3-interpolate/src/round.js","webpack:///./node_modules/d3-scale/src/number.js","webpack:///./node_modules/d3-scale/src/continuous.js","webpack:///./node_modules/d3-scale/src/constant.js","webpack:///./node_modules/d3-format/src/formatSpecifier.js","webpack:///./node_modules/d3-format/src/formatDecimal.js","webpack:///./node_modules/d3-format/src/formatPrefixAuto.js","webpack:///./node_modules/d3-format/src/defaultLocale.js","webpack:///./node_modules/d3-format/src/exponent.js","webpack:///./node_modules/d3-format/src/formatRounded.js","webpack:///./node_modules/d3-format/src/formatTypes.js","webpack:///./node_modules/d3-format/src/identity.js","webpack:///./node_modules/d3-format/src/locale.js","webpack:///./node_modules/d3-format/src/formatGroup.js","webpack:///./node_modules/d3-format/src/formatNumerals.js","webpack:///./node_modules/d3-format/src/formatTrim.js","webpack:///./node_modules/d3-format/src/precisionRound.js","webpack:///./node_modules/d3-scale/src/tickFormat.js","webpack:///./node_modules/d3-format/src/precisionPrefix.js","webpack:///./node_modules/d3-format/src/precisionFixed.js","webpack:///./node_modules/d3-scale/src/linear.js","webpack:///./node_modules/d3-time/src/interval.js","webpack:///./node_modules/d3-time/src/year.js","webpack:///./node_modules/d3-time/src/month.js","webpack:///./node_modules/d3-time/src/week.js","webpack:///./node_modules/d3-time/src/duration.js","webpack:///./node_modules/d3-time/src/day.js","webpack:///./node_modules/d3-time/src/hour.js","webpack:///./node_modules/d3-time/src/minute.js","webpack:///./node_modules/d3-time/src/second.js","webpack:///./node_modules/d3-time/src/millisecond.js","webpack:///./node_modules/d3-time/src/utcWeek.js","webpack:///./node_modules/d3-time/src/utcDay.js","webpack:///./node_modules/d3-time/src/utcYear.js","webpack:///./node_modules/d3-time-format/src/locale.js","webpack:///./node_modules/d3-time-format/src/defaultLocale.js","webpack:///./node_modules/d3-scale/src/time.js","webpack:///./node_modules/d3-time/src/utcMonth.js","webpack:///./node_modules/d3-time/src/utcHour.js","webpack:///./node_modules/d3-time/src/utcMinute.js","webpack:///./node_modules/d3-color/src/math.js","webpack:///./node_modules/d3-color/src/cubehelix.js","webpack:///./node_modules/d3-interpolate/src/cubehelix.js","webpack:///./node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js","webpack:///./node_modules/d3-shape/src/constant.js","webpack:///./node_modules/d3-shape/src/curve/linear.js","webpack:///./node_modules/d3-shape/src/point.js","webpack:///./node_modules/d3-shape/src/line.js","webpack:///./node_modules/d3-voronoi/src/RedBlackTree.js","webpack:///./node_modules/d3-voronoi/src/Edge.js","webpack:///./node_modules/d3-voronoi/src/Cell.js","webpack:///./node_modules/d3-voronoi/src/Circle.js","webpack:///./node_modules/d3-voronoi/src/Beach.js","webpack:///./node_modules/d3-voronoi/src/Diagram.js","webpack:///./node_modules/d3-interpolate/src/zoom.js","webpack:///./node_modules/d3-zoom/src/transform.js","webpack:///./node_modules/d3-zoom/src/zoom.js","webpack:///./Client/types.ts","webpack:///./Client/renderChart.ts","webpack:///./Client/components/Chart.tsx","webpack:///./Client/containers/Charting.tsx","webpack:///./Client/containers/SummaryTable.tsx","webpack:///./Client/components/SummaryTable.tsx","webpack:///./node_modules/react-is/index.js","webpack:///./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack:///./node_modules/symbol-observable/es/index.js","webpack:///./node_modules/object-assign/index.js","webpack:///./node_modules/react-dom/index.js-exposed","webpack:///./node_modules/symbol-observable/es/ponyfill.js","webpack:///./Client/containers/InitializeChartDataStore.tsx","webpack:///./Client/components/Counter.tsx","webpack:///./Client/HOC/YesScript.tsx","webpack:///./Client/components/SaveBtn.tsx","webpack:///./Client/containers/SaveChartBtn.tsx","webpack:///./Client/HOC/NoScript.tsx","webpack:///./Client/components/Filters.tsx","webpack:///./Client/containers/Filters.tsx","webpack:///./Client/containers/DescriptionTable.tsx","webpack:///./Client/components/DescriptionTable.tsx","webpack:///./Client/client.ts","webpack:///./Client/shared.ts","webpack:///./node_modules/react/index.js","webpack:///./node_modules/react/cjs/react.production.min.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/react-is/cjs/react-is.production.min.js","webpack:///(webpack)/buildin/harmony-module.js","webpack:///./node_modules/react-dom/index.js","webpack:///./node_modules/react-dom/cjs/react-dom.production.min.js","webpack:///./node_modules/scheduler/index.js","webpack:///./node_modules/scheduler/cjs/scheduler.production.min.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","installedModules","0","__webpack_require__","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","s","textFormat","text","substitutions","keys","forEach","subkey","split","join","toString","numberFormat","number","culture","decimals","units","languageCode","formattedNumber","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","format","spacing","ReactReduxContext","createContext","callback","nullListeners","notify","createListenerCollection","batch","first","last","clear","listener","next","listeners","subscribe","isSubscribed","prev","Subscription","store","parentSub","this","unsubscribe","handleChangeWrapper","_proto","addNestedSub","trySubscribe","notifyNestedSubs","onStateChange","Boolean","tryUnsubscribe","_ref","context","children","contextValue","subscription","previousState","getState","Context","Provider","_extends","assign","arguments","source","apply","_objectWithoutPropertiesLoose","excluded","sourceKeys","indexOf","useIsomorphicLayoutEffect","EMPTY_ARRAY","NO_SUBSCRIPTION_ARRAY","storeStateUpdatesReducer","state","action","updateCount","payload","useIsomorphicLayoutEffectWithArgs","effectFunc","effectArgs","dependencies","captureWrapperProps","lastWrapperProps","lastChildProps","renderIsScheduled","wrapperProps","actualChildProps","childPropsFromStoreUpdate","current","subscribeUpdates","shouldHandleStateChanges","childPropsSelector","forceComponentUpdateDispatch","didUnsubscribe","lastThrownError","checkForUpdates","newChildProps","latestStoreState","initStateUpdates","connectAdvanced","selectorFactory","_ref2","_ref2$getDisplayName","getDisplayName","_ref2$methodName","methodName","_ref2$renderCountProp","renderCountProp","_ref2$shouldHandleSta","_ref2$storeKey","storeKey","_ref2$forwardRef","withRef","forwardRef","_ref2$context","connectOptions","WrappedComponent","wrappedComponentName","displayName","selectorFactoryOptions","pure","usePureOnlyMemo","ConnectFunction","props","_useMemo","forwardedRef","propsContext","ContextToUse","Consumer","didStoreComeFromProps","dispatch","createChildSelector","_useMemo2","overriddenContextValue","_useReducer","previousStateUpdateResult","renderedWrappedComponent","ref","Connect","memo","forwarded","is","x","y","shallowEqual","objA","objB","keysA","keysB","wrapMapToPropsConstant","getConstant","options","constant","constantSelector","dependsOnOwnProps","getDependsOnOwnProps","mapToProps","wrapMapToPropsFunc","proxy","stateOrDispatch","ownProps","mapDispatchToProps","mapStateToProps","defaultMergeProps","stateProps","dispatchProps","mergeProps","mergedProps","areMergedPropsEqual","hasRunOnce","nextMergedProps","wrapMergePropsFunc","impureFinalPropsSelectorFactory","pureFinalPropsSelectorFactory","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","hasRunAtLeastOnce","handleSubsequentCalls","nextState","nextOwnProps","nextStateProps","statePropsChanged","propsChanged","stateChanged","finalPropsSelectorFactory","initMapStateToProps","initMapDispatchToProps","initMergeProps","match","arg","factories","result","strictEqual","a","b","createConnect","_temp","_ref$connectHOC","connectHOC","_ref$mapStateToPropsF","mapStateToPropsFactories","_ref$mapDispatchToPro","mapDispatchToPropsFactories","_ref$mergePropsFactor","mergePropsFactories","_ref$selectorFactory","_ref3","_ref3$pure","_ref3$areStatesEqual","_ref3$areOwnPropsEqua","_ref3$areStatePropsEq","_ref3$areMergedPropsE","extraOptions","newBatch","dataExplorerStore","__assign","initState","updateLoadState","updateFilters","updateChartData","dataExplorerReducer","loading","filters","chartData","g","Function","randomString","Math","random","substring","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","isPlainObject","obj","proto","getPrototypeOf","createStore","reducer","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","index","splice","replaceReducer","nextReducer","observable","outerSubscribe","observer","TypeError","observeState","bindActionCreator","actionCreator","bindActionCreators","actionCreators","boundActionCreators","isIE","navigator","userAgent","NaN","f","compare","ascending","left","lo","hi","mid","right","ascendingBisect","bisector","bisectRight","bisect","Array","map","start","stop","step","max","ceil","range","e10","sqrt","e5","e2","reverse","ticks","count","tickIncrement","isFinite","floor","power","log","LN10","pow","tickStep","step0","abs","step1","values","valueof","translateX","translateY","scale","center","offset","bandwidth","round","entering","__axis","orient","tickArguments","tickValues","tickFormat","tickSizeInner","tickSizeOuter","tickPadding","k","transform","axis","domain","range0","range1","position","copy","selection","path","selectAll","tick","order","tickExit","exit","tickEnter","enter","append","attr","line","select","merge","insert","transition","getAttribute","parentNode","remove","filter","each","_","tickSize","noop","test","Dispatch","parseTypenames","typenames","types","trim","set","concat","constructor","on","typename","T","that","args","none","selector","querySelector","querySelectorAll","matches","update","EnterNode","parent","datum","ownerDocument","namespaceURI","_next","_parent","__data__","child","insertBefore","bindIndex","group","node","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","keyValues","xhtml","svg","xlink","xml","xmlns","prefix","namespaces","space","local","attrRemove","removeAttribute","attrRemoveNS","fullname","removeAttributeNS","attrConstant","attrConstantNS","setAttributeNS","attrFunction","v","attrFunctionNS","defaultView","styleRemove","style","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","propertyRemove","propertyConstant","propertyFunction","classArray","string","classList","ClassList","_node","_names","classedAdd","names","list","add","classedRemove","classedTrue","classedFalse","classedFunction","contains","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","lower","previousSibling","firstChild","creatorInherit","uri","documentElement","createElementNS","creatorFixed","namespace","constantNull","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","filterEvents","mouseenter","mouseleave","filterContextListener","contextListener","related","relatedTarget","compareDocumentPosition","event1","event0","onRemove","__on","j","removeEventListener","capture","onAdd","wrap","addEventListener","dispatchEvent","params","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","Selection","groups","parents","_groups","_parents","subgroups","subnode","subgroup","selectorAll","matcher","size","enterGroup","updateGroup","previous","i0","i1","_enter","_exit","sparse","onenter","onupdate","onexit","groups0","groups1","m0","m1","min","merges","group0","group1","sort","compareNode","sortgroups","sortgroup","nodes","empty","getAttributeNS","classed","html","creator","before","deep","factory","extend","definition","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","toLowerCase","exec","parseInt","rgbn","Rgb","rgba","hsla","rgbConvert","opacity","rgb_formatHex","hex","rgb_formatRgb","isNaN","h","Hsl","hslConvert","hsl2rgb","m2","basis","t1","v0","v1","v2","v3","t2","t3","define","channels","displayable","formatHsl","brighter","darker","linear","gamma","nogamma","exponential","color","end","rgbGamma","rgbSpline","spline","colors","isNumberArray","ArrayBuffer","isView","DataView","genericArray","nb","na","Date","setTime","reA","reB","taskHead","taskTail","am","bm","bs","bi","lastIndex","q","one","numberArray","isArray","valueOf","clockLast","clockNow","clockSkew","clock","performance","now","setFrame","requestAnimationFrame","clearNow","Timer","_call","_time","timer","delay","time","restart","wake","timerFlush","t0","Infinity","sleep","nap","poke","clearInterval","setInterval","elapsed","emptyOn","emptyTween","schedules","__transition","id","self","tween","duration","ease","timing","schedule","cssNode","cssRoot","cssView","svgNode","active","degrees","PI","rotate","skewX","scaleX","scaleY","atan2","atan","interpolateTransform","parse","pxComma","pxParen","degParen","pop","xa","ya","xb","yb","translate","interpolateTransformCss","decompose","interpolateTransformSvg","baseVal","consolidate","matrix","tweenRemove","tween0","tween1","tweenFunction","tweenValue","_id","interpolate","value1","string00","interpolate0","string1","string0","string10","attrInterpolate","attrInterpolateNS","attrTweenNS","_value","attrTween","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","onFunction","on0","on1","sit","every","styleInterpolate","styleTween","textInterpolate","textTween","Transition","_name","newId","selection_prototype","inherit","id0","id1","styleNull","listener0","styleMaybeRemove","cancel","interrupt","defaultTiming","number1","number2","cos","sin","tauEpsilon","Path","_x0","_y0","_x1","_y1","moveTo","closePath","lineTo","quadraticCurveTo","x1","y1","bezierCurveTo","x2","y2","arcTo","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","acos","t01","t21","arc","a0","a1","ccw","dx","dy","cw","da","rect","w","Map","has","entries","Set","EOL","EOF","objectConverter","columns","JSON","stringify","inferColumns","rows","columnSet","row","column","pad","width","formatDate","date","year","hours","getUTCHours","minutes","getUTCMinutes","seconds","getUTCSeconds","milliseconds","getUTCMilliseconds","getUTCFullYear","getUTCMonth","getUTCDate","reFormat","delimiter","DELIMITER","charCodeAt","parseRows","N","I","eof","eol","token","replace","preformatBody","formatValue","formatRow","convert","customConverter","formatBody","formatRows","csv","dsv","csvParse","tsv","tsvParse","responseText","response","ok","status","statusText","fetch","input","init","then","dsvParse","parser","DOMParser","parseFromString","tree","xm","ym","xp","yp","bottom","_root","leaf","_x","_y","quadtree","Quadtree","addAll","leaf_copy","treeProto","cover","xz","yz","z","visit","extent","find","x3","y3","quads","radius","d2","retainer","removeAll","root","visitAfter","randomUniform","sourceRandomUniform","randomNormal","mu","sigma","sourceRandomNormal","randomLogNormal","normal","exp","sourceRandomLogNormal","randomIrwinHall","sum","sourceRandomIrwinHall","randomBates","irwinHall","sourceRandomBates","randomExponential","lambda","sourceRandomExponential","initRange","implicit","ordinal","unknown","band","ordinalRange","paddingInner","paddingOuter","align","rescale","rangeRound","padding","unit","normalize","clamper","bimap","d0","d1","r0","r1","polymap","clamp","transformer","untransform","piecewise","output","invert","u","continuous","re","formatSpecifier","specifier","FormatSpecifier","fill","sign","symbol","zero","comma","precision","prefixExponent","toExponential","coefficient","formatDecimal","exponent","toFixed","toPrecision","formatRounded","toUpperCase","prefixes","locale","grouping","thousands","Number","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","String","percent","minus","nan","newFormat","formatTypes","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","formatTrim","formatPrefix","precisionPrefix","precisionRound","precisionFixed","linearish","nice","newInterval","floori","offseti","field","interval","setMonth","setHours","setFullYear","getFullYear","setDate","getMonth","weekday","getDate","getDay","getTimezoneOffset","sunday","monday","tuesday","wednesday","thursday","friday","saturday","getMilliseconds","getSeconds","getMinutes","getHours","utcWeekday","setUTCDate","getUTCDay","setUTCHours","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcDay","utcYear","setUTCMonth","setUTCFullYear","localDate","H","M","S","L","utcDate","UTC","newDate","pads","numberRe","percentRe","requoteRe","requote","formatRe","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","U","parseWeekNumberISO","V","parseWeekNumberMonday","W","parseFullYear","parseYear","parseZone","Z","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","Q","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","day","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatFullYear","formatZone","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","utcFormats","parses","parseSpecifier","charAt","newParse","week","X","utcFormat","utcParse","formatLocale","utcMonth","utcHour","setUTCMinutes","utcMinute","setUTCSeconds","deg2rad","rad2deg","A","B","C","D","ED","EB","BC_DA","cubehelixConvert","Cubehelix","bl","hue","cubehelixGamma","cubehelix","cosh","sinh","cubehelixLong","cool","Linear","_context","areaStart","_line","areaEnd","lineStart","_point","lineEnd","point","defined","curve","buffer","defined0","RedBlackTree","RedBlackNode","R","P","RedBlackRotateLeft","RedBlackRotateRight","RedBlackFirst","after","grandpa","uncle","sibling","createEdge","edge","setEdgeEnd","cells","halfedges","createBorderEdge","vertex","clipEdge","ax","ay","connectEdge","fm","fb","lx","ly","rx","ry","fx","fy","cellHalfedgeAngle","cell","site","va","vb","cellHalfedgeStart","cellHalfedgeEnd","firstCircle","circlePool","Circle","cy","attachCircle","lArc","rArc","lSite","cSite","rSite","bx","by","cx","epsilon2","ha","hc","circle","circles","detachCircle","beachPool","Beach","createBeach","beach","detachBeach","beaches","removeBeach","disappearing","unshift","iArc","nArcs","addBeach","dxl","dxr","directrix","leftBreakPoint","rightBreakPoint","createCell","newArc","hb","rfocx","rfocy","pby2","lfocx","lfocy","plby2","hl","aby2","lexicographic","Diagram","sites","array","sortCellHalfedges","clipEdges","iCell","iHalfedge","nHalfedges","startX","startY","endX","endY","nCells","dc","v00","v01","v11","v10","clipCells","edges","polygons","polygon","triangles","s0","e1","s1","links","_found","vx","vy","SQRT2","Transform","applyX","applyY","location","invertX","invertY","rescaleX","rescaleY","ChartType","widthTableAxisLabel","E","F","G","J","K","O","Y","widthTablePointLabel","getComputedTextLength","table","_i","_a","reduce","fallbackTable","inverted","word","words","lineNumber","tspan","renderChart","dataset","animate","chart","isBar","chartType","isTrend","isScatter","isStack","isGBar","isGTrend","points","averages","includes","stacks","aggregatorLabel","arr","stacksReverse","aggregatorReference","trends","bars","aggregatorReferences","colorsArray","legend","legendBinding","entered","_d","xG","optionalTransition","el","label","datatemp","maxValue","valueUpper","tickWidth","distinctPointsLabels","xAxisLength","labelPTsTrue","labelLongAll","labelSuperLong","xAxis","yAxis","pointBinding","averageBinding","cvUpperBinding","cvLowerBinding","cvConnectBinding","exitCvUpper","exitCvLower","exitCvConnect","exitPoint","enteredRect","widthTemp","length_1","cvInterpretation","length_2","enteredCvUpper","enteredCvUpper2","enteredcvConnect","enteredcvConnect2","valueLower","enteredcvLower","enteredcvLower2","enteredAverage","lowestValueIndex","myLine","myLine2","pathsData","paths","ChartingConnect","passTitle","graphEl","firstLoad","setFirstLoad","datasetName","title","doRender","animated","deferredRender","className","margin","zoomAndPan","viewBox","preserveAspectRatio","height","floodColor","in","slope","patternUnits","strokeWidth","shapeRendering","stroke","strokeLinecap","spreadMethod","stopColor","stopOpacity","textAnchor","fontWeight","fontSize","display","Charting","dataExplorer","SummaryTableConnect","cVWarningText","cvSupressedText","cvWarnAt","warningCV","cvSuppressAt","suppressCV","knownBoundries","unitText","suppressedText","notAvailText","passExtraNote","project","some","cvWarning","warn","suppress","cvWarningAlt","cvSuppressed","cvSuppressedAlt","aggregator","CILower","CIClass_1","_b","setLocation","scope","confidenceInterval","confidenceIntervalAbbr","backgroundColor","notes","body","CIClass","note1","note2","note3","ReplaceSup","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","global","propIsEnumerable","propertyIsEnumerable","toObject","val","test1","test2","fromCharCode","test3","letter","shouldUseNative","from","symbols","to","symbolObservablePonyfill","InitializeChartDataStore","Counter","setCurrent","onClick","YesScript","yesScriptEl","ieAsNoScript","__awaiter","thisArg","_arguments","generator","fulfilled","rejected","done","__generator","sent","trys","ops","verb","iterator","op","addFooterToCanvas","canvas","footerImage","Image","graphHeight","footerHeight","containerCanvas","ctx","getContext","drawImage","image","toDataURL","link","download","DateTimeFormat","month","href","click","SaveBtnConnect","saveArea","disabled","html2canvas","default","scrollX","scrollY","overflow","SaveChartBtn","SummaryTable","NoScript","noScriptEl","FilterBoxConnect","loadState","loadNewData","method","json","selectFilter","selected","history","pushState","handler","URLSearchParams","search","prompt","htmlFor","onChange","currentTarget","items","item","DescriptionTableConnect","notApplicable","descriptionTable","Filters","DescriptionTable","for","aa","encodeURIComponent","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","refs","updater","isReactComponent","setState","forceUpdate","isPureReactComponent","__self","__source","$$typeof","_owner","keyPrefix","func","escape","ca","ba","Children","toArray","only","createRef","Component","PureComponent","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","lazy","_ctor","_status","_result","useCallback","useContext","useEffect","useImperativeHandle","useDebugValue","useLayoutEffect","useMemo","useReducer","useRef","useState","Fragment","Profiler","StrictMode","Suspense","cloneElement","createFactory","isValidElement","version","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","bool","any","arrayOf","element","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","typeOf","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","Portal","isValidElementType","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","originalModule","webpackPolyfill","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","ea","extractEvents","eventTypes","fa","phasedRegistrationNames","registrationName","ia","ja","ka","onError","la","ma","oa","pa","qa","sa","ua","wa","ra","za","Aa","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","Ba","Ca","injectEventPluginOrder","injectEventPluginsByName","Da","stateNode","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Wa","Xa","tag","_debugOwner","_debugSource","fileName","return","Ya","Za","$a","ab","bb","cb","db","eb","gb","ib","jb","kb","lb","mb","ob","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","sb","tb","ub","qb","rb","pb","wb","nodeName","_valueTracker","configurable","getValue","setValue","stopTracking","zb","checked","Ab","defaultChecked","defaultValue","_wrapperState","initialChecked","Bb","initialValue","controlled","Cb","Eb","Fb","Gb","activeElement","Ib","Hb","Jb","defaultSelected","Kb","dangerouslySetInnerHTML","Lb","Mb","Nb","xlinkHref","Ob","Pb","Qb","Rb","Sb","MSApp","execUnsafeLocalFunction","Tb","lastChild","nodeType","nodeValue","Ub","Vb","animationend","animationiteration","animationstart","transitionend","Wb","Xb","Yb","animation","Zb","$b","ac","bc","cc","ec","alternate","effectTag","fc","memoizedState","dehydrated","gc","ic","jc","kc","lc","mc","oc","pc","qc","rc","sc","tc","uc","vc","zc","blockedOn","topLevelType","eventSystemFlags","nativeEvent","Ac","delete","pointerId","Bc","Cc","Ec","Fc","unstable_runWithPriority","hydrate","containerInfo","Gc","Hc","Ic","Jc","Kc","unstable_scheduleCallback","unstable_NormalPriority","Lc","Mc","srcElement","correspondingUseElement","Nc","Oc","dispatchConfig","Pc","_targetInst","Qc","Rc","Sc","Tc","Uc","Interface","isDefaultPrevented","defaultPrevented","returnValue","Wc","eventPool","Xc","destructor","Vc","getPooled","preventDefault","stopPropagation","cancelBubble","persist","eventPhase","timeStamp","isTrusted","Yc","animationName","elapsedTime","pseudoElement","Zc","clipboardData","$c","view","ad","bd","keyCode","charCode","cd","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","dd","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","ed","Alt","Control","Meta","Shift","gd","getModifierState","hd","ctrlKey","shiftKey","altKey","metaKey","repeat","which","jd","kd","ld","md","nd","screenX","screenY","clientX","clientY","pageX","pageY","button","buttons","fromElement","toElement","movementX","movementY","od","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","pd","dataTransfer","qd","touches","targetTouches","changedTouches","rd","sd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","td","ud","vd","wd","yd","zd","Ad","Bd","Cd","Dd","bubbled","captured","eventPriority","Ed","getEventPriority","Fd","unstable_UserBlockingPriority","Gd","Hd","Jd","Kd","targetInst","ancestors","Ld","Md","Nd","Od","Pd","Qd","Dc","Rd","Sd","WeakMap","xc","yc","Td","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","lineHeight","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","Ud","Vd","Wd","Xd","menuitem","area","base","br","col","embed","hr","img","keygen","meta","param","track","wbr","Yd","Zd","$d","ae","be","ce","de","fe","HTMLIFrameElement","contentWindow","ge","contentEditable","le","me","ne","autoFocus","__html","pe","qe","se","te","ue","ve","we","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","He","documentMode","Ie","Je","Ke","Le","beforeInput","compositionEnd","compositionStart","compositionUpdate","Me","Ne","Oe","Pe","Se","Qe","char","Re","Te","datetime","email","password","tel","url","Ue","Ve","change","We","Xe","Ye","Ze","$e","af","bf","cf","detachEvent","df","ef","attachEvent","ff","gf","hf","lf","jf","_isInputEventSupported","kf","mouseEnter","mouseLeave","pointerEnter","pointerLeave","mf","parentWindow","of","pf","qf","rf","sf","tf","uf","vf","wf","xf","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","yf","onSelect","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","Af","Bf","Cf","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","unstable_cancelCallback","Of","unstable_shouldYield","Pf","unstable_requestPaint","Qf","unstable_now","Rf","unstable_getCurrentPriorityLevel","Sf","unstable_ImmediatePriority","Tf","Uf","Vf","unstable_LowPriority","Wf","unstable_IdlePriority","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","childExpirationTime","vg","firstContext","expirationTime","wg","xg","observedBits","responders","yg","zg","baseState","firstUpdate","lastUpdate","firstCapturedUpdate","lastCapturedUpdate","firstEffect","lastEffect","firstCapturedEffect","lastCapturedEffect","Ag","Bg","suspenseConfig","nextEffect","Cg","Dg","updateQueue","Eg","Fg","Gg","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Sg","_reactInternalFiber","Pg","Qg","Rg","Tg","shouldComponentUpdate","Ug","Vg","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Wg","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Xg","Yg","_stringRef","Zg","$g","ah","bh","ch","implementation","dh","eh","ta","fh","gh","hh","ih","jh","kh","lh","mh","tagName","nh","oh","ph","qh","memoizedProps","revealOrder","rh","responder","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","queue","baseUpdate","Oh","Ph","Qh","lastRenderedReducer","lastRenderedState","eagerReducer","eagerState","Rh","Sh","Th","Uh","destroy","deps","Vh","Wh","Xh","Yh","Zh","$h","ai","readContext","useResponder","useDeferredValue","useTransition","unstable_next","ci","di","ei","fi","gi","pendingProps","ii","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","vi","wi","pendingContext","Hi","Ji","Ki","xi","retryTime","yi","fallback","unstable_avoidThisFallback","zi","Ai","isBackwards","rendering","tail","tailExpiration","tailMode","Bi","Ci","Li","Mi","Ni","stack","onclick","Oi","WeakSet","Pi","Si","Ri","Ti","Ui","__reactInternalSnapshotBeforeUpdate","Vi","Wi","componentWillUnmount","Qi","Xi","Yi","Zi","$i","instance","_reactRootContainer","aj","wasMultiple","multiple","bj","cj","dj","ej","fj","gj","hj","ij","componentDidCatch","jj","componentStack","gk","kj","lj","mj","wj","xj","yj","zj","Aj","Bj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","timeoutMs","Kj","Lj","Mj","Nj","Oj","lastExpiredTime","Pj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Qj","Rj","Sj","Tj","Uj","Vj","Wj","finishedWork","finishedExpirationTime","lastSuspendedTime","Xj","timeoutHandle","Yj","busyMinDurationMs","busyDelayMs","Zj","bk","ck","pingCache","dk","ek","fk","createTextNode","ik","firstSuspendedTime","rangeCount","Db","focusedElem","selectionRange","jk","ee","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","top","scrollTop","focus","Dh","fd","hk","Eh","Fh","xk","Di","Ei","Fi","xd","Gi","kk","lk","mk","hidden","Va","nk","unstable_observedBits","pk","pendingChildren","qk","rk","sk","tk","uk","vk","wc","_internalRoot","wk","zk","hasAttribute","yk","Ak","Bk","unmount","form","ak","Ck","createPortal","findDOMNode","unstable_renderSubtreeIntoContainer","unmountComponentAtNode","unstable_createPortal","unstable_batchedUpdates","flushSync","Events","findFiberByHostInstance","bundleType","rendererPackageName","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","Dk","Ek","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","startTime","priorityLevel","unstable_wrapCallback","unstable_continueExecution","unstable_pauseExecution","unstable_getFirstCallbackNode","unstable_Profiling"],"mappings":"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","file":"client.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"chunk.\" + chunkId + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/js/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 123);\n","module.exports = global[\"React\"] = require(\"-!.\\\\index.js\");","export function textFormat(text, substitutions) {\r\n Object.keys(substitutions).forEach(function (subkey) {\r\n text = text.split(\"{\" + subkey + \"}\").join(substitutions[subkey].toString());\r\n });\r\n return text.toString();\r\n}\r\nexport function numberFormat(number, culture, decimals, units) {\r\n var languageCode = culture;\r\n if (number == 0) {\r\n decimals = 0;\r\n }\r\n var formattedNumber = new Intl.NumberFormat(languageCode, { minimumFractionDigits: decimals, maximumFractionDigits: 1 }).format(number);\r\n if (!units) {\r\n return formattedNumber;\r\n }\r\n else {\r\n units = \"\";\r\n }\r\n var spacing = true;\r\n if (languageCode == \"en-ca\" && units == \"%\")\r\n spacing = false;\r\n return \"\" + formattedNumber + (spacing ? \" \" : \"\") + units;\r\n}\r\n","import React from 'react';\nexport var ReactReduxContext =\n/*#__PURE__*/\nReact.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nvar nullListeners = {\n notify: function notify() {}\n};\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar Subscription =\n/*#__PURE__*/\nfunction () {\n function Subscription(store, parentSub) {\n this.store = store;\n this.parentSub = parentSub;\n this.unsubscribe = null;\n this.listeners = nullListeners;\n this.handleChangeWrapper = this.handleChangeWrapper.bind(this);\n }\n\n var _proto = Subscription.prototype;\n\n _proto.addNestedSub = function addNestedSub(listener) {\n this.trySubscribe();\n return this.listeners.subscribe(listener);\n };\n\n _proto.notifyNestedSubs = function notifyNestedSubs() {\n this.listeners.notify();\n };\n\n _proto.handleChangeWrapper = function handleChangeWrapper() {\n if (this.onStateChange) {\n this.onStateChange();\n }\n };\n\n _proto.isSubscribed = function isSubscribed() {\n return Boolean(this.unsubscribe);\n };\n\n _proto.trySubscribe = function trySubscribe() {\n if (!this.unsubscribe) {\n this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.handleChangeWrapper) : this.store.subscribe(this.handleChangeWrapper);\n this.listeners = createListenerCollection();\n }\n };\n\n _proto.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n this.listeners.clear();\n this.listeners = nullListeners;\n }\n };\n\n return Subscription;\n}();\n\nexport { Subscription as default };","import React, { useMemo, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport Subscription from '../utils/Subscription';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = new Subscription(store);\n subscription.onStateChange = subscription.notifyNestedSubs;\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useEffect(function () {\n var subscription = contextValue.subscription;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport hoistStatics from 'hoist-non-react-statics';\nimport React, { useContext, useMemo, useRef, useReducer } from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport Subscription from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from './Context'; // Define some constant arrays just to avoid re-creating these\n\nvar EMPTY_ARRAY = [];\nvar NO_SUBSCRIPTION_ARRAY = [null, null];\n\nvar stringifyComponent = function stringifyComponent(Comp) {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\nfunction storeStateUpdatesReducer(state, action) {\n var updateCount = state[1];\n return [action.payload, updateCount + 1];\n}\n\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(function () {\n return effectFunc.apply(void 0, effectArgs);\n }, dependencies);\n}\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n lastChildProps.current = actualChildProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n}\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts\n\n var didUnsubscribe = false;\n var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n var checkForUpdates = function checkForUpdates() {\n if (didUnsubscribe) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n }\n\n var latestStoreState = store.getState();\n var newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render\n\n forceComponentUpdateDispatch({\n type: 'STORE_UPDATED',\n payload: {\n error: error\n }\n });\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n var unsubscribeWrapper = function unsubscribeWrapper() {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n}\n\nvar initStateUpdates = function initStateUpdates() {\n return [null, 0];\n};\n\nexport default function connectAdvanced(\n/*\r\n selectorFactory is a func that is responsible for returning the selector function used to\r\n compute new props from state, props, and dispatch. For example:\r\n export default connectAdvanced((dispatch, options) => (state, props) => ({\r\n thing: state.things[props.thingId],\r\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\r\n }))(YourComponent)\r\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\r\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\r\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\r\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\r\n props. Do not use connectAdvanced directly without memoizing results between calls to your\r\n selector, otherwise the Connect component will re-render on every state or props change.\r\n*/\nselectorFactory, // options object:\n_ref) {\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n _ref2$getDisplayName = _ref2.getDisplayName,\n getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {\n return \"ConnectAdvanced(\" + name + \")\";\n } : _ref2$getDisplayName,\n _ref2$methodName = _ref2.methodName,\n methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,\n _ref2$renderCountProp = _ref2.renderCountProp,\n renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,\n _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,\n _ref2$storeKey = _ref2.storeKey,\n storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,\n _ref2$withRef = _ref2.withRef,\n withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,\n _ref2$forwardRef = _ref2.forwardRef,\n forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,\n _ref2$context = _ref2.context,\n context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context,\n connectOptions = _objectWithoutPropertiesLoose(_ref2, [\"getDisplayName\", \"methodName\", \"renderCountProp\", \"shouldHandleStateChanges\", \"storeKey\", \"withRef\", \"forwardRef\", \"context\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (renderCountProp !== undefined) {\n throw new Error(\"renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension\");\n }\n\n if (withRef) {\n throw new Error('withRef is removed. To access the wrapped instance, use a ref on the connected component');\n }\n\n var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + \"React.createContext(), and pass the context object to React Redux's Provider and specific components\" + ' like: . ' + 'You may also pass a {context : MyContext} option to connect';\n\n if (storeKey !== 'store') {\n throw new Error('storeKey has been removed and does not do anything. ' + customStoreWarningMessage);\n }\n }\n\n var Context = context;\n return function wrapWithConnect(WrappedComponent) {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(\"You must pass a component to the function returned by \" + (methodName + \". Instead received \" + stringifyComponent(WrappedComponent)));\n }\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var pure = connectOptions.pure;\n\n function createChildSelector(store) {\n return selectorFactory(store.dispatch, selectorFactoryOptions);\n } // If we aren't running in \"pure\" mode, we don't want to memoize values.\n // To avoid conditionally calling hooks, we fall back to a tiny wrapper\n // that just executes the given callback immediately.\n\n\n var usePureOnlyMemo = pure ? useMemo : function (callback) {\n return callback();\n };\n\n function ConnectFunction(props) {\n var _useMemo = useMemo(function () {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n var forwardedRef = props.forwardedRef,\n wrapperProps = _objectWithoutPropertiesLoose(props, [\"forwardedRef\"]);\n\n return [props.context, forwardedRef, wrapperProps];\n }, [props]),\n propsContext = _useMemo[0],\n forwardedRef = _useMemo[1],\n wrapperProps = _useMemo[2];\n\n var ContextToUse = useMemo(function () {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && isContextConsumer(React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n var contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(\"Could not find \\\"store\\\" in the context of \" + (\"\\\"\" + displayName + \"\\\". Either wrap the root component in a , \") + \"or pass a custom React context provider to and the corresponding \" + (\"React context consumer to \" + displayName + \" in connect options.\"));\n } // Based on the previous check, one of these must be true\n\n\n var store = didStoreComeFromProps ? props.store : contextValue.store;\n var childPropsSelector = useMemo(function () {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return createChildSelector(store);\n }, [store]);\n\n var _useMemo2 = useMemo(function () {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n var subscription = new Subscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]),\n subscription = _useMemo2[0],\n notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n\n var overriddenContextValue = useMemo(function () {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription: subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update\n // causes a change to the calculated child component props (or we caught an error in mapState)\n\n var _useReducer = useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),\n _useReducer$ = _useReducer[0],\n previousStateUpdateResult = _useReducer$[0],\n forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards\n\n\n if (previousStateUpdateResult && previousStateUpdateResult.error) {\n throw previousStateUpdateResult.error;\n } // Set up refs to coordinate values between the subscription effect and the render logic\n\n\n var lastChildProps = useRef();\n var lastWrapperProps = useRef(wrapperProps);\n var childPropsFromStoreUpdate = useRef();\n var renderIsScheduled = useRef(false);\n var actualChildProps = usePureOnlyMemo(function () {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes\n\n useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n var renderedWrappedComponent = useMemo(function () {\n return React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: forwardedRef\n }));\n }, [forwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n var renderedChild = useMemo(function () {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n } // If we're in \"pure\" mode, ensure our wrapper component only re-renders when incoming props have changed.\n\n\n var Connect = pure ? React.memo(ConnectFunction) : ConnectFunction;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = displayName;\n\n if (forwardRef) {\n var forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n return React.createElement(Connect, _extends({}, props, {\n forwardedRef: ref\n }));\n });\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n}","function is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}","import { bindActionCreators } from 'redux';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return {\n dispatch: dispatch\n };\n }) : undefined;\n}\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, {}, stateProps, {}, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport verifySubselectors from './verifySubselectors';\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n} // TODO: Add more comments\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutPropertiesLoose(_ref2, [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"]);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n/*\r\n connect is a facade over connectAdvanced. It turns its args into a compatible\r\n selectorFactory, which has the signature:\r\n\r\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\r\n \r\n connect passes its args to connectAdvanced as options, which will in turn pass them to\r\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\r\n\r\n selectorFactory returns a final props selector from its mapStateToProps,\r\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\r\n mergePropsFactories, and pure args.\r\n\r\n The resulting final props selector is called by the Connect component instance whenever\r\n it receives new props or store state.\r\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error(\"Invalid value of type \" + typeof arg + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n} // createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\n\n\nexport function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {\n if (_ref2 === void 0) {\n _ref2 = {};\n }\n\n var _ref3 = _ref2,\n _ref3$pure = _ref3.pure,\n pure = _ref3$pure === void 0 ? true : _ref3$pure,\n _ref3$areStatesEqual = _ref3.areStatesEqual,\n areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,\n _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,\n areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,\n _ref3$areStatePropsEq = _ref3.areStatePropsEqual,\n areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,\n _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,\n areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref3, [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"]);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n }, extraOptions));\n };\n}\nexport default\n/*#__PURE__*/\ncreateConnect();","import { useReducer, useRef, useMemo, useContext } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport Subscription from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return new Subscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestSelectedState = useRef();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || latestSubscriptionCallbackError.current) {\n selectedState = selector(store.getState());\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newSelectedState = latestSelector.current(store.getState());\n\n if (equalityFn(newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = newSelectedState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender({});\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production' && !selector) {\n throw new Error(\"You must pass a selector to useSelectors\");\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n return useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
{counter}
\r\n * }\r\n */\n\nexport var useSelector =\n/*#__PURE__*/\ncreateSelectorHook();","import Provider from './components/Provider';\nimport connectAdvanced from './components/connectAdvanced';\nimport { ReactReduxContext } from './components/Context';\nimport connect from './connect/connect';\nimport { useDispatch, createDispatchHook } from './hooks/useDispatch';\nimport { useSelector, createSelectorHook } from './hooks/useSelector';\nimport { useStore, createStoreHook } from './hooks/useStore';\nimport { setBatch } from './utils/batch';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport shallowEqual from './utils/shallowEqual';\nsetBatch(batch);\nexport { Provider, connectAdvanced, ReactReduxContext, connect, batch, useDispatch, createDispatchHook, useSelector, createSelectorHook, useStore, createStoreHook, shallowEqual };","import { createStore } from 'redux';\r\nimport { dataExplorerReducer } from '../reducers/dataExplorerReducer';\r\nexport var dataExplorerStore = createStore(dataExplorerReducer);\r\n","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nvar initialState = null;\r\nexport var initState = function (payload) {\r\n return { type: \"INIT_STATE\", payload: payload };\r\n};\r\nexport var updateLoadState = function (payload) {\r\n return { type: \"LOAD\", payload: payload };\r\n};\r\nexport var updateFilters = function (payload) {\r\n return { type: \"UPDATE_FILTERS\", payload: payload };\r\n};\r\nexport var updateChartData = function (payload) {\r\n return { type: \"UPDATE_DATA\", payload: payload };\r\n};\r\nexport var dataExplorerReducer = function (previousState, action) {\r\n if (previousState === void 0) { previousState = initialState; }\r\n if (action.type == \"INIT_STATE\") {\r\n return __assign({ previousState: previousState }, action.payload);\r\n }\r\n if (previousState) {\r\n var state = __assign({}, previousState);\r\n switch (action.type) {\r\n case \"LOAD\":\r\n state.loading = action.payload;\r\n break;\r\n case \"UPDATE_FILTERS\":\r\n if (previousState)\r\n state.filters = action.payload;\r\n break;\r\n case \"UPDATE_DATA\":\r\n if (previousState)\r\n state.chartData = action.payload;\r\n break;\r\n }\r\n return state;\r\n }\r\n return previousState;\r\n};\r\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","import $$observable from 'symbol-observable';\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected the listener to be a function.');\n }\n\n if (isDispatching) {\n throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionDescription = actionType && \"action \\\"\" + String(actionType) + \"\\\"\" || 'an action';\n return \"Given \" + actionDescription + \", reducer \\\"\" + key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\";\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle \" + ActionTypes.INIT + \" or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(\"bindActionCreators expected an object or a function, instead received \" + (actionCreators === null ? 'null' : typeof actionCreators) + \". \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n keys.push.apply(keys, Object.getOwnPropertySymbols(object));\n }\n\n if (enumerableOnly) keys = keys.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread2({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","export var isIE = function () { return window.navigator.userAgent.match(/(MSIE|Trident)/); };\r\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending\";\n\nexport default function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n","import {pair} from \"./pairs\";\n\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\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}\n","var array = Array.prototype;\n\nexport var slice = array.slice;\nexport var map = array.map;\n","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\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 while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","export default function(values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n return max;\n}\n","import transpose from \"./transpose\";\n\nexport default function() {\n return transpose(arguments);\n}\n","export var slice = Array.prototype.slice;\n","export default function(x) {\n return x;\n}\n","import {slice} from \"./array\";\nimport identity from \"./identity\";\n\nvar top = 1,\n right = 2,\n bottom = 3,\n left = 4,\n epsilon = 1e-6;\n\nfunction translateX(x) {\n return \"translate(\" + (x + 0.5) + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + (y + 0.5) + \")\";\n}\n\nfunction number(scale) {\n return function(d) {\n return +scale(d);\n };\n}\n\nfunction center(scale) {\n var offset = Math.max(0, scale.bandwidth() - 1) / 2; // Adjust for 0.5px offset.\n if (scale.round()) offset = Math.round(offset);\n return function(d) {\n return +scale(d) + offset;\n };\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3,\n k = orient === top || orient === left ? -1 : 1,\n x = orient === left || orient === right ? \"x\" : \"y\",\n transform = orient === top || orient === bottom ? translateX : translateY;\n\n function axis(context) {\n var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,\n format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n range = scale.range(),\n range0 = +range[0] + 0.5,\n range1 = +range[range.length - 1] + 0.5,\n position = (scale.bandwidth ? center : number)(scale.copy()),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\");\n\n path = path.merge(path.enter().insert(\"path\", \".tick\")\n .attr(\"class\", \"domain\")\n .attr(\"stroke\", \"currentColor\"));\n\n tick = tick.merge(tickEnter);\n\n line = line.merge(tickEnter.append(\"line\")\n .attr(\"stroke\", \"currentColor\")\n .attr(x + \"2\", k * tickSizeInner));\n\n text = text.merge(tickEnter.append(\"text\")\n .attr(\"fill\", \"currentColor\")\n .attr(x, k * spacing)\n .attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n\n tickExit = tickExit.transition(context)\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { return isFinite(d = position(d)) ? transform(d) : this.getAttribute(\"transform\"); });\n\n tickEnter\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { var p = this.parentNode.__axis; return transform(p && isFinite(p = p(d)) ? p : position(d)); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient == right\n ? (tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H0.5V\" + range1 + \"H\" + k * tickSizeOuter : \"M0.5,\" + range0 + \"V\" + range1)\n : (tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V0.5H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",0.5H\" + range1));\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d)); });\n\n line\n .attr(x + \"2\", k * tickSizeInner);\n\n text\n .attr(x, k * spacing)\n .text(format);\n\n selection.filter(entering)\n .attr(\"fill\", \"none\")\n .attr(\"font-size\", 10)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n\n selection\n .each(function() { this.__axis = position; });\n }\n\n axis.scale = function(_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function() {\n return tickArguments = slice.call(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : slice.call(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : slice.call(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function(_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function(_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function(_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function(_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function(_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n return axis;\n}\n\nexport function axisTop(scale) {\n return axis(top, scale);\n}\n\nexport function axisRight(scale) {\n return axis(right, scale);\n}\n\nexport function axisBottom(scale) {\n return axis(bottom, scale);\n}\n\nexport function axisLeft(scale) {\n return axis(left, scale);\n}\n","var noop = {value: function() {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","import {Selection} from \"./index\";\nimport {EnterNode} from \"./enter\";\nimport constant from \"../constant\";\n\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;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\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 }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue[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) { data[++j] = d; });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n","import {Selection} from \"./index\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n}\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);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import 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\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","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}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","var filterEvents = {};\n\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\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 event = event1;\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 = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, 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 = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n}\n\nexport function customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}\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;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","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\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\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};\n\nexport default selection;\n","import {Selection} from \"./index\";\nimport selector from \"../selector\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index\";\nimport selectorAll from \"../selectorAll\";\n\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}\n","import {Selection} from \"./index\";\nimport matcher from \"../matcher\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index\";\n\nexport default function(selection) {\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","export default function() {\n var nodes = new Array(this.size()), i = -1;\n this.each(function() { nodes[++i] = this; });\n return nodes;\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n var size = 0;\n this.each(function() { ++size; });\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import creator from \"../creator\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default function(x) {\n return function() {\n return x;\n };\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}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(function(elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar cssNode,\n cssRoot,\n cssView,\n svgNode;\n\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}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {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\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n end: transition_end\n};\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n });\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n return defaultTiming.time = now(), defaultTiming;\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {customEvent, event, touch, mouse, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nfunction toucher(identifier) {\n return function(target) {\n return touch(target, event.touches, identifier);\n };\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection) {\n if (group.selection) {\n group\n .on(\"start.brush\", function() { emitter(this, arguments).beforestart().start(); })\n .on(\"interrupt.brush end.brush\", function() { emitter(this, arguments).end(); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start().brush().end();\n });\n }\n };\n\n brush.clear = function(group) {\n brush.move(group, null);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function() {\n if (this.starting) this.starting = false, this.emit(\"start\");\n else this.emit(\"brush\");\n return this;\n },\n brush: function() {\n this.emit(\"brush\");\n return this;\n },\n end: function() {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\");\n return this;\n },\n emit: function(type) {\n customEvent(new BrushEvent(brush, type, dim.output(this.state.selection)), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function started() {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n pointer = event.touches ? toucher(event.changedTouches[0].identifier) : mouse,\n point0 = pointer(that),\n point = point0,\n emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n state.selection = selection = [\n [w0 = dim === Y ? W : point0[0], n0 = dim === X ? N : point0[1]],\n [e0 = dim === Y ? E : w0, s0 = dim === X ? S : n0]\n ];\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n nopropagation();\n interrupt(that);\n redraw.call(that);\n emit.start();\n\n function moved() {\n var point1 = pointer(that);\n if (shifting && !lockX && !lockY) {\n if (Math.abs(point1[0] - point[0]) > Math.abs(point1[1] - point[1])) lockY = true;\n else lockX = true;\n }\n point = point1;\n moving = true;\n noevent();\n move();\n }\n\n function move() {\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = Math.max(W - w0, Math.min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = Math.max(N - n0, Math.min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (signX < 0) dx = Math.max(W - w0, Math.min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = Math.max(W - e0, Math.min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = Math.max(N - n0, Math.min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = Math.max(N - s0, Math.min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = Math.max(W, Math.min(E, w0 - dx * signX)), e1 = Math.max(W, Math.min(E, e0 + dx * signX));\n if (signY) n1 = Math.max(N, Math.min(S, n0 - dy * signY)), s1 = Math.max(N, Math.min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush();\n }\n }\n\n function ended() {\n nopropagation();\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end();\n }\n\n function keydowned() {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move();\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move();\n }\n break;\n }\n default: return;\n }\n noevent();\n }\n\n function keyupped() {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move();\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move();\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move();\n }\n break;\n }\n default: return;\n }\n noevent();\n }\n }\n\n function touchmoved() {\n emitter(this, arguments).moved();\n }\n\n function touchended() {\n emitter(this, arguments).ended();\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","export var cos = Math.cos;\nexport var sin = Math.sin;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = pi * 2;\nexport var max = Math.max;\n","export var slice = Array.prototype.slice;\n","import {range} from \"d3-array\";\nimport {max, tau} from \"./math\";\n\nfunction compareValue(compare) {\n return function(a, b) {\n return compare(\n a.source.value + a.target.value,\n b.source.value + b.target.value\n );\n };\n}\n\nexport default function() {\n var padAngle = 0,\n sortGroups = null,\n sortSubgroups = null,\n sortChords = null;\n\n function chord(matrix) {\n var n = matrix.length,\n groupSums = [],\n groupIndex = range(n),\n subgroupIndex = [],\n chords = [],\n groups = chords.groups = new Array(n),\n subgroups = new Array(n * n),\n k,\n x,\n x0,\n dx,\n i,\n j;\n\n // Compute the sum.\n k = 0, i = -1; while (++i < n) {\n x = 0, j = -1; while (++j < n) {\n x += matrix[i][j];\n }\n groupSums.push(x);\n subgroupIndex.push(range(n));\n k += x;\n }\n\n // Sort groups…\n if (sortGroups) groupIndex.sort(function(a, b) {\n return sortGroups(groupSums[a], groupSums[b]);\n });\n\n // Sort subgroups…\n if (sortSubgroups) subgroupIndex.forEach(function(d, i) {\n d.sort(function(a, b) {\n return sortSubgroups(matrix[i][a], matrix[i][b]);\n });\n });\n\n // Convert the sum to scaling factor for [0, 2pi].\n // TODO Allow start and end angle to be specified?\n // TODO Allow padding to be specified as percentage?\n k = max(0, tau - padAngle * n) / k;\n dx = k ? padAngle : tau / n;\n\n // Compute the start and end angle for each group and subgroup.\n // Note: Opera has a bug reordering object literal properties!\n x = 0, i = -1; while (++i < n) {\n x0 = x, j = -1; while (++j < n) {\n var di = groupIndex[i],\n dj = subgroupIndex[di][j],\n v = matrix[di][dj],\n a0 = x,\n a1 = x += v * k;\n subgroups[dj * n + di] = {\n index: di,\n subindex: dj,\n startAngle: a0,\n endAngle: a1,\n value: v\n };\n }\n groups[di] = {\n index: di,\n startAngle: x0,\n endAngle: x,\n value: groupSums[di]\n };\n x += dx;\n }\n\n // Generate chords for each (non-empty) subgroup-subgroup link.\n i = -1; while (++i < n) {\n j = i - 1; while (++j < n) {\n var source = subgroups[j * n + i],\n target = subgroups[i * n + j];\n if (source.value || target.value) {\n chords.push(source.value < target.value\n ? {source: target, target: source}\n : {source: source, target: target});\n }\n }\n }\n\n return sortChords ? chords.sort(sortChords) : chords;\n }\n\n chord.padAngle = function(_) {\n return arguments.length ? (padAngle = max(0, _), chord) : padAngle;\n };\n\n chord.sortGroups = function(_) {\n return arguments.length ? (sortGroups = _, chord) : sortGroups;\n };\n\n chord.sortSubgroups = function(_) {\n return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups;\n };\n\n chord.sortChords = function(_) {\n return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._;\n };\n\n return chord;\n}\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\nexport default map;\n","import {default as map, prefix} from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\nexport default set;\n","var array = Array.prototype;\n\nexport var slice = array.slice;\n","function responseArrayBuffer(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.arrayBuffer();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseArrayBuffer);\n}\n","var EOL = {},\n EOF = {},\n QUOTE = 34,\n NEWLINE = 10,\n RETURN = 13;\n\nfunction objectConverter(columns) {\n return new Function(\"d\", \"return {\" + columns.map(function(name, i) {\n return JSON.stringify(name) + \": d[\" + i + \"] || \\\"\\\"\";\n }).join(\",\") + \"}\");\n}\n\nfunction customConverter(columns, f) {\n var object = objectConverter(columns);\n return function(row, i) {\n return f(object(row), i, columns);\n };\n}\n\n// Compute unique columns in order of discovery.\nfunction inferColumns(rows) {\n var columnSet = Object.create(null),\n columns = [];\n\n rows.forEach(function(row) {\n for (var column in row) {\n if (!(column in columnSet)) {\n columns.push(columnSet[column] = column);\n }\n }\n });\n\n return columns;\n}\n\nfunction pad(value, width) {\n var s = value + \"\", length = s.length;\n return length < width ? new Array(width - length + 1).join(0) + s : s;\n}\n\nfunction formatYear(year) {\n return year < 0 ? \"-\" + pad(-year, 6)\n : year > 9999 ? \"+\" + pad(year, 6)\n : pad(year, 4);\n}\n\nfunction formatDate(date) {\n var hours = date.getUTCHours(),\n minutes = date.getUTCMinutes(),\n seconds = date.getUTCSeconds(),\n milliseconds = date.getUTCMilliseconds();\n return isNaN(date) ? \"Invalid Date\"\n : formatYear(date.getUTCFullYear(), 4) + \"-\" + pad(date.getUTCMonth() + 1, 2) + \"-\" + pad(date.getUTCDate(), 2)\n + (milliseconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \".\" + pad(milliseconds, 3) + \"Z\"\n : seconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \"Z\"\n : minutes || hours ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \"Z\"\n : \"\");\n}\n\nexport default function(delimiter) {\n var reFormat = new RegExp(\"[\\\"\" + delimiter + \"\\n\\r]\"),\n DELIMITER = delimiter.charCodeAt(0);\n\n function parse(text, f) {\n var convert, columns, rows = parseRows(text, function(row, i) {\n if (convert) return convert(row, i - 1);\n columns = row, convert = f ? customConverter(row, f) : objectConverter(row);\n });\n rows.columns = columns || [];\n return rows;\n }\n\n function parseRows(text, f) {\n var rows = [], // output rows\n N = text.length,\n I = 0, // current character index\n n = 0, // current line number\n t, // current token\n eof = N <= 0, // current token followed by EOF?\n eol = false; // current token followed by EOL?\n\n // Strip the trailing newline.\n if (text.charCodeAt(N - 1) === NEWLINE) --N;\n if (text.charCodeAt(N - 1) === RETURN) --N;\n\n function token() {\n if (eof) return EOF;\n if (eol) return eol = false, EOL;\n\n // Unescape quotes.\n var i, j = I, c;\n if (text.charCodeAt(j) === QUOTE) {\n while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);\n if ((i = I) >= N) eof = true;\n else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n return text.slice(j + 1, i - 1).replace(/\"\"/g, \"\\\"\");\n }\n\n // Find next delimiter or newline.\n while (I < N) {\n if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n else if (c !== DELIMITER) continue;\n return text.slice(j, i);\n }\n\n // Return last token before EOF.\n return eof = true, text.slice(j, N);\n }\n\n while ((t = token()) !== EOF) {\n var row = [];\n while (t !== EOL && t !== EOF) row.push(t), t = token();\n if (f && (row = f(row, n++)) == null) continue;\n rows.push(row);\n }\n\n return rows;\n }\n\n function preformatBody(rows, columns) {\n return rows.map(function(row) {\n return columns.map(function(column) {\n return formatValue(row[column]);\n }).join(delimiter);\n });\n }\n\n function format(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join(\"\\n\");\n }\n\n function formatBody(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return preformatBody(rows, columns).join(\"\\n\");\n }\n\n function formatRows(rows) {\n return rows.map(formatRow).join(\"\\n\");\n }\n\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n\n function formatValue(value) {\n return value == null ? \"\"\n : value instanceof Date ? formatDate(value)\n : reFormat.test(value += \"\") ? \"\\\"\" + value.replace(/\"/g, \"\\\"\\\"\") + \"\\\"\"\n : value;\n }\n\n return {\n parse: parse,\n parseRows: parseRows,\n format: format,\n formatBody: formatBody,\n formatRows: formatRows,\n formatRow: formatRow,\n formatValue: formatValue\n };\n}\n","import dsv from \"./dsv.js\";\n\nvar csv = dsv(\",\");\n\nexport var csvParse = csv.parse;\nexport var csvParseRows = csv.parseRows;\nexport var csvFormat = csv.format;\nexport var csvFormatBody = csv.formatBody;\nexport var csvFormatRows = csv.formatRows;\nexport var csvFormatRow = csv.formatRow;\nexport var csvFormatValue = csv.formatValue;\n","import dsv from \"./dsv.js\";\n\nvar tsv = dsv(\"\\t\");\n\nexport var tsvParse = tsv.parse;\nexport var tsvParseRows = tsv.parseRows;\nexport var tsvFormat = tsv.format;\nexport var tsvFormatBody = tsv.formatBody;\nexport var tsvFormatRows = tsv.formatRows;\nexport var tsvFormatRow = tsv.formatRow;\nexport var tsvFormatValue = tsv.formatValue;\n","function responseText(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.text();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseText);\n}\n","import {csvParse, dsvFormat, tsvParse} from \"d3-dsv\";\nimport text from \"./text\";\n\nfunction dsvParse(parse) {\n return function(input, init, row) {\n if (arguments.length === 2 && typeof init === \"function\") row = init, init = undefined;\n return text(input, init).then(function(response) {\n return parse(response, row);\n });\n };\n}\n\nexport default function dsv(delimiter, input, init, row) {\n if (arguments.length === 3 && typeof init === \"function\") row = init, init = undefined;\n var format = dsvFormat(delimiter);\n return text(input, init).then(function(response) {\n return format.parse(response, row);\n });\n}\n\nexport var csv = dsvParse(csvParse);\nexport var tsv = dsvParse(tsvParse);\n","import text from \"./text\";\n\nfunction parser(type) {\n return function(input, init) {\n return text(input, init).then(function(text) {\n return (new DOMParser).parseFromString(text, type);\n });\n };\n}\n\nexport default parser(\"application/xml\");\n\nexport var html = parser(\"text/html\");\n\nexport var svg = parser(\"image/svg+xml\");\n","export default function(d) {\n var x = +this._x.call(null, d),\n y = +this._y.call(null, d);\n return add(this.cover(x, y), x, y, d);\n}\n\nfunction add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n y0 = tree._y0,\n x1 = tree._x1,\n y1 = tree._y1,\n xm,\n ym,\n xp,\n yp,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n var d, i, n = data.length,\n x,\n y,\n xz = new Array(n),\n yz = new Array(n),\n x0 = Infinity,\n y0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity;\n\n // Compute the points and their extent.\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n }\n\n // If there were no (valid) points, abort.\n if (x0 > x1 || y0 > y1) return this;\n\n // Expand the tree to cover the new points.\n this.cover(x0, y0).cover(x1, y1);\n\n // Add the new points.\n for (i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], data[i]);\n }\n\n return this;\n}\n","export default function(x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1;\n\n // If the quadtree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing quadrant boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else {\n var z = x1 - x0,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n i = (y < y0) << 1 | (x < x0);\n parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n switch (i) {\n case 0: x1 = x0 + z, y1 = y0 + z; break;\n case 1: x0 = x1 - z, y1 = y0 + z; break;\n case 2: x1 = x0 + z, y0 = y1 - z; break;\n case 3: x0 = x1 - z, y0 = y1 - z; break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n}\n","export default function(node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n}\n","export function defaultX(d) {\n return d[0];\n}\n\nexport default function(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}\n","export function defaultY(d) {\n return d[1];\n}\n\nexport default function(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n}\n","import tree_add, {addAll as tree_addAll} from \"./add.js\";\nimport tree_cover from \"./cover.js\";\nimport tree_data from \"./data.js\";\nimport tree_extent from \"./extent.js\";\nimport tree_find from \"./find.js\";\nimport tree_remove, {removeAll as tree_removeAll} from \"./remove.js\";\nimport tree_root from \"./root.js\";\nimport tree_size from \"./size.js\";\nimport tree_visit from \"./visit.js\";\nimport tree_visitAfter from \"./visitAfter.js\";\nimport tree_x, {defaultX} from \"./x.js\";\nimport tree_y, {defaultY} from \"./y.js\";\n\nexport default function quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(4)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;\n","export default function() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n}\n","export default function(_) {\n return arguments.length\n ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])\n : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n}\n","import Quad from \"./quad.js\";\n\nexport default function(x, y, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n x1,\n y1,\n x2,\n y2,\n x3 = this._x1,\n y3 = this._y1,\n quads = [],\n node = this._root,\n q,\n i;\n\n if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n\n while (q = quads.pop()) {\n\n // Stop searching if this quadrant can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (y1 = q.y0) > y3\n || (x2 = q.x1) < x0\n || (y2 = q.y1) < y0) continue;\n\n // Bisect the current quadrant.\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2;\n\n quads.push(\n new Quad(node[3], xm, ym, x2, y2),\n new Quad(node[2], x1, ym, xm, y2),\n new Quad(node[1], xm, y1, x2, ym),\n new Quad(node[0], x1, y1, xm, ym)\n );\n\n // Visit the closest quadrant first.\n if (i = (y >= ym) << 1 | (x >= xm)) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n d2 = dx * dx + dy * dy;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}\n","export default function(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1,\n x,\n y,\n xm,\n ym,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1] || parent[2] || parent[3])\n && node === (parent[3] || parent[2] || parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n}\n\nexport function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n","export default function() {\n return this._root;\n}\n","export default function() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n }\n }\n return this;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], next = [], q;\n if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n return this;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {map} from \"d3-collection\";\nimport {timer} from \"d3-timer\";\n\nexport function x(d) {\n return d.x;\n}\n\nexport function y(d) {\n return d.y;\n}\n\nvar initialRadius = 10,\n initialAngle = Math.PI * (3 - Math.sqrt(5));\n\nexport default function(nodes) {\n var simulation,\n alpha = 1,\n alphaMin = 0.001,\n alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),\n alphaTarget = 0,\n velocityDecay = 0.6,\n forces = map(),\n stepper = timer(step),\n event = dispatch(\"tick\", \"end\");\n\n if (nodes == null) nodes = [];\n\n function step() {\n tick();\n event.call(\"tick\", simulation);\n if (alpha < alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation);\n }\n }\n\n function tick(iterations) {\n var i, n = nodes.length, node;\n\n if (iterations === undefined) iterations = 1;\n\n for (var k = 0; k < iterations; ++k) {\n alpha += (alphaTarget - alpha) * alphaDecay;\n\n forces.each(function (force) {\n force(alpha);\n });\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (node.fx == null) node.x += node.vx *= velocityDecay;\n else node.x = node.fx, node.vx = 0;\n if (node.fy == null) node.y += node.vy *= velocityDecay;\n else node.y = node.fy, node.vy = 0;\n }\n }\n\n return simulation;\n }\n\n function initializeNodes() {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.index = i;\n if (node.fx != null) node.x = node.fx;\n if (node.fy != null) node.y = node.fy;\n if (isNaN(node.x) || isNaN(node.y)) {\n var radius = initialRadius * Math.sqrt(i), angle = i * initialAngle;\n node.x = radius * Math.cos(angle);\n node.y = radius * Math.sin(angle);\n }\n if (isNaN(node.vx) || isNaN(node.vy)) {\n node.vx = node.vy = 0;\n }\n }\n }\n\n function initializeForce(force) {\n if (force.initialize) force.initialize(nodes);\n return force;\n }\n\n initializeNodes();\n\n return simulation = {\n tick: tick,\n\n restart: function() {\n return stepper.restart(step), simulation;\n },\n\n stop: function() {\n return stepper.stop(), simulation;\n },\n\n nodes: function(_) {\n return arguments.length ? (nodes = _, initializeNodes(), forces.each(initializeForce), simulation) : nodes;\n },\n\n alpha: function(_) {\n return arguments.length ? (alpha = +_, simulation) : alpha;\n },\n\n alphaMin: function(_) {\n return arguments.length ? (alphaMin = +_, simulation) : alphaMin;\n },\n\n alphaDecay: function(_) {\n return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;\n },\n\n alphaTarget: function(_) {\n return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;\n },\n\n velocityDecay: function(_) {\n return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;\n },\n\n force: function(name, _) {\n return arguments.length > 1 ? ((_ == null ? forces.remove(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);\n },\n\n find: function(x, y, radius) {\n var i = 0,\n n = nodes.length,\n dx,\n dy,\n d2,\n node,\n closest;\n\n if (radius == null) radius = Infinity;\n else radius *= radius;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dx = x - node.x;\n dy = y - node.y;\n d2 = dx * dx + dy * dy;\n if (d2 < radius) closest = node, radius = d2;\n }\n\n return closest;\n },\n\n on: function(name, _) {\n return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n }\n };\n}\n","export default function() {\n return Math.random();\n}\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomNormal(source) {\n function randomNormal(mu, sigma) {\n var x, r;\n mu = mu == null ? 0 : +mu;\n sigma = sigma == null ? 1 : +sigma;\n return function() {\n var y;\n\n // If available, use the second previously-generated uniform random.\n if (x != null) y = x, x = null;\n\n // Otherwise, generate a new x and y.\n else do {\n x = source() * 2 - 1;\n y = source() * 2 - 1;\n r = x * x + y * y;\n } while (!r || r > 1);\n\n return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r);\n };\n }\n\n randomNormal.source = sourceRandomNormal;\n\n return randomNormal;\n})(defaultSource);\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomUniform(source) {\n function randomUniform(min, max) {\n min = min == null ? 0 : +min;\n max = max == null ? 1 : +max;\n if (arguments.length === 1) max = min, min = 0;\n else max -= min;\n return function() {\n return source() * max + min;\n };\n }\n\n randomUniform.source = sourceRandomUniform;\n\n return randomUniform;\n})(defaultSource);\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomIrwinHall(source) {\n function randomIrwinHall(n) {\n return function() {\n for (var sum = 0, i = 0; i < n; ++i) sum += source();\n return sum;\n };\n }\n\n randomIrwinHall.source = sourceRandomIrwinHall;\n\n return randomIrwinHall;\n})(defaultSource);\n","import defaultSource from \"./defaultSource\";\nimport normal from \"./normal\";\n\nexport default (function sourceRandomLogNormal(source) {\n function randomLogNormal() {\n var randomNormal = normal.source(source).apply(this, arguments);\n return function() {\n return Math.exp(randomNormal());\n };\n }\n\n randomLogNormal.source = sourceRandomLogNormal;\n\n return randomLogNormal;\n})(defaultSource);\n","import defaultSource from \"./defaultSource\";\nimport irwinHall from \"./irwinHall\";\n\nexport default (function sourceRandomBates(source) {\n function randomBates(n) {\n var randomIrwinHall = irwinHall.source(source)(n);\n return function() {\n return randomIrwinHall() / n;\n };\n }\n\n randomBates.source = sourceRandomBates;\n\n return randomBates;\n})(defaultSource);\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomExponential(source) {\n function randomExponential(lambda) {\n return function() {\n return -Math.log(1 - source()) / lambda;\n };\n }\n\n randomExponential.source = sourceRandomExponential;\n\n return randomExponential;\n})(defaultSource);\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.interpolator(domain); break;\n default: this.interpolator(interpolator).domain(domain); break;\n }\n return this;\n}\n","var array = Array.prototype;\n\nexport var map = array.map;\nexport var slice = array.slice;\n","import {map} from \"d3-collection\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport var implicit = {name: \"implicit\"};\n\nexport default function ordinal() {\n var index = map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = map();\n var i = -1, n = _.length, d, key;\n while (++i < n) if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init\";\nimport ordinal from \"./ordinal\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n range = [0, 1],\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = range[1] < range[0],\n start = range[reverse - 0],\n stop = range[1 - reverse];\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = [+_[0], +_[1]], rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = [+_[0], +_[1]], round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), range)\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport {map, slice} from \"./array\";\nimport constant from \"./constant\";\nimport number from \"./number\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(domain) {\n var a = domain[0], b = domain[domain.length - 1], t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = map.call(_, number), clamp === identity || (clamp = clamper(domain)), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = slice.call(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? clamper(domain) : identity, scale) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous(transform, untransform) {\n return transformer()(transform, untransform);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimal(1.23) returns [\"123\", 0].\nexport default function(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimal(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;\n}\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": function(x) { return Math.round(x).toString(10); },\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Perform the initial formatting.\n var valueNegative = value < 0;\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero during formatting, treat as positive.\n if (valueNegative && +value === 0) valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy, identity} from \"./continuous\";\nimport {initRange} from \"./init\";\nimport tickFormat from \"./tickFormat\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous(identity, identity);\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatWeekNumberISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {bisector, tickStep} from \"d3-array\";\nimport {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport {map} from \"./array\";\nimport continuous, {copy, identity} from \"./continuous\";\nimport {initRange} from \"./init\";\nimport nice from \"./nice\";\n\nvar durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(identity, identity),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n var tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10;\n\n // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = bisector(function(i) { return i[2]; }).right(tickIntervals, target);\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = millisecond;\n }\n }\n\n return step == null ? interval : interval.every(step);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(map.call(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step))\n ? domain(nice(d, interval))\n : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\n\nexport default function() {\n return initRange.apply(calendar(timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","export var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color.js\";\nimport {deg2rad, rad2deg} from \"./math.js\";\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n","import {cubehelix as colorCubehelix} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction cubehelix(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n\n return cubehelix;\n })(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport var warm = interpolateCubehelixLong(cubehelix(-100, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nexport var cool = interpolateCubehelixLong(cubehelix(260, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nvar c = cubehelix();\n\nexport default function(t) {\n if (t < 0 || t > 1) t -= Math.floor(t);\n var ts = Math.abs(t - 0.5);\n c.h = 360 * t - 100;\n c.s = 1.5 - 1.5 * ts;\n c.l = 0.8 - 0.9 * ts;\n return c + \"\";\n}\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n var x = pointX,\n y = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function line(data) {\n var i,\n n = data.length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","function RedBlackTree() {\n this._ = null; // root node\n}\n\nexport function RedBlackNode(node) {\n node.U = // parent node\n node.C = // color - true for red, false for black\n node.L = // left node\n node.R = // right node\n node.P = // previous node\n node.N = null; // next node\n}\n\nRedBlackTree.prototype = {\n constructor: RedBlackTree,\n\n insert: function(after, node) {\n var parent, grandpa, uncle;\n\n if (after) {\n node.P = after;\n node.N = after.N;\n if (after.N) after.N.P = node;\n after.N = node;\n if (after.R) {\n after = after.R;\n while (after.L) after = after.L;\n after.L = node;\n } else {\n after.R = node;\n }\n parent = after;\n } else if (this._) {\n after = RedBlackFirst(this._);\n node.P = null;\n node.N = after;\n after.P = after.L = node;\n parent = after;\n } else {\n node.P = node.N = null;\n this._ = node;\n parent = null;\n }\n node.L = node.R = null;\n node.U = parent;\n node.C = true;\n\n after = node;\n while (parent && parent.C) {\n grandpa = parent.U;\n if (parent === grandpa.L) {\n uncle = grandpa.R;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.R) {\n RedBlackRotateLeft(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateRight(this, grandpa);\n }\n } else {\n uncle = grandpa.L;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.L) {\n RedBlackRotateRight(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateLeft(this, grandpa);\n }\n }\n parent = after.U;\n }\n this._.C = false;\n },\n\n remove: function(node) {\n if (node.N) node.N.P = node.P;\n if (node.P) node.P.N = node.N;\n node.N = node.P = null;\n\n var parent = node.U,\n sibling,\n left = node.L,\n right = node.R,\n next,\n red;\n\n if (!left) next = right;\n else if (!right) next = left;\n else next = RedBlackFirst(right);\n\n if (parent) {\n if (parent.L === node) parent.L = next;\n else parent.R = next;\n } else {\n this._ = next;\n }\n\n if (left && right) {\n red = next.C;\n next.C = node.C;\n next.L = left;\n left.U = next;\n if (next !== right) {\n parent = next.U;\n next.U = node.U;\n node = next.R;\n parent.L = node;\n next.R = right;\n right.U = next;\n } else {\n next.U = parent;\n parent = next;\n node = next.R;\n }\n } else {\n red = node.C;\n node = next;\n }\n\n if (node) node.U = parent;\n if (red) return;\n if (node && node.C) { node.C = false; return; }\n\n do {\n if (node === this._) break;\n if (node === parent.L) {\n sibling = parent.R;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateLeft(this, parent);\n sibling = parent.R;\n }\n if ((sibling.L && sibling.L.C)\n || (sibling.R && sibling.R.C)) {\n if (!sibling.R || !sibling.R.C) {\n sibling.L.C = false;\n sibling.C = true;\n RedBlackRotateRight(this, sibling);\n sibling = parent.R;\n }\n sibling.C = parent.C;\n parent.C = sibling.R.C = false;\n RedBlackRotateLeft(this, parent);\n node = this._;\n break;\n }\n } else {\n sibling = parent.L;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateRight(this, parent);\n sibling = parent.L;\n }\n if ((sibling.L && sibling.L.C)\n || (sibling.R && sibling.R.C)) {\n if (!sibling.L || !sibling.L.C) {\n sibling.R.C = false;\n sibling.C = true;\n RedBlackRotateLeft(this, sibling);\n sibling = parent.L;\n }\n sibling.C = parent.C;\n parent.C = sibling.L.C = false;\n RedBlackRotateRight(this, parent);\n node = this._;\n break;\n }\n }\n sibling.C = true;\n node = parent;\n parent = parent.U;\n } while (!node.C);\n\n if (node) node.C = false;\n }\n};\n\nfunction RedBlackRotateLeft(tree, node) {\n var p = node,\n q = node.R,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;\n else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.R = q.L;\n if (p.R) p.R.U = p;\n q.L = p;\n}\n\nfunction RedBlackRotateRight(tree, node) {\n var p = node,\n q = node.L,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;\n else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.L = q.R;\n if (p.L) p.L.U = p;\n q.R = p;\n}\n\nfunction RedBlackFirst(node) {\n while (node.L) node = node.L;\n return node;\n}\n\nexport default RedBlackTree;\n","import {cells, edges, epsilon} from \"./Diagram\";\n\nexport function createEdge(left, right, v0, v1) {\n var edge = [null, null],\n index = edges.push(edge) - 1;\n edge.left = left;\n edge.right = right;\n if (v0) setEdgeEnd(edge, left, right, v0);\n if (v1) setEdgeEnd(edge, right, left, v1);\n cells[left.index].halfedges.push(index);\n cells[right.index].halfedges.push(index);\n return edge;\n}\n\nexport function createBorderEdge(left, v0, v1) {\n var edge = [v0, v1];\n edge.left = left;\n return edge;\n}\n\nexport function setEdgeEnd(edge, left, right, vertex) {\n if (!edge[0] && !edge[1]) {\n edge[0] = vertex;\n edge.left = left;\n edge.right = right;\n } else if (edge.left === right) {\n edge[1] = vertex;\n } else {\n edge[0] = vertex;\n }\n}\n\n// Liang–Barsky line clipping.\nfunction clipEdge(edge, x0, y0, x1, y1) {\n var a = edge[0],\n b = edge[1],\n 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\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\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 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 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 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) && !(t1 < 1)) return true; // TODO Better check?\n\n if (t0 > 0) edge[0] = [ax + t0 * dx, ay + t0 * dy];\n if (t1 < 1) edge[1] = [ax + t1 * dx, ay + t1 * dy];\n return true;\n}\n\nfunction connectEdge(edge, x0, y0, x1, y1) {\n var v1 = edge[1];\n if (v1) return true;\n\n var v0 = edge[0],\n left = edge.left,\n right = edge.right,\n lx = left[0],\n ly = left[1],\n rx = right[0],\n ry = right[1],\n fx = (lx + rx) / 2,\n fy = (ly + ry) / 2,\n fm,\n fb;\n\n if (ry === ly) {\n if (fx < x0 || fx >= x1) return;\n if (lx > rx) {\n if (!v0) v0 = [fx, y0];\n else if (v0[1] >= y1) return;\n v1 = [fx, y1];\n } else {\n if (!v0) v0 = [fx, y1];\n else if (v0[1] < y0) return;\n v1 = [fx, y0];\n }\n } else {\n fm = (lx - rx) / (ry - ly);\n fb = fy - fm * fx;\n if (fm < -1 || fm > 1) {\n if (lx > rx) {\n if (!v0) v0 = [(y0 - fb) / fm, y0];\n else if (v0[1] >= y1) return;\n v1 = [(y1 - fb) / fm, y1];\n } else {\n if (!v0) v0 = [(y1 - fb) / fm, y1];\n else if (v0[1] < y0) return;\n v1 = [(y0 - fb) / fm, y0];\n }\n } else {\n if (ly < ry) {\n if (!v0) v0 = [x0, fm * x0 + fb];\n else if (v0[0] >= x1) return;\n v1 = [x1, fm * x1 + fb];\n } else {\n if (!v0) v0 = [x1, fm * x1 + fb];\n else if (v0[0] < x0) return;\n v1 = [x0, fm * x0 + fb];\n }\n }\n }\n\n edge[0] = v0;\n edge[1] = v1;\n return true;\n}\n\nexport function clipEdges(x0, y0, x1, y1) {\n var i = edges.length,\n edge;\n\n while (i--) {\n if (!connectEdge(edge = edges[i], x0, y0, x1, y1)\n || !clipEdge(edge, x0, y0, x1, y1)\n || !(Math.abs(edge[0][0] - edge[1][0]) > epsilon\n || Math.abs(edge[0][1] - edge[1][1]) > epsilon)) {\n delete edges[i];\n }\n }\n}\n","import {createBorderEdge} from \"./Edge\";\nimport {cells, edges, epsilon} from \"./Diagram\";\n\nexport function createCell(site) {\n return cells[site.index] = {\n site: site,\n halfedges: []\n };\n}\n\nfunction cellHalfedgeAngle(cell, edge) {\n var site = cell.site,\n va = edge.left,\n vb = edge.right;\n if (site === vb) vb = va, va = site;\n if (vb) return Math.atan2(vb[1] - va[1], vb[0] - va[0]);\n if (site === va) va = edge[1], vb = edge[0];\n else va = edge[0], vb = edge[1];\n return Math.atan2(va[0] - vb[0], vb[1] - va[1]);\n}\n\nexport function cellHalfedgeStart(cell, edge) {\n return edge[+(edge.left !== cell.site)];\n}\n\nexport function cellHalfedgeEnd(cell, edge) {\n return edge[+(edge.left === cell.site)];\n}\n\nexport function sortCellHalfedges() {\n for (var i = 0, n = cells.length, cell, halfedges, j, m; i < n; ++i) {\n if ((cell = cells[i]) && (m = (halfedges = cell.halfedges).length)) {\n var index = new Array(m),\n array = new Array(m);\n for (j = 0; j < m; ++j) index[j] = j, array[j] = cellHalfedgeAngle(cell, edges[halfedges[j]]);\n index.sort(function(i, j) { return array[j] - array[i]; });\n for (j = 0; j < m; ++j) array[j] = halfedges[index[j]];\n for (j = 0; j < m; ++j) halfedges[j] = array[j];\n }\n }\n}\n\nexport function clipCells(x0, y0, x1, y1) {\n var nCells = cells.length,\n iCell,\n cell,\n site,\n iHalfedge,\n halfedges,\n nHalfedges,\n start,\n startX,\n startY,\n end,\n endX,\n endY,\n cover = true;\n\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n halfedges = cell.halfedges;\n iHalfedge = halfedges.length;\n\n // Remove any dangling clipped edges.\n while (iHalfedge--) {\n if (!edges[halfedges[iHalfedge]]) {\n halfedges.splice(iHalfedge, 1);\n }\n }\n\n // Insert any border edges as necessary.\n iHalfedge = 0, nHalfedges = halfedges.length;\n while (iHalfedge < nHalfedges) {\n end = cellHalfedgeEnd(cell, edges[halfedges[iHalfedge]]), endX = end[0], endY = end[1];\n start = cellHalfedgeStart(cell, edges[halfedges[++iHalfedge % nHalfedges]]), startX = start[0], startY = start[1];\n if (Math.abs(endX - startX) > epsilon || Math.abs(endY - startY) > epsilon) {\n halfedges.splice(iHalfedge, 0, edges.push(createBorderEdge(site, end,\n Math.abs(endX - x0) < epsilon && y1 - endY > epsilon ? [x0, Math.abs(startX - x0) < epsilon ? startY : y1]\n : Math.abs(endY - y1) < epsilon && x1 - endX > epsilon ? [Math.abs(startY - y1) < epsilon ? startX : x1, y1]\n : Math.abs(endX - x1) < epsilon && endY - y0 > epsilon ? [x1, Math.abs(startX - x1) < epsilon ? startY : y0]\n : Math.abs(endY - y0) < epsilon && endX - x0 > epsilon ? [Math.abs(startY - y0) < epsilon ? startX : x0, y0]\n : null)) - 1);\n ++nHalfedges;\n }\n }\n\n if (nHalfedges) cover = false;\n }\n }\n\n // If there weren’t any edges, have the closest site cover the extent.\n // It doesn’t matter which corner of the extent we measure!\n if (cover) {\n var dx, dy, d2, dc = Infinity;\n\n for (iCell = 0, cover = null; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n dx = site[0] - x0;\n dy = site[1] - y0;\n d2 = dx * dx + dy * dy;\n if (d2 < dc) dc = d2, cover = cell;\n }\n }\n\n if (cover) {\n var v00 = [x0, y0], v01 = [x0, y1], v11 = [x1, y1], v10 = [x1, y0];\n cover.halfedges.push(\n edges.push(createBorderEdge(site = cover.site, v00, v01)) - 1,\n edges.push(createBorderEdge(site, v01, v11)) - 1,\n edges.push(createBorderEdge(site, v11, v10)) - 1,\n edges.push(createBorderEdge(site, v10, v00)) - 1\n );\n }\n }\n\n // Lastly delete any cells with no edges; these were entirely clipped.\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n if (!cell.halfedges.length) {\n delete cells[iCell];\n }\n }\n }\n}\n","import {RedBlackNode} from \"./RedBlackTree\";\nimport {circles, epsilon2} from \"./Diagram\";\n\nvar circlePool = [];\n\nexport var firstCircle;\n\nfunction Circle() {\n RedBlackNode(this);\n this.x =\n this.y =\n this.arc =\n this.site =\n this.cy = null;\n}\n\nexport function attachCircle(arc) {\n var lArc = arc.P,\n rArc = arc.N;\n\n if (!lArc || !rArc) return;\n\n var lSite = lArc.site,\n cSite = arc.site,\n rSite = rArc.site;\n\n if (lSite === rSite) return;\n\n var bx = cSite[0],\n by = cSite[1],\n ax = lSite[0] - bx,\n ay = lSite[1] - by,\n cx = rSite[0] - bx,\n cy = rSite[1] - by;\n\n var d = 2 * (ax * cy - ay * cx);\n if (d >= -epsilon2) return;\n\n var ha = ax * ax + ay * ay,\n hc = cx * cx + cy * cy,\n x = (cy * ha - ay * hc) / d,\n y = (ax * hc - cx * ha) / d;\n\n var circle = circlePool.pop() || new Circle;\n circle.arc = arc;\n circle.site = cSite;\n circle.x = x + bx;\n circle.y = (circle.cy = y + by) + Math.sqrt(x * x + y * y); // y bottom\n\n arc.circle = circle;\n\n var before = null,\n node = circles._;\n\n while (node) {\n if (circle.y < node.y || (circle.y === node.y && circle.x <= node.x)) {\n if (node.L) node = node.L;\n else { before = node.P; break; }\n } else {\n if (node.R) node = node.R;\n else { before = node; break; }\n }\n }\n\n circles.insert(before, circle);\n if (!before) firstCircle = circle;\n}\n\nexport function detachCircle(arc) {\n var circle = arc.circle;\n if (circle) {\n if (!circle.P) firstCircle = circle.N;\n circles.remove(circle);\n circlePool.push(circle);\n RedBlackNode(circle);\n arc.circle = null;\n }\n}\n","import {RedBlackNode} from \"./RedBlackTree\";\nimport {createCell} from \"./Cell\";\nimport {attachCircle, detachCircle} from \"./Circle\";\nimport {createEdge, setEdgeEnd} from \"./Edge\";\nimport {beaches, epsilon} from \"./Diagram\";\n\nvar beachPool = [];\n\nfunction Beach() {\n RedBlackNode(this);\n this.edge =\n this.site =\n this.circle = null;\n}\n\nfunction createBeach(site) {\n var beach = beachPool.pop() || new Beach;\n beach.site = site;\n return beach;\n}\n\nfunction detachBeach(beach) {\n detachCircle(beach);\n beaches.remove(beach);\n beachPool.push(beach);\n RedBlackNode(beach);\n}\n\nexport function removeBeach(beach) {\n var circle = beach.circle,\n x = circle.x,\n y = circle.cy,\n vertex = [x, y],\n previous = beach.P,\n next = beach.N,\n disappearing = [beach];\n\n detachBeach(beach);\n\n var lArc = previous;\n while (lArc.circle\n && Math.abs(x - lArc.circle.x) < epsilon\n && Math.abs(y - lArc.circle.cy) < epsilon) {\n previous = lArc.P;\n disappearing.unshift(lArc);\n detachBeach(lArc);\n lArc = previous;\n }\n\n disappearing.unshift(lArc);\n detachCircle(lArc);\n\n var rArc = next;\n while (rArc.circle\n && Math.abs(x - rArc.circle.x) < epsilon\n && Math.abs(y - rArc.circle.cy) < epsilon) {\n next = rArc.N;\n disappearing.push(rArc);\n detachBeach(rArc);\n rArc = next;\n }\n\n disappearing.push(rArc);\n detachCircle(rArc);\n\n var nArcs = disappearing.length,\n iArc;\n for (iArc = 1; iArc < nArcs; ++iArc) {\n rArc = disappearing[iArc];\n lArc = disappearing[iArc - 1];\n setEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);\n }\n\n lArc = disappearing[0];\n rArc = disappearing[nArcs - 1];\n rArc.edge = createEdge(lArc.site, rArc.site, null, vertex);\n\n attachCircle(lArc);\n attachCircle(rArc);\n}\n\nexport function addBeach(site) {\n var x = site[0],\n directrix = site[1],\n lArc,\n rArc,\n dxl,\n dxr,\n node = beaches._;\n\n while (node) {\n dxl = leftBreakPoint(node, directrix) - x;\n if (dxl > epsilon) node = node.L; else {\n dxr = x - rightBreakPoint(node, directrix);\n if (dxr > epsilon) {\n if (!node.R) {\n lArc = node;\n break;\n }\n node = node.R;\n } else {\n if (dxl > -epsilon) {\n lArc = node.P;\n rArc = node;\n } else if (dxr > -epsilon) {\n lArc = node;\n rArc = node.N;\n } else {\n lArc = rArc = node;\n }\n break;\n }\n }\n }\n\n createCell(site);\n var newArc = createBeach(site);\n beaches.insert(lArc, newArc);\n\n if (!lArc && !rArc) return;\n\n if (lArc === rArc) {\n detachCircle(lArc);\n rArc = createBeach(lArc.site);\n beaches.insert(newArc, rArc);\n newArc.edge = rArc.edge = createEdge(lArc.site, newArc.site);\n attachCircle(lArc);\n attachCircle(rArc);\n return;\n }\n\n if (!rArc) { // && lArc\n newArc.edge = createEdge(lArc.site, newArc.site);\n return;\n }\n\n // else lArc !== rArc\n detachCircle(lArc);\n detachCircle(rArc);\n\n var lSite = lArc.site,\n ax = lSite[0],\n ay = lSite[1],\n bx = site[0] - ax,\n by = site[1] - ay,\n rSite = rArc.site,\n cx = rSite[0] - ax,\n cy = rSite[1] - ay,\n d = 2 * (bx * cy - by * cx),\n hb = bx * bx + by * by,\n hc = cx * cx + cy * cy,\n vertex = [(cy * hb - by * hc) / d + ax, (bx * hc - cx * hb) / d + ay];\n\n setEdgeEnd(rArc.edge, lSite, rSite, vertex);\n newArc.edge = createEdge(lSite, site, null, vertex);\n rArc.edge = createEdge(site, rSite, null, vertex);\n attachCircle(lArc);\n attachCircle(rArc);\n}\n\nfunction leftBreakPoint(arc, directrix) {\n var site = arc.site,\n rfocx = site[0],\n rfocy = site[1],\n pby2 = rfocy - directrix;\n\n if (!pby2) return rfocx;\n\n var lArc = arc.P;\n if (!lArc) return -Infinity;\n\n site = lArc.site;\n var lfocx = site[0],\n lfocy = site[1],\n plby2 = lfocy - directrix;\n\n if (!plby2) return lfocx;\n\n var hl = lfocx - rfocx,\n aby2 = 1 / pby2 - 1 / plby2,\n b = hl / plby2;\n\n if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;\n\n return (rfocx + lfocx) / 2;\n}\n\nfunction rightBreakPoint(arc, directrix) {\n var rArc = arc.N;\n if (rArc) return leftBreakPoint(rArc, directrix);\n var site = arc.site;\n return site[1] === directrix ? site[0] : Infinity;\n}\n","import {addBeach, removeBeach} from \"./Beach\";\nimport {sortCellHalfedges, cellHalfedgeStart, clipCells} from \"./Cell\";\nimport {firstCircle} from \"./Circle\";\nimport {clipEdges} from \"./Edge\";\nimport RedBlackTree from \"./RedBlackTree\";\n\nexport var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var beaches;\nexport var cells;\nexport var circles;\nexport var edges;\n\nfunction triangleArea(a, b, c) {\n return (a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1]);\n}\n\nfunction lexicographic(a, b) {\n return b[1] - a[1]\n || b[0] - a[0];\n}\n\nexport default function Diagram(sites, extent) {\n var site = sites.sort(lexicographic).pop(),\n x,\n y,\n circle;\n\n edges = [];\n cells = new Array(sites.length);\n beaches = new RedBlackTree;\n circles = new RedBlackTree;\n\n while (true) {\n circle = firstCircle;\n if (site && (!circle || site[1] < circle.y || (site[1] === circle.y && site[0] < circle.x))) {\n if (site[0] !== x || site[1] !== y) {\n addBeach(site);\n x = site[0], y = site[1];\n }\n site = sites.pop();\n } else if (circle) {\n removeBeach(circle.arc);\n } else {\n break;\n }\n }\n\n sortCellHalfedges();\n\n if (extent) {\n var x0 = +extent[0][0],\n y0 = +extent[0][1],\n x1 = +extent[1][0],\n y1 = +extent[1][1];\n clipEdges(x0, y0, x1, y1);\n clipCells(x0, y0, x1, y1);\n }\n\n this.edges = edges;\n this.cells = cells;\n\n beaches =\n circles =\n edges =\n cells = null;\n}\n\nDiagram.prototype = {\n constructor: Diagram,\n\n polygons: function() {\n var edges = this.edges;\n\n return this.cells.map(function(cell) {\n var polygon = cell.halfedges.map(function(i) { return cellHalfedgeStart(cell, edges[i]); });\n polygon.data = cell.site.data;\n return polygon;\n });\n },\n\n triangles: function() {\n var triangles = [],\n edges = this.edges;\n\n this.cells.forEach(function(cell, i) {\n if (!(m = (halfedges = cell.halfedges).length)) return;\n var site = cell.site,\n halfedges,\n j = -1,\n m,\n s0,\n e1 = edges[halfedges[m - 1]],\n s1 = e1.left === site ? e1.right : e1.left;\n\n while (++j < m) {\n s0 = s1;\n e1 = edges[halfedges[j]];\n s1 = e1.left === site ? e1.right : e1.left;\n if (s0 && s1 && i < s0.index && i < s1.index && triangleArea(site, s0, s1) < 0) {\n triangles.push([site.data, s0.data, s1.data]);\n }\n }\n });\n\n return triangles;\n },\n\n links: function() {\n return this.edges.filter(function(edge) {\n return edge.right;\n }).map(function(edge) {\n return {\n source: edge.left.data,\n target: edge.right.data\n };\n });\n },\n\n find: function(x, y, radius) {\n var that = this, i0, i1 = that._found || 0, n = that.cells.length, cell;\n\n // Use the previously-found cell, or start with an arbitrary one.\n while (!(cell = that.cells[i1])) if (++i1 >= n) return null;\n var dx = x - cell.site[0], dy = y - cell.site[1], d2 = dx * dx + dy * dy;\n\n // Traverse the half-edges to find a closer cell, if any.\n do {\n cell = that.cells[i0 = i1], i1 = null;\n cell.halfedges.forEach(function(e) {\n var edge = that.edges[e], v = edge.left;\n if ((v === cell.site || !v) && !(v = edge.right)) return;\n var vx = x - v[0], vy = y - v[1], v2 = vx * vx + vy * vy;\n if (v2 < d2) d2 = v2, i1 = v.index;\n });\n } while (i1 !== null);\n\n that._found = i0;\n\n return radius == null || d2 <= radius * radius ? cell.site : null;\n }\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}\n\n// p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\nexport default function(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000;\n\n return i;\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","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\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta() {\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(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled)\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"touch-action\", \"none\")\n .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 if (collection !== selection) {\n schedule(collection, transform, point);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p) {\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(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n });\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(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), 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, 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\n .on(\"start.zoom\", function() { gesture(this, arguments).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { 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 { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n 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);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent();\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\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 if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\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\n noevent();\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0);\n 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, i, t, p;\n\n nopropagation();\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;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchstarting = setTimeout(function() { touchstarting = null; }, 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, i, t, p, l;\n\n noevent();\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n g.taps = 0;\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;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n 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, i, t;\n\n nopropagation();\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n 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}\n",";\r\nexport var ChartType = {\r\n Bar: 0,\r\n Trend: 1,\r\n Stack: 2,\r\n GBar: 3,\r\n GTrend: 4,\r\n Scatter: 5\r\n};\r\n;\r\n","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport * as d3 from \"d3\";\r\nimport { numberFormat } from \"./translator\";\r\nimport { ChartType } from \"./types\";\r\nvar marginY = 10;\r\nvar marginX = 60;\r\nvar width = 700;\r\nvar height = 400;\r\nvar moveToFront = function (node) {\r\n return node.each(function () {\r\n node.parentNode.appendChild(node);\r\n });\r\n};\r\nvar moveToBack = function (node) {\r\n return node.each(function () {\r\n var firstChild = node.parentNode.firstChild;\r\n if (firstChild) {\r\n node.parentNode.insertBefore(node, firstChild);\r\n }\r\n });\r\n};\r\nvar isBetween = function (val, up, low) {\r\n return val >= low && val <= up;\r\n};\r\nvar isPointInRange = function (upper, lower, point) {\r\n if (!(upper && lower))\r\n return false;\r\n var pUpper = point.valueUpper;\r\n var pLower = point.valueLower;\r\n var pVal = point.value;\r\n if (!(pUpper && pLower && pVal))\r\n return false;\r\n // check if the selected bound is within the points bounds\r\n if (isBetween(upper, pUpper, pLower))\r\n return true;\r\n if (isBetween(lower, pUpper, pLower))\r\n return true;\r\n // check if point upper and lower bound is within selected bounds\r\n if (isBetween(pVal, upper, lower))\r\n return true;\r\n if (isBetween(pLower, upper, lower))\r\n return true;\r\n if (isBetween(pUpper, upper, lower))\r\n return true;\r\n return false;\r\n};\r\n// Generated using\r\n// letters.map(v => { temp0.innerHTML = v; return {[v]: temp0.getComputedTextLength()} }).reduce((a, b) => ({...a, ...b}))\r\n// Recompute if sizes changed\r\nvar widthTableAxisLabel = {\r\n A: 10.59583568572998,\r\n B: 10.59583568572998,\r\n C: 10.59583568572998,\r\n D: 10.59583568572998,\r\n E: 9.4185209274292,\r\n F: 8.241206169128418,\r\n G: 10.59583568572998,\r\n H: 10.59583568572998,\r\n I: 3.53194522857666,\r\n J: 8.241206169128418,\r\n K: 10.59583568572998,\r\n L: 8.241206169128418,\r\n M: 11.773151397705078,\r\n N: 10.59583568572998,\r\n O: 10.59583568572998,\r\n P: 9.4185209274292,\r\n Q: 10.59583568572998,\r\n R: 10.59583568572998,\r\n S: 9.4185209274292,\r\n T: 8.241206169128418,\r\n U: 10.59583568572998,\r\n V: 9.4185209274292,\r\n W: 12.95046615600586,\r\n X: 9.4185209274292,\r\n Y: 9.4185209274292,\r\n Z: 8.241206169128418,\r\n a: 8.241206169128418,\r\n b: 8.241206169128418,\r\n c: 8.241206169128418,\r\n d: 8.241206169128418,\r\n e: 8.241206169128418,\r\n f: 4.7092604637146,\r\n g: 8.241206169128418,\r\n h: 8.241206169128418,\r\n i: 3.53194522857666,\r\n j: 3.53194522857666,\r\n k: 8.241206169128418,\r\n l: 3.53194522857666,\r\n m: 12.95046615600586,\r\n n: 8.241206169128418,\r\n o: 8.241206169128418,\r\n p: 8.241206169128418,\r\n q: 8.241206169128418,\r\n r: 5.886575698852539,\r\n s: 8.241206169128418,\r\n t: 4.7092604637146,\r\n u: 8.241206169128418,\r\n v: 8.241206169128418,\r\n w: 10.59583568572998,\r\n x: 8.241206169128418,\r\n y: 8.241206169128418,\r\n z: 7.06389045715332\r\n};\r\nvar widthTablePointLabel = {\r\n A: 7.06389045715332,\r\n B: 7.06389045715332,\r\n C: 7.06389045715332,\r\n D: 7.06389045715332,\r\n E: 7.06389045715332,\r\n F: 5.886575698852539,\r\n G: 8.241206169128418,\r\n H: 7.06389045715332,\r\n I: 2.3546302318573,\r\n J: 4.7092604637146,\r\n K: 7.06389045715332,\r\n L: 5.886575698852539,\r\n M: 8.241206169128418,\r\n N: 7.06389045715332,\r\n O: 8.241206169128418,\r\n P: 7.06389045715332,\r\n Q: 8.241206169128418,\r\n R: 7.06389045715332,\r\n S: 7.06389045715332,\r\n T: 5.886575698852539,\r\n U: 7.06389045715332,\r\n V: 7.06389045715332,\r\n W: 9.4185209274292,\r\n X: 7.06389045715332,\r\n Y: 7.06389045715332,\r\n Z: 5.886575698852539,\r\n a: 5.886575698852539,\r\n b: 5.886575698852539,\r\n c: 4.7092604637146,\r\n d: 5.886575698852539,\r\n e: 5.886575698852539,\r\n f: 2.3546302318573,\r\n g: 5.886575698852539,\r\n h: 5.886575698852539,\r\n i: 2.3546302318573,\r\n j: 2.3546302318573,\r\n k: 4.7092604637146,\r\n l: 2.3546302318573,\r\n m: 8.241206169128418,\r\n n: 5.886575698852539,\r\n o: 5.886575698852539,\r\n p: 5.886575698852539,\r\n q: 5.886575698852539,\r\n r: 3.53194522857666,\r\n s: 4.7092604637146,\r\n t: 2.3546302318573,\r\n u: 5.886575698852539,\r\n v: 4.7092604637146,\r\n w: 7.06389045715332,\r\n x: 4.7092604637146,\r\n y: 4.7092604637146,\r\n z: 4.7092604637146\r\n};\r\nvar getComputedTextLength = function (node, table) {\r\n if (Object.keys(window).length > 0)\r\n return node.getComputedTextLength();\r\n var totalWidth = 0;\r\n for (var _i = 0, _a = node.innerHTML; _i < _a.length; _i++) {\r\n var c = _a[_i];\r\n var cWidth = table[c];\r\n if (!cWidth)\r\n return (Object.values(table).reduce(function (a, b) { return a + b; }) /\r\n Object.values(table).length);\r\n }\r\n return totalWidth;\r\n};\r\nfunction wrap(text, width, fallbackTable, inverted) {\r\n if (inverted === void 0) { inverted = false; }\r\n text.each(function () {\r\n var text = d3.select(this), words = text\r\n .text()\r\n .split(/\\s+/)\r\n .reverse(), word, line = [], lineNumber = 0, lineHeight = 1.1, // ems\r\n x = text.attr(\"x\"), y = text.attr(\"y\"), dy = 0, //parseFloat(text.attr(\"dy\")),\r\n tspan = text\r\n .text(null)\r\n .append(\"tspan\")\r\n .attr(\"x\", x)\r\n .attr(\"y\", y)\r\n .attr(\"dy\", -dy + \"em\");\r\n while ((word = words.pop())) {\r\n line.push(word);\r\n tspan.text(line.join(\" \"));\r\n if (getComputedTextLength(tspan.node(), fallbackTable) > width) {\r\n line.pop();\r\n tspan.text(line.join(\" \"));\r\n line = [word];\r\n tspan = text\r\n .append(\"tspan\")\r\n .attr(\"x\", x || 0)\r\n .attr(\"y\", y)\r\n .attr(\"dy\", (inverted ? -1 : 1) * (++lineNumber * lineHeight + dy) + \"em\")\r\n .text(word);\r\n }\r\n }\r\n });\r\n}\r\nexport function renderChart(ref, dataset, culture, animate) {\r\n var chart = d3.select(ref);\r\n var select = chart.select(\".main\");\r\n var isBar = dataset.chartType == ChartType.Bar;\r\n var isTrend = dataset.chartType == ChartType.Trend;\r\n var isScatter = dataset.chartType == ChartType.Scatter;\r\n var isStack = dataset.chartType == ChartType.Stack;\r\n var isGBar = dataset.chartType == ChartType.GBar;\r\n var isGTrend = dataset.chartType == ChartType.GTrend;\r\n var points = dataset.points.filter(function (point) { return point.type == 0 && (isTrend || isGTrend || isGBar || isStack || isBar); });\r\n var averages = dataset.points.filter(function (point) { return !points.includes(point); });\r\n var stacks = points.reduce(function (a, b) {\r\n if (!a[b.aggregatorLabel]) {\r\n a[b.aggregatorLabel] = [];\r\n }\r\n var arr = a[b.aggregatorLabel];\r\n var previous = arr[arr.length - 1];\r\n var p = __assign(__assign({}, b), { value: (previous ? previous.value || 0 : 0) + (b.value || 0) });\r\n arr.push(p);\r\n return a;\r\n }, {});\r\n var stacksReverse = points.reduce(function (a, b) {\r\n if (!a[b.aggregatorReference]) {\r\n a[b.aggregatorReference] = [];\r\n }\r\n var arr = a[b.aggregatorReference];\r\n var previous = arr[arr.length - 1];\r\n var p = __assign(__assign({}, b), { value: (b.value || 0) });\r\n arr.push(p);\r\n return a;\r\n }, {});\r\n var trends = points.reduce(function (a, b) {\r\n if (!a[b.aggregatorLabel]) {\r\n a[b.aggregatorLabel] = [];\r\n }\r\n var arr = a[b.aggregatorLabel];\r\n var p = __assign(__assign({}, b), { value: b.value || 0 });\r\n arr.push(p);\r\n return a;\r\n }, {});\r\n var bars = points.reduce(function (a, b) {\r\n if (!a[b.aggregatorLabel]) {\r\n a[b.aggregatorLabel] = [];\r\n }\r\n var arr = a[b.aggregatorLabel];\r\n var p = __assign(__assign({}, b), { value: b.value || 0 });\r\n arr.push(p);\r\n return a;\r\n }, {});\r\n var aggregatorReferences = points\r\n .map(function (p) { return p.aggregatorReference; })\r\n .filter(function (value, index, arr) { return arr.indexOf(value) == index; });\r\n var colorsArray = points\r\n .map(function (p) { return p.color; })\r\n .filter(function (value, index, arr) { return arr.indexOf(value) == index; });\r\n var decimals;\r\n if (dataset.unit.substring(0, 6) == \"Number\") {\r\n decimals = 0;\r\n }\r\n else {\r\n decimals = 1;\r\n }\r\n var legend = chart\r\n .select(\".legend\");\r\n legend.attr(\"display\", isStack || isGTrend || isGBar ? \"inline-block\" : \"none\");\r\n // legend.attr(\"display\", isBar || isTrend ? \"none\" : \"block\");\r\n // legend.select(\"rect\").attr(\"height\", aggregatorReferences.length * 20 + 35)\r\n if (isStack || isGTrend || isGBar) {\r\n var legendBinding = legend\r\n .selectAll(\".legendItem\")\r\n .data(aggregatorReferences);\r\n legendBinding.exit().remove();\r\n var entered = legendBinding\r\n .enter()\r\n .append(\"g\")\r\n .attr(\"class\", \"legendItem\");\r\n entered\r\n .append(\"rect\")\r\n .attr(\"class\", \"legendRect\")\r\n .attr(\"height\", 15)\r\n .attr(\"width\", 15);\r\n entered\r\n .append(\"text\")\r\n .attr(\"class\", \"legendText\")\r\n .attr(\"font-size\", 14)\r\n .attr(\"x\", 20)\r\n .attr(\"y\", 14);\r\n legendBinding.attr(\"transform\", function (_, i) { return \"translate(10, \" + (30 + 20 * i) + \")\"; });\r\n legend.selectAll(\"rect\")\r\n .style(\"fill\", function (_d, i, arr) {\r\n if (colorsArray[i] != \"\" && colorsArray[0] !== null) {\r\n return colorsArray[i];\r\n }\r\n else {\r\n return d3.interpolateCool(i / arr.length);\r\n }\r\n });\r\n legendBinding.select(\"text\").text(function (d) { return d; });\r\n }\r\n else {\r\n var legendBinding = legend\r\n .selectAll(\".legendItem\").remove();\r\n }\r\n var animationDuration = 525;\r\n var optionalTransition = function (el) {\r\n if (!animate)\r\n return el;\r\n return el\r\n .transition()\r\n .duration(animationDuration);\r\n };\r\n if (points.length == 0) {\r\n points = averages;\r\n averages = [];\r\n }\r\n var x;\r\n var xG;\r\n if (isGBar) {\r\n x = d3.scaleBand()\r\n .domain(points.map(function (point) { return point.aggregatorLabel; }))\r\n .rangeRound([0, width])\r\n .paddingInner(0.25);\r\n xG = d3.scaleBand()\r\n .domain(points.map(function (point) { return point.aggregatorReference; }))\r\n .rangeRound([0, x.bandwidth()])\r\n .padding(0);\r\n }\r\n else {\r\n x = d3\r\n .scaleBand()\r\n .domain(points.map(function (point) { return (isStack || isGTrend || isGBar ? point.aggregatorLabel : point.label); }))\r\n .range([0, width]);\r\n }\r\n var datatemp = stacks;\r\n if (isStack) {\r\n datatemp = stacks;\r\n }\r\n else if (isGTrend) {\r\n datatemp = trends;\r\n }\r\n else {\r\n datatemp = bars;\r\n }\r\n var maxValue = !isStack\r\n ? d3.max(dataset.points, function (point) { return point.valueUpper || point.value || 0; })\r\n : d3.max(Object.values(datatemp).map(function (points) {\r\n return points.map(function (p) { return p.value || 0; }).reduce(function (a, b) { return Math.max(a, b); });\r\n }));\r\n if (maxValue <= 0) {\r\n maxValue = 5;\r\n }\r\n else if (dataset.unit.indexOf(\"%\") > -1 || dataset.unit.indexOf(\"Percent\") > -1 || dataset.unit.indexOf(\"Pourcent\") > -1 || dataset.unit.indexOf(\"Proportion\") > -1) {\r\n maxValue = 100;\r\n }\r\n else if (isTrend || isGTrend) {\r\n maxValue = Math.round(maxValue * 1.5);\r\n }\r\n else {\r\n maxValue = Math.round(maxValue * 1.15);\r\n }\r\n var y = d3\r\n .scaleLinear()\r\n .domain([0, (dataset.unit.indexOf(\"%\") > -1 || dataset.unit.indexOf(\"Percent\") > -1 || dataset.unit.indexOf(\"Pourcent\") > -1 || dataset.unit.indexOf(\"Proportion\") > -1) ? maxValue : maxValue * 1.1]) //(maxValue*1.1]\r\n .range([height, 0]);\r\n optionalTransition(chart\r\n .selectAll(\"g.y-axis\")\r\n .attr(\"transform\", \"translate(\" + marginX + \", \" + marginY + \")\"))\r\n .call(d3.axisLeft(y))\r\n .selectAll(\"text\")\r\n .text(function (d) {\r\n return numberFormat(+d, culture, 0);\r\n })\r\n .attr(\"font-size\", maxValue > 1000 ? \"11px\" : \"13px\");\r\n // let xAxisLength = Object.keys(datatemp).length;\r\n // if(points.length / aggregatorReferences.length > 24){\r\n // xAxisLength = 1;\r\n // }else{\r\n // xAxisLength = points.length;\r\n // }\r\n var pointsLabels = points.map(function (point) { return (isStack || isGBar ? point.aggregatorLabel : point.label); });\r\n var distinctPoints = function (value, index, self) { return self.indexOf(value) === index; };\r\n var distinctPointsLabels = pointsLabels.filter(distinctPoints);\r\n var xAxisLength = distinctPointsLabels.length;\r\n var tickWidth;\r\n var labelPTsTrue = false;\r\n var labelLongAll = [];\r\n var labelSuperLong = [];\r\n points.forEach(function (point) { return (((isTrend || isBar || isScatter) && point.label.length > (x.bandwidth() * 0.75)) || ((isStack || isGBar || isGTrend) && point.aggregatorLabel.length > 5)) ? labelLongAll.push(true) : labelLongAll.push(false); });\r\n points.forEach(function (point) { return (((isTrend || isBar || isScatter) && point.label.length > 20) ? labelSuperLong.push(true) : labelSuperLong.push(false)); });\r\n if (distinctPointsLabels.indexOf(\"New Brunswick\") > -1 && xAxisLength > 3) {\r\n labelPTsTrue = true;\r\n tickWidth = 16.33;\r\n }\r\n else {\r\n labelPTsTrue = false;\r\n tickWidth = 450 / xAxisLength;\r\n }\r\n chart\r\n .selectAll(\"g.x-axis\")\r\n .attr(\"transform\", \"translate(\" + marginX + \", \" + (height + marginY) + \")\")\r\n .call(d3.axisBottom(x).tickValues(x.domain().filter(function (d, i) {\r\n if ((points.length / (aggregatorReferences.length > 0 ? aggregatorReferences.length : 1)) > 24)\r\n return !(i % 2);\r\n return !(i % 1);\r\n })))\r\n .selectAll(\".tick text\")\r\n .attr(\"transform\", function (d, i) {\r\n if (labelPTsTrue == false) {\r\n return \"\";\r\n }\r\n else if (labelPTsTrue == true) {\r\n return \"rotate(-38)\";\r\n }\r\n })\r\n .attr(\"font-size\", points.length > 18 ? \"13px\" : \"13px\")\r\n .attr(\"y\", function (d, i) {\r\n if (labelPTsTrue == true) {\r\n return 16;\r\n }\r\n else {\r\n return 21;\r\n }\r\n })\r\n .attr(\"text-anchor\", function (d, i) {\r\n if (labelPTsTrue == true) {\r\n return \"end\";\r\n }\r\n else {\r\n return \"middle\";\r\n }\r\n })\r\n .call(wrap, tickWidth, widthTablePointLabel);\r\n chart\r\n .select(\".xAxisLabel\")\r\n .text(dataset.xAxis)\r\n .attr(\"y\", function (d, i) {\r\n if (labelPTsTrue == true) {\r\n return \"540\";\r\n }\r\n else {\r\n return \"510\";\r\n }\r\n })\r\n .call(wrap, 600, widthTableAxisLabel);\r\n chart\r\n .select(\".yAxisLabel\")\r\n .text(dataset.yAxis)\r\n .call(wrap, 400, widthTableAxisLabel);\r\n var pointBinding = select.selectAll(\"g.point\").data(points);\r\n var averageBinding = select.selectAll(\"g.average\").data(averages);\r\n var cvUpperBinding = select.selectAll(\"g.cvUpper\").data(points);\r\n var cvLowerBinding = select.selectAll(\"g.cvLower\").data(points);\r\n var cvConnectBinding = select.selectAll(\"g.cvConnect\").data(points);\r\n var exitCvUpper = cvUpperBinding.exit();\r\n var exitCvLower = cvLowerBinding.exit();\r\n var exitCvConnect = cvConnectBinding.exit();\r\n var exitPoint = pointBinding.exit();\r\n var enteredRect = pointBinding\r\n .enter()\r\n .append(\"g\")\r\n .attr(\"class\", \"point\")\r\n .attr(\"transform\", function (d) {\r\n if (isGBar) {\r\n return \"translate(\" + x(d.aggregatorLabel) + \",0)\";\r\n }\r\n else {\r\n return \"translate(0,0)\";\r\n }\r\n })\r\n .append(\"rect\");\r\n optionalTransition(pointBinding\r\n .attr(\"transform\", function (d) {\r\n if (isGBar) {\r\n return \"translate(\" + x(d.aggregatorLabel) + \",0)\";\r\n }\r\n else {\r\n return \"translate(0,0)\";\r\n }\r\n }));\r\n optionalTransition(pointBinding\r\n .enter()\r\n .append(\"g\")\r\n .attr(\"class\", \"point\")\r\n .attr(\"transform\", function (d) {\r\n if (isGBar) {\r\n return \"translate(\" + x(d.aggregatorLabel) + \",0)\";\r\n }\r\n else {\r\n return \"translate(0,0)\";\r\n }\r\n }));\r\n optionalTransition(enteredRect\r\n .attr(\"x\", function (d, i) {\r\n if (isStack || isGTrend) {\r\n return ((Object.keys(datatemp).indexOf(d.aggregatorLabel) + 0.5) *\r\n (width / Object.keys(datatemp).length) -\r\n 25 / 2);\r\n }\r\n else if (isGBar) {\r\n return xG(d.aggregatorReference);\r\n }\r\n var widthTemp;\r\n if (points.length / aggregatorReferences.length > 20)\r\n widthTemp = 20;\r\n else\r\n widthTemp = 25;\r\n return (i + 0.5) * (width / points.length) - (isTrend || isGTrend ? 10 : widthTemp) / 2;\r\n })\r\n .attr(\"width\", function (d) {\r\n if (isTrend || isGTrend)\r\n return 10;\r\n else if (isGBar)\r\n return xG.bandwidth();\r\n else if (points.length / aggregatorReferences.length > 20)\r\n return 20;\r\n return 25;\r\n })\r\n //isTrend || isGTrend ? 10 : 25)\r\n //.style(\"fill\", \"steelblue\")\r\n .attr(\"ry\", isTrend || isGTrend ? 10 : 0)\r\n .attr(\"rx\", isTrend || isGTrend ? 10 : 0)\r\n .attr(\"y\", height))\r\n .attr(\"y\", function (d) {\r\n if (isTrend || isGTrend)\r\n return y(d.value || 0) - 5;\r\n if (d.value < 0) {\r\n return 0;\r\n }\r\n if (isStack)\r\n return y(stacks[d.aggregatorLabel].find(function (p) { return p.label == d.label && p.text == d.text; }).value || 0);\r\n return y(d.value || 0);\r\n })\r\n .attr(\"height\", function (d) {\r\n if (isTrend || isGTrend)\r\n return 10;\r\n if (d.value < 0) {\r\n return 0;\r\n }\r\n if (isStack)\r\n return height - y(d.value || 0);\r\n return height - y(d.value || 0);\r\n })\r\n .attr(\"fill\", function (d, i) {\r\n if (d.color != \"\" && d.color !== null) {\r\n return d.color;\r\n }\r\n else {\r\n if (isStack || isGBar || isGTrend) {\r\n var position = aggregatorReferences.indexOf(d.aggregatorReference);\r\n var length_1 = aggregatorReferences.length;\r\n return d3.interpolateCool(position / length_1);\r\n }\r\n else {\r\n if (d.cvInterpretation == 1) {\r\n return \"red\";\r\n }\r\n else if (d.cvInterpretation == 2) {\r\n return \"yellow\";\r\n }\r\n else {\r\n return \"steelblue\";\r\n }\r\n }\r\n }\r\n })\r\n .attr(\"opacity\", 1);\r\n enteredRect\r\n .attr(\"aria-label\", function (d, i) {\r\n if (d.value < 0) {\r\n if (d.value == -1) {\r\n return d.label + \": \" + \"Suppressed\";\r\n }\r\n else if (d.value == -2) {\r\n return d.label + \": \" + \"Not available\";\r\n }\r\n else {\r\n return d.label + \": \" + \"Not applicable\";\r\n }\r\n }\r\n else {\r\n return d.label + \": \" + numberFormat(d.value || 0, culture, isTrend || isGTrend || isScatter ? 1 : 0, dataset.unit);\r\n }\r\n })\r\n .append(\"title\")\r\n .text(function (d) {\r\n if (d.value < 0) {\r\n if (d.value == -1) {\r\n return d.label + \": \" + \"Suppressed\";\r\n }\r\n else if (d.value == -2) {\r\n return d.label + \": \" + \"Not available\";\r\n }\r\n else {\r\n return d.label + \": \" + \"Not applicable\";\r\n }\r\n }\r\n else {\r\n return d.label + \": \" + numberFormat(d.value || 0, culture, isTrend || isGTrend || isScatter ? 1 : 0, dataset.unit);\r\n }\r\n });\r\n pointBinding.selectAll(\".textValue\").remove();\r\n pointBinding\r\n .append(\"text\")\r\n .attr(\"class\", \"textValue\")\r\n .text(function (d) {\r\n if (d.value == 0 && (isBar || isGBar || isStack)) { //&& d.value <= maxValue * 0.10\r\n d3.select(this).style(\"fill\", \"black\");\r\n return numberFormat(d.value || 0, culture, 0, dataset.unit);\r\n }\r\n else {\r\n d3.select(this).attr(\"transform\", \"rotate(-90)\").style(\"fill\", \"black\");\r\n if (culture == \"en-ca\") {\r\n if (d.value == -1) {\r\n return \"Suppressed\";\r\n }\r\n else if (d.value == -2) {\r\n return \"Not available\";\r\n }\r\n else if (d.value == -3) {\r\n return \"Not applicable\";\r\n }\r\n }\r\n else {\r\n if (d.value == -1) {\r\n return \"Masqué\";\r\n }\r\n else if (d.value == -2) {\r\n return \"Non disponible\";\r\n }\r\n else if (d.value == -3) {\r\n return \"Non applicable\";\r\n }\r\n }\r\n }\r\n })\r\n .attr(\"x\", function (d, i) {\r\n if (d.value < 0) {\r\n return -height + 3;\r\n }\r\n else {\r\n if (isGBar) {\r\n if (xG.bandwidth() > 50) {\r\n return (xG(d.aggregatorReference) + (xG.bandwidth() - 50) / 2);\r\n }\r\n else {\r\n return xG(d.aggregatorReference) + (xG.bandwidth() / 2 - 9);\r\n }\r\n }\r\n else {\r\n return (i + 0.5) * (width / points.length) - (25) / 2 - 8;\r\n }\r\n }\r\n // return (i + 0.5) * (width / points.length) - (25) / 2 + 3;\r\n })\r\n .attr(\"y\", function (d, i) {\r\n if (d.value < 0) {\r\n if (isStack || isGTrend) {\r\n return ((Object.keys(datatemp).indexOf(d.aggregatorLabel) + 0.5) *\r\n (width / Object.keys(datatemp).length) -\r\n 25 / 2\r\n // (stacksKeys.indexOf(d.aggregatorLabel) + 0.5) *\r\n // (width / Object.keys(stacksKeys).length) -\r\n // 25 / 2\r\n );\r\n }\r\n else if (isGBar) {\r\n if (xG.bandwidth() > 50) {\r\n return (xG(d.aggregatorReference) + (xG.bandwidth()) / 2);\r\n }\r\n else {\r\n return xG(d.aggregatorReference) + (xG.bandwidth() / 1.5 + 2) + ((i % aggregatorReferences.length) * 1.5);\r\n }\r\n }\r\n else {\r\n return (i + 0.5) * (width / points.length) + (25) / 2 - 8;\r\n }\r\n }\r\n else {\r\n return y(d.value || 0) - 2;\r\n }\r\n })\r\n .attr(\"font-size\", function (d) {\r\n if (d.value == 0 && !isBar) {\r\n return \"13px\";\r\n }\r\n else {\r\n return \"15px\";\r\n }\r\n })\r\n .style(\"display\", function (d) {\r\n if (d.value < 0 && (isBar || isGBar || isTrend || isGTrend || isScatter)) {\r\n return \"block\";\r\n }\r\n else {\r\n return \"none\";\r\n }\r\n });\r\n // .style(\"fill\", function(d,i){\r\n // return coloringBars(d,i);\r\n // })\r\n // enteredRect\r\n // .append(\"title\")\r\n // .text(function(d){\r\n // return d.label + \": \" + numberFormat(d.value || 0, culture, isTrend || isGTrend || isScatter ? 1 : 0, dataset.unit);\r\n // });\r\n // pointBinding.selectAll(\".textValue\").remove()\r\n // if(isBar || isGBar) {\r\n // pointBinding\r\n // .append(\"text\")\r\n // .attr(\"class\",\"textValue\")\r\n // .text(function(d){\r\n // if(d.value > 0 && d.value <= maxValue * 0.01)\r\n // return numberFormat(d.value || 0, culture, 0, dataset.unit);\r\n // })\r\n // .attr(\"x\",function(d,i){\r\n // let widthSpacing = 3;\r\n // if(d.value < 10){\r\n // widthSpacing = 8;\r\n // }\r\n // if (isStack || isGTrend) {\r\n // return (\r\n // (Object.keys(datatemp).indexOf(d.aggregatorLabel) + 0.5) *\r\n // (width / Object.keys(datatemp).length) -\r\n // 25 / 2 + widthSpacing\r\n // );\r\n // }else if(isGBar){\r\n // return xG(d.aggregatorReference) + widthSpacing; \r\n // }\r\n // let widthTemp;\r\n // if (points.length / aggregatorReferences.length > 20) \r\n // widthTemp = 20; \r\n // else\r\n // widthTemp = 25; \r\n // return (i + 0.5) * (width / points.length) - (isTrend || isGTrend ? 10 : widthTemp) / 2 + widthSpacing;\r\n // // if(d.value < 10)\r\n // // return (i + 0.5) * (width / points.length) - (25) / 2 + 8; \r\n // // return (i + 0.5) * (width / points.length) - (25) / 2 + 3;\r\n // })\r\n // .attr(\"y\", d => { \r\n // return y(d.value || 0) - 3;\r\n // })\r\n // } \r\n optionalTransition(pointBinding.select(\"rect\"))\r\n .attr(\"ry\", isTrend || isGTrend ? 10 : 0)\r\n .attr(\"rx\", isTrend || isGTrend ? 10 : 0)\r\n .attr(\"width\", function (d) {\r\n if (isTrend || isGTrend)\r\n return 10;\r\n else if (isGBar)\r\n return xG.bandwidth();\r\n else if (points.length / aggregatorReferences.length > 20)\r\n return 20;\r\n return 25;\r\n })\r\n // .attr(\"width\", isTrend || isGTrend ? 10 : 25)\r\n .attr(\"x\", function (d, i) {\r\n if (isStack || isGTrend) {\r\n return ((Object.keys(datatemp).indexOf(d.aggregatorLabel) + 0.5) *\r\n (width / Object.keys(datatemp).length) -\r\n 25 / 2);\r\n }\r\n else if (isGBar) {\r\n return xG(d.aggregatorReference);\r\n }\r\n var widthTemp;\r\n if (points.length / aggregatorReferences.length > 20)\r\n widthTemp = 20;\r\n else\r\n widthTemp = 25;\r\n return (i + 0.5) * (width / points.length) - (isTrend || isGTrend ? 10 : widthTemp) / 2;\r\n })\r\n .attr(\"height\", function (d) {\r\n if (isTrend || isGTrend)\r\n return 10;\r\n if (isStack)\r\n return height - y(d.value || 0);\r\n return height - y(d.value || 0);\r\n })\r\n .attr(\"y\", function (d) {\r\n if (isTrend || isGTrend)\r\n return y(d.value || 0) - 5;\r\n if (isStack)\r\n return y(stacks[d.aggregatorLabel].find(function (p) { return p.label == d.label && p.text == d.text; }).value || 0);\r\n return y(d.value || 0);\r\n })\r\n .attr(\"fill\", function (d, i) {\r\n if (d.color != \"\" && d.color !== null) {\r\n return d.color;\r\n }\r\n else {\r\n if (isStack || isGBar || isGTrend) {\r\n var position = aggregatorReferences.indexOf(d.aggregatorReference);\r\n var length_2 = aggregatorReferences.length;\r\n return d3.interpolateCool(position / length_2);\r\n }\r\n else {\r\n if (d.cvInterpretation == 1) {\r\n return \"red\";\r\n }\r\n else if (d.cvInterpretation == 2) {\r\n return \"yellow\";\r\n }\r\n else {\r\n return \"steelblue\";\r\n }\r\n }\r\n }\r\n })\r\n .attr(\"opacity\", 1)\r\n .select(\"title\")\r\n .text(function (d) {\r\n return d.label + ((isGTrend || isGBar) ? (\"-\" + d.aggregatorReference + \": \" + numberFormat(d.value || 0, culture, isTrend || isGTrend || isScatter ? 1 : 0, dataset.unit)) : (\"\" + \": \" + numberFormat(d.value || 0, culture, isTrend || isGTrend || isScatter ? 1 : 0, dataset.unit)));\r\n });\r\n optionalTransition(exitPoint.select(\"rect\"))\r\n .style(\"opacity\", 0)\r\n .attr(\"x\", width);\r\n optionalTransition(exitPoint).remove();\r\n var enteredCvUpper = cvUpperBinding\r\n .enter()\r\n .append(\"g\")\r\n .attr(\"class\", \"cvUpper\")\r\n .attr(\"transform\", function (d) {\r\n if (isGBar) {\r\n return \"translate(\" + x(d.aggregatorLabel) + \",0)\";\r\n }\r\n else {\r\n return \"translate(0,0)\";\r\n }\r\n })\r\n .append(\"rect\");\r\n var enteredCvUpper2 = cvUpperBinding;\r\n optionalTransition(enteredCvUpper2\r\n .attr(\"transform\", function (d) {\r\n if (isGBar) {\r\n return \"translate(\" + x(d.aggregatorLabel) + \",0)\";\r\n }\r\n else {\r\n return \"translate(0,0)\";\r\n }\r\n }));\r\n optionalTransition(enteredCvUpper2\r\n .enter()\r\n .append(\"g\")\r\n .attr(\"class\", \"cvUpper\")\r\n .attr(\"transform\", function (d) {\r\n if (isGBar) {\r\n return \"translate(\" + x(d.aggregatorLabel) + \",0)\";\r\n }\r\n else {\r\n return \"translate(0,0)\";\r\n }\r\n }));\r\n optionalTransition(enteredCvUpper\r\n .attr(\"x\", function (d, i) {\r\n var widthTemp;\r\n if (points.length / aggregatorReferences.length > 20)\r\n widthTemp = 20;\r\n else\r\n widthTemp = 25;\r\n if (isGBar) {\r\n return xG(d.aggregatorReference);\r\n }\r\n return (i + 0.5) * (width / points.length) - (widthTemp) / 2;\r\n })\r\n .attr(\"width\", function (d, i) {\r\n var widthTemp;\r\n if (points.length / aggregatorReferences.length > 20)\r\n widthTemp = 20;\r\n else if (isGBar)\r\n widthTemp = xG.bandwidth();\r\n else\r\n widthTemp = 25;\r\n return widthTemp;\r\n })\r\n .style(\"fill\", \"black\")\r\n .attr(\"y\", height))\r\n .attr(\"y\", function (d) { return y(d.valueUpper || 0); })\r\n .attr(\"height\", 1.5)\r\n .style(\"opacity\", function (d) { return (d.valueUpper ? 1 : 0); });\r\n optionalTransition(cvUpperBinding.select(\"rect\"))\r\n .attr(\"width\", function (d, i) {\r\n var widthTemp;\r\n if (points.length / aggregatorReferences.length > 20)\r\n widthTemp = 20;\r\n else if (isGBar)\r\n widthTemp = xG.bandwidth();\r\n else\r\n widthTemp = 25;\r\n return widthTemp;\r\n })\r\n .attr(\"x\", function (d, i) {\r\n var widthTemp;\r\n if (points.length / aggregatorReferences.length > 20)\r\n widthTemp = 20;\r\n else\r\n widthTemp = 25;\r\n if (isGBar) {\r\n return xG(d.aggregatorReference);\r\n }\r\n return (i + 0.5) * (width / points.length) - (widthTemp) / 2;\r\n })\r\n .attr(\"height\", 1.5)\r\n .attr(\"y\", function (d) { return y(d.valueUpper || 0); })\r\n .style(\"opacity\", function (d) { return (d.valueUpper ? 1 : 0); })\r\n .style(\"fill\", \"black\");\r\n optionalTransition(exitCvUpper.select(\"rect\"))\r\n .style(\"opacity\", 0)\r\n .attr(\"x\", width);\r\n optionalTransition(exitCvUpper).remove();\r\n var enteredcvConnect = cvConnectBinding\r\n .enter()\r\n .append(\"g\")\r\n .attr(\"class\", \"cvConnect\")\r\n .attr(\"transform\", function (d) {\r\n if (isGBar) {\r\n return \"translate(\" + x(d.aggregatorLabel) + \",0)\";\r\n }\r\n else {\r\n return \"translate(0,0)\";\r\n }\r\n })\r\n .append(\"rect\");\r\n var enteredcvConnect2 = cvConnectBinding;\r\n optionalTransition(enteredcvConnect2\r\n .attr(\"transform\", function (d) {\r\n if (isGBar) {\r\n return \"translate(\" + x(d.aggregatorLabel) + \",0)\";\r\n }\r\n else {\r\n return \"translate(0,0)\";\r\n }\r\n }));\r\n optionalTransition(enteredcvConnect2\r\n .enter()\r\n .append(\"g\")\r\n .attr(\"class\", \"cvConnect\")\r\n .attr(\"transform\", function (d) {\r\n if (isGBar) {\r\n return \"translate(\" + x(d.aggregatorLabel) + \",0)\";\r\n }\r\n else {\r\n return \"translate(0,0)\";\r\n }\r\n }));\r\n optionalTransition(enteredcvConnect\r\n .attr(\"x\", function (d, i) {\r\n var widthTemp;\r\n if (points.length / aggregatorReferences.length > 20)\r\n widthTemp = 20;\r\n else if (isGBar)\r\n widthTemp = xG.bandwidth();\r\n else\r\n widthTemp = 25;\r\n if (isGBar) {\r\n return xG(d.aggregatorReference) + (widthTemp / 2);\r\n }\r\n return (i + 0.5) * (width / points.length) - (widthTemp) / 2 + ((widthTemp / 2) - 1);\r\n })\r\n .attr(\"width\", 1.5)\r\n .style(\"fill\", \"black\")\r\n .attr(\"y\", height))\r\n .attr(\"height\", function (d) { return y(d.valueLower || 0) - y(d.valueUpper || 0); })\r\n .style(\"opacity\", function (d) { return (d.valueLower ? 1 : 0); })\r\n .attr(\"y\", function (d) { return y(d.valueUpper || 0); });\r\n optionalTransition(cvConnectBinding.select(\"rect\"))\r\n .attr(\"width\", 1.5)\r\n .attr(\"x\", function (d, i) {\r\n var widthTemp;\r\n if (points.length / aggregatorReferences.length > 20)\r\n widthTemp = 20;\r\n else if (isGBar)\r\n widthTemp = xG.bandwidth();\r\n else\r\n widthTemp = 25;\r\n if (isGBar) {\r\n return xG(d.aggregatorReference) + (widthTemp / 2);\r\n }\r\n return (i + 0.5) * (width / points.length) - (widthTemp) / 2 + ((widthTemp / 2) - 1);\r\n })\r\n .attr(\"height\", function (d) { return y(d.valueLower || 0) - y(d.valueUpper || 0); })\r\n .attr(\"y\", function (d) { return y(d.valueUpper || 0); })\r\n .style(\"opacity\", function (d) { return (d.valueLower ? 1 : 0); })\r\n .style(\"fill\", \"black\");\r\n optionalTransition(exitCvConnect.select(\"rect\"))\r\n .style(\"opacity\", 0)\r\n .attr(\"x\", width);\r\n optionalTransition(exitCvConnect).remove();\r\n var enteredcvLower = cvLowerBinding\r\n .enter()\r\n .append(\"g\")\r\n .attr(\"class\", \"cvLower\")\r\n .attr(\"transform\", function (d) {\r\n if (isGBar) {\r\n return \"translate(\" + x(d.aggregatorLabel) + \",0)\";\r\n }\r\n else {\r\n return \"translate(0,0)\";\r\n }\r\n })\r\n .append(\"rect\");\r\n var enteredcvLower2 = cvLowerBinding;\r\n optionalTransition(enteredcvLower2\r\n .attr(\"transform\", function (d) {\r\n if (isGBar) {\r\n return \"translate(\" + x(d.aggregatorLabel) + \",0)\";\r\n }\r\n else {\r\n return \"translate(0,0)\";\r\n }\r\n }));\r\n optionalTransition(enteredcvLower2\r\n .enter()\r\n .append(\"g\")\r\n .attr(\"class\", \"cvLower\")\r\n .attr(\"transform\", function (d) {\r\n if (isGBar) {\r\n return \"translate(\" + x(d.aggregatorLabel) + \",0)\";\r\n }\r\n else {\r\n return \"translate(0,0)\";\r\n }\r\n }));\r\n optionalTransition(enteredcvLower\r\n .attr(\"x\", function (d, i) {\r\n var widthTemp;\r\n if (points.length / aggregatorReferences.length > 20)\r\n widthTemp = 20;\r\n else\r\n widthTemp = 25;\r\n if (isGBar) {\r\n return xG(d.aggregatorReference);\r\n }\r\n return (i + 0.5) * (width / points.length) - (widthTemp) / 2;\r\n })\r\n .attr(\"width\", function (d, i) {\r\n var widthTemp;\r\n if (points.length / aggregatorReferences.length > 20)\r\n widthTemp = 20;\r\n else if (isGBar)\r\n widthTemp = xG.bandwidth();\r\n else\r\n widthTemp = 25;\r\n return widthTemp;\r\n })\r\n .style(\"fill\", \"black\")\r\n .attr(\"y\", height))\r\n .attr(\"y\", function (d) { return y(d.valueLower || 0); })\r\n .attr(\"height\", 1.5)\r\n .style(\"opacity\", function (d) { return (d.valueLower ? 1 : 0); });\r\n optionalTransition(cvLowerBinding.select(\"rect\"))\r\n .attr(\"width\", function (d, i) {\r\n var widthTemp;\r\n if (points.length / aggregatorReferences.length > 20)\r\n widthTemp = 20;\r\n else if (isGBar)\r\n widthTemp = xG.bandwidth();\r\n else\r\n widthTemp = 25;\r\n return widthTemp;\r\n })\r\n .attr(\"x\", function (d, i) {\r\n var widthTemp;\r\n if (points.length / aggregatorReferences.length > 20)\r\n widthTemp = 20;\r\n else\r\n widthTemp = 25;\r\n if (isGBar) {\r\n return xG(d.aggregatorReference);\r\n }\r\n return (i + 0.5) * (width / points.length) - (widthTemp) / 2;\r\n })\r\n .attr(\"height\", 1.5)\r\n .attr(\"y\", function (d) { return y(d.valueLower || 0); })\r\n .style(\"opacity\", function (d) { return (d.valueLower ? 1 : 0); })\r\n .style(\"fill\", \"black\");\r\n optionalTransition(exitCvLower.select(\"rect\"))\r\n .style(\"opacity\", 0)\r\n .attr(\"x\", width);\r\n optionalTransition(exitCvLower).remove();\r\n var enteredAverage = averageBinding.enter().append(\"g\");\r\n optionalTransition(enteredAverage\r\n .attr(\"class\", \"average\")\r\n .append(\"rect\")\r\n .attr(\"fill\", \"url(#linePattern)\")\r\n .attr(\"height\", 1.5)\r\n .attr(\"x\", 0)\r\n .attr(\"width\", width)\r\n .attr(\"ry\", isTrend || isGTrend ? 10 : 0)\r\n .attr(\"rx\", isTrend || isGTrend ? 10 : 0)).attr(\"y\", function (d) { return y(d.value || 0); });\r\n var lowestValueIndex = points\r\n .map(function (p) { return +p.value; })\r\n .indexOf(Math.min.apply(Math, points.map(function (p) { return +p.value; })));\r\n if (points.length == 2)\r\n lowestValueIndex = 1.5;\r\n var leftLabel = lowestValueIndex < points.length / 2;\r\n optionalTransition(enteredAverage\r\n .append(\"text\")\r\n .attr(\"x\", function () { return width + 50; })\r\n .attr(\"y\", height)\r\n .attr(\"filter\", \"url(#solid)\"))\r\n .attr(\"y\", function (d) { return y(d.value || 0) - 5; })\r\n .text(function (d) { return d.label + \": \" + numberFormat(d.value || 0, culture, decimals, dataset.unit); })\r\n .attr(\"text-anchor\", \"end\")\r\n .style(\"font-weight\", \"bold\");\r\n optionalTransition(averageBinding.select(\"rect\")).attr(\"y\", function (d) {\r\n return y(d.value || 0);\r\n });\r\n optionalTransition(averageBinding.select(\"text\").attr(\"filter\", \"url(#solid)\"))\r\n .attr(\"x\", function () { return width + 50; })\r\n .attr(\"y\", function (d) { return y(d.value || 0) - 5; })\r\n .text(function (d) { return d.label + \": \" + numberFormat(d.value || 0, culture, decimals, dataset.unit); })\r\n .attr(\"text-anchor\", \"end\")\r\n .style(\"font-weight\", \"bold\");\r\n optionalTransition(averageBinding.exit().selectAll(\"rect, text\"))\r\n .attr(\"y\", -marginY)\r\n .style(\"opacity\", 0);\r\n optionalTransition(averageBinding.exit()).remove();\r\n averageBinding.raise();\r\n // let myLine = d3\r\n // .line()\r\n // .x((_d, i) => (i + 0.4) * (width / (points.length / aggregatorReferences.length)) - 10 / 2 + 2.5)\r\n // .y((d, i) => y(d.value || 0));\r\n var myLine = d3\r\n .line()\r\n .x(function (_d, i) {\r\n var spacing = 0.5;\r\n if (isGTrend) {\r\n spacing = 0.4;\r\n }\r\n return (i + spacing) * (width / (points.length / aggregatorReferences.length)) - 10 / 2 + 2.5;\r\n })\r\n .y(function (d, i) { return y(d.value || 0); });\r\n var myLine2 = d3\r\n .line()\r\n .x(function (_d, i) { return (i + 0.5) * (width / points.length) - 10 / 2 + 2.5; })\r\n .y(function (d) { return y(d.value || 0); });\r\n var pathsData = [];\r\n if (isTrend) {\r\n pathsData.push(points);\r\n }\r\n else if (isGTrend) {\r\n // pathsData = stacksReverse;\r\n aggregatorReferences.sort().forEach(function (d) {\r\n pathsData.push(stacksReverse[d]);\r\n });\r\n }\r\n var paths = chart.selectAll(\"path.line\").data(isTrend || isGTrend ? pathsData : []);\r\n optionalTransition(paths\r\n .enter()\r\n .append(\"path\")\r\n .attr(\"class\", \"line\")\r\n .attr(\"d\", function (d) {\r\n if (isGTrend) {\r\n return myLine(d);\r\n }\r\n else {\r\n return myLine2(d);\r\n }\r\n })\r\n .attr(\"fill\", \"none\")\r\n .attr(\"stroke\", function (d) {\r\n if (d[0].color != \"\" && d[0].color != null) {\r\n // if (isStack || isGBar || isGTrend) {\r\n // const position = aggregatorReferences.indexOf(d.aggregatorReference);\r\n // const length = aggregatorReferences.length;\r\n // return d3.interpolateCool(position / length);\r\n return d[0].color;\r\n }\r\n else {\r\n return \"steelblue\";\r\n }\r\n })\r\n .attr(\"stroke-width\", 2)\r\n .attr(\"opacity\", 0)\r\n .attr(\"transform\", \"translate(\" + marginX + \",-\" + 10 + \")\"))\r\n .attr(\"transform\", \"translate(\" + marginX + \",\" + marginY + \")\")\r\n .attr(\"opacity\", 1);\r\n paths\r\n .attr(\"class\", \"line\")\r\n .attr(\"d\", function (d) {\r\n if (isGTrend) {\r\n return myLine(d);\r\n }\r\n else {\r\n return myLine2(d);\r\n }\r\n })\r\n .attr(\"stroke\", function (d) {\r\n if (d[0].color != \"\" && d[0].color != null) {\r\n // if (isStack || isGBar || isGTrend) {\r\n // const position = aggregatorReferences.indexOf(d.aggregatorReference);\r\n // const length = aggregatorReferences.length;\r\n // return d3.interpolateCool(position / length);\r\n return d[0].color;\r\n }\r\n else {\r\n return \"steelblue\";\r\n }\r\n // if(isGTrend){\r\n // const position = aggregatorReferences.indexOf(d[0].aggregatorReference);\r\n // const length = aggregatorReferences.length;\r\n // return d3.interpolateCool(position / length);\r\n // }else{\r\n // return \"steelblue\";\r\n // }\r\n })\r\n .attr(\"stroke-width\", 2);\r\n optionalTransition(paths.exit())\r\n .attr(\"transform\", \"translate(\" + (marginX + 2.5) + \",-\" + 10 + \")\")\r\n .attr(\"opacity\", 0)\r\n .remove();\r\n}\r\n","// @flow\r\nimport * as React from 'react';\r\nimport { renderChart } from '../renderChart';\r\nexport var Chart = function (props) {\r\n var graphEl = React.useRef(null);\r\n var _a = React.useState(true), firstLoad = _a[0], setFirstLoad = _a[1];\r\n var legend;\r\n if (props.languageCode == \"en-ca\") {\r\n legend = \"Legend\";\r\n }\r\n else {\r\n legend = \"Légende\";\r\n }\r\n var passTitle;\r\n if (props.datasetName == \"pass\" || props.datasetName == \"apcss\") {\r\n var regex = /\\/(.?)\\/\\s/;\r\n var found = props.chartData.title.match(regex);\r\n if (found != null) {\r\n passTitle = React.createElement(\"span\", null,\r\n React.createElement(\"sup\", null, props.chartData.title.split(/\\/(.?)\\/\\s/)[1]),\r\n props.chartData.title.split(/\\/(.?)\\/\\s/)[2]);\r\n }\r\n else {\r\n passTitle = props.chartData.title;\r\n }\r\n }\r\n React.useEffect(function () {\r\n var doRender = function (animated) { return renderChart(graphEl.current, props.chartData, props.languageCode, animated); };\r\n doRender(!firstLoad && props.animate);\r\n var deferredRender = setTimeout(function () { return doRender(true); }, 525);\r\n setFirstLoad(false);\r\n return function () {\r\n clearTimeout(deferredRender);\r\n };\r\n });\r\n if (props.datasetName == \"pass\" || props.datasetName == \"apcss\") {\r\n return (React.createElement(\"figure\", null,\r\n React.createElement(\"figcaption\", { className: \"text-center\", style: { margin: \"0 10px\" } },\r\n React.createElement(\"strong\", null, passTitle)),\r\n React.createElement(\"svg\", { className: \"chart\", ref: function (el) { return graphEl.current = el; }, id: \"graph\", zoomAndPan: \"magnify\", viewBox: \"0 0 800 565\", preserveAspectRatio: \"xMidYMid meet\", width: \"820px\", height: \"550px\", transform: \"translate(20,0)\" },\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"filter\", { x: \"0\", y: \"0\", width: \"1\", height: \"1\", id: \"solid\" },\r\n React.createElement(\"feFlood\", { floodColor: \"#ffffff\" }),\r\n React.createElement(\"feComposite\", { in: \"SourceGraphic\" }),\r\n React.createElement(\"feComponentTransfer\", null,\r\n React.createElement(\"feFuncA\", { type: \"linear\", slope: \"0.7\" }))),\r\n React.createElement(\"pattern\", { id: \"linePattern\", patternUnits: \"userSpaceOnUse\", width: \"10\", height: \"10\" },\r\n React.createElement(\"path\", { d: \"M 0,11 l 5,-5 M -3,3 l 2.5,-10 M 3.75,1.25 5 2.5,-2.5, 0\", strokeWidth: \"4\", shapeRendering: \"auto\", stroke: \"red\", strokeLinecap: \"square\" })),\r\n React.createElement(\"linearGradient\", { id: \"gradient\", x1: \"0%\", y1: \"0%\", x2: \"100%\", y2: \"0\", spreadMethod: \"pad\" },\r\n React.createElement(\"stop\", { offset: \"0%\", stopColor: \"steelblue\", stopOpacity: \"1\" }),\r\n React.createElement(\"stop\", { offset: \"100%\", stopColor: \"#56a0dd\", stopOpacity: \"0\" }))),\r\n React.createElement(\"g\", { className: \"y-axis\" }),\r\n React.createElement(\"g\", { className: \"x-axis\" }),\r\n React.createElement(\"text\", { className: \"xAxisLabel\", y: \"490\", x: \"400\", style: { textAnchor: \"middle\", fontWeight: \"bold\", fontSize: \"15px\" } }),\r\n React.createElement(\"text\", { className: \"yAxisLabel\", transform: \"rotate(-90)\", x: \"-200\", y: \"0\", style: { textAnchor: \"middle\", fontWeight: \"bold\", fontSize: \"15px\" } }),\r\n React.createElement(\"g\", { className: \"main\", transform: \"translate(60,10)\" }),\r\n React.createElement(\"g\", { className: \"legend\", transform: \"translate(720, 12)\", style: { display: \"none\" } }),\r\n React.createElement(\"g\", { className: \"alertMessage\", transform: \"translate(20,520)\" },\r\n React.createElement(\"text\", { id: \"warning\", x: \"5\", y: \"5\", style: { textAnchor: \"start\", fontSize: \"12px\" } }),\r\n React.createElement(\"text\", { id: \"suppressed\", x: \"5\", y: \"5\", style: { textAnchor: \"start\", fontSize: \"12px\" } })))));\r\n }\r\n else {\r\n return (React.createElement(\"figure\", null,\r\n React.createElement(\"figcaption\", { className: \"text-center\", style: { margin: \"0 10px\" } },\r\n React.createElement(\"strong\", null, props.chartData.title)),\r\n React.createElement(\"svg\", { className: \"chart\", ref: function (el) { return graphEl.current = el; }, id: \"graph\", zoomAndPan: \"magnify\", viewBox: \"0 0 800 565\", preserveAspectRatio: \"xMidYMid meet\", width: \"820px\", height: \"550px\", transform: \"translate(20,0)\" },\r\n React.createElement(\"defs\", null,\r\n React.createElement(\"filter\", { x: \"0\", y: \"0\", width: \"1\", height: \"1\", id: \"solid\" },\r\n React.createElement(\"feFlood\", { floodColor: \"#ffffff\" }),\r\n React.createElement(\"feComposite\", { in: \"SourceGraphic\" }),\r\n React.createElement(\"feComponentTransfer\", null,\r\n React.createElement(\"feFuncA\", { type: \"linear\", slope: \"0.7\" }))),\r\n React.createElement(\"pattern\", { id: \"linePattern\", patternUnits: \"userSpaceOnUse\", width: \"10\", height: \"10\" },\r\n React.createElement(\"path\", { d: \"M 0,11 l 5,-5 M -3,3 l 2.5,-10 M 3.75,1.25 5 2.5,-2.5, 0\", strokeWidth: \"4\", shapeRendering: \"auto\", stroke: \"red\", strokeLinecap: \"square\" })),\r\n React.createElement(\"linearGradient\", { id: \"gradient\", x1: \"0%\", y1: \"0%\", x2: \"100%\", y2: \"0\", spreadMethod: \"pad\" },\r\n React.createElement(\"stop\", { offset: \"0%\", stopColor: \"steelblue\", stopOpacity: \"1\" }),\r\n React.createElement(\"stop\", { offset: \"100%\", stopColor: \"#56a0dd\", stopOpacity: \"0\" }))),\r\n React.createElement(\"g\", { className: \"y-axis\" }),\r\n React.createElement(\"g\", { className: \"x-axis\" }),\r\n React.createElement(\"text\", { className: \"xAxisLabel\", y: \"460\", x: \"400\", style: { textAnchor: \"middle\", fontWeight: \"bold\", fontSize: \"15px\" } }),\r\n React.createElement(\"text\", { className: \"yAxisLabel\", transform: \"rotate(-90)\", x: \"-200\", y: \"0\", style: { textAnchor: \"middle\", fontWeight: \"bold\", fontSize: \"15px\" } }),\r\n React.createElement(\"g\", { className: \"main\", transform: \"translate(60,10)\" }),\r\n React.createElement(\"g\", { className: \"legend\", transform: \"translate(720, 12)\", style: { display: \"none\" } }),\r\n React.createElement(\"g\", { className: \"alertMessage\", transform: \"translate(20,520)\" },\r\n React.createElement(\"text\", { id: \"warning\", x: \"5\", y: \"5\", style: { textAnchor: \"start\", fontSize: \"12px\" } }),\r\n React.createElement(\"text\", { id: \"suppressed\", x: \"5\", y: \"5\", style: { textAnchor: \"start\", fontSize: \"12px\" } })))));\r\n }\r\n ;\r\n};\r\n","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport * as React from 'react';\r\nimport { connect, Provider } from 'react-redux';\r\nimport { Chart } from \"../components/Chart\";\r\nimport { dataExplorerStore } from '../store/dataExplorer';\r\nexport var mapStateToChartProps = function (state, props) { return state ? __assign(__assign({}, state), props) : __assign(__assign({}, props.state), props); };\r\nexport var ChartingConnect = connect(mapStateToChartProps)(Chart);\r\nexport var Charting = function (props) {\r\n return React.createElement(Provider, { store: dataExplorerStore },\r\n React.createElement(ChartingConnect, __assign({}, props)));\r\n};\r\n","// @flow\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport * as React from 'react';\r\nimport { connect, Provider } from 'react-redux';\r\nimport { SummaryTable as ST } from \"../components/SummaryTable\";\r\nimport { dataExplorerStore } from '../store/dataExplorer';\r\nvar mapStateToSummaryTableProps = function (state, props) { return state ? __assign(__assign({}, state), props) : __assign(__assign({}, props.state), props); };\r\nexport var SummaryTableConnect = connect(mapStateToSummaryTableProps)(ST);\r\nexport var SummaryTable = function (props) {\r\n return (React.createElement(Provider, { store: dataExplorerStore },\r\n React.createElement(SummaryTableConnect, __assign({}, props))));\r\n};\r\n","// @flow\r\nimport * as React from 'react';\r\nimport { numberFormat, textFormat } from '../translator';\r\nexport var SummaryTable = function (props) {\r\n var cVWarningText = null;\r\n var cvSupressedText = null;\r\n var passTitle = null;\r\n var _a = props.chartData, cvWarnAt = _a.warningCV, cvSuppressAt = _a.suppressCV;\r\n var knownBoundries = cvWarnAt && cvSuppressAt;\r\n var unitText = props.chartData.yAxis;\r\n var decimals;\r\n if (unitText.substring(0, 6) == \"Number\" || unitText.substring(0, 6) == \"Nombre\") {\r\n decimals = 0;\r\n }\r\n else {\r\n decimals = 1;\r\n }\r\n var passExtraNote = null;\r\n if (props.datasetName == \"pass\" || props.project == \"pass\") {\r\n passExtraNote = React.createElement(\"div\", { id: \"PASSNotesToggle\" },\r\n React.createElement(\"p\", { className: \"notesSpacing\" }, \"(NEW) highlights indicators not previously reported upon and/or for which the measure or data source has changed.\"),\r\n \" \",\r\n React.createElement(\"p\", { className: \"notesSpacing\" },\r\n React.createElement(\"sup\", null, \"a\"),\r\n \"Due to changes in survey methodology, the PASS 2023 estimates for this indicator should not be compared to those from previous PASS editions.\"));\r\n }\r\n else if (props.datasetName == \"apcss\" || props.project == \"apcss\") {\r\n passExtraNote = React.createElement(\"div\", { id: \"PASSNotesToggle\" },\r\n React.createElement(\"p\", { className: \"notesSpacing\" }, \"\\u00AB NOUVEAU \\u00BB\\u00A0met en \\u00E9vidence les indicateurs qui n\\u2019ont pas \\u00E9t\\u00E9 rapport\\u00E9s pr\\u00E9c\\u00E9demment ou pour lesquels la mesure ou la source de donn\\u00E9es a chang\\u00E9.\"),\r\n \" \",\r\n React.createElement(\"p\", { className: \"notesSpacing\" },\r\n React.createElement(\"sup\", null, \"a\"),\r\n \"En raison de changements dans la m\\u00E9thodologie de l\\u2019enqu\\u00EAte, les estimations de l\\u2019APCSS 2023 pour cet indicateur ne doivent pas \\u00EAtre compar\\u00E9es \\u00E0 celles des \\u00E9ditions pr\\u00E9c\\u00E9dentes de l\\u2019APCSS. Cet indicateur a \\u00E9t\\u00E9 modifi\\u00E9 dans l\\u2019\\u00E9dition 2023 des indicateurs d\\u2019APCSS.\"));\r\n }\r\n var suppressedText;\r\n var notAvailText;\r\n var notApplText;\r\n if (props.languageCode == \"en-ca\") {\r\n suppressedText = \"Suppressed\";\r\n notAvailText = \"Not available\";\r\n notApplText = \"Not applicable\";\r\n }\r\n else {\r\n suppressedText = \"Masqué\";\r\n notAvailText = \"Non disponible\";\r\n notApplText = \"Non applicable\";\r\n }\r\n if (props.chartData.points.some(function (p) { return p.cvInterpretation == 2; })) {\r\n if (knownBoundries) {\r\n cVWarningText = React.createElement(\"p\", { className: \"notesSpacing\" },\r\n React.createElement(\"sup\", null, \"E\"),\r\n textFormat(props.cvWarning, { warn: numberFormat(cvWarnAt || 0, props.languageCode, decimals), suppress: numberFormat(cvSuppressAt || 0, props.languageCode, decimals) }));\r\n // document.getElementById(\"warning\")[0].innerHtml = textFormat(props.cvWarning, { warn: numberFormat(cvWarnAt || 0, props.languageCode, decimals), suppress: numberFormat(cvSuppressAt || 0, props.languageCode, decimals) });\r\n }\r\n else {\r\n cVWarningText = React.createElement(\"p\", { className: \"notesSpacing\" },\r\n React.createElement(\"sup\", null, \"E\"),\r\n props.cvWarningAlt);\r\n // document.getElementById(\"warning\")[0].innerHtml = props.cvWarningAlt;\r\n }\r\n // document.getElementById(\"warning\")[0].style.display = 'inline';\r\n // document.getElementById(\"suppressed\")[0].style.display = 'none';\r\n }\r\n if (props.chartData.points.some(function (p) { return p.cvInterpretation == 1; })) {\r\n if (knownBoundries) {\r\n cvSupressedText = React.createElement(\"p\", { className: \"notesSpacing\" },\r\n React.createElement(\"sup\", null, \"F\"),\r\n textFormat(props.cvSuppressed, { warn: numberFormat(cvWarnAt || 0, props.languageCode, decimals), suppress: numberFormat(cvSuppressAt || 0, props.languageCode, decimals) }));\r\n // document.getElementById(\"suppressed\")[0].innerHtml = textFormat(props.cvSuppressed, { warn: numberFormat(cvWarnAt || 0, props.languageCode, decimals), suppress: numberFormat(cvSuppressAt || 0, props.languageCode, decimals) });\r\n }\r\n else {\r\n cvSupressedText = React.createElement(\"p\", { className: \"notesSpacing\" },\r\n React.createElement(\"sup\", null, \"F\"),\r\n props.cvSuppressedAlt);\r\n // document.getElementById(\"suppressed\")[0].innerHtml = props.cvSuppressedAlt;\r\n }\r\n // document.getElementById(\"suppressed\")[0].style.display = 'inline';\r\n // document.getElementById(\"warning\")[0].style.display = 'none';\r\n }\r\n if (props.datasetName == \"pass\" || props.datasetName == \"apcss\") {\r\n var regex = /\\/(.?)\\/\\s/;\r\n var found = props.chartData.title.match(regex);\r\n if (found != null) {\r\n passTitle = React.createElement(\"span\", null,\r\n React.createElement(\"sup\", null, props.chartData.title.split(/\\/(.?)\\/\\s/)[1]),\r\n props.chartData.title.split(/\\/(.?)\\/\\s/)[2]);\r\n }\r\n else {\r\n passTitle = props.chartData.title;\r\n }\r\n }\r\n function ReplaceSup(text) {\r\n if (props.datasetName == \"pass\" || props.datasetName == \"apcss\") {\r\n var regex = /\\/(.?)\\/\\s/;\r\n var found = text.match(regex);\r\n if (found != null) {\r\n return React.createElement(\"span\", null,\r\n text.split(/\\/(.?)\\/\\s/)[0],\r\n React.createElement(\"sup\", null, text.split(/\\/(.?)\\/\\s/)[1]),\r\n text.split(/\\/(.?)\\/\\s/)[2]);\r\n }\r\n else {\r\n return text;\r\n }\r\n }\r\n else {\r\n return text;\r\n }\r\n }\r\n var _b = React.useState(null), location = _b[0], setLocation = _b[1];\r\n React.useEffect(function () {\r\n setLocation(window.location);\r\n }, []);\r\n // if (!location){\r\n // // location\r\n // }else{ \r\n // if(props.project != \"ccdt\" && props.project != \"odcc\"){ \r\n // var dataToolName = (window.location.pathname.split('/')[1]).split('/')[0].toUpperCase();\r\n // var fullPathName = window.location.origin + \"/\" + (window.location.pathname.split('/')[1]).split('/')[0].toUpperCase();\r\n // var visitText = \"\";\r\n // if(props.languageCode == \"en-ca\"){\r\n // visitText = \"To see this graph and others related to \"+dataToolName+\", visit \"+fullPathName;\r\n // }else{\r\n // visitText = \"Pour voir ce graphique et autres liés à \"+dataToolName+\", visitez \"+fullPathName;\r\n // }\r\n // }\r\n // } \r\n var aggregator;\r\n props.chartData.points.map(function (point, index) {\r\n aggregator = point.aggregatorLabel;\r\n });\r\n var CILower;\r\n props.chartData.points.map(function (point, index) {\r\n CILower = point.valueLower;\r\n });\r\n if (props.project == \"ccdt\" || props.project == \"odcc\") {\r\n var CIClass_1;\r\n if (CILower) {\r\n CIClass_1 = \"CIShow\";\r\n }\r\n else {\r\n CIClass_1 = \"CIHide\";\r\n }\r\n if (aggregator) {\r\n return (React.createElement(\"div\", { className: \"container-fluid\" },\r\n React.createElement(\"div\", { className: \"row brdr-bttm mrgn-bttm-0\" },\r\n React.createElement(\"div\", { className: \"col-md-12 table-data\" },\r\n React.createElement(\"table\", { className: \"table table-striped table-condensed table-xCondensed text-center mrgn-bttm-sm\", id: \"chartgridview\" },\r\n React.createElement(\"caption\", null, props.chartData.title),\r\n React.createElement(\"thead\", null,\r\n React.createElement(\"tr\", null,\r\n React.createElement(\"th\", { className: \"text-center\", scope: \"col\" }, props.chartData.xAxis),\r\n React.createElement(\"th\", { className: \"text-center\", scope: \"col\" }, props.label),\r\n React.createElement(\"th\", { className: \"text-center\", scope: \"col\" }, props.chartData.yAxis),\r\n React.createElement(\"th\", { className: \"text-center \" + CIClass_1, scope: \"col\" },\r\n \"95% \",\r\n React.createElement(\"abbr\", { title: props.confidenceInterval }, props.confidenceIntervalAbbr)))),\r\n React.createElement(\"tbody\", null, props.chartData.points.map(function (point, index) {\r\n switch (point.cvInterpretation) {\r\n // Data is in the red (66%+)\r\n case 1:\r\n return (React.createElement(\"tr\", { key: index, style: ({ backgroundColor: \"red\" }) },\r\n React.createElement(\"td\", { className: \"text-center\" }, point.text),\r\n React.createElement(\"td\", null,\r\n React.createElement(\"sup\", null, \"F\"))));\r\n // Data is in the red (33%+)\r\n case 2:\r\n return (React.createElement(\"tr\", { key: index, style: ({ backgroundColor: \"yellow\" }) },\r\n React.createElement(\"td\", { className: \"text-center\" }, point.text),\r\n React.createElement(\"td\", null,\r\n typeof point.value != \"number\" ? \"-\" : numberFormat(point.value, props.languageCode, decimals),\r\n React.createElement(\"sup\", null, \"E\"))));\r\n // Data is a Okay!\r\n default:\r\n return (React.createElement(\"tr\", { key: index },\r\n React.createElement(\"td\", { className: \"text-center\" }, point.text),\r\n React.createElement(\"td\", null, point.aggregatorReference),\r\n React.createElement(\"td\", null, typeof point.value != \"number\" ? \"-\" : numberFormat(point.value, props.languageCode, decimals)),\r\n React.createElement(\"td\", { className: CIClass_1 },\r\n typeof point.valueLower != \"number\" ? \"-\" : numberFormat(point.valueLower, props.languageCode, decimals),\r\n \" - \",\r\n typeof point.valueUpper != \"number\" ? \"-\" : numberFormat(point.valueUpper, props.languageCode, decimals),\r\n \" \")));\r\n }\r\n })))),\r\n React.createElement(\"div\", { className: \"col-md-12 mrgn-tp-0 small notes bg-warning\" },\r\n props.chartData.notes.map(function (_a, i) {\r\n var name = _a.name, body = _a.body;\r\n return (React.createElement(\"p\", { key: i },\r\n React.createElement(\"strong\", null,\r\n name,\r\n \":\"),\r\n \" \",\r\n body));\r\n }),\r\n cVWarningText,\r\n cvSupressedText))));\r\n }\r\n else {\r\n return (React.createElement(\"div\", { className: \"container-fluid\" },\r\n React.createElement(\"div\", { className: \"row brdr-bttm mrgn-bttm-0\" },\r\n React.createElement(\"div\", { className: \"col-md-12 table-data\" },\r\n React.createElement(\"table\", { className: \"table table-striped table-condensed table-xCondensed text-center mrgn-bttm-sm\", id: \"chartgridview\" },\r\n React.createElement(\"caption\", null, props.chartData.title),\r\n React.createElement(\"thead\", null,\r\n React.createElement(\"tr\", null,\r\n React.createElement(\"th\", { className: \"text-center\", scope: \"col\" }, props.chartData.xAxis),\r\n React.createElement(\"th\", { className: \"text-center\", scope: \"col\" }, props.chartData.yAxis),\r\n React.createElement(\"th\", { className: \"text-center \" + CIClass_1, scope: \"col\" },\r\n \"95% \",\r\n React.createElement(\"abbr\", { title: props.confidenceInterval }, props.confidenceIntervalAbbr)))),\r\n React.createElement(\"tbody\", null, props.chartData.points.map(function (point, index) {\r\n switch (point.cvInterpretation) {\r\n // Data is in the red (66%+)\r\n case 1:\r\n return (React.createElement(\"tr\", { key: index, style: ({ backgroundColor: \"red\" }) },\r\n React.createElement(\"td\", { className: \"text-center\" }, point.text),\r\n React.createElement(\"td\", null,\r\n React.createElement(\"sup\", null, \"F\"))));\r\n // Data is in the red (33%+)\r\n case 2:\r\n return (React.createElement(\"tr\", { key: index, style: ({ backgroundColor: \"yellow\" }) },\r\n React.createElement(\"td\", { className: \"text-center\" }, point.text),\r\n React.createElement(\"td\", null,\r\n typeof point.value != \"number\" ? \"-\" : numberFormat(point.value, props.languageCode, decimals),\r\n React.createElement(\"sup\", null, \"E\"))));\r\n // Data is a Okay!\r\n default:\r\n return (React.createElement(\"tr\", { key: index },\r\n React.createElement(\"td\", { className: \"text-center\" }, point.text),\r\n React.createElement(\"td\", null, typeof point.value != \"number\" ? \"-\" : numberFormat(point.value, props.languageCode, decimals)),\r\n React.createElement(\"td\", { className: CIClass_1 },\r\n typeof point.valueLower != \"number\" ? \"-\" : numberFormat(point.valueLower, props.languageCode, decimals),\r\n \" - \",\r\n typeof point.valueUpper != \"number\" ? \"-\" : numberFormat(point.valueUpper, props.languageCode, decimals),\r\n \" \")));\r\n }\r\n })))),\r\n React.createElement(\"div\", { className: \"col-md-12 mrgn-tp-0 small notes bg-warning\" },\r\n props.chartData.notes.map(function (_a, i) {\r\n var name = _a.name, body = _a.body;\r\n return (React.createElement(\"p\", { key: i },\r\n React.createElement(\"strong\", null,\r\n name,\r\n \":\"),\r\n \" \",\r\n body));\r\n }),\r\n cVWarningText,\r\n cvSupressedText))));\r\n }\r\n }\r\n else if (props.project == \"hiv2\" || props.project == \"hiv2\") {\r\n var CIClass = void 0;\r\n if (CILower) {\r\n CIClass = \"CIShow\";\r\n }\r\n else {\r\n CIClass = \"CIHide\";\r\n }\r\n var note1 = void 0, note2 = void 0, note3 = void 0;\r\n if (props.languageCode == \"en-ca\") {\r\n note1 = \"Not available - This question was not asked at this sentinel site.\";\r\n note2 = \"Suppressed - Counts of less than five are not presented to address concerns around releasing small numbers.\";\r\n note3 = \"Percentages may not sum to 100% due to rounding.\";\r\n }\r\n else {\r\n note1 = \"\";\r\n note2 = \"\";\r\n note3 = \"\";\r\n }\r\n if (aggregator) {\r\n return (React.createElement(\"div\", { className: \"container-fluid\" },\r\n React.createElement(\"div\", { className: \"row brdr-bttm mrgn-bttm-0\" },\r\n React.createElement(\"div\", { className: \"col-md-12 table-data\" },\r\n React.createElement(\"table\", { className: \"table table-striped table-condensed table-xCondensed text-center mrgn-bttm-sm\", id: \"chartgridview\" },\r\n React.createElement(\"caption\", null, props.chartData.title),\r\n React.createElement(\"thead\", null,\r\n React.createElement(\"tr\", null,\r\n React.createElement(\"th\", { className: \"text-left\", scope: \"col\" }, props.chartData.source),\r\n React.createElement(\"th\", { className: \"text-left\", scope: \"col\" }, props.chartData.xAxis),\r\n React.createElement(\"th\", { className: \"text-right\", scope: \"col\" }, props.chartData.yAxis),\r\n React.createElement(\"th\", { className: \"text-center \" + CIClass, scope: \"col\" },\r\n \"95% \",\r\n React.createElement(\"abbr\", { title: props.confidenceInterval }, props.confidenceIntervalAbbr)))),\r\n React.createElement(\"tbody\", null, props.chartData.points.map(function (point, index) {\r\n switch (point.value) {\r\n // Data is in the red (66%+)\r\n case -1:\r\n return (React.createElement(\"tr\", { key: index },\r\n React.createElement(\"td\", { className: \"text-left\" }, point.aggregatorReference),\r\n React.createElement(\"td\", { className: \"text-center\" }, point.text),\r\n React.createElement(\"td\", { className: \"text-right\" }, suppressedText)));\r\n // Data is in the red (33%+)\r\n case -2:\r\n return (React.createElement(\"tr\", { key: index },\r\n React.createElement(\"td\", { className: \"text-left\" }, point.aggregatorReference),\r\n React.createElement(\"td\", { className: \"text-center\" }, point.text),\r\n React.createElement(\"td\", { className: \"text-right\" }, notAvailText)));\r\n // Data is a Okay!\r\n default:\r\n return (React.createElement(\"tr\", { key: index },\r\n React.createElement(\"td\", { className: \"text-left\" }, point.aggregatorReference),\r\n React.createElement(\"td\", { className: \"text-left\" }, point.text),\r\n React.createElement(\"td\", { className: \"text-right\" }, typeof point.value != \"number\" ? \"-\" : numberFormat(point.value, props.languageCode, decimals))));\r\n }\r\n })))),\r\n React.createElement(\"div\", { className: \"col-md-12 mrgn-tp-0 small notes bg-warning\" },\r\n props.chartData.notes.map(function (_a, i) {\r\n var name = _a.name, body = _a.body;\r\n return (React.createElement(\"p\", { key: i },\r\n React.createElement(\"strong\", null,\r\n name,\r\n \":\"),\r\n \" \",\r\n body));\r\n }),\r\n note1,\r\n React.createElement(\"br\", null),\r\n note2,\r\n React.createElement(\"br\", null),\r\n note3))));\r\n }\r\n else {\r\n return (React.createElement(\"div\", { className: \"container-fluid\" },\r\n React.createElement(\"div\", { className: \"row brdr-bttm mrgn-bttm-0\" },\r\n React.createElement(\"div\", { className: \"col-md-12 table-data\" },\r\n React.createElement(\"table\", { className: \"table table-striped table-condensed table-xCondensed text-center mrgn-bttm-sm\", id: \"chartgridview\" },\r\n React.createElement(\"caption\", null, props.chartData.title),\r\n React.createElement(\"thead\", null,\r\n React.createElement(\"tr\", null,\r\n React.createElement(\"th\", { className: \"text-left\", scope: \"col\" }, props.chartData.xAxis),\r\n React.createElement(\"th\", { className: \"text-right\", scope: \"col\" }, props.chartData.yAxis),\r\n React.createElement(\"th\", { className: \"text-center \" + CIClass, scope: \"col\" },\r\n \"95% \",\r\n React.createElement(\"abbr\", { title: props.confidenceInterval }, props.confidenceIntervalAbbr)))),\r\n React.createElement(\"tbody\", null, props.chartData.points.map(function (point, index) {\r\n switch (point.value) {\r\n // Data is in the red (66%+)\r\n case -1:\r\n return (React.createElement(\"tr\", { key: index },\r\n React.createElement(\"td\", { className: \"text-left\" }, point.text),\r\n React.createElement(\"td\", { className: \"text-right\" }, suppressedText)));\r\n // Data is in the red (33%+)\r\n case -2:\r\n return (React.createElement(\"tr\", { key: index },\r\n React.createElement(\"td\", { className: \"text-left\" }, point.text),\r\n React.createElement(\"td\", { className: \"text-right\" }, notAvailText)));\r\n // Data is a Okay!\r\n default:\r\n return (React.createElement(\"tr\", { key: index },\r\n React.createElement(\"td\", { className: \"text-left\" }, point.text),\r\n React.createElement(\"td\", { className: \"text-right\" }, typeof point.value != \"number\" ? \"-\" : numberFormat(point.value, props.languageCode, decimals))));\r\n }\r\n })))),\r\n React.createElement(\"div\", { className: \"col-md-12 mrgn-tp-0 small notes bg-warning\" },\r\n props.chartData.notes.map(function (_a, i) {\r\n var name = _a.name, body = _a.body;\r\n return (React.createElement(\"p\", { key: i },\r\n React.createElement(\"strong\", null,\r\n name,\r\n \":\"),\r\n \" \",\r\n body));\r\n }),\r\n note1,\r\n React.createElement(\"br\", null),\r\n note2,\r\n React.createElement(\"br\", null),\r\n note3))));\r\n }\r\n }\r\n else {\r\n return (React.createElement(\"div\", { className: \"container-fluid\" },\r\n React.createElement(\"div\", { className: \"row brdr-bttm mrgn-bttm-0\" },\r\n React.createElement(\"div\", { className: \"col-md-12 table-data\" },\r\n React.createElement(\"table\", { className: \"table table-striped table-condensed table-xCondensed text-center mrgn-bttm-sm\", id: \"chartgridview\" },\r\n React.createElement(\"caption\", null, passTitle),\r\n React.createElement(\"thead\", null,\r\n React.createElement(\"tr\", null,\r\n React.createElement(\"th\", { className: \"text-left\", scope: \"col\" }, props.chartData.xAxis),\r\n React.createElement(\"th\", { className: \"text-center\", scope: \"col\" }, props.chartData.yAxis),\r\n React.createElement(\"th\", { className: \"text-center\", scope: \"col\" },\r\n \"95% \",\r\n React.createElement(\"abbr\", { title: props.confidenceInterval }, props.confidenceIntervalAbbr)))),\r\n React.createElement(\"tbody\", null, props.chartData.points.map(function (point, index) {\r\n switch (point.cvInterpretation) {\r\n // Data is in the red (66%+)\r\n case 1:\r\n return (React.createElement(\"tr\", { key: index, style: ({ backgroundColor: \"#ff7b7b\" }) },\r\n React.createElement(\"td\", { className: \"text-left\" }, point.text),\r\n React.createElement(\"td\", null,\r\n React.createElement(\"sup\", null, \"F\")),\r\n React.createElement(\"td\", null,\r\n typeof point.valueLower != \"number\" ? \"-\" : numberFormat(point.valueLower, props.languageCode, decimals),\r\n \" - \",\r\n typeof point.valueUpper != \"number\" ? \"-\" : numberFormat(point.valueUpper, props.languageCode, decimals, decimals),\r\n \" \")));\r\n // Data is in the red (33%+)\r\n case 2:\r\n return (React.createElement(\"tr\", { key: index, style: ({ backgroundColor: \"#ffff9d\" }) },\r\n React.createElement(\"td\", { className: \"text-left\" }, point.text),\r\n React.createElement(\"td\", null,\r\n typeof point.value != \"number\" ? \"-\" : numberFormat(point.value, props.languageCode, decimals),\r\n React.createElement(\"sup\", null, \"E\")),\r\n React.createElement(\"td\", null,\r\n typeof point.valueLower != \"number\" ? \"-\" : numberFormat(point.valueLower, props.languageCode, decimals),\r\n \" - \",\r\n typeof point.valueUpper != \"number\" ? \"-\" : numberFormat(point.valueUpper, props.languageCode, decimals),\r\n \" \")));\r\n // Data is a Okay!\r\n default:\r\n return (React.createElement(\"tr\", { key: index },\r\n React.createElement(\"td\", { className: \"text-left\" }, point.text),\r\n React.createElement(\"td\", null, typeof point.value != \"number\" ? \"-\" : numberFormat(point.value, props.languageCode, decimals)),\r\n React.createElement(\"td\", null,\r\n typeof point.valueLower != \"number\" ? \"-\" : numberFormat(point.valueLower, props.languageCode, decimals),\r\n \" - \",\r\n typeof point.valueUpper != \"number\" ? \"-\" : numberFormat(point.valueUpper, props.languageCode, decimals),\r\n \" \")));\r\n }\r\n })))),\r\n React.createElement(\"div\", { className: \"col-md-12 mrgn-tp-0 small notes bg-warning\" },\r\n props.chartData.notes.map(function (_a, i) {\r\n var name = _a.name, body = _a.body;\r\n return (React.createElement(\"p\", { key: i, className: \"notesSpacing\" },\r\n React.createElement(\"strong\", null,\r\n name,\r\n \":\"),\r\n \" \",\r\n ReplaceSup(body)));\r\n }),\r\n cVWarningText,\r\n cvSupressedText,\r\n passExtraNote))));\r\n }\r\n};\r\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","module.exports = global[\"ReactDOM\"] = require(\"-!.\\\\index.js\");","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n","import { dataExplorerStore } from '../store/dataExplorer';\r\nimport { initState } from '../reducers/dataExplorerReducer';\r\nexport var InitializeChartDataStore = function (props) {\r\n dataExplorerStore.dispatch(initState(props.state));\r\n return null;\r\n};\r\n","import * as React from \"react\";\r\nexport var Counter = function (_a) {\r\n var start = _a.start;\r\n var _b = React.useState(start), current = _b[0], setCurrent = _b[1];\r\n return (React.createElement(\"button\", { onClick: function () { return setCurrent(current + 1); } }, current));\r\n};\r\n","import * as React from 'react';\r\nimport { isIE } from '../common/BrowserDetection';\r\nexport var YesScript = function (props) {\r\n var _a = React.useState(false), javaScript = _a[0], setJavaScript = _a[1];\r\n var yesScriptEl = React.useRef(null);\r\n React.useEffect(function () {\r\n if (props.ieAsNoScript && isIE()) {\r\n return;\r\n }\r\n if (yesScriptEl.current)\r\n yesScriptEl.current.style.display = null;\r\n }, []);\r\n return (React.createElement(\"div\", { ref: yesScriptEl, style: { display: \"none\" } }, props.children));\r\n};\r\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport * as React from 'react';\r\nimport { YesScript } from '../HOC/YesScript';\r\nfunction addFooterToCanvas(canvas, languageCode) {\r\n var footerImage = new Image();\r\n footerImage.addEventListener(\"load\", function () {\r\n var graphHeight = canvas.height * (820 / canvas.width);\r\n var footerHeight = footerImage.height * (820 / footerImage.width);\r\n document.querySelector('.legend').style.display = 'inline-block';\r\n var containerCanvas = document.createElement('canvas');\r\n containerCanvas.width = 840;\r\n containerCanvas.height = graphHeight + footerHeight;\r\n var ctx = containerCanvas.getContext('2d');\r\n ctx.drawImage(canvas, 0, 0, 820, graphHeight);\r\n ctx.drawImage(footerImage, 0, graphHeight, 820, footerHeight);\r\n var image = containerCanvas.toDataURL(\"image/png\", 1.0); //.replace(\"image/png\", \"image/octet-stream\");\r\n var link = document.createElement('a');\r\n link.download = \"Public Health Infobase - \" + new Intl.DateTimeFormat(\"en-CA\", {\r\n year: \"numeric\",\r\n month: \"2-digit\",\r\n day: \"2-digit\"\r\n }).format(Date.now()) + \".png\";\r\n link.href = image;\r\n document.body.appendChild(link);\r\n link.click();\r\n });\r\n footerImage.src = \"/src/img/exportServer-\" + languageCode + \".png\";\r\n}\r\nexport var SaveBtn = function (props) {\r\n var saveArea = React.useRef(null);\r\n var save = function () {\r\n import(\"html2canvas\").then(function (html2canvas) { return __awaiter(void 0, void 0, void 0, function () {\r\n var _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n // @ts-ignore: Calling default is necessary, but TS doesn't know that\r\n _a = addFooterToCanvas;\r\n return [4 /*yield*/, html2canvas.default(saveArea.current, { scrollX: 0, scrollY: -window.scrollY })];\r\n case 1:\r\n // @ts-ignore: Calling default is necessary, but TS doesn't know that\r\n _a.apply(void 0, [_b.sent(), props.languageCode]);\r\n return [2 /*return*/];\r\n }\r\n });\r\n }); });\r\n };\r\n return (React.createElement(\"div\", { className: \"col-xs-6 col-md-6 text-right\" },\r\n React.createElement(YesScript, { ieAsNoScript: true },\r\n React.createElement(\"button\", { disabled: props.loading, className: \"btn btn-primary downloadImg\", onClick: function () { return save(); } }, props.label)),\r\n React.createElement(\"div\", { style: { width: 0, height: 0, overflow: \"hidden\" }, className: \"text-center\" },\r\n React.createElement(\"div\", { style: { width: \"820px\" }, className: \"chartContainer\", ref: saveArea }, props.children))));\r\n};\r\n","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport { SaveBtn } from '../components/SaveBtn';\r\nimport * as React from 'react';\r\nimport { Charting } from './Charting';\r\nimport { SummaryTable } from './SummaryTable';\r\nimport { connect, Provider } from 'react-redux';\r\nimport { dataExplorerStore } from '../store/dataExplorer';\r\nvar mapStateToSaveBtnProps = function (state, props) { return state ? __assign(__assign({}, state), props) : __assign(__assign({}, props.state), props); };\r\nexport var SaveBtnConnect = connect(mapStateToSaveBtnProps)(SaveBtn);\r\nexport var SaveChartBtn = function (props) {\r\n return (React.createElement(Provider, { store: dataExplorerStore },\r\n React.createElement(SaveBtnConnect, __assign({}, props),\r\n React.createElement(Charting, { animate: false, state: props.state, languageCode: props.state.languageCode, datasetName: props.datasetName }),\r\n React.createElement(SummaryTable, __assign({}, props)))));\r\n};\r\n","import * as React from 'react';\r\nimport { isIE } from '../common/BrowserDetection';\r\nexport var NoScript = function (props) {\r\n var _a = React.useState(false), javaScript = _a[0], setJavaScript = _a[1];\r\n var noScriptEl = React.useRef(null);\r\n React.useEffect(function () {\r\n if (props.ieAsNoScript && isIE()) {\r\n return;\r\n }\r\n if (noScriptEl.current)\r\n noScriptEl.current.style.display = \"none\";\r\n }, []);\r\n return (React.createElement(\"div\", { ref: noScriptEl, className: props.className }, props.children));\r\n};\r\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport * as React from 'react';\r\nimport { NoScript } from '../HOC/NoScript';\r\nexport var Filters = function (props) {\r\n var updateUrlIndex = function (index) {\r\n window.history.pushState(null, document.title, \"?index=\" + index);\r\n };\r\n var loadNewData = function (index) { return __awaiter(void 0, void 0, void 0, function () {\r\n var request, response, r, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n props.updateLoadState(true);\r\n return [4 /*yield*/, fetch(window.location.toString(), {\r\n method: 'POST'\r\n })];\r\n case 1:\r\n request = _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 5, , 6]);\r\n return [4 /*yield*/, request];\r\n case 3:\r\n response = _a.sent();\r\n return [4 /*yield*/, response.json()];\r\n case 4:\r\n r = _a.sent();\r\n props.updateFilters(r.filters);\r\n props.updateChartData(r.chartData);\r\n props.updateLoadState(false);\r\n return [2 /*return*/, true];\r\n case 5:\r\n e_1 = _a.sent();\r\n return [2 /*return*/, false];\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n }); };\r\n function selectFilter(selected) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n updateUrlIndex(selected);\r\n return [4 /*yield*/, loadNewData(selected)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }\r\n React.useEffect(function () {\r\n var handler = function (event) {\r\n var index = Number.parseInt(new URLSearchParams(window.location.search).get(\"index\"));\r\n //updateUrlIndex(index);\r\n loadNewData(index);\r\n };\r\n window.addEventListener('popstate', handler);\r\n return function () {\r\n window.removeEventListener('popstate', handler);\r\n };\r\n });\r\n return (React.createElement(\"div\", { className: \"col-md-3 padding-15\" },\r\n React.createElement(\"span\", { className: \"text-info\" },\r\n props.prompt,\r\n \":\"),\r\n React.createElement(\"div\", { className: \"form-group-md filters\" }, props.filters.map(function (filter, i) {\r\n return React.createElement(\"form\", { className: \"form-group-md filter\", key: i, id: \"filter\" + i },\r\n React.createElement(\"label\", { className: \"control-label\", htmlFor: \"drop\" + i }, filter.name),\r\n React.createElement(\"select\", { disabled: props.loading, className: \"form-control full-width input-md\", value: filter.selected, name: \"index\", id: \"drop\" + i, onChange: function (e) { return selectFilter(Number.parseInt(e.currentTarget.value)); } }, filter.items.map(function (item) { return React.createElement(\"option\", { key: item.value, value: item.value }, item.text.replace(/\\/(.?)\\/\\s/, \"\")); })),\r\n React.createElement(NoScript, { className: \"full-width text-center\", ieAsNoScript: false },\r\n React.createElement(\"input\", { className: \"btn btn-xs btn-default full-width\", type: \"submit\" })));\r\n }))));\r\n};\r\n","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport * as React from 'react';\r\nimport { connect, Provider } from 'react-redux';\r\nimport { Filters as F } from \"../components/Filters\";\r\nimport { dataExplorerStore } from '../store/dataExplorer';\r\nimport { updateFilters, updateChartData, updateLoadState } from '../reducers/dataExplorerReducer';\r\nvar mapStateToFilterProps = function (state, props) { return state ? __assign(__assign({}, state), props) : __assign(__assign({}, props.state), props); };\r\nvar mapDispatchToProps = function (dispatch) {\r\n return {\r\n updateLoadState: function (loadState) { return dispatch(updateLoadState(loadState)); },\r\n updateChartData: function (chartData) { return dispatch(updateChartData(chartData)); },\r\n updateFilters: function (filters) { return dispatch(updateFilters(filters)); },\r\n };\r\n};\r\nexport var FilterBoxConnect = connect(mapStateToFilterProps, mapDispatchToProps)(F);\r\nexport var Filters = function (props) {\r\n return (React.createElement(Provider, { store: dataExplorerStore },\r\n React.createElement(FilterBoxConnect, __assign({}, props))));\r\n};\r\n","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport * as React from 'react';\r\nimport { connect, Provider } from 'react-redux';\r\nimport { DescriptionTable as DT } from \"../components/DescriptionTable\";\r\nimport { dataExplorerStore } from '../store/dataExplorer';\r\nvar mapStateToDescriptionTableProps = function (state, props) { return state ? __assign(__assign({}, state.chartData), props) : __assign(__assign(__assign({}, props.state.chartData), props.state), props); };\r\nexport var DescriptionTableConnect = connect(mapStateToDescriptionTableProps)(DT);\r\nexport var DescriptionTable = function (props) {\r\n return (React.createElement(Provider, { store: dataExplorerStore },\r\n React.createElement(DescriptionTableConnect, __assign({}, props))));\r\n};\r\n","import * as React from 'react';\r\nexport var DescriptionTable = function (props) {\r\n var notApplicable = (React.createElement(\"div\", null,\r\n React.createElement(\"span\", { \"aria-hidden\": true }, \"N/A\"),\r\n React.createElement(\"span\", { className: \"wb-inv\" }, \"&emdash;\")));\r\n return (React.createElement(\"table\", { className: \"table table-striped table-hover table-condensed table-bordered\" },\r\n React.createElement(\"tbody\", null, props.descriptionTable.map(function (_a, i) {\r\n var name = _a.name, body = _a.body;\r\n return (React.createElement(\"tr\", { key: i },\r\n React.createElement(\"th\", null, name),\r\n React.createElement(\"td\", null, body || notApplicable)));\r\n }))));\r\n};\r\n","import './shared.ts';\r\nimport { SaveChartBtn } from './containers/SaveChartBtn';\r\nglobal.SaveChartBtn = SaveChartBtn;\r\n","import { Filters } from './containers/Filters';\r\nimport { Charting } from './containers/Charting';\r\nimport { SummaryTable } from './containers/SummaryTable';\r\nimport { DescriptionTable } from './containers/DescriptionTable';\r\nimport { InitializeChartDataStore } from './containers/InitializeChartDataStore';\r\nimport { Counter } from './components/Counter';\r\nglobal.Filters = Filters;\r\nglobal.Charting = Charting;\r\nglobal.SummaryTable = SummaryTable;\r\nglobal.DescriptionTable = DescriptionTable;\r\nglobal.InitializeChartDataStore = InitializeChartDataStore;\r\nglobal.Counter = Counter;\r\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/** @license React v16.12.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var h=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113;n&&Symbol.for(\"react.suspense_list\");\nvar z=n?Symbol.for(\"react.memo\"):60115,aa=n?Symbol.for(\"react.lazy\"):60116;n&&Symbol.for(\"react.fundamental\");n&&Symbol.for(\"react.responder\");n&&Symbol.for(\"react.scope\");var A=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction B(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cP.length&&P.push(a)}\nfunction S(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+T(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var l=0;lb}return!1}function B(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1)});var sb=/[\\-:]([a-z])/g;function tb(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(sb,\ntb);D[b]=new B(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(sb,tb);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(sb,tb);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0)});function ub(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}\nfunction vb(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2=b.length))throw Error(u(93));b=b[0]}c=b}null==c&&(c=\"\")}a._wrapperState={initialValue:ub(c)}}\nfunction Mb(a,b){var c=ub(b.value),d=ub(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Nb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Ob={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Pb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Qb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Pb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Rb,Sb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Ob.svg||\"innerHTML\"in a)a.innerHTML=b;else{Rb=Rb||document.createElement(\"div\");Rb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Rb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Tb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Ub(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Vb={animationend:Ub(\"Animation\",\"AnimationEnd\"),animationiteration:Ub(\"Animation\",\"AnimationIteration\"),animationstart:Ub(\"Animation\",\"AnimationStart\"),transitionend:Ub(\"Transition\",\"TransitionEnd\")},Wb={},Xb={};\nYa&&(Xb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Vb.animationend.animation,delete Vb.animationiteration.animation,delete Vb.animationstart.animation),\"TransitionEvent\"in window||delete Vb.transitionend.transition);function Yb(a){if(Wb[a])return Wb[a];if(!Vb[a])return a;var b=Vb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Xb)return Wb[a]=b[c];return a}var Zb=Yb(\"animationend\"),$b=Yb(\"animationiteration\"),ac=Yb(\"animationstart\"),bc=Yb(\"transitionend\"),cc=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \");\nfunction ec(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function fc(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function gc(a){if(ec(a)!==a)throw Error(u(188));}\nfunction hc(a){var b=a.alternate;if(!b){b=ec(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return gc(e),a;if(f===d)return gc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function ic(a){a=hc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nvar jc,kc,lc,mc=!1,nc=[],oc=null,pc=null,qc=null,rc=new Map,sc=new Map,tc=[],uc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit\".split(\" \"),vc=\"focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture\".split(\" \");\nfunction wc(a){var b=xc(a);uc.forEach(function(c){yc(c,a,b)});vc.forEach(function(c){yc(c,a,b)})}function zc(a,b,c,d){return{blockedOn:a,topLevelType:b,eventSystemFlags:c|32,nativeEvent:d}}function Ac(a,b){switch(a){case \"focus\":case \"blur\":oc=null;break;case \"dragenter\":case \"dragleave\":pc=null;break;case \"mouseover\":case \"mouseout\":qc=null;break;case \"pointerover\":case \"pointerout\":rc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":sc.delete(b.pointerId)}}\nfunction Bc(a,b,c,d,e){if(null===a||a.nativeEvent!==e)return a=zc(b,c,d,e),null!==b&&(b=Cc(b),null!==b&&kc(b)),a;a.eventSystemFlags|=d;return a}function Dc(a,b,c,d){switch(b){case \"focus\":return oc=Bc(oc,a,b,c,d),!0;case \"dragenter\":return pc=Bc(pc,a,b,c,d),!0;case \"mouseover\":return qc=Bc(qc,a,b,c,d),!0;case \"pointerover\":var e=d.pointerId;rc.set(e,Bc(rc.get(e)||null,a,b,c,d));return!0;case \"gotpointercapture\":return e=d.pointerId,sc.set(e,Bc(sc.get(e)||null,a,b,c,d)),!0}return!1}\nfunction Ec(a){var b=Fc(a.target);if(null!==b){var c=ec(b);if(null!==c)if(b=c.tag,13===b){if(b=fc(c),null!==b){a.blockedOn=b;q.unstable_runWithPriority(a.priority,function(){lc(c)});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}function Gc(a){if(null!==a.blockedOn)return!1;var b=Hc(a.topLevelType,a.eventSystemFlags,a.nativeEvent);if(null!==b){var c=Cc(b);null!==c&&kc(c);a.blockedOn=b;return!1}return!0}\nfunction Ic(a,b,c){Gc(a)&&c.delete(b)}function Jc(){for(mc=!1;0this.eventPool.length&&this.eventPool.push(a)}function Vc(a){a.eventPool=[];a.getPooled=Wc;a.release=Xc}var Yc=E.extend({animationName:null,elapsedTime:null,pseudoElement:null}),Zc=E.extend({clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),$c=E.extend({view:null,detail:null}),ad=$c.extend({relatedTarget:null});\nfunction bd(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}\nvar cd={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},dd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",\n116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},ed={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function gd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=ed[a])?!!b[a]:!1}function hd(){return gd}\nvar id=$c.extend({key:function(a){if(a.key){var b=cd[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=bd(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?dd[a.keyCode]||\"Unidentified\":\"\"},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:hd,charCode:function(a){return\"keypress\"===a.type?bd(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?bd(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),jd=0,kd=0,ld=!1,md=!1,nd=$c.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:hd,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)},movementX:function(a){if(\"movementX\"in a)return a.movementX;var b=jd;jd=a.screenX;return ld?\"mousemove\"===a.type?a.screenX-\nb:0:(ld=!0,0)},movementY:function(a){if(\"movementY\"in a)return a.movementY;var b=kd;kd=a.screenY;return md?\"mousemove\"===a.type?a.screenY-b:0:(md=!0,0)}}),od=nd.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),pd=nd.extend({dataTransfer:null}),qd=$c.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:hd}),rd=E.extend({propertyName:null,\nelapsedTime:null,pseudoElement:null}),sd=nd.extend({deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},deltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:null,deltaMode:null}),td=[[\"blur\",\"blur\",0],[\"cancel\",\"cancel\",0],[\"click\",\"click\",0],[\"close\",\"close\",0],[\"contextmenu\",\"contextMenu\",0],[\"copy\",\"copy\",0],[\"cut\",\"cut\",0],[\"auxclick\",\"auxClick\",0],[\"dblclick\",\"doubleClick\",0],[\"dragend\",\"dragEnd\",\n0],[\"dragstart\",\"dragStart\",0],[\"drop\",\"drop\",0],[\"focus\",\"focus\",0],[\"input\",\"input\",0],[\"invalid\",\"invalid\",0],[\"keydown\",\"keyDown\",0],[\"keypress\",\"keyPress\",0],[\"keyup\",\"keyUp\",0],[\"mousedown\",\"mouseDown\",0],[\"mouseup\",\"mouseUp\",0],[\"paste\",\"paste\",0],[\"pause\",\"pause\",0],[\"play\",\"play\",0],[\"pointercancel\",\"pointerCancel\",0],[\"pointerdown\",\"pointerDown\",0],[\"pointerup\",\"pointerUp\",0],[\"ratechange\",\"rateChange\",0],[\"reset\",\"reset\",0],[\"seeked\",\"seeked\",0],[\"submit\",\"submit\",0],[\"touchcancel\",\"touchCancel\",\n0],[\"touchend\",\"touchEnd\",0],[\"touchstart\",\"touchStart\",0],[\"volumechange\",\"volumeChange\",0],[\"drag\",\"drag\",1],[\"dragenter\",\"dragEnter\",1],[\"dragexit\",\"dragExit\",1],[\"dragleave\",\"dragLeave\",1],[\"dragover\",\"dragOver\",1],[\"mousemove\",\"mouseMove\",1],[\"mouseout\",\"mouseOut\",1],[\"mouseover\",\"mouseOver\",1],[\"pointermove\",\"pointerMove\",1],[\"pointerout\",\"pointerOut\",1],[\"pointerover\",\"pointerOver\",1],[\"scroll\",\"scroll\",1],[\"toggle\",\"toggle\",1],[\"touchmove\",\"touchMove\",1],[\"wheel\",\"wheel\",1],[\"abort\",\"abort\",\n2],[Zb,\"animationEnd\",2],[$b,\"animationIteration\",2],[ac,\"animationStart\",2],[\"canplay\",\"canPlay\",2],[\"canplaythrough\",\"canPlayThrough\",2],[\"durationchange\",\"durationChange\",2],[\"emptied\",\"emptied\",2],[\"encrypted\",\"encrypted\",2],[\"ended\",\"ended\",2],[\"error\",\"error\",2],[\"gotpointercapture\",\"gotPointerCapture\",2],[\"load\",\"load\",2],[\"loadeddata\",\"loadedData\",2],[\"loadedmetadata\",\"loadedMetadata\",2],[\"loadstart\",\"loadStart\",2],[\"lostpointercapture\",\"lostPointerCapture\",2],[\"playing\",\"playing\",2],[\"progress\",\n\"progress\",2],[\"seeking\",\"seeking\",2],[\"stalled\",\"stalled\",2],[\"suspend\",\"suspend\",2],[\"timeupdate\",\"timeUpdate\",2],[bc,\"transitionEnd\",2],[\"waiting\",\"waiting\",2]],ud={},vd={},wd=0;for(;wd=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ce(c)}}\nfunction ee(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?ee(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function fe(){for(var a=window,b=be();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=be(a.document)}return b}\nfunction ge(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var he=\"$\",ie=\"/$\",je=\"$?\",ke=\"$!\",le=null,me=null;function ne(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction oe(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var pe=\"function\"===typeof setTimeout?setTimeout:void 0,qe=\"function\"===typeof clearTimeout?clearTimeout:void 0;function re(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction se(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===he||c===ke||c===je){if(0===b)return a;b--}else c===ie&&b++}a=a.previousSibling}return null}var te=Math.random().toString(36).slice(2),ue=\"__reactInternalInstance$\"+te,ve=\"__reactEventHandlers$\"+te,we=\"__reactContainere$\"+te;\nfunction Fc(a){var b=a[ue];if(b)return b;for(var c=a.parentNode;c;){if(b=c[we]||c[ue]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=se(a);null!==a;){if(c=a[ue])return c;a=se(a)}return b}a=c;c=a.parentNode}return null}function Cc(a){a=a[ue]||a[we];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function xe(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function ye(a){return a[ve]||null}var ze=null,Ae=null,Be=null;\nfunction Ce(){if(Be)return Be;var a,b=Ae,c=b.length,d,e=\"value\"in ze?ze.value:ze.textContent,f=e.length;for(a=0;a=He),Ke=String.fromCharCode(32),Le={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},Me=!1;\nfunction Ne(a,b){switch(a){case \"keyup\":return-1!==Fe.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function Oe(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var Pe=!1;function Qe(a,b){switch(a){case \"compositionend\":return Oe(b);case \"keypress\":if(32!==b.which)return null;Me=!0;return Ke;case \"textInput\":return a=b.data,a===Ke&&Me?null:a;default:return null}}\nfunction Re(a,b){if(Pe)return\"compositionend\"===a||!Ge&&Ne(a,b)?(a=Ce(),Be=Ae=ze=null,Pe=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=document.documentMode,sf={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},tf=null,uf=null,vf=null,wf=!1;\nfunction xf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(wf||null==tf||tf!==be(c))return null;c=tf;\"selectionStart\"in c&&ge(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return vf&&qf(vf,c)?null:(vf=c,a=E.getPooled(sf.select,uf,a,b),a.type=\"select\",a.target=tf,Sc(a),a)}\nvar yf={eventTypes:sf,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=xc(e);f=ja.onSelect;for(var g=0;gBf||(a.current=Af[Bf],Af[Bf]=null,Bf--)}\nfunction I(a,b){Bf++;Af[Bf]=a.current;a.current=b}var Cf={},J={current:Cf},K={current:!1},Df=Cf;function Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Ff(a){G(K,a);G(J,a)}function Gf(a){G(K,a);G(J,a)}function Hf(a,b,c){if(J.current!==Cf)throw Error(u(168));I(J,b,a);I(K,c,a)}function If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,Wa(b)||\"Unknown\",e));return n({},c,{},d)}function Jf(a){var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||Cf;Df=J.current;I(J,b,a);I(K,K.current,a);return!0}\nfunction Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(b=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=b,G(K,a),G(J,a),I(J,b,a)):G(K,a);I(K,c,a)}\nvar Lf=q.unstable_runWithPriority,Mf=q.unstable_scheduleCallback,Nf=q.unstable_cancelCallback,Of=q.unstable_shouldYield,Pf=q.unstable_requestPaint,Qf=q.unstable_now,Rf=q.unstable_getCurrentPriorityLevel,Sf=q.unstable_ImmediatePriority,Tf=q.unstable_UserBlockingPriority,Uf=q.unstable_NormalPriority,Vf=q.unstable_LowPriority,Wf=q.unstable_IdlePriority,Xf={},Yf=void 0!==Pf?Pf:function(){},Zf=null,$f=null,ag=!1,bg=Qf(),cg=1E4>bg?Qf:function(){return Qf()-bg};\nfunction dg(){switch(Rf()){case Sf:return 99;case Tf:return 98;case Uf:return 97;case Vf:return 96;case Wf:return 95;default:throw Error(u(332));}}function eg(a){switch(a){case 99:return Sf;case 98:return Tf;case 97:return Uf;case 96:return Vf;case 95:return Wf;default:throw Error(u(332));}}function fg(a,b){a=eg(a);return Lf(a,b)}function gg(a,b,c){a=eg(a);return Mf(a,b,c)}function hg(a){null===Zf?(Zf=[a],$f=Mf(Sf,ig)):Zf.push(a);return Xf}function jg(){if(null!==$f){var a=$f;$f=null;Nf(a)}ig()}\nfunction ig(){if(!ag&&null!==Zf){ag=!0;var a=0;try{var b=Zf;fg(99,function(){for(;a=b&&(wg=!0),a.firstContext=null)}function xg(a,b){if(qg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)qg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===pg){if(null===og)throw Error(u(308));pg=b;og.dependencies={expirationTime:0,firstContext:b,responders:null}}else pg=pg.next=b}return a._currentValue}var yg=!1;\nfunction zg(a){return{baseState:a,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Ag(a){return{baseState:a.baseState,firstUpdate:a.firstUpdate,lastUpdate:a.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}\nfunction Bg(a,b){return{expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function Cg(a,b){null===a.lastUpdate?a.firstUpdate=a.lastUpdate=b:(a.lastUpdate.next=b,a.lastUpdate=b)}\nfunction Dg(a,b){var c=a.alternate;if(null===c){var d=a.updateQueue;var e=null;null===d&&(d=a.updateQueue=zg(a.memoizedState))}else d=a.updateQueue,e=c.updateQueue,null===d?null===e?(d=a.updateQueue=zg(a.memoizedState),e=c.updateQueue=zg(c.memoizedState)):d=a.updateQueue=Ag(e):null===e&&(e=c.updateQueue=Ag(d));null===e||d===e?Cg(d,b):null===d.lastUpdate||null===e.lastUpdate?(Cg(d,b),Cg(e,b)):(Cg(d,b),e.lastUpdate=b)}\nfunction Eg(a,b){var c=a.updateQueue;c=null===c?a.updateQueue=zg(a.memoizedState):Fg(a,c);null===c.lastCapturedUpdate?c.firstCapturedUpdate=c.lastCapturedUpdate=b:(c.lastCapturedUpdate.next=b,c.lastCapturedUpdate=b)}function Fg(a,b){var c=a.alternate;null!==c&&b===c.updateQueue&&(b=a.updateQueue=Ag(b));return b}\nfunction Gg(a,b,c,d,e,f){switch(c.tag){case 1:return a=c.payload,\"function\"===typeof a?a.call(f,d,e):a;case 3:a.effectTag=a.effectTag&-4097|64;case 0:a=c.payload;e=\"function\"===typeof a?a.call(f,d,e):a;if(null===e||void 0===e)break;return n({},d,e);case 2:yg=!0}return d}\nfunction Hg(a,b,c,d,e){yg=!1;b=Fg(a,b);for(var f=b.baseState,g=null,h=0,k=b.firstUpdate,l=f;null!==k;){var m=k.expirationTime;mx?(A=r,r=null):A=r.sibling;var p=y(e,r,h[x],k);if(null===p){null===r&&(r=A);break}a&&\nr&&null===p.alternate&&b(e,r);g=f(p,g,x);null===m?l=p:m.sibling=p;m=p;r=A}if(x===h.length)return c(e,r),l;if(null===r){for(;xx?(A=r,r=null):A=r.sibling;var z=y(e,r,p.value,k);if(null===z){null===r&&(r=A);break}a&&r&&null===z.alternate&&b(e,r);g=f(z,g,x);null===m?l=z:m.sibling=z;m=z;r=A}if(p.done)return c(e,r),l;if(null===r){for(;!p.done;x++,p=h.next())p=C(e,p.value,k),null!==p&&(g=f(p,g,x),null===m?l=p:m.sibling=p,m=p);return l}for(r=d(e,r);!p.done;x++,p=h.next())p=H(r,e,x,p.value,k),null!==p&&(a&&null!==\np.alternate&&r.delete(null===p.key?x:p.key),g=f(p,g,x),null===m?l=p:m.sibling=p,m=p);a&&r.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===Ia&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Ga:a:{l=f.key;for(k=d;null!==k;){if(k.key===l)if(7===k.tag?f.type===Ia:k.elementType===f.type){c(a,k.sibling);d=e(k,f.type===Ia?f.props.children:f.props,h);d.ref=Yg(a,k,f);d.return=a;a=d;break a}else{c(a,\nk);break}else b(a,k);k=k.sibling}f.type===Ia?(d=eh(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=ch(f.type,f.key,f.props,null,a.mode,h),h.ref=Yg(a,d,f),h.return=a,a=h)}return g(a);case Ha:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=dh(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===\ntypeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h),d.return=a,a=d):(c(a,d),d=bh(f,a.mode,h),d.return=a,a=d),g(a);if(Xg(f))return z(a,d,f,h);if(Ua(f))return ta(a,d,f,h);l&&Zg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var fh=$g(!0),gh=$g(!1),hh={},ih={current:hh},jh={current:hh},kh={current:hh};function lh(a){if(a===hh)throw Error(u(174));return a}\nfunction mh(a,b){I(kh,b,a);I(jh,a,a);I(ih,hh,a);var c=b.nodeType;switch(c){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Qb(null,\"\");break;default:c=8===c?b.parentNode:b,b=c.namespaceURI||null,c=c.tagName,b=Qb(b,c)}G(ih,a);I(ih,b,a)}function nh(a){G(ih,a);G(jh,a);G(kh,a)}function oh(a){lh(kh.current);var b=lh(ih.current);var c=Qb(b,a.type);b!==c&&(I(jh,a,a),I(ih,c,a))}function ph(a){jh.current===a&&(G(ih,a),G(jh,a))}var M={current:0};\nfunction qh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===je||c.data===ke))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function rh(a,b){return{responder:a,props:b}}\nvar sh=Ea.ReactCurrentDispatcher,N=Ea.ReactCurrentBatchConfig,th=0,uh=null,O=null,vh=null,wh=null,P=null,xh=null,yh=0,zh=null,Ah=0,Bh=!1,Ch=null,Gh=0;function Q(){throw Error(u(321));}function Hh(a,b){if(null===b)return!1;for(var c=0;cyh&&(yh=m,Jg(yh))):(Ig(m,k.suspenseConfig),f=k.eagerReducer===a?k.eagerState:a(f,k.action));g=k;k=k.next}while(null!==k&&k!==d);l||(h=g,e=f);of(f,b.memoizedState)||(wg=!0);b.memoizedState=f;b.baseUpdate=h;b.baseState=e;c.lastRenderedState=f}return[b.memoizedState,c.dispatch]}\nfunction Rh(a){var b=Nh();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={last:null,dispatch:null,lastRenderedReducer:Ph,lastRenderedState:a};a=a.dispatch=Sh.bind(null,uh,a);return[b.memoizedState,a]}function Th(a){return Qh(Ph,a)}function Uh(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};null===zh?(zh={lastEffect:null},zh.lastEffect=a.next=a):(b=zh.lastEffect,null===b?zh.lastEffect=a.next=a:(c=b.next,b.next=a,a.next=c,zh.lastEffect=a));return a}\nfunction Vh(a,b,c,d){var e=Nh();Ah|=a;e.memoizedState=Uh(b,c,void 0,void 0===d?null:d)}function Wh(a,b,c,d){var e=Oh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&Hh(d,g.deps)){Uh(0,c,f,d);return}}Ah|=a;e.memoizedState=Uh(b,c,f,d)}function Xh(a,b){return Vh(516,192,a,b)}function Yh(a,b){return Wh(516,192,a,b)}\nfunction Zh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function $h(){}function ai(a,b){Nh().memoizedState=[a,void 0===b?null:b];return a}function bi(a,b){var c=Oh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Hh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Sh(a,b,c){if(!(25>Gh))throw Error(u(301));var d=a.alternate;if(a===uh||null!==d&&d===uh)if(Bh=!0,a={expirationTime:th,suspenseConfig:null,action:c,eagerReducer:null,eagerState:null,next:null},null===Ch&&(Ch=new Map),c=Ch.get(b),void 0===c)Ch.set(b,a);else{for(b=c;null!==b.next;)b=b.next;b.next=a}else{var e=Pg(),f=Mg.suspense;e=Qg(e,a,f);f={expirationTime:e,suspenseConfig:f,action:c,eagerReducer:null,eagerState:null,next:null};var g=b.last;if(null===g)f.next=f;else{var h=g.next;null!==h&&\n(f.next=h);g.next=f}b.last=f;if(0===a.expirationTime&&(null===d||0===d.expirationTime)&&(d=b.lastRenderedReducer,null!==d))try{var k=b.lastRenderedState,l=d(k,c);f.eagerReducer=d;f.eagerState=l;if(of(l,k))return}catch(m){}finally{}Rg(a,e)}}\nvar Lh={readContext:xg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useResponder:Q,useDeferredValue:Q,useTransition:Q},Jh={readContext:xg,useCallback:ai,useContext:xg,useEffect:Xh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Vh(4,36,Zh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Vh(4,36,a,b)},useMemo:function(a,b){var c=Nh();b=void 0===b?null:b;a=a();c.memoizedState=\n[a,b];return a},useReducer:function(a,b,c){var d=Nh();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={last:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=Sh.bind(null,uh,a);return[d.memoizedState,a]},useRef:function(a){var b=Nh();a={current:a};return b.memoizedState=a},useState:Rh,useDebugValue:$h,useResponder:rh,useDeferredValue:function(a,b){var c=Rh(a),d=c[0],e=c[1];Xh(function(){q.unstable_next(function(){var c=N.suspense;N.suspense=void 0===b?null:b;try{e(a)}finally{N.suspense=\nc}})},[a,b]);return d},useTransition:function(a){var b=Rh(!1),c=b[0],d=b[1];return[ai(function(b){d(!0);q.unstable_next(function(){var c=N.suspense;N.suspense=void 0===a?null:a;try{d(!1),b()}finally{N.suspense=c}})},[a,c]),c]}},Kh={readContext:xg,useCallback:bi,useContext:xg,useEffect:Yh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Wh(4,36,Zh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Wh(4,36,a,b)},useMemo:function(a,b){var c=Oh();b=void 0===b?\nnull:b;var d=c.memoizedState;if(null!==d&&null!==b&&Hh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a},useReducer:Qh,useRef:function(){return Oh().memoizedState},useState:Th,useDebugValue:$h,useResponder:rh,useDeferredValue:function(a,b){var c=Th(a),d=c[0],e=c[1];Yh(function(){q.unstable_next(function(){var c=N.suspense;N.suspense=void 0===b?null:b;try{e(a)}finally{N.suspense=c}})},[a,b]);return d},useTransition:function(a){var b=Th(!1),c=b[0],d=b[1];return[bi(function(b){d(!0);q.unstable_next(function(){var c=\nN.suspense;N.suspense=void 0===a?null:a;try{d(!1),b()}finally{N.suspense=c}})},[a,c]),c]}},ci=null,di=null,ei=!1;function fi(a,b){var c=gi(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}\nfunction hi(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ii(a){if(ei){var b=di;if(b){var c=b;if(!hi(a,b)){b=re(c.nextSibling);if(!b||!hi(a,b)){a.effectTag=a.effectTag&-1025|2;ei=!1;ci=a;return}fi(ci,c)}ci=a;di=re(b.firstChild)}else a.effectTag=a.effectTag&-1025|2,ei=!1,ci=a}}function ji(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;ci=a}\nfunction ki(a){if(a!==ci)return!1;if(!ei)return ji(a),ei=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!oe(b,a.memoizedProps))for(b=di;b;)fi(a,b),b=re(b.nextSibling);ji(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(u(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(c===ie){if(0===b){di=re(a.nextSibling);break a}b--}else c!==he&&c!==ke&&c!==je||b++}a=a.nextSibling}di=null}}else di=ci?re(a.stateNode.nextSibling):null;return!0}\nfunction li(){di=ci=null;ei=!1}var mi=Ea.ReactCurrentOwner,wg=!1;function R(a,b,c,d){b.child=null===a?gh(b,null,c,d):fh(b,a.child,c,d)}function ni(a,b,c,d,e){c=c.render;var f=b.ref;vg(b,e);d=Ih(a,b,c,d,f,e);if(null!==a&&!wg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),oi(a,b,e);b.effectTag|=1;R(a,b,d,e);return b.child}\nfunction pi(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!qi(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ri(a,b,g,d,e,f);a=ch(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(eb)&&Gj.set(a,b)))}}\nfunction Kj(a,b){a.expirationTimea?b:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=hg(Lj.bind(null,a));else{var b=Oj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Pg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Xf&&Nf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?hg(Lj.bind(null,a)):gg(d,Qj.bind(null,a),{timeout:10*(1073741821-b)-cg()});a.callbackNode=b}}}\nfunction Qj(a,b){Jj=0;if(b)return b=Pg(),Rj(a,b),Z(a),null;var c=Oj(a);if(0!==c){b=a.callbackNode;if((T&(oj|pj))!==S)throw Error(u(327));Sj();a===U&&c===W||Tj(a,c);if(null!==V){var d=T;T|=oj;var e=Uj(a);do try{Vj();break}catch(h){Wj(a,h)}while(1);rg();T=d;lj.current=e;if(X===rj)throw b=wj,Tj(a,c),Mj(a,c),Z(a),b;if(null===V)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=X,U=null,d){case qj:case rj:throw Error(u(345));case sj:Rj(a,2=c){a.lastPingedTime=c;Tj(a,c);break}}f=Oj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=pe(Yj.bind(null,a),e);break}Yj(a);break;case uj:Mj(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Xj(e));if(Bj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Tj(a,c);break}e=Oj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==yj?d=10*(1073741821-yj)-cg():1073741823===xj?d=0:(d=10*(1073741821-xj)-5E3,e=cg(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*kj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=cg()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+Xa(e))}X!==vj&&(X=sj);f=Ni(f,e);k=d;do{switch(k.tag){case 3:g=f;k.effectTag|=4096;k.expirationTime=b;var x=fj(k,g,b);Eg(k,x);break a;case 1:g=f;var A=k.type,p=k.stateNode;if(0===(k.effectTag&64)&&(\"function\"===typeof A.getDerivedStateFromError||null!==p&&\"function\"===typeof p.componentDidCatch&&\n(null===jj||!jj.has(p)))){k.effectTag|=4096;k.expirationTime=b;var t=ij(k,g,b);Eg(k,t);break a}}k=k.return}while(null!==k)}V=ek(V)}catch(v){b=v;continue}break}while(1)}function Uj(){var a=lj.current;lj.current=Lh;return null===a?Lh:a}function Ig(a,b){aAj&&(Aj=a)}function Zj(){for(;null!==V;)V=fk(V)}function Vj(){for(;null!==V&&!Of();)V=fk(V)}\nfunction fk(a){var b=gk(a.alternate,a,W);a.memoizedProps=a.pendingProps;null===b&&(b=ek(a));mj.current=null;return b}\nfunction ek(a){V=a;do{var b=V.alternate;a=V.return;if(0===(V.effectTag&2048)){a:{var c=b;b=V;var d=W;var e=b.pendingProps;switch(b.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:L(b.type)&&Ff(b);break;case 3:nh(b);Gf(b);e=b.stateNode;e.pendingContext&&(e.context=e.pendingContext,e.pendingContext=null);(null===c||null===c.child)&&ki(b)&&Ci(b);Ii(b);break;case 5:ph(b);d=lh(kh.current);var f=b.type;if(null!==c&&null!=b.stateNode)Ji(c,b,f,e,d),c.ref!==b.ref&&(b.effectTag|=128);else if(e){var g=\nlh(ih.current);if(ki(b)){e=b;var h=e.stateNode;c=e.type;var k=e.memoizedProps,l=d;h[ue]=e;h[ve]=k;f=void 0;d=h;switch(c){case \"iframe\":case \"object\":case \"embed\":F(\"load\",d);break;case \"video\":case \"audio\":for(h=0;h\\x3c/script>\",h=k.removeChild(k.firstChild)):\"string\"===typeof k.is?h=h.createElement(l,{is:k.is}):(h=h.createElement(l),\"select\"===l&&(l=h,k.multiple?l.multiple=!0:k.size&&(l.size=k.size))):h=h.createElementNS(g,l);k=h;k[ue]=c;k[ve]=e;Hi(k,b,!1,!1);b.stateNode=k;l=f;c=e;var m=d,C=Zd(l,c);switch(l){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\nk);d=c;break;case \"video\":case \"audio\":for(d=0;de.tailExpiration&&1f&&(f=c),k>f&&(f=k),d=d.sibling;e.childExpirationTime=f}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=V.firstEffect),null!==V.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=\nV.firstEffect),a.lastEffect=V.lastEffect),1a?b:a}function Yj(a){var b=dg();fg(99,ik.bind(null,a,b));return null}\nfunction ik(a,b){do Sj();while(null!==Ej);if((T&(oj|pj))!==S)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Xj(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===U&&(V=U=null,W=0);1h&&(l=h,h=g,g=l),l=de(p,g),m=de(p,h),l&&m&&(1!==v.rangeCount||v.anchorNode!==l.node||v.anchorOffset!==l.offset||v.focusNode!==m.node||v.focusOffset!==m.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),v.removeAllRanges(),g>h?(v.addRange(t),v.extend(m.node,m.offset)):(t.setEnd(m.node,m.offset),v.addRange(t))))));t=[];for(v=p;v=v.parentNode;)1===v.nodeType&&t.push({element:v,left:v.scrollLeft,top:v.scrollTop});\n\"function\"===typeof p.focus&&p.focus();for(p=0;p=c)return yi(a,b,c);I(M,M.current&\n1,b);b=oi(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1,b);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return Bi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current,b);if(!d)return null}return oi(a,b,c)}wg=!1}}else wg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Ef(b,J.current);vg(b,c);e=Ih(null,b,d,a,e,c);b.effectTag|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;Mh();if(L(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Og(b,d,g,a);e.updater=Sg;b.stateNode=e;e._reactInternalFiber=b;Wg(b,d,a,c);b=vi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;Va(e);if(1!==e._status)throw e._result;\ne=e._result;b.type=e;f=b.tag=nk(e);a=mg(e,a);switch(f){case 0:b=si(null,b,e,a,c);break;case 1:b=ui(null,b,e,a,c);break;case 11:b=ni(null,b,e,a,c);break;case 14:b=pi(null,b,e,mg(e.type,a),d,c);break;default:throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:mg(d,e),si(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:mg(d,e),ui(a,b,d,e,c);case 3:wi(b);d=b.updateQueue;if(null===d)throw Error(u(282));e=b.memoizedState;e=null!==e?e.element:\nnull;Hg(b,d,b.pendingProps,null,c);d=b.memoizedState.element;if(d===e)li(),b=oi(a,b,c);else{if(e=b.stateNode.hydrate)di=re(b.stateNode.containerInfo.firstChild),ci=b,e=ei=!0;if(e)for(c=gh(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),li();b=b.child}return b;case 5:return oh(b),null===a&&ii(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,oe(d,e)?g=null:null!==f&&oe(d,f)&&(b.effectTag|=16),ti(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=\nb.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&ii(b),null;case 13:return yi(a,b,c);case 4:return mh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=fh(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:mg(d,e),ni(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,b,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;\ne=b.pendingProps;g=b.memoizedProps;f=e.value;sg(b,f);if(null!==g){var h=g.value;f=of(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0;if(0===f){if(g.children===e.children&&!K.current){b=oi(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==k){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=Bg(c,null),l.tag=2,Dg(h,l));h.expirationTime=b&&a<=b}function Mj(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction Nj(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Rj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction rk(a,b,c,d){var e=b.current,f=Pg(),g=Mg.suspense;f=Qg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(ec(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=If(c,k,h);break a}}c=h}else c=Cf;null===b.context?b.context=c:b.pendingContext=c;b=Bg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);Dg(e,b);Rg(e,f);return f}function sk(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function tk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_ImmediatePriority=1;exports.unstable_UserBlockingPriority=2;exports.unstable_NormalPriority=3;exports.unstable_IdlePriority=5;exports.unstable_LowPriority=4;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};exports.unstable_cancelCallback=function(a){a.callback=null};\nexports.unstable_wrapCallback=function(a){var b=R;return function(){var c=R;R=b;try{return a.apply(this,arguments)}finally{R=c}}};exports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime