{"version":3,"sources":["webpack:///./node_modules/toggle-selection/index.js","webpack:///./node_modules/vuetify-loader/lib/runtime/installDirectives.js","webpack:///./node_modules/core-js/modules/es.regexp.sticky.js","webpack:///./node_modules/core-js/modules/es.regexp.constructor.js","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/modules/es.object.entries.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./src/views/Home.vue?96c9","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/vue-class-component/dist/vue-class-component.esm.js","webpack:///./node_modules/vue-property-decorator/lib/helpers/metadata.js","webpack:///./node_modules/vue-property-decorator/lib/decorators/Prop.js","webpack:///./node_modules/vue-property-decorator/lib/decorators/Ref.js","webpack:///./node_modules/vue-property-decorator/lib/decorators/VModel.js","webpack:///./node_modules/vue-property-decorator/lib/decorators/Watch.js","webpack:///./src/components/ConnectionWidget/index.vue?2f8a","webpack:///./src/components/ConnectionWidget/SectionActions.vue?0bc0","webpack:///./src/components/ConnectionWidget/SectionActions.vue","webpack:///./src/components/ConnectionWidget/SectionActions.vue?9bc3","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/mixins/groupable/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/mixins/routable/index.ts","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///./src/components/ConnectionWidget/SectionActions.vue?cc99","webpack:///./src/components/ConnectionWidget/SectionStatus.vue?4242","webpack:///./src/components/ConnectionWidget/SectionStatus.vue","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///./src/components/ConnectionWidget/SectionStatus.vue?f9f2","webpack:///../../../src/mixins/transitionable/index.ts","webpack:///../../../src/components/VBadge/VBadge.ts","webpack:///./src/components/ConnectionWidget/SectionStatus.vue?4217","webpack:///./src/components/ConnectionWidget/SectionHeadBlock.vue?fc8f","webpack:///./src/utils/dateUtils.ts","webpack:///./src/components/ConnectionWidget/SectionHeadBlock.vue","webpack:///./src/components/ConnectionWidget/SectionHeadBlock.vue?b71b","webpack:///../../../src/components/VList/VListItem.ts","webpack:///../../../src/components/VIcon/index.ts","webpack:///../../../src/components/VList/VList.ts","webpack:///../../../src/components/VList/VListItemIcon.ts","webpack:///../../../src/mixins/bootable/index.ts","webpack:///../../../src/components/VList/VListGroup.ts","webpack:///../../../src/components/VItemGroup/VItemGroup.ts","webpack:///../../../src/components/VList/VListItemAction.ts","webpack:///../../../src/components/VList/VListItemGroup.ts","webpack:///../../../src/components/VAvatar/VAvatar.ts","webpack:///../../../src/components/VAvatar/index.ts","webpack:///../../../src/components/VList/index.ts","webpack:///../../../src/components/VList/VListItemAvatar.ts","webpack:///./src/components/ConnectionWidget/SectionHeadBlock.vue?0a68","webpack:///./src/components/ConnectionWidget/index.vue","webpack:///./src/components/ConnectionWidget/index.vue?7dd6","webpack:///../../../src/components/VSkeletonLoader/VSkeletonLoader.ts","webpack:///./src/components/ConnectionWidget/index.vue?7ef5","webpack:///./src/components/ChartWidget/index.vue?540f","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/selection/select.js","webpack:///./node_modules/d3-selection/src/array.js","webpack:///./node_modules/d3-selection/src/selectorAll.js","webpack:///./node_modules/d3-selection/src/selection/selectAll.js","webpack:///./node_modules/d3-selection/src/matcher.js","webpack:///./node_modules/d3-selection/src/selection/selectChild.js","webpack:///./node_modules/d3-selection/src/selection/selectChildren.js","webpack:///./node_modules/d3-selection/src/selection/filter.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/constant.js","webpack:///./node_modules/d3-selection/src/selection/data.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/sort.js","webpack:///./node_modules/d3-selection/src/selection/call.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/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/append.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/datum.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/iterator.js","webpack:///./node_modules/d3-selection/src/selection/index.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/basisClosed.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/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-transition/src/selection/interrupt.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/easeVarying.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/on.js","webpack:///./node_modules/d3-transition/src/transition/remove.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/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/text.js","webpack:///./node_modules/d3-transition/src/transition/textTween.js","webpack:///./node_modules/d3-transition/src/transition/transition.js","webpack:///./node_modules/d3-transition/src/transition/end.js","webpack:///./node_modules/d3-transition/src/transition/index.js","webpack:///./node_modules/d3-ease/src/cubic.js","webpack:///./node_modules/d3-transition/src/selection/transition.js","webpack:///./node_modules/d3-transition/src/selection/index.js","webpack:///./node_modules/d3-brush/src/brush.js","webpack:///./node_modules/d3-array/src/range.js","webpack:///./node_modules/d3-scale/src/init.js","webpack:///./node_modules/internmap/src/index.js","webpack:///./node_modules/d3-scale/src/ordinal.js","webpack:///./node_modules/d3-scale/src/band.js","webpack:///./node_modules/d3-array/src/ticks.js","webpack:///./node_modules/d3-array/src/ascending.js","webpack:///./node_modules/d3-array/src/bisector.js","webpack:///./node_modules/d3-array/src/number.js","webpack:///./node_modules/d3-array/src/bisect.js","webpack:///./node_modules/d3-interpolate/src/round.js","webpack:///./node_modules/d3-scale/src/constant.js","webpack:///./node_modules/d3-scale/src/number.js","webpack:///./node_modules/d3-scale/src/continuous.js","webpack:///./node_modules/d3-format/src/formatSpecifier.js","webpack:///./node_modules/d3-format/src/formatDecimal.js","webpack:///./node_modules/d3-format/src/exponent.js","webpack:///./node_modules/d3-format/src/formatPrefixAuto.js","webpack:///./node_modules/d3-format/src/defaultLocale.js","webpack:///./node_modules/d3-format/src/precisionPrefix.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/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/precisionRound.js","webpack:///./node_modules/d3-format/src/precisionFixed.js","webpack:///./node_modules/d3-scale/src/tickFormat.js","webpack:///./node_modules/d3-scale/src/linear.js","webpack:///./node_modules/d3-selection/src/create.js","webpack:///./node_modules/d3-time/src/interval.js","webpack:///./node_modules/d3-time/src/duration.js","webpack:///./node_modules/d3-time/src/hour.js","webpack:///./node_modules/d3-time/src/day.js","webpack:///./node_modules/d3-time/src/week.js","webpack:///./node_modules/d3-time/src/utcWeek.js","webpack:///./node_modules/d3-time/src/utcDay.js","webpack:///./node_modules/d3-time/src/year.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-interpolate/src/zoom.js","webpack:///./node_modules/d3-zoom/src/transform.js","webpack:///./node_modules/d3-zoom/src/zoom.js","webpack:///./src/components/ChartWidget/ChartRenderer.ts","webpack:///./src/components/ChartWidget/SectionControls.vue?d00a","webpack:///./src/components/ChartWidget/SectionControls.vue","webpack:///./src/components/ChartWidget/SectionControls.vue?5286","webpack:///../../../src/mixins/button-group/index.ts","webpack:///../../../src/components/VBtnToggle/VBtnToggle.ts","webpack:///./src/components/ChartWidget/SectionControls.vue?f87d","webpack:///./src/components/ChartWidget/index.vue","webpack:///./src/components/ChartWidget/index.vue?6c5d","webpack:///./src/components/ChartWidget/index.vue?7f08","webpack:///./src/components/FeedWidget/index.vue?764c","webpack:///./src/components/FeedWidget/ReorgListItem.vue?efcb","webpack:///./src/components/FeedWidget/types.ts","webpack:///./src/components/FeedWidget/ReorgListItem.vue","webpack:///./src/components/FeedWidget/ReorgListItem.vue?5fc8","webpack:///./src/components/FeedWidget/ReorgListItem.vue?16c8","webpack:///./src/components/FeedWidget/index.vue","webpack:///./src/components/FeedWidget/index.vue?5fbd","webpack:///../../../src/components/VDivider/VDivider.ts","webpack:///../../../src/components/VVirtualScroll/VVirtualScroll.ts","webpack:///./src/components/FeedWidget/index.vue?4dec","webpack:///./src/views/Home.vue","webpack:///./src/views/Home.vue?c00d","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///./src/views/Home.vue?1573","webpack:///./node_modules/core-js/modules/es.regexp.dot-all.js","webpack:///./node_modules/core-js/modules/es.string.small.js","webpack:///./node_modules/core-js/modules/es.json.stringify.js","webpack:///./node_modules/copy-to-clipboard/index.js"],"names":["module","exports","selection","document","getSelection","rangeCount","active","activeElement","ranges","i","push","getRangeAt","tagName","toUpperCase","blur","removeAllRanges","type","forEach","range","addRange","focus","component","directives","options","extendOptions","global","DESCRIPTORS","UNSUPPORTED_Y","classof","defineProperty","f","getInternalState","get","RegExpPrototype","RegExp","prototype","TypeError","configurable","this","sticky","uncurryThis","isForced","inheritIfRequired","createNonEnumerableProperty","getOwnPropertyNames","isPrototypeOf","isRegExp","toString","regExpFlags","stickyHelpers","redefine","fails","hasOwn","enforceInternalState","enforce","setSpecies","wellKnownSymbol","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","MATCH","NativeRegExp","SyntaxError","getFlags","exec","charAt","replace","stringIndexOf","indexOf","stringSlice","slice","IS_NCG","re1","re2","CORRECT_NEW","BASE_FORCED","handleDotAll","string","chr","length","index","result","brackets","handleNCG","named","names","ncg","groupid","groupname","RegExpWrapper","pattern","flags","rawFlags","dotAll","handled","state","thisIsRegExp","patternIsRegExp","flagsAreUndefined","undefined","groups","rawPattern","constructor","source","raw","error","proxy","key","set","it","keys","collection","collectionStrong","init","arguments","$","$entries","entries","target","stat","O","create","redefineAll","bind","anInstance","iterate","defineIterator","fastKey","InternalStateModule","setInternalState","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","Constructor","that","iterable","Prototype","first","last","size","AS_ENTRIES","define","value","previous","entry","getEntry","next","removed","clear","data","prev","callbackfn","boundFunction","has","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","InternalMetadataModule","isCallable","isObject","checkCorrectnessOfIteration","setToStringTag","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","KEY","uncurriedNativeMethod","REPLACE","enable","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","forced","createHTML","forcedStringHTMLMethod","proto","link","url","_vm","_h","$createElement","_c","_self","attrs","staticRenderFns","__decorate","decorators","desc","d","c","r","Object","getOwnPropertyDescriptor","Reflect","decorate","_typeof","obj","Symbol","iterator","_defineProperty","enumerable","writable","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","Array","isArray","arr2","iter","call","from","reflectionIsSupported","defineMetadata","getOwnMetadataKeys","copyReflectionMetadata","to","forwardMetadata","propertyKey","metaKeys","metaKey","metadata","getOwnMetadata","fakeArray","__proto__","hasProto","createDecorator","factory","Ctor","__decorators__","isPrimitive","collectDataFromConstructor","vm","Component","originalInit","_init","_this","$options","props","hasOwnProperty","plainData","$internalHooks","componentFactory","name","_componentTag","descriptor","methods","mixins","computed","fn","superProto","getPrototypeOf","Super","Extended","extend","forwardStaticMembers","shouldIgnore","callee","caller","Original","extendedDescriptor","superDescriptor","registerHooks","apply","reflectMetadataIsSupported","getMetadata","applyMetadata","Prop","componentOptions","k","Ref","refKey","cache","$refs","VModel","valueKey","$emit","Watch","path","_a","deep","_b","immediate","handler","watch","staticClass","_v","_s","$t","isSynced","headBlock","reorgsCount","headDate","level","hash","showRecyncBtn","on","copyHash","isLoading","resync","_e","Error","String","required","Boolean","intersect","button","indeterminate","rotate","Number","default","width","radius","isVisible","calculatedSize","circumference","Math","classes","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","styles","height","svgStyles","transform","viewBoxSize","genCircle","class","fill","cx","cy","offset","genSvg","children","style","xmlns","viewBox","genInfo","$slots","onObserve","render","h","setTextColor","role","$listeners","generateWarning","child","defaultImpl","register","unregister","parent","inject","activeClass","namespace","disabled","isActive","groupClasses","created","beforeDestroy","toggle","DELAY_RIPPLE","el","isTouchEvent","e","isKeyboardEvent","calculate","localX","localY","scale","centerX","centerY","x","y","ripples","show","container","animation","window","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","element","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","enabled","binding","passive","removeListeners","directive","unbind","wasEnabled","Ripple","update","append","exact","exactPath","exactActiveClass","href","nuxt","ripple","tag","proxyClass","computedRipple","isClickable","isLink","$attrs","$route","mounted","click","generateRouteLink","tabindex","onRouteChange","large","small","xLarge","xSmall","medium","sizeableClasses","baseMixins","btnToggle","block","depressed","fab","icon","loading","outlined","plain","retainFocusOnClick","rounded","text","tile","computedElevation","defaultRipple","circle","hasBg","isElevated","elevation","isRound","measurableStyles","breakingProps","original","replacement","$el","genContent","genLoader","loader","setColor","includes","JSON","mergeTransitions","dest","origin","functional","group","hideOnLeave","leaveAbsolute","mode","context","beforeEnter","offsetHeight","position","top","left","offsetTop","offsetLeft","offsetWidth","mergeData","functions","expandedParentClass","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","VFadeTransition","createSimpleTransition","VSlideXTransition","VExpandTransition","createJavascriptTransition","prop","event","model","internalLazyValue","internalValue","val","Proxyable","backgroundColor","backgroundOpacity","bufferValue","color","query","reverse","stream","striped","__cachedBackground","setBackgroundColor","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","opacity","isReversed","normalizedBuffer","themeClasses","computedTransition","$vuetify","rtl","normalize","reactive","slot","genListeners","listeners","onClick","bottom","loaderHeight","genProgress","progress","absolute","flat","hover","img","raised","VCardActions","VCardSubtitle","VCardTitle","VBtn","status","label","caption","synced","syncedProps","notSyncedProps","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","dense","right","hasClickListener","listeners$","getIcon","iconName","getSize","sizes","explicitSize","getDefaultData","attrs$","getSvgWrapperData","fontSize","wrapperData","applyColors","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","renderSvgIconComponent","$_wrapperFor","avatar","bordered","content","dot","inline","offsetX","offsetY","overlap","computedBottom","computedLeft","computedRight","computedTop","computedXOffset","calcPosition","computedYOffset","isRtl","genBadge","lang","title","badge","genBadgeContent","genBadgeWrapper","VBadge","formattedDate","formattedReorgs","dateFormatter","Intl","DateTimeFormat","i18n","locale","year","month","day","hour","minute","format","date","w","join","Date","components","SectionActions","SectionStatus","isInGroup","isInList","isInMenu","isInNav","inheritAttrs","listItemGroup","inactive","selectable","threeLine","twoLine","genAttrs","inputValue","keydown","$scopedSlots","VSheet","provide","list","expand","nav","subheader","findIndex","g","splice","listClick","eager","isBooted","hasContent","showLazyContent","BaseItemGroup","appendIcon","noAction","prependIcon","subGroup","matchRoute","genIcon","genAppendIcon","VListItemIcon","genHeader","genItems","genPrependIcon","_uid","mandatory","max","multiple","items","selectedIndex","selectedItem","selectedItems","filter","selectedValues","toggleMethod","v","genData","getValue","item","valueIndex","updateInternalValue","updateItem","updateItemsState","updateMultiple","updateSingle","updateMandatory","defaultValue","isSame","itemGroup","filteredChild","VNode","roundedClasses","minWidth","VListItemActionText","horizontal","VListItemContent","VListItemTitle","VListItemSubtitle","VListItem","updaterInterval","BLOCK_TIME","head","b","timestamp","countLatest","startUpdater","dipdupHead","reorgsCountLatest","stopUpdater","n","o","updateSyncStatus","setInterval","clearInterval","now","getTime","SectionHeadBlock","boilerplate","types","elevationClasses","rootTypes","actions","article","card","chip","heading","image","paragraph","sentences","table","genBone","genBones","bone","generator","genStructure","mapBones","genSkeleton","beforeLeave","bones","onBeforeEnter","display","onBeforeLeave","VCard","VSkeletonLoader","callback","$$v","timeframe","expression","ref","epsilon","translateX","translateY","number","bandwidth","round","entering","__axis","orient","tickArguments","tickValues","tickFormat","tickSizeInner","tickSizeOuter","tickPadding","devicePixelRatio","axis","values","ticks","domain","identity","spacing","range0","range1","copy","selectAll","tick","order","tickExit","exit","tickEnter","attr","line","select","merge","insert","isFinite","getAttribute","p","parentNode","remove","each","_","tickSize","axisBottom","axisLeft","noop","dispatch","t","Dispatch","parseTypenames","typenames","trim","split","map","concat","typename","T","args","none","selector","querySelector","_groups","m","subgroups","j","node","subnode","subgroup","__data__","Selection","_parents","array","querySelectorAll","arrayAll","selectorAll","parents","matches","childMatcher","find","childFind","match","childFirst","firstElementChild","childrenFilter","matcher","_enter","sparse","EnterNode","datum","ownerDocument","namespaceURI","_next","_parent","appendChild","insertBefore","bindIndex","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","Map","keyValues","delete","constant","arraylike","enterGroup","updateGroup","exitGroup","i0","i1","_exit","onenter","onupdate","onexit","groups0","groups1","m0","m1","min","merges","group0","group1","compareDocumentPosition","compareNode","a","compare","ascending","sortgroups","sortgroup","sort","NaN","xhtml","svg","xlink","xml","prefix","namespaces","space","local","attrRemove","removeAttribute","attrRemoveNS","fullname","removeAttributeNS","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","attrFunctionNS","getAttributeNS","defaultView","styleRemove","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","propertyRemove","propertyConstant","propertyFunction","classArray","classList","ClassList","_node","_names","classedAdd","classedRemove","classedTrue","classedFalse","classedFunction","contains","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","lower","previousSibling","firstChild","creatorInherit","uri","documentElement","createElement","createElementNS","creatorFixed","creator","constantNull","before","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","property","contextListener","listener","onRemove","__on","removeEventListener","onAdd","addEventListener","dispatchEvent","params","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","selection_select","selectChild","selectChildren","selection_filter","selection_data","selection_enter","selection_exit","selection_merge","nodes","selection_node","selection_size","empty","selection_empty","selection_style","classed","selection_text","html","selection_raise","selection_lower","selection_remove","selection_datum","selection_on","selection_dispatch","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatHsl","hslConvert","formatHsl","color_formatRgb","formatRgb","l","toLowerCase","parseInt","rgbn","Rgb","rgba","hsla","rgbConvert","rgb_formatHex","hex","rgb_formatRgb","isNaN","s","Hsl","hsl","hsl2rgb","m2","basis","t1","v0","v1","v2","v3","t2","t3","channels","assign","displayable","pow","floor","linear","exponential","gamma","nogamma","start","end","rgbGamma","rgbSpline","spline","colors","basisClosed","isNumberArray","ArrayBuffer","isView","DataView","genericArray","nb","na","setTime","reA","reB","one","taskHead","taskTail","am","bm","bs","bi","lastIndex","q","numberArray","valueOf","object","timeout","interval","pokeDelay","clockLast","clockNow","clockSkew","clock","setFrame","clearNow","Timer","_call","_time","timer","time","restart","timerFlush","wake","nap","poke","t0","Infinity","sleep","clearTimeout","stop","elapsed","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","schedules","__transition","id","tween","timing","duration","ease","schedule","self","svgNode","interrupt","degrees","PI","skewX","scaleX","scaleY","sqrt","atan2","atan","parseCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","parseSvg","baseVal","consolidate","matrix","interpolateTransform","parse","pxComma","pxParen","degParen","pop","translate","xa","ya","xb","yb","interpolateTransformCss","interpolateTransformSvg","tweenRemove","tween0","tween1","tweenFunction","_id","tweenValue","interpolate","value1","string00","interpolate0","string1","string0","string10","attrTween","attrInterpolate","attrInterpolateNS","attrTweenNS","_value","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","easeVarying","Transition","_name","every","onFunction","on0","on1","sit","removeFunction","inherit","styleNull","styleMaybeRemove","listener0","styleTween","styleInterpolate","textInterpolate","textTween","id0","id1","newId","Promise","resolve","reject","cancel","selection_prototype","cubicInOut","transition_select","transition_selectAll","transition_filter","transition_merge","transition_selection","transition_transition","transition_on","transition_attr","transition_attrTween","transition_style","transition_styleTween","transition_text","transition_textTween","transition_remove","transition_tween","transition_delay","transition_duration","transition_easeVarying","transition_end","defaultTiming","selection_interrupt","selection_transition","abs","number1","number2","step","ceil","initRange","InternMap","keyof","super","defineProperties","_intern","_key","intern_get","intern_set","intern_delete","Set","implicit","ordinal","unknown","band","ordinalRange","r0","r1","paddingInner","paddingOuter","align","rescale","rangeRound","padding","e10","e5","e2","count","tickIncrement","power","log","LN10","tickStep","step0","step1","bisector","delta","compare1","compare2","lo","hi","mid","center","ascendingBisect","bisectRight","bisect","constants","unit","clamper","bimap","d0","d1","polymap","clamp","transformer","untransform","piecewise","output","input","invert","u","continuous","re","formatSpecifier","specifier","FormatSpecifier","sign","symbol","zero","comma","precision","toLocaleString","formatDecimalParts","toExponential","coefficient","prefixExponent","grouping","substring","thousands","numerals","out","exponent","toFixed","formatDecimal","toPrecision","formatRounded","formatPrefixAuto","prefixes","formatGroup","currencyPrefix","currency","currencySuffix","decimal","formatNumerals","percent","minus","nan","newFormat","formatTypes","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","formatTrim","charCodeAt","formatPrefix","defaultLocale","precisionPrefix","precisionRound","precisionFixed","linearish","nice","prestep","maxIter","newInterval","floori","offseti","field","durationSecond","durationMinute","durationHour","durationDay","durationWeek","getMilliseconds","getSeconds","getMinutes","getHours","setHours","setDate","getDate","getTimezoneOffset","weekday","getDay","sunday","monday","tuesday","wednesday","thursday","friday","saturday","utcWeekday","setUTCDate","getUTCDate","getUTCDay","setUTCHours","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcDay","setMonth","setFullYear","getFullYear","utcYear","setUTCMonth","setUTCFullYear","getUTCFullYear","localDate","H","M","S","L","utcDate","UTC","newDate","formatLocale","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","formatShortWeekday","formatWeekday","formatShortMonth","formatMonth","formatDayOfMonth","formatMicroseconds","formatYearISO","formatFullYearISO","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatPeriod","formatQuarter","formatUnixTimestamp","formatUnixTimestampSeconds","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatFullYear","formatZone","formatLiteralPercent","utcFormats","formatUTCShortWeekday","formatUTCWeekday","formatUTCShortMonth","formatUTCMonth","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCYearISO","formatUTCFullYearISO","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCPeriod","formatUTCQuarter","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","parseShortWeekday","parseWeekday","parseShortMonth","parseMonth","parseLocaleDateTime","parseDayOfMonth","parseMicroseconds","parseYear","parseFullYear","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parsePeriod","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseLocaleDate","parseLocaleTime","parseZone","parseLiteralPercent","pad","pads","newParse","Z","week","parseSpecifier","Q","V","getUTCMonth","getMonth","W","U","getUTCHours","X","utcFormat","utcParse","timeFormat","numberRe","percentRe","requoteRe","requote","dISO","z","getUTCMilliseconds","getUTCMinutes","getUTCSeconds","dow","UTCdISO","epsilon2","cosh","exp","sinh","tanh","zoom","p0","p1","ux0","uy0","w0","ux1","uy1","w1","dx","dy","d2","rho","b0","rho4","rho2","b1","coshr0","SQRT2","_1","_2","_4","zoomRho","Transform","point","applyX","applyY","location","invertX","invertY","rescaleX","rescaleY","__zoom","rootNode","yAxisGroup","xAxisGroup","barsGroup","yMax","ChartRenderer","minYTicks","xDomain","xRange","xPadding","yDomain","yRange","xAxisTicksParams","xScale","yScale","createGroup","marginLeft","yAxis","axisStyling","lines","marginBottom","xAxis","marginTop","marginRight","timeframeIndex","onTimeframeChange","_l","timeframeOptions","borderless","shaped","VBtnToggle","DEFAULT_TIMEFRAME","DEFAULT_NUM_BARS","renderer","stats","prepareDataForChart","reorgsStatsCount","renderChart","updateChart","updateData","preparedData","createRenderer","chart","SectionControls","scopedSlots","_u","rawName","obs","isInt","onIntersect","VListItemAction","feed","from_level","to_level","getReorgsFeed","reorgsFeed","isIntersecting","lastRenderableItemId","ReorgListItem","inset","vertical","orientation","Scroll","bench","itemHeight","scrollTop","__bench","__itemHeight","firstToRender","lastToRender","getLast","getChildren","genChild","getFirst","onScroll","modifiers","VDivider","VVirtualScroll","Intersect","ConnectionWidget","ChartWidget","FeedWidget","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","breakpointClass","className","breakpoint","cols","alignSelf","validator","str","cacheKey","hasColClasses","fluid","ALIGNMENT","makeProps","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","justify","alignContent","classMap","noGutters","VCol","VContainer","VRow","getBuiltIn","$stringify","numberToString","tester","low","fix","FORCED","stringify","replacer","deselectCurrent","clipboardToIE11Formatting","defaultMessage","message","copyKey","navigator","userAgent","debug","reselectPrevious","mark","success","createRange","all","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","stopPropagation","preventDefault","clipboardData","console","warn","clearData","setData","onCopy","body","selectNodeContents","successful","execCommand","err","prompt","removeRange"],"mappings":"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","file":"js/chunk-9362860e.7271de86.js","sourcesContent":["\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function installDirectives (component, directives) {\n var options = typeof component.exports === 'function'\n ? component.exports.extendOptions\n : component.options\n\n if (typeof component.exports === 'function') {\n options.directives = component.exports.options.directives\n }\n\n options.directives = options.directives || {}\n\n for (var i in directives) {\n options.directives[i] = options.directives[i] || directives[i]\n }\n}\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar UNSUPPORTED_Y = require('../internals/regexp-sticky-helpers').UNSUPPORTED_Y;\nvar classof = require('../internals/classof-raw');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar TypeError = global.TypeError;\n\n// `RegExp.prototype.sticky` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky\nif (DESCRIPTORS && UNSUPPORTED_Y) {\n defineProperty(RegExpPrototype, 'sticky', {\n configurable: true,\n get: function () {\n if (this === RegExpPrototype) return undefined;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (classof(this) === 'RegExp') {\n return !!getInternalState(this).sticky;\n }\n throw TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar regExpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = global.SyntaxError;\nvar getFlags = uncurryThis(regExpFlags);\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only propper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n result += chr + charAt(string, ++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = {};\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n chr = chr + charAt(string, ++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n if (exec(IS_NCG, stringSlice(string, index + 1))) {\n index += 2;\n ncg = true;\n }\n result += chr;\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || hasOwn(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named[named.length] = [groupname, groupid];\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = 'flags' in rawPattern ? rawPattern.flags : getFlags(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n if (dotAll) flags = replace(flags, /s/g, '');\n }\n\n rawFlags = flags;\n\n if (UNSUPPORTED_Y && 'sticky' in re1) {\n sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n if (sticky) flags = replace(flags, /y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxy(keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('ConnectionWidget')],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('ChartWidget')],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('FeedWidget')],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(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)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(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\n\r\nexport function __generator(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\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/**\n * vue-class-component v7.2.6\n * (c) 2015-present Evan You\n * @license MIT\n */\nimport Vue from 'vue';\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\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 _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\n// The rational behind the verbose Reflect-feature check below is the fact that there are polyfills\n// which add an implementation for Reflect.defineMetadata but not for Reflect.getOwnMetadataKeys.\n// Without this check consumers will encounter hard to track down runtime errors.\nfunction reflectionIsSupported() {\n return typeof Reflect !== 'undefined' && Reflect.defineMetadata && Reflect.getOwnMetadataKeys;\n}\nfunction copyReflectionMetadata(to, from) {\n forwardMetadata(to, from);\n Object.getOwnPropertyNames(from.prototype).forEach(function (key) {\n forwardMetadata(to.prototype, from.prototype, key);\n });\n Object.getOwnPropertyNames(from).forEach(function (key) {\n forwardMetadata(to, from, key);\n });\n}\n\nfunction forwardMetadata(to, from, propertyKey) {\n var metaKeys = propertyKey ? Reflect.getOwnMetadataKeys(from, propertyKey) : Reflect.getOwnMetadataKeys(from);\n metaKeys.forEach(function (metaKey) {\n var metadata = propertyKey ? Reflect.getOwnMetadata(metaKey, from, propertyKey) : Reflect.getOwnMetadata(metaKey, from);\n\n if (propertyKey) {\n Reflect.defineMetadata(metaKey, metadata, to, propertyKey);\n } else {\n Reflect.defineMetadata(metaKey, metadata, to);\n }\n });\n}\n\nvar fakeArray = {\n __proto__: []\n};\nvar hasProto = fakeArray instanceof Array;\nfunction createDecorator(factory) {\n return function (target, key, index) {\n var Ctor = typeof target === 'function' ? target : target.constructor;\n\n if (!Ctor.__decorators__) {\n Ctor.__decorators__ = [];\n }\n\n if (typeof index !== 'number') {\n index = undefined;\n }\n\n Ctor.__decorators__.push(function (options) {\n return factory(options, key, index);\n });\n };\n}\nfunction mixins() {\n for (var _len = arguments.length, Ctors = new Array(_len), _key = 0; _key < _len; _key++) {\n Ctors[_key] = arguments[_key];\n }\n\n return Vue.extend({\n mixins: Ctors\n });\n}\nfunction isPrimitive(value) {\n var type = _typeof(value);\n\n return value == null || type !== 'object' && type !== 'function';\n}\nfunction warn(message) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-class-component] ' + message);\n }\n}\n\nfunction collectDataFromConstructor(vm, Component) {\n // override _init to prevent to init as Vue instance\n var originalInit = Component.prototype._init;\n\n Component.prototype._init = function () {\n var _this = this;\n\n // proxy to actual vm\n var keys = Object.getOwnPropertyNames(vm); // 2.2.0 compat (props are no longer exposed as self properties)\n\n if (vm.$options.props) {\n for (var key in vm.$options.props) {\n if (!vm.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n }\n\n keys.forEach(function (key) {\n Object.defineProperty(_this, key, {\n get: function get() {\n return vm[key];\n },\n set: function set(value) {\n vm[key] = value;\n },\n configurable: true\n });\n });\n }; // should be acquired class property values\n\n\n var data = new Component(); // restore original _init to avoid memory leak (#209)\n\n Component.prototype._init = originalInit; // create plain data object\n\n var plainData = {};\n Object.keys(data).forEach(function (key) {\n if (data[key] !== undefined) {\n plainData[key] = data[key];\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(Component.prototype instanceof Vue) && Object.keys(plainData).length > 0) {\n warn('Component class must inherit Vue or its descendant class ' + 'when class property is used.');\n }\n }\n\n return plainData;\n}\n\nvar $internalHooks = ['data', 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeDestroy', 'destroyed', 'beforeUpdate', 'updated', 'activated', 'deactivated', 'render', 'errorCaptured', 'serverPrefetch' // 2.6\n];\nfunction componentFactory(Component) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n options.name = options.name || Component._componentTag || Component.name; // prototype props.\n\n var proto = Component.prototype;\n Object.getOwnPropertyNames(proto).forEach(function (key) {\n if (key === 'constructor') {\n return;\n } // hooks\n\n\n if ($internalHooks.indexOf(key) > -1) {\n options[key] = proto[key];\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(proto, key);\n\n if (descriptor.value !== void 0) {\n // methods\n if (typeof descriptor.value === 'function') {\n (options.methods || (options.methods = {}))[key] = descriptor.value;\n } else {\n // typescript decorated data\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return _defineProperty({}, key, descriptor.value);\n }\n });\n }\n } else if (descriptor.get || descriptor.set) {\n // computed properties\n (options.computed || (options.computed = {}))[key] = {\n get: descriptor.get,\n set: descriptor.set\n };\n }\n });\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return collectDataFromConstructor(this, Component);\n }\n }); // decorate options\n\n var decorators = Component.__decorators__;\n\n if (decorators) {\n decorators.forEach(function (fn) {\n return fn(options);\n });\n delete Component.__decorators__;\n } // find super\n\n\n var superProto = Object.getPrototypeOf(Component.prototype);\n var Super = superProto instanceof Vue ? superProto.constructor : Vue;\n var Extended = Super.extend(options);\n forwardStaticMembers(Extended, Component, Super);\n\n if (reflectionIsSupported()) {\n copyReflectionMetadata(Extended, Component);\n }\n\n return Extended;\n}\nvar reservedPropertyNames = [// Unique id\n'cid', // Super Vue constructor\n'super', // Component options that will be used by the component\n'options', 'superOptions', 'extendOptions', 'sealedOptions', // Private assets\n'component', 'directive', 'filter'];\nvar shouldIgnore = {\n prototype: true,\n arguments: true,\n callee: true,\n caller: true\n};\n\nfunction forwardStaticMembers(Extended, Original, Super) {\n // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable\n Object.getOwnPropertyNames(Original).forEach(function (key) {\n // Skip the properties that should not be overwritten\n if (shouldIgnore[key]) {\n return;\n } // Some browsers does not allow reconfigure built-in properties\n\n\n var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key);\n\n if (extendedDescriptor && !extendedDescriptor.configurable) {\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(Original, key); // If the user agent does not support `__proto__` or its family (IE <= 10),\n // the sub class properties may be inherited properties from the super class in TypeScript.\n // We need to exclude such properties to prevent to overwrite\n // the component options object which stored on the extended constructor (See #192).\n // If the value is a referenced value (object or function),\n // we can check equality of them and exclude it if they have the same reference.\n // If it is a primitive value, it will be forwarded for safety.\n\n if (!hasProto) {\n // Only `cid` is explicitly exluded from property forwarding\n // because we cannot detect whether it is a inherited property or not\n // on the no `__proto__` environment even though the property is reserved.\n if (key === 'cid') {\n return;\n }\n\n var superDescriptor = Object.getOwnPropertyDescriptor(Super, key);\n\n if (!isPrimitive(descriptor.value) && superDescriptor && superDescriptor.value === descriptor.value) {\n return;\n }\n } // Warn if the users manually declare reserved properties\n\n\n if (process.env.NODE_ENV !== 'production' && reservedPropertyNames.indexOf(key) >= 0) {\n warn(\"Static property name '\".concat(key, \"' declared on class '\").concat(Original.name, \"' \") + 'conflicts with reserved property name of Vue internal. ' + 'It may cause unexpected behavior of the component. Consider renaming the property.');\n }\n\n Object.defineProperty(Extended, key, descriptor);\n });\n}\n\nfunction Component(options) {\n if (typeof options === 'function') {\n return componentFactory(options);\n }\n\n return function (Component) {\n return componentFactory(Component, options);\n };\n}\n\nComponent.registerHooks = function registerHooks(keys) {\n $internalHooks.push.apply($internalHooks, _toConsumableArray(keys));\n};\n\nexport default Component;\nexport { createDecorator, mixins };\n","/** @see {@link https://github.com/vuejs/vue-class-component/blob/master/src/reflect.ts} */\nvar reflectMetadataIsSupported = typeof Reflect !== 'undefined' && typeof Reflect.getMetadata !== 'undefined';\nexport function applyMetadata(options, target, key) {\n if (reflectMetadataIsSupported) {\n if (!Array.isArray(options) &&\n typeof options !== 'function' &&\n !options.hasOwnProperty('type') &&\n typeof options.type === 'undefined') {\n var type = Reflect.getMetadata('design:type', target, key);\n if (type !== Object) {\n options.type = type;\n }\n }\n }\n}\n","import { createDecorator } from 'vue-class-component';\nimport { applyMetadata } from '../helpers/metadata';\n/**\n * decorator of a prop\n * @param options the options for the prop\n * @return PropertyDecorator | void\n */\nexport function Prop(options) {\n if (options === void 0) { options = {}; }\n return function (target, key) {\n applyMetadata(options, target, key);\n createDecorator(function (componentOptions, k) {\n ;\n (componentOptions.props || (componentOptions.props = {}))[k] = options;\n })(target, key);\n };\n}\n","import { createDecorator } from 'vue-class-component';\n/**\n * decorator of a ref prop\n * @param refKey the ref key defined in template\n */\nexport function Ref(refKey) {\n return createDecorator(function (options, key) {\n options.computed = options.computed || {};\n options.computed[key] = {\n cache: false,\n get: function () {\n return this.$refs[refKey || key];\n },\n };\n });\n}\n","import { createDecorator } from 'vue-class-component';\n/**\n * decorator for capturings v-model binding to component\n * @param options the options for the prop\n */\nexport function VModel(options) {\n if (options === void 0) { options = {}; }\n var valueKey = 'value';\n return createDecorator(function (componentOptions, key) {\n ;\n (componentOptions.props || (componentOptions.props = {}))[valueKey] = options;\n (componentOptions.computed || (componentOptions.computed = {}))[key] = {\n get: function () {\n return this[valueKey];\n },\n set: function (value) {\n this.$emit('input', value);\n },\n };\n });\n}\n","import { createDecorator } from 'vue-class-component';\n/**\n * decorator of a watch function\n * @param path the path or the expression to observe\n * @param WatchOption\n * @return MethodDecorator\n */\nexport function Watch(path, options) {\n if (options === void 0) { options = {}; }\n var _a = options.deep, deep = _a === void 0 ? false : _a, _b = options.immediate, immediate = _b === void 0 ? false : _b;\n return createDecorator(function (componentOptions, handler) {\n if (typeof componentOptions.watch !== 'object') {\n componentOptions.watch = Object.create(null);\n }\n var watch = componentOptions.watch;\n if (typeof watch[path] === 'object' && !Array.isArray(watch[path])) {\n watch[path] = [watch[path]];\n }\n else if (typeof watch[path] === 'undefined') {\n watch[path] = [];\n }\n watch[path].push({ handler: handler, deep: deep, immediate: immediate });\n });\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{attrs:{\"outlined\":\"\"}},[_c('div',{staticClass:\"text-overline px-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('connection.title'))+\" \")]),_c('SectionStatus',{attrs:{\"synced\":_vm.isSynced}}),(!_vm.headBlock || !_vm.reorgsCount)?_c('v-skeleton-loader',{attrs:{\"type\":\"list-item-three-line\"}}):_c('SectionHeadBlock',{attrs:{\"date\":_vm.headDate,\"level\":_vm.headBlock.level,\"reorgs-count\":_vm.reorgsCount}}),(!_vm.headBlock)?_c('v-skeleton-loader',{staticClass:\"px-4 pb-4\",attrs:{\"type\":\"button\"}}):_c('SectionActions',{attrs:{\"hash\":_vm.headBlock.hash,\"show-resync\":_vm.showRecyncBtn}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card-actions',{staticClass:\"pa-4\"},[_c('v-btn',{attrs:{\"depressed\":\"\"},on:{\"click\":_vm.copyHash}},[_vm._v(\" \"+_vm._s(_vm.$t('connection.actions.copyHash'))+\" \")]),(_vm.showResync)?_c('v-btn',{attrs:{\"depressed\":\"\",\"loading\":_vm.isLoading,\"color\":\"primary\"},on:{\"click\":_vm.resync}},[_vm._v(\" \"+_vm._s(_vm.$t('connection.actions.resync'))+\" \")]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from 'vue-property-decorator'\nimport copy from 'copy-to-clipboard'\n\n@Component\nexport default class SectionActions extends Vue {\n @Prop({\n type: String,\n required: true,\n }) readonly hash!: string\n\n @Prop({\n type: Boolean,\n required: true,\n }) readonly showResync!: boolean\n\n private isLoading = false\n\n private copyHash (): void {\n copy(this.hash)\n }\n\n private resync (): void {\n throw new Error('RESYNC NOT IMPLEMENTED')\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SectionActions.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SectionActions.vue?vue&type=script&lang=ts&\"","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable = VueConstructor : {\n register (...props: any[]): void\n unregister (self: any): void\n }\n}>\n\nexport function inject<\n T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable {\n const defaultImpl = child && parent ? {\n register: generateWarning(child, parent),\n unregister: generateWarning(child, parent),\n } : null\n\n return Vue.extend({\n name: 'registrable-inject',\n\n inject: {\n [namespace]: {\n default: defaultImpl,\n },\n },\n })\n}\n\nexport function provide (namespace: string, self = false) {\n return Vue.extend({\n name: 'registrable-provide',\n\n provide (): object {\n return {\n [namespace]: self ? this : {\n register: (this as any).register,\n unregister: (this as any).unregister,\n },\n }\n },\n })\n}\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable = VueConstructor> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (): void\n}>\n\nexport function factory (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable {\n return RegistrableInject(namespace, child, parent).extend({\n name: 'groupable',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n } as any as PropValidator,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n groupClasses (): object {\n if (!this.activeClass) return {}\n\n return {\n [this.activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeDestroy () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle () {\n this.$emit('change')\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { rippleStop?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n\n if (!element || !element._ripple || element._ripple.touched || e.rippleStop) return\n\n // Don't allow the event to trigger ripples on any other elements\n e.rippleStop = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple === true) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'routable',\n\n directives: {\n Ripple,\n },\n\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean as PropType,\n default: undefined,\n },\n exactPath: Boolean,\n exactActiveClass: String,\n link: Boolean,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null,\n },\n tag: String,\n target: String,\n },\n\n data: () => ({\n isActive: false,\n proxyClass: '',\n }),\n\n computed: {\n classes (): object {\n const classes: Record = {}\n\n if (this.to) return classes\n\n if (this.activeClass) classes[this.activeClass] = this.isActive\n if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n return classes\n },\n computedRipple (): RippleOptions | boolean {\n return this.ripple ?? (!this.disabled && this.isClickable)\n },\n isClickable (): boolean {\n if (this.disabled) return false\n\n return Boolean(\n this.isLink ||\n this.$listeners.click ||\n this.$listeners['!click'] ||\n this.$attrs.tabindex\n )\n },\n isLink (): boolean {\n return this.to || this.href || this.link\n },\n styles: () => ({}),\n },\n\n watch: {\n $route: 'onRouteChange',\n },\n\n mounted () {\n this.onRouteChange()\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n },\n generateRouteLink () {\n let exact = this.exact\n let tag\n\n const data: VNodeData = {\n attrs: {\n tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n },\n class: this.classes,\n style: this.styles,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple,\n }],\n [this.to ? 'nativeOn' : 'on']: {\n ...this.$listeners,\n click: this.click,\n },\n ref: 'link',\n }\n\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' ||\n (this.to === Object(this.to) && this.to.path === '/')\n }\n\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n let activeClass = this.activeClass\n let exactActiveClass = this.exactActiveClass || activeClass\n\n if (this.proxyClass) {\n activeClass = `${activeClass} ${this.proxyClass}`.trim()\n exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n }\n\n tag = this.nuxt ? 'nuxt-link' : 'router-link'\n Object.assign(data.props, {\n to: this.to,\n exact,\n exactPath: this.exactPath,\n activeClass,\n exactActiveClass,\n append: this.append,\n replace: this.replace,\n })\n } else {\n tag = (this.href && 'a') || this.tag || 'div'\n\n if (tag === 'a' && this.href) data.attrs!.href = this.href\n }\n\n if (this.target) data.attrs!.target = this.target\n\n return { tag, data }\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link || !this.$route) return\n const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n const exactActiveClass = `${this.exactActiveClass} ${this.proxyClass || ''}`.trim() || activeClass\n\n const path = '_vnode.data.class.' + (this.exact ? exactActiveClass : activeClass)\n\n this.$nextTick(() => {\n /* istanbul ignore else */\n if (!getObjectValueByPath(this.$refs.link, path) === this.isActive) {\n this.toggle()\n }\n })\n },\n toggle () {\n this.isActive = !this.isActive\n },\n },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'sizeable',\n\n props: {\n large: Boolean,\n small: Boolean,\n xLarge: Boolean,\n xSmall: Boolean,\n },\n\n computed: {\n medium (): boolean {\n return Boolean(\n !this.xSmall &&\n !this.small &&\n !this.large &&\n !this.xLarge\n )\n },\n sizeableClasses (): object {\n return {\n 'v-size--x-small': this.xSmall,\n 'v-size--small': this.small,\n 'v-size--default': this.medium,\n 'v-size--large': this.large,\n 'v-size--x-large': this.xLarge,\n }\n },\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n group: {\n type: Boolean,\n default: false,\n },\n hideOnLeave: {\n type: Boolean,\n default: false,\n },\n leaveAbsolute: {\n type: Boolean,\n default: false,\n },\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n render (h, context): VNode {\n const tag = `transition${context.props.group ? '-group' : ''}`\n const data: VNodeData = {\n props: {\n name,\n mode: context.props.mode,\n },\n on: {\n beforeEnter (el: HTMLElement) {\n el.style.transformOrigin = context.props.origin\n el.style.webkitTransformOrigin = context.props.origin\n },\n },\n }\n\n if (context.props.leaveAbsolute) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = offsetTop + 'px'\n el.style.left = offsetLeft + 'px'\n el.style.width = offsetWidth + 'px'\n el.style.height = offsetHeight + 'px'\n })\n data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n if (el && el._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n })\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n el.style.setProperty('display', 'none', 'important')\n })\n }\n\n return h(tag, mergeData(context.data, data), context.children)\n },\n }\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n): FunctionalComponentOptions {\n return {\n name,\n\n functional: true,\n\n props: {\n mode: {\n type: String,\n default: mode,\n },\n },\n\n render (h, context): VNode {\n return h(\n 'transition',\n mergeData(context.data, {\n props: { name },\n on: functions,\n }),\n context.children\n )\n },\n }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VDialogTopTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","import Vue, { VueConstructor } from 'vue'\n\nexport type Proxyable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Proxyable\nexport function factory (\n prop = 'value',\n event = 'change'\n) {\n return Vue.extend({\n name: 'proxyable',\n\n model: {\n prop,\n event,\n },\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n this.$emit(event, val)\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n directives: { intersect },\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n isVisible: true,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n 'v-progress-linear--visible': this.isVisible,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'loadable',\n\n props: {\n loading: {\n type: [Boolean, String],\n default: false,\n },\n loaderHeight: {\n type: [Number, String],\n default: 2,\n },\n },\n\n methods: {\n genProgress (): VNode | VNode[] | null {\n if (this.loading === false) return null\n\n return this.$slots.progress || this.$createElement(VProgressLinear, {\n props: {\n absolute: true,\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n height: this.loaderHeight,\n indeterminate: true,\n },\n })\n },\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import { render, staticRenderFns } from \"./SectionActions.vue?vue&type=template&id=86f401ce&\"\nimport script from \"./SectionActions.vue?vue&type=script&lang=ts&\"\nexport * from \"./SectionActions.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\ninstallComponents(component, {VBtn,VCardActions})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-card-title',{staticClass:\"text-capitalize\"},[_vm._v(\" \"+_vm._s(_vm.status.label)+\" \"),_c('v-badge',{staticClass:\"pl-2\",attrs:{\"inline\":\"\",\"color\":_vm.status.color}})],1),_c('v-card-subtitle',[_vm._v(\" \"+_vm._s(_vm.status.caption)+\" \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from 'vue-property-decorator'\n\ntype StatusProps = {\n label: string;\n color: string;\n caption: string;\n}\n\n@Component\nexport default class SectionStatus\n extends Vue {\n @Prop({\n type: Boolean,\n required: true,\n }) readonly synced!: boolean\n\n get syncedProps (): StatusProps {\n return {\n label: this.$t('connection.status.synced.label').toString(),\n color: 'green',\n caption: this.$t('connection.status.synced.caption').toString(),\n }\n }\n\n get notSyncedProps (): StatusProps {\n return {\n label: this.$t('connection.status.notSynced.label').toString(),\n color: 'red',\n caption: this.$t('connection.status.notSynced.caption').toString(),\n }\n }\n\n get status (): StatusProps {\n return this.synced ? this.syncedProps : this.notSyncedProps\n }\n}\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SectionStatus.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SectionStatus.vue?vue&type=script&lang=ts&\"","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'transitionable',\n\n props: {\n mode: String,\n origin: String,\n transition: String,\n },\n})\n","// Styles\nimport './VBadge.sass'\n\n// Components\nimport VIcon from '../VIcon/VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from '../../mixins/toggleable'\nimport Transitionable from '../../mixins/transitionable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport {\n convertToUnit,\n getSlot,\n} from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Colorable,\n PositionableFactory(['left', 'bottom']),\n Themeable,\n Toggleable,\n Transitionable,\n/* @vue/component */\n).extend({\n name: 'v-badge',\n\n props: {\n avatar: Boolean,\n bordered: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n content: { required: false },\n dot: Boolean,\n label: {\n type: String,\n default: '$vuetify.badge',\n },\n icon: String,\n inline: Boolean,\n offsetX: [Number, String],\n offsetY: [Number, String],\n overlap: Boolean,\n tile: Boolean,\n transition: {\n type: String,\n default: 'scale-rotate-transition',\n },\n value: { default: true },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-badge--avatar': this.avatar,\n 'v-badge--bordered': this.bordered,\n 'v-badge--bottom': this.bottom,\n 'v-badge--dot': this.dot,\n 'v-badge--icon': this.icon != null,\n 'v-badge--inline': this.inline,\n 'v-badge--left': this.left,\n 'v-badge--overlap': this.overlap,\n 'v-badge--tile': this.tile,\n ...this.themeClasses,\n }\n },\n computedBottom (): string {\n return this.bottom ? 'auto' : this.computedYOffset\n },\n computedLeft (): string {\n if (this.isRtl) {\n return this.left ? this.computedXOffset : 'auto'\n }\n\n return this.left ? 'auto' : this.computedXOffset\n },\n computedRight (): string {\n if (this.isRtl) {\n return this.left ? 'auto' : this.computedXOffset\n }\n\n return !this.left ? 'auto' : this.computedXOffset\n },\n computedTop (): string {\n return this.bottom ? this.computedYOffset : 'auto'\n },\n computedXOffset (): string {\n return this.calcPosition(this.offsetX)\n },\n computedYOffset (): string {\n return this.calcPosition(this.offsetY)\n },\n isRtl (): boolean {\n return this.$vuetify.rtl\n },\n // Default fallback if offsetX\n // or offsetY are undefined.\n offset (): number {\n if (this.overlap) return this.dot ? 8 : 12\n return this.dot ? 2 : 4\n },\n styles (): object {\n if (this.inline) return {}\n\n return {\n bottom: this.computedBottom,\n left: this.computedLeft,\n right: this.computedRight,\n top: this.computedTop,\n }\n },\n },\n\n methods: {\n calcPosition (offset: string | number): string {\n return `calc(100% - ${convertToUnit(offset || this.offset)})`\n },\n genBadge () {\n const lang = this.$vuetify.lang\n const label = this.$attrs['aria-label'] || lang.t(this.label)\n\n const data = this.setBackgroundColor(this.color, {\n staticClass: 'v-badge__badge',\n style: this.styles,\n attrs: {\n 'aria-atomic': this.$attrs['aria-atomic'] || 'true',\n 'aria-label': label,\n 'aria-live': this.$attrs['aria-live'] || 'polite',\n title: this.$attrs.title,\n role: this.$attrs.role || 'status',\n },\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n })\n\n const badge = this.$createElement('span', data, [this.genBadgeContent()])\n\n if (!this.transition) return badge\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n mode: this.mode,\n },\n }, [badge])\n },\n genBadgeContent () {\n // Dot prop shows no content\n if (this.dot) return undefined\n\n const slot = getSlot(this, 'badge')\n\n if (slot) return slot\n if (this.content) return String(this.content)\n if (this.icon) return this.$createElement(VIcon, this.icon)\n\n return undefined\n },\n genBadgeWrapper () {\n return this.$createElement('span', {\n staticClass: 'v-badge__wrapper',\n }, [this.genBadge()])\n },\n },\n\n render (h): VNode {\n const badge = [this.genBadgeWrapper()]\n const children = [getSlot(this)]\n const {\n 'aria-atomic': _x,\n 'aria-label': _y,\n 'aria-live': _z,\n role,\n title,\n ...attrs\n } = this.$attrs\n\n if (this.inline && this.left) children.unshift(badge)\n else children.push(badge)\n\n return h('span', {\n staticClass: 'v-badge',\n attrs,\n class: this.classes,\n }, children)\n },\n})\n","import { render, staticRenderFns } from \"./SectionStatus.vue?vue&type=template&id=6ce1642c&\"\nimport script from \"./SectionStatus.vue?vue&type=script&lang=ts&\"\nexport * from \"./SectionStatus.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBadge } from 'vuetify/lib/components/VBadge';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\ninstallComponents(component, {VBadge,VCardSubtitle,VCardTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-list-item',{attrs:{\"three-line\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('connection.head.headBlock')))]),_c('v-list-item-subtitle',[_vm._v(\" \"+_vm._s(_vm.$t('connection.head.generationTime'))+\" \"),_c('span',{staticClass:\"font-weight-bold pl-2\"},[_vm._v(\" \"+_vm._s(_vm.formattedDate)+\" \")])]),_c('v-list-item-subtitle',[_vm._v(\" \"+_vm._s(_vm.$t('connection.head.level'))+\" \"),_c('span',{staticClass:\"font-weight-bold pl-2\"},[_vm._v(\" \"+_vm._s(_vm.level)+\" \")])]),_c('v-list-item-subtitle',[_vm._v(\" \"+_vm._s(_vm.$t('connection.head.incidents'))+\" \"),_c('span',{staticClass:\"font-weight-bold pl-2\"},[_vm._v(\" \"+_vm._s(_vm.formattedReorgs)+\" \")])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import i18n from '@/i18n'\n\n// TODO: setup as part of i18n date-time formatter\n/**\n * Provides a common Intl.DateTimeFormat preset\n */\nexport const dateFormatter = new Intl.DateTimeFormat(\n i18n.locale,\n {\n year: '2-digit',\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n },\n)\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from 'vue-property-decorator'\nimport { dateFormatter } from '@/utils/dateUtils'\nimport SectionActions from './SectionActions.vue'\nimport SectionStatus from './SectionStatus.vue'\nimport { ReorgsCountLatest } from '@/store/modules/reorgs/types'\n\n@Component({\n components: {\n SectionActions,\n SectionStatus,\n },\n})\nexport default class SectionHeadBlock extends Vue {\n @Prop({\n type: Date,\n required: true,\n }) readonly date!: Date\n\n @Prop({\n type: Number,\n required: true,\n }) readonly level!: number\n\n // TODO: refactor to either using class or use custom validator\n @Prop({\n type: Object,\n required: true,\n }) readonly reorgsCount!: ReorgsCountLatest\n\n get formattedDate (): string {\n return dateFormatter.format(this.date)\n }\n\n get formattedReorgs (): string {\n const { h, d, w } = this.reorgsCount\n return [h, d, w].join(' / ')\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SectionHeadBlock.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SectionHeadBlock.vue?vue&type=script&lang=ts&\"","// Styles\nimport './VListItem.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Routable from '../../mixins/routable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\n\n// Directives\nimport Ripple from '../../directives/ripple'\n\n// Utilities\nimport { keyCodes } from './../../util/helpers'\nimport { ExtractVue } from './../../util/mixins'\nimport { removed } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode } from 'vue'\nimport { PropType, PropValidator } from 'vue/types/options'\n\nconst baseMixins = mixins(\n Colorable,\n Routable,\n Themeable,\n GroupableFactory('listItemGroup'),\n ToggleableFactory('inputValue')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n isInGroup: boolean\n isInList: boolean\n isInMenu: boolean\n isInNav: boolean\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-list-item',\n\n directives: {\n Ripple,\n },\n\n inject: {\n isInGroup: {\n default: false,\n },\n isInList: {\n default: false,\n },\n isInMenu: {\n default: false,\n },\n isInNav: {\n default: false,\n },\n },\n\n inheritAttrs: false,\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.listItemGroup) return ''\n\n return this.listItemGroup.activeClass\n },\n } as any as PropValidator,\n dense: Boolean,\n inactive: Boolean,\n link: Boolean,\n selectable: {\n type: Boolean,\n },\n tag: {\n type: String,\n default: 'div',\n },\n threeLine: Boolean,\n twoLine: Boolean,\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-list-item--active',\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-list-item': true,\n ...Routable.options.computed.classes.call(this),\n 'v-list-item--dense': this.dense,\n 'v-list-item--disabled': this.disabled,\n 'v-list-item--link': this.isClickable && !this.inactive,\n 'v-list-item--selectable': this.selectable,\n 'v-list-item--three-line': this.threeLine,\n 'v-list-item--two-line': this.twoLine,\n ...this.themeClasses,\n }\n },\n isClickable (): boolean {\n return Boolean(\n Routable.options.computed.isClickable.call(this) ||\n this.listItemGroup\n )\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('avatar')) {\n removed('avatar', this)\n }\n },\n\n methods: {\n click (e: MouseEvent | KeyboardEvent) {\n if (e.detail) this.$el.blur()\n\n this.$emit('click', e)\n\n this.to || this.toggle()\n },\n genAttrs () {\n const attrs: Record = {\n 'aria-disabled': this.disabled ? true : undefined,\n tabindex: this.isClickable && !this.disabled ? 0 : -1,\n ...this.$attrs,\n }\n\n if (this.$attrs.hasOwnProperty('role')) {\n // do nothing, role already provided\n } else if (this.isInNav) {\n // do nothing, role is inherit\n } else if (this.isInGroup) {\n attrs.role = 'option'\n attrs['aria-selected'] = String(this.isActive)\n } else if (this.isInMenu) {\n attrs.role = this.isClickable ? 'menuitem' : undefined\n attrs.id = attrs.id || `list-item-${this._uid}`\n } else if (this.isInList) {\n attrs.role = 'listitem'\n }\n\n return attrs\n },\n toggle () {\n if (this.to && this.inputValue === undefined) {\n this.isActive = !this.isActive\n }\n this.$emit('change')\n },\n },\n\n render (h): VNode {\n let { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n ...this.genAttrs(),\n }\n data[this.to ? 'nativeOn' : 'on'] = {\n ...data[this.to ? 'nativeOn' : 'on'],\n keydown: (e: KeyboardEvent) => {\n /* istanbul ignore else */\n if (e.keyCode === keyCodes.enter) this.click(e)\n\n this.$emit('keydown', e)\n },\n }\n\n if (this.inactive) tag = 'div'\n if (this.inactive && this.to) {\n data.on = data.nativeOn\n delete data.nativeOn\n }\n\n const children = this.$scopedSlots.default\n ? this.$scopedSlots.default({\n active: this.isActive,\n toggle: this.toggle,\n })\n : this.$slots.default\n\n return h(tag, this.isActive ? this.setTextColor(this.color, data) : data, children)\n },\n})\n","import VIcon from './VIcon'\n\nexport { VIcon }\nexport default VIcon\n","// Styles\nimport './VList.sass'\nimport VListGroup from './VListGroup'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\n\n// Types\nimport { VNode } from 'vue'\n\ntype VListGroupInstance = InstanceType\n\ninterface options extends InstanceType {\n isInMenu: boolean\n isInNav: boolean\n}\n\n/* @vue/component */\nexport default VSheet.extend().extend({\n name: 'v-list',\n\n provide (): object {\n return {\n isInList: true,\n list: this,\n }\n },\n\n inject: {\n isInMenu: {\n default: false,\n },\n isInNav: {\n default: false,\n },\n },\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n expand: Boolean,\n flat: Boolean,\n nav: Boolean,\n rounded: Boolean,\n subheader: Boolean,\n threeLine: Boolean,\n twoLine: Boolean,\n },\n\n data: () => ({\n groups: [] as VListGroupInstance[],\n }),\n\n computed: {\n classes (): object {\n return {\n ...VSheet.options.computed.classes.call(this),\n 'v-list--dense': this.dense,\n 'v-list--disabled': this.disabled,\n 'v-list--flat': this.flat,\n 'v-list--nav': this.nav,\n 'v-list--rounded': this.rounded,\n 'v-list--subheader': this.subheader,\n 'v-list--two-line': this.twoLine,\n 'v-list--three-line': this.threeLine,\n }\n },\n },\n\n methods: {\n register (content: VListGroupInstance) {\n this.groups.push(content)\n },\n unregister (content: VListGroupInstance) {\n const index = this.groups.findIndex(g => g._uid === content._uid)\n\n if (index > -1) this.groups.splice(index, 1)\n },\n listClick (uid: number) {\n if (this.expand) return\n\n for (const group of this.groups) {\n group.toggle(uid)\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-list',\n class: this.classes,\n style: this.styles,\n attrs: {\n role: this.isInNav || this.isInMenu ? undefined : 'list',\n ...this.attrs$,\n },\n }\n\n return h(this.tag, this.setBackgroundColor(this.color, data), [this.$slots.default])\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-list-item-icon',\n\n functional: true,\n\n render (h, { data, children }): VNode {\n data.staticClass = (`v-list-item__icon ${data.staticClass || ''}`).trim()\n\n return h('div', data, children)\n },\n})\n","// Utilities\nimport { removed } from '../../util/console'\n\n// Types\nimport Vue, { VNode } from 'vue'\ninterface Toggleable extends Vue {\n isActive?: boolean\n}\n\n/**\n * Bootable\n * @mixin\n *\n * Used to add lazy content functionality to components\n * Looks for change in \"isActive\" to automatically boot\n * Otherwise can be set manually\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'bootable',\n\n props: {\n eager: Boolean,\n },\n\n data: () => ({\n isBooted: false,\n }),\n\n computed: {\n hasContent (): boolean | undefined {\n return this.isBooted || this.eager || this.isActive\n },\n },\n\n watch: {\n isActive () {\n this.isBooted = true\n },\n },\n\n created () {\n /* istanbul ignore next */\n if ('lazy' in this.$attrs) {\n removed('lazy', this)\n }\n },\n\n methods: {\n showLazyContent (content?: () => VNode[]): VNode[] {\n return (this.hasContent && content) ? content() : [this.$createElement()]\n },\n },\n})\n","// Styles\nimport './VListGroup.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VList from './VList'\nimport VListItem from './VListItem'\nimport VListItemIcon from './VListItemIcon'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Bootable from '../../mixins/bootable'\nimport Colorable from '../../mixins/colorable'\nimport Toggleable from '../../mixins/toggleable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Transitions\nimport { VExpandTransition } from '../transitions'\n\n// Utils\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport { Route } from 'vue-router'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Bootable,\n Colorable,\n RegistrableInject('list'),\n Toggleable\n)\n\ntype VListInstance = InstanceType\n\ninterface options extends ExtractVue {\n list: VListInstance\n $refs: {\n group: HTMLElement\n }\n $route: Route\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-list-group',\n\n directives: { ripple },\n\n props: {\n activeClass: {\n type: String,\n default: '',\n },\n appendIcon: {\n type: String,\n default: '$expand',\n },\n color: {\n type: String,\n default: 'primary',\n },\n disabled: Boolean,\n group: [String, RegExp],\n noAction: Boolean,\n prependIcon: String,\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n subGroup: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-list-group--active': this.isActive,\n 'v-list-group--disabled': this.disabled,\n 'v-list-group--no-action': this.noAction,\n 'v-list-group--sub-group': this.subGroup,\n }\n },\n },\n\n watch: {\n isActive (val: boolean) {\n /* istanbul ignore else */\n if (!this.subGroup && val) {\n this.list && this.list.listClick(this._uid)\n }\n },\n $route: 'onRouteChange',\n },\n\n created () {\n this.list && this.list.register(this)\n\n if (this.group &&\n this.$route &&\n this.value == null\n ) {\n this.isActive = this.matchRoute(this.$route.path)\n }\n },\n\n beforeDestroy () {\n this.list && this.list.unregister(this)\n },\n\n methods: {\n click (e: Event) {\n if (this.disabled) return\n\n this.isBooted = true\n\n this.$emit('click', e)\n this.$nextTick(() => (this.isActive = !this.isActive))\n },\n genIcon (icon: string | false): VNode {\n return this.$createElement(VIcon, icon)\n },\n genAppendIcon (): VNode | null {\n const icon = !this.subGroup ? this.appendIcon : false\n\n if (!icon && !this.$slots.appendIcon) return null\n\n return this.$createElement(VListItemIcon, {\n staticClass: 'v-list-group__header__append-icon',\n }, [\n this.$slots.appendIcon || this.genIcon(icon),\n ])\n },\n genHeader (): VNode {\n return this.$createElement(VListItem, {\n staticClass: 'v-list-group__header',\n attrs: {\n 'aria-expanded': String(this.isActive),\n role: 'button',\n },\n class: {\n [this.activeClass]: this.isActive,\n },\n props: {\n inputValue: this.isActive,\n },\n directives: [{\n name: 'ripple',\n value: this.ripple,\n }],\n on: {\n ...this.listeners$,\n click: this.click,\n },\n }, [\n this.genPrependIcon(),\n this.$slots.activator,\n this.genAppendIcon(),\n ])\n },\n genItems (): VNode[] {\n return this.showLazyContent(() => [\n this.$createElement('div', {\n staticClass: 'v-list-group__items',\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }, getSlot(this)),\n ])\n },\n genPrependIcon (): VNode | null {\n const icon = this.subGroup && this.prependIcon == null\n ? '$subgroup'\n : this.prependIcon\n\n if (!icon && !this.$slots.prependIcon) return null\n\n return this.$createElement(VListItemIcon, {\n staticClass: 'v-list-group__header__prepend-icon',\n }, [\n this.$slots.prependIcon || this.genIcon(icon),\n ])\n },\n onRouteChange (to: Route) {\n /* istanbul ignore if */\n if (!this.group) return\n\n const isActive = this.matchRoute(to.path)\n\n /* istanbul ignore else */\n if (isActive && this.isActive !== isActive) {\n this.list && this.list.listClick(this._uid)\n }\n\n this.isActive = isActive\n },\n toggle (uid: number) {\n const isActive = this._uid === uid\n\n if (isActive) this.isBooted = true\n this.$nextTick(() => (this.isActive = isActive))\n },\n matchRoute (to: string) {\n return to.match(this.group) !== null\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.isActive && this.color, {\n staticClass: 'v-list-group',\n class: this.classes,\n }), [\n this.genHeader(),\n h(VExpandTransition, this.genItems()),\n ])\n },\n})\n","// Styles\nimport './VItemGroup.sass'\n\n// Mixins\nimport Groupable from '../../mixins/groupable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue/types'\n\nexport type GroupableInstance = InstanceType & {\n id?: string\n to?: any\n value?: any\n }\n\nexport const BaseItemGroup = mixins(\n Proxyable,\n Themeable\n).extend({\n name: 'base-item-group',\n\n props: {\n activeClass: {\n type: String,\n default: 'v-item--active',\n },\n mandatory: Boolean,\n max: {\n type: [Number, String],\n default: null,\n },\n multiple: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n data () {\n return {\n // As long as a value is defined, show it\n // Otherwise, check if multiple\n // to determine which default to provide\n internalLazyValue: this.value !== undefined\n ? this.value\n : this.multiple ? [] : undefined,\n items: [] as GroupableInstance[],\n }\n },\n\n computed: {\n classes (): Record {\n return {\n 'v-item-group': true,\n ...this.themeClasses,\n }\n },\n selectedIndex (): number {\n return (this.selectedItem && this.items.indexOf(this.selectedItem)) || -1\n },\n selectedItem (): GroupableInstance | undefined {\n if (this.multiple) return undefined\n\n return this.selectedItems[0]\n },\n selectedItems (): GroupableInstance[] {\n return this.items.filter((item, index) => {\n return this.toggleMethod(this.getValue(item, index))\n })\n },\n selectedValues (): any[] {\n if (this.internalValue == null) return []\n\n return Array.isArray(this.internalValue)\n ? this.internalValue\n : [this.internalValue]\n },\n toggleMethod (): (v: any) => boolean {\n if (!this.multiple) {\n return (v: any) => this.internalValue === v\n }\n\n const internalValue = this.internalValue\n if (Array.isArray(internalValue)) {\n return (v: any) => internalValue.includes(v)\n }\n\n return () => false\n },\n },\n\n watch: {\n internalValue: 'updateItemsState',\n items: 'updateItemsState',\n },\n\n created () {\n if (this.multiple && !Array.isArray(this.internalValue)) {\n consoleWarn('Model must be bound to an array if the multiple property is true.', this)\n }\n },\n\n methods: {\n\n genData (): object {\n return {\n class: this.classes,\n }\n },\n getValue (item: GroupableInstance, i: number): unknown {\n return item.value == null || item.value === ''\n ? i\n : item.value\n },\n onClick (item: GroupableInstance) {\n this.updateInternalValue(\n this.getValue(item, this.items.indexOf(item))\n )\n },\n register (item: GroupableInstance) {\n const index = this.items.push(item) - 1\n\n item.$on('change', () => this.onClick(item))\n\n // If no value provided and mandatory,\n // assign first registered item\n if (this.mandatory && !this.selectedValues.length) {\n this.updateMandatory()\n }\n\n this.updateItem(item, index)\n },\n unregister (item: GroupableInstance) {\n if (this._isDestroyed) return\n\n const index = this.items.indexOf(item)\n const value = this.getValue(item, index)\n\n this.items.splice(index, 1)\n\n const valueIndex = this.selectedValues.indexOf(value)\n\n // Items is not selected, do nothing\n if (valueIndex < 0) return\n\n // If not mandatory, use regular update process\n if (!this.mandatory) {\n return this.updateInternalValue(value)\n }\n\n // Remove the value\n if (this.multiple && Array.isArray(this.internalValue)) {\n this.internalValue = this.internalValue.filter(v => v !== value)\n } else {\n this.internalValue = undefined\n }\n\n // If mandatory and we have no selection\n // add the last item as value\n /* istanbul ignore else */\n if (!this.selectedItems.length) {\n this.updateMandatory(true)\n }\n },\n updateItem (item: GroupableInstance, index: number) {\n const value = this.getValue(item, index)\n\n item.isActive = this.toggleMethod(value)\n },\n // https://github.com/vuetifyjs/vuetify/issues/5352\n updateItemsState () {\n this.$nextTick(() => {\n if (this.mandatory &&\n !this.selectedItems.length\n ) {\n return this.updateMandatory()\n }\n\n // TODO: Make this smarter so it\n // doesn't have to iterate every\n // child in an update\n this.items.forEach(this.updateItem)\n })\n },\n updateInternalValue (value: any) {\n this.multiple\n ? this.updateMultiple(value)\n : this.updateSingle(value)\n },\n updateMandatory (last?: boolean) {\n if (!this.items.length) return\n\n const items = this.items.slice()\n\n if (last) items.reverse()\n\n const item = items.find(item => !item.disabled)\n\n // If no tabs are available\n // aborts mandatory value\n if (!item) return\n\n const index = this.items.indexOf(item)\n\n this.updateInternalValue(\n this.getValue(item, index)\n )\n },\n updateMultiple (value: any) {\n const defaultValue = Array.isArray(this.internalValue)\n ? this.internalValue\n : []\n const internalValue = defaultValue.slice()\n const index = internalValue.findIndex(val => val === value)\n\n if (\n this.mandatory &&\n // Item already exists\n index > -1 &&\n // value would be reduced below min\n internalValue.length - 1 < 1\n ) return\n\n if (\n // Max is set\n this.max != null &&\n // Item doesn't exist\n index < 0 &&\n // value would be increased above max\n internalValue.length + 1 > this.max\n ) return\n\n index > -1\n ? internalValue.splice(index, 1)\n : internalValue.push(value)\n\n this.internalValue = internalValue\n },\n updateSingle (value: any) {\n const isSame = value === this.internalValue\n\n if (this.mandatory && isSame) return\n\n this.internalValue = isSame ? undefined : value\n },\n },\n\n render (h): VNode {\n return h(this.tag, this.genData(), this.$slots.default)\n },\n})\n\nexport default BaseItemGroup.extend({\n name: 'v-item-group',\n\n provide (): object {\n return {\n itemGroup: this,\n }\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-list-item-action',\n\n functional: true,\n\n render (h, { data, children = [] }): VNode {\n data.staticClass = data.staticClass ? `v-list-item__action ${data.staticClass}` : 'v-list-item__action'\n const filteredChild = children.filter(VNode => {\n return VNode.isComment === false && VNode.text !== ' '\n })\n if (filteredChild.length > 1) data.staticClass += ' v-list-item__action--stack'\n\n return h('div', data, children)\n },\n})\n","// Styles\nimport './VListItemGroup.sass'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport default mixins(\n BaseItemGroup,\n Colorable\n).extend({\n name: 'v-list-item-group',\n\n provide () {\n return {\n isInGroup: true,\n listItemGroup: this,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-list-item-group': true,\n }\n },\n },\n\n methods: {\n genData (): object {\n return this.setTextColor(this.color, {\n ...BaseItemGroup.options.methods.genData.call(this),\n attrs: {\n role: 'listbox',\n },\n })\n },\n },\n})\n","import './VAvatar.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\nexport default mixins(\n Colorable,\n Measurable,\n Roundable,\n /* @vue/component */\n).extend({\n name: 'v-avatar',\n\n props: {\n left: Boolean,\n right: Boolean,\n size: {\n type: [Number, String],\n default: 48,\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-avatar--left': this.left,\n 'v-avatar--right': this.right,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return {\n height: convertToUnit(this.size),\n minWidth: convertToUnit(this.size),\n width: convertToUnit(this.size),\n ...this.measurableStyles,\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-avatar',\n class: this.classes,\n style: this.styles,\n on: this.$listeners,\n }\n\n return h('div', this.setBackgroundColor(this.color, data), this.$slots.default)\n },\n})\n","import VAvatar from './VAvatar'\n\nexport { VAvatar }\nexport default VAvatar\n","import { createSimpleFunctional } from '../../util/helpers'\n\nimport VList from './VList'\nimport VListGroup from './VListGroup'\nimport VListItem from './VListItem'\nimport VListItemGroup from './VListItemGroup'\nimport VListItemAction from './VListItemAction'\nimport VListItemAvatar from './VListItemAvatar'\nimport VListItemIcon from './VListItemIcon'\n\nexport const VListItemActionText = createSimpleFunctional('v-list-item__action-text', 'span')\nexport const VListItemContent = createSimpleFunctional('v-list-item__content', 'div')\nexport const VListItemTitle = createSimpleFunctional('v-list-item__title', 'div')\nexport const VListItemSubtitle = createSimpleFunctional('v-list-item__subtitle', 'div')\n\nexport {\n VList,\n VListGroup,\n VListItem,\n VListItemAction,\n VListItemAvatar,\n VListItemIcon,\n VListItemGroup,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VList,\n VListGroup,\n VListItem,\n VListItemAction,\n VListItemActionText,\n VListItemAvatar,\n VListItemContent,\n VListItemGroup,\n VListItemIcon,\n VListItemSubtitle,\n VListItemTitle,\n },\n}\n","// Components\nimport VAvatar from '../VAvatar'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default VAvatar.extend({\n name: 'v-list-item-avatar',\n\n props: {\n horizontal: Boolean,\n size: {\n type: [Number, String],\n default: 40,\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-list-item__avatar--horizontal': this.horizontal,\n ...VAvatar.options.computed.classes.call(this),\n 'v-avatar--tile': this.tile || this.horizontal,\n }\n },\n },\n\n render (h): VNode {\n const render = VAvatar.options.render.call(this, h)\n\n render.data = render.data || {}\n render.data.staticClass += ' v-list-item__avatar'\n\n return render\n },\n})\n","import { render, staticRenderFns } from \"./SectionHeadBlock.vue?vue&type=template&id=eaccc7b6&\"\nimport script from \"./SectionHeadBlock.vue?vue&type=script&lang=ts&\"\nexport * from \"./SectionHeadBlock.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VListItem,VListItemContent,VListItemSubtitle,VListItemTitle})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from 'vue-property-decorator'\nimport SectionActions from './SectionActions.vue'\nimport SectionStatus from './SectionStatus.vue'\nimport SectionHeadBlock from './SectionHeadBlock.vue'\nimport { dipdupStore, reorgsStore } from '@/store'\nimport { DipdupHead } from '@/graphql/subscriptions/dipdupHead'\nimport { subscriptions } from '@/graphql'\nimport { ReorgsCountLatest } from '@/store/modules/reorgs/types'\n\n@Component({\n components: {\n SectionActions,\n SectionStatus,\n SectionHeadBlock,\n },\n})\nexport default class ConnectionWidget\n extends Vue {\n private isSynced = false\n private updaterInterval = 0\n private readonly BLOCK_TIME = 1000 * 30 // 30 sec\n\n get showRecyncBtn (): boolean {\n return !this.isSynced\n }\n\n get headBlock (): DipdupHead | null {\n return dipdupStore.state.head\n }\n\n get headDate (): Date {\n const b = this.headBlock\n if (!b) throw new Error('Tried accessing head date on non-existing block')\n return new Date(b.timestamp)\n }\n\n get reorgsCount (): ReorgsCountLatest | null {\n const r = reorgsStore.state.countLatest\n\n // TODO: refactor to using skeletons inside SectionHeadBlock component\n // make sure all reorgs are loaded\n return Object.keys(r).some(k => k === null) ? null : r\n }\n\n private created (): void {\n this.startUpdater()\n subscriptions.dipdupHead.init()\n subscriptions.reorgsCountLatest.init()\n }\n\n private beforeDestroyed (): void {\n this.stopUpdater()\n }\n\n /**\n * This is required to immediately react on the first received head.\n * Not so necessary to force update on every new block afterwards.\n */\n @Watch('headBlock')\n onHeadBlockChanged (\n n: ConnectionWidget['headBlock'],\n o: ConnectionWidget['headBlock'],\n ): void {\n if (!!n && !o) this.updateSyncStatus()\n }\n\n private startUpdater (): void {\n this.updateSyncStatus()\n this.updaterInterval = window.setInterval(\n () => this.updateSyncStatus(),\n 1000,\n )\n }\n\n private stopUpdater (): void {\n clearInterval(this.updaterInterval)\n }\n\n private updateSyncStatus (): void {\n if (!this.headBlock) return\n const n = Date.now()\n const h = this.headDate.getTime()\n this.isSynced = n - h <= 2 * this.BLOCK_TIME\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","// Styles\nimport './VSkeletonLoader.sass'\n\n// Mixins\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\nimport { getSlot } from '../../util/helpers'\nimport { PropValidator } from 'vue/types/options'\n\nexport interface HTMLSkeletonLoaderElement extends HTMLElement {\n _initialStyle?: {\n display: string | null\n transition: string\n }\n}\n\n/* @vue/component */\nexport default mixins(\n Elevatable,\n Measurable,\n Themeable,\n).extend({\n name: 'VSkeletonLoader',\n\n props: {\n boilerplate: Boolean,\n loading: Boolean,\n tile: Boolean,\n transition: String,\n type: String,\n types: {\n type: Object,\n default: () => ({}),\n } as PropValidator>,\n },\n\n computed: {\n attrs (): object {\n if (!this.isLoading) return this.$attrs\n\n return !this.boilerplate ? {\n 'aria-busy': true,\n 'aria-live': 'polite',\n role: 'alert',\n ...this.$attrs,\n } : {}\n },\n classes (): object {\n return {\n 'v-skeleton-loader--boilerplate': this.boilerplate,\n 'v-skeleton-loader--is-loading': this.isLoading,\n 'v-skeleton-loader--tile': this.tile,\n ...this.themeClasses,\n ...this.elevationClasses,\n }\n },\n isLoading (): boolean {\n return !('default' in this.$scopedSlots) || this.loading\n },\n rootTypes (): Record {\n return {\n actions: 'button@2',\n article: 'heading, paragraph',\n avatar: 'avatar',\n button: 'button',\n card: 'image, card-heading',\n 'card-avatar': 'image, list-item-avatar',\n 'card-heading': 'heading',\n chip: 'chip',\n 'date-picker': 'list-item, card-heading, divider, date-picker-options, date-picker-days, actions',\n 'date-picker-options': 'text, avatar@2',\n 'date-picker-days': 'avatar@28',\n heading: 'heading',\n image: 'image',\n 'list-item': 'text',\n 'list-item-avatar': 'avatar, text',\n 'list-item-two-line': 'sentences',\n 'list-item-avatar-two-line': 'avatar, sentences',\n 'list-item-three-line': 'paragraph',\n 'list-item-avatar-three-line': 'avatar, paragraph',\n paragraph: 'text@3',\n sentences: 'text@2',\n table: 'table-heading, table-thead, table-tbody, table-tfoot',\n 'table-heading': 'heading, text',\n 'table-thead': 'heading@6',\n 'table-tbody': 'table-row-divider@6',\n 'table-row-divider': 'table-row, divider',\n 'table-row': 'table-cell@6',\n 'table-cell': 'text',\n 'table-tfoot': 'text@2, avatar@2',\n text: 'text',\n ...this.types,\n }\n },\n },\n\n methods: {\n genBone (text: string, children: VNode[]) {\n return this.$createElement('div', {\n staticClass: `v-skeleton-loader__${text} v-skeleton-loader__bone`,\n }, children)\n },\n genBones (bone: string): VNode[] {\n // e.g. 'text@3'\n const [type, length] = bone.split('@') as [string, number]\n const generator = () => this.genStructure(type)\n\n // Generate a length array based upon\n // value after @ in the bone string\n return Array.from({ length }).map(generator)\n },\n // Fix type when this is merged\n // https://github.com/microsoft/TypeScript/pull/33050\n genStructure (type?: string): any {\n let children = []\n type = type || this.type || ''\n const bone = this.rootTypes[type] || ''\n\n // End of recursion, do nothing\n /* eslint-disable-next-line no-empty, brace-style */\n if (type === bone) {}\n // Array of values - e.g. 'heading, paragraph, text@2'\n else if (type.indexOf(',') > -1) return this.mapBones(type)\n // Array of values - e.g. 'paragraph@4'\n else if (type.indexOf('@') > -1) return this.genBones(type)\n // Array of values - e.g. 'card@2'\n else if (bone.indexOf(',') > -1) children = this.mapBones(bone)\n // Array of values - e.g. 'list-item@2'\n else if (bone.indexOf('@') > -1) children = this.genBones(bone)\n // Single value - e.g. 'card-heading'\n else if (bone) children.push(this.genStructure(bone))\n\n return [this.genBone(type, children)]\n },\n genSkeleton () {\n const children = []\n\n if (!this.isLoading) children.push(getSlot(this))\n else children.push(this.genStructure())\n\n /* istanbul ignore else */\n if (!this.transition) return children\n\n /* istanbul ignore next */\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n // Only show transition when\n // content has been loaded\n on: {\n afterEnter: this.resetStyles,\n beforeEnter: this.onBeforeEnter,\n beforeLeave: this.onBeforeLeave,\n leaveCancelled: this.resetStyles,\n },\n }, children)\n },\n mapBones (bones: string) {\n // Remove spaces and return array of structures\n return bones.replace(/\\s/g, '').split(',').map(this.genStructure)\n },\n onBeforeEnter (el: HTMLSkeletonLoaderElement) {\n this.resetStyles(el)\n\n if (!this.isLoading) return\n\n el._initialStyle = {\n display: el.style.display,\n transition: el.style.transition,\n }\n\n el.style.setProperty('transition', 'none', 'important')\n },\n onBeforeLeave (el: HTMLSkeletonLoaderElement) {\n el.style.setProperty('display', 'none', 'important')\n },\n resetStyles (el: HTMLSkeletonLoaderElement) {\n if (!el._initialStyle) return\n\n el.style.display = el._initialStyle.display || ''\n el.style.transition = el._initialStyle.transition\n\n delete el._initialStyle\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-skeleton-loader',\n attrs: this.attrs,\n on: this.$listeners,\n class: this.classes,\n style: this.isLoading ? this.measurableStyles : undefined,\n }, [this.genSkeleton()])\n },\n})\n","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=32e8486b&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VCard,VSkeletonLoader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{attrs:{\"outlined\":\"\"}},[_c('div',{staticClass:\"text-overline px-4\"},[_vm._v(\" \"+_vm._s(this.$t('chart.title'))+\" \")]),_c('SectionControls',{model:{value:(_vm.timeframe),callback:function ($$v) {_vm.timeframe=$$v},expression:\"timeframe\"}}),_c('div',{ref:\"chart\",staticClass:\"pa-4\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function(x) {\n return x;\n}\n","import identity from \"./identity.js\";\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)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + y + \")\";\n}\n\nfunction number(scale) {\n return d => +scale(d);\n}\n\nfunction center(scale, offset) {\n offset = Math.max(0, scale.bandwidth() - offset * 2) / 2;\n if (scale.round()) offset = Math.round(offset);\n return d => +scale(d) + offset;\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 offset = typeof window !== \"undefined\" && window.devicePixelRatio > 1 ? 0 : 0.5,\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] + offset,\n range1 = +range[range.length - 1] + offset,\n position = (scale.bandwidth ? center : number)(scale.copy(), offset),\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 + offset) : 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)) + offset); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient === right\n ? (tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H\" + offset + \"V\" + range1 + \"H\" + k * tickSizeOuter : \"M\" + offset + \",\" + range0 + \"V\" + range1)\n : (tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V\" + offset + \"H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",\" + offset + \"H\" + range1));\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d) + offset); });\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 = Array.from(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : Array.from(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : Array.from(_), 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 axis.offset = function(_) {\n return arguments.length ? (offset = +_, axis) : offset;\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: () => {}};\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","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(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\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","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(undefined, 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(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 svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import 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 {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export 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 {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, 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\nconst {abs, max, min} = Math;\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\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(event) {\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, event) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\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(event).brush(event).end(event);\n });\n }\n };\n\n brush.clear = function(group, event) {\n brush.move(group, null, event);\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(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\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 points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move(event);\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 redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\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 = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, 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(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\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(event, mode.name);\n }\n\n function keydowned(event) {\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(event);\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(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move(event);\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(event);\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(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\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 default function range(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","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(key);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function ticks(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n let r0 = Math.round(start / step), r1 = Math.round(stop / step);\n if (r0 * step < start) ++r0;\n if (r1 * step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) * step;\n } else {\n step = -step;\n let r0 = Math.round(start * step), r1 = Math.round(stop * step);\n if (r0 / step < start) ++r0;\n if (r1 / step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function bisector(f) {\n let delta = f;\n let compare1 = f;\n let compare2 = f;\n\n if (f.length !== 2) {\n delta = (d, x) => f(d) - x;\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export default function(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 constants(x) {\n return function() {\n return x;\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","// [[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","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import creator from \"./creator.js\";\nimport select from \"./select.js\";\n\nexport default function(name) {\n return select(creator(name).call(document.documentElement));\n}\n","var 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","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\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 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 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 \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","var epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\nexport default (function zoomRho(rho, rho2, rho4) {\n\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n\n return i;\n }\n\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);\n","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 {select, pointer} 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.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === 'wheel') && !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(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);\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 touchfirst,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0,\n tapDistance = 10;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled, {passive: false})\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(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point, event) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point, event);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .event(event)\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, event) {\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, event);\n };\n\n zoom.scaleTo = function(selection, k, p, event) {\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, event);\n };\n\n zoom.translateBy = function(selection, x, y, event) {\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 }, null, event);\n };\n\n zoom.translateTo = function(selection, x, y, p, event) {\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, event);\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, event) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).event(event).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).event(event).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args).event(event),\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.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n event: function(event) {\n if (event) this.sourceEvent = event;\n return this;\n },\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 var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function wheeled(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, args).event(event),\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 = pointer(event);\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(event);\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(event, ...args) {\n if (touchending || !filter.apply(this, arguments)) return;\n var currentTarget = event.currentTarget,\n g = gesture(this, args, true).event(event),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = pointer(event, currentTarget),\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved(event) {\n noevent(event);\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.event(event)\n .zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped(event) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent(event);\n g.event(event).end();\n }\n }\n\n function dblclicked(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, 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, args), translateExtent);\n\n noevent(event);\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);\n else select(this).call(zoom.transform, t1, p0, event);\n }\n\n function touchstarted(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, args, event.changedTouches.length === n).event(event),\n started, i, t, p;\n\n nopropagation(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\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) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\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\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation(event);\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 t = pointer(t, this);\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\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 zoom.tapDistance = function(_) {\n return arguments.length ? (tapDistance = +_, zoom) : tapDistance;\n };\n\n return zoom;\n}\n","import { ReorgsTimeframe } from '@/store/modules/reorgs/types'\nimport { Axis, axisBottom, axisLeft, create, NumberValue, ScaleBand, scaleBand, ScaleLinear, scaleLinear, select, timeDay, timeFormat, timeHour, TimeInterval, timeWeek } from 'd3'\n\nexport type ChartData = {\n date: string;\n value: number;\n}[]\n\ntype ChartParams = {\n rootNode: HTMLElement;\n timeframe: ReorgsTimeframe;\n data: ChartData;\n}\n\ntype XAxisTicksParams = {\n ticks: TimeInterval | null;\n format: string;\n}\n\nexport class ChartRenderer {\n private static readonly height = 400\n private static readonly width = 400\n private static readonly marginTop = 10\n private static readonly marginRight = 0\n private static readonly marginBottom = 45\n private static readonly marginLeft = 25\n private static readonly xPadding = 0.1\n private static readonly minYTicks = 5\n private static readonly axisStyling = {\n text: 'grey--text text--darken-2',\n lines: 'grey--text text--lighten-2',\n }\n\n private static readonly yRange = [\n ChartRenderer.height - ChartRenderer.marginBottom,\n ChartRenderer.marginTop,\n ]\n\n private static readonly xRange = [\n ChartRenderer.width - ChartRenderer.marginRight,\n ChartRenderer.marginLeft,\n ]\n\n private readonly rootNode: HTMLElement\n private timeframe: ReorgsTimeframe\n private data: ChartData\n\n constructor (params: ChartParams) {\n this.data = params.data\n this.timeframe = params.timeframe\n this.rootNode = params.rootNode\n }\n\n public updateData (data: ChartData, timeframe: ReorgsTimeframe): void {\n this.data = data\n this.timeframe = timeframe\n this.render()\n }\n\n public render (): void {\n const svg = this.svg\n\n svg.append(() => this.yAxisGroup.node())\n svg.append(() => this.xAxisGroup.node())\n svg.append(() => this.barsGroup.node())\n\n // remove outdated\n select(this.rootNode)\n .selectAll('svg')\n .remove()\n\n select(this.rootNode)\n .append(() => svg.node())\n }\n\n private get yDomain (): [number, number] {\n return [0, this.yMax]\n }\n\n private get yMax (): number {\n return Math.max(...this.data.map(e => e.value)) || ChartRenderer.minYTicks\n }\n\n private get xDomain (): string[] {\n return this.data.map(e => e.date)\n }\n\n private get xScale (): ScaleBand {\n return scaleBand()\n .domain(this.xDomain)\n .range(ChartRenderer.xRange)\n .padding(ChartRenderer.xPadding)\n }\n\n private get yScale (): ScaleLinear {\n return scaleLinear()\n .domain(this.yDomain)\n .range(ChartRenderer.yRange)\n }\n\n private get xAxis (): Axis {\n const { ticks, format } = this.xAxisTicksParams\n return axisBottom(this.xScale)\n .ticks(ticks)\n .tickFormat(t => timeFormat(format)(new Date(t)))\n .tickSizeOuter(0)\n }\n\n private get xAxisTicksParams (): XAxisTicksParams {\n let ticks, format\n if (this.timeframe === 'h') {\n ticks = timeHour.every(1)\n format = '%H:%M'\n } else if (this.timeframe === 'd') {\n ticks = timeDay.every(1)\n format = '%d %b'\n } else if (this.timeframe === 'w') {\n ticks = timeWeek.every(1)\n format = '%d %b'\n } else {\n throw new Error('Unexpected timeframe.')\n }\n\n return { ticks, format }\n }\n\n private get yAxis (): Axis {\n return axisLeft(this.yScale)\n .ticks(this.yMax)\n }\n\n private get svg () {\n return create('svg')\n .attr('viewBox', `${[0, 0, ChartRenderer.width, ChartRenderer.height]}`)\n .attr('style', 'max-width: 100%; height: auto; height: intrinsic;')\n }\n\n private get yAxisGroup () {\n const g = this.createGroup()\n .attr('transform', `translate(${ChartRenderer.marginLeft},0)`)\n\n g\n .call(this.yAxis)\n .call(g => g.select('.domain').remove())\n .attr('class', ChartRenderer.axisStyling.lines)\n .selectAll('text')\n .attr('class', ChartRenderer.axisStyling.text)\n\n return g\n }\n\n private get xAxisGroup () {\n const g = this.createGroup()\n .attr(\n 'transform',\n `translate(0,${ChartRenderer.height - ChartRenderer.marginBottom})`,\n )\n .attr('class', ChartRenderer.axisStyling.lines)\n\n g\n .call(this.xAxis)\n .selectAll('text')\n .attr('transform', 'rotate(-90)')\n .attr('dx', '-2.5em')\n .attr('dy', '-0.6em')\n .attr('class', ChartRenderer.axisStyling.text)\n\n return g\n }\n\n private get barsGroup () {\n const g = this.createGroup()\n .attr('fill', 'currentColor')\n .attr('class', 'primary--text')\n\n g\n .selectAll('rect')\n .data(this.data)\n .join('rect')\n // TODO: figure out how to make d3 type this without ugly null bodge\n .attr('x', i => this.xScale(i.date) ?? null)\n .attr('y', i => this.yScale(i.value))\n .attr('height', i => this.yScale(0) - this.yScale(i.value))\n .attr('width', this.xScale.bandwidth())\n\n return g\n }\n\n // as a separate method to isolate typecasting in one place\n private createGroup () {\n // TODO: look for a way to make d3 types properly understand return type\n return create('svg:g')\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-btn-toggle',{staticClass:\"px-4 pt-4\",attrs:{\"value\":_vm.timeframeIndex,\"dense\":\"\",\"borderless\":\"\",\"mandatory\":\"\",\"active-class\":\"primary white--text\"},on:{\"change\":_vm.onTimeframeChange}},_vm._l((_vm.timeframeOptions),function(o){return _c('v-btn',{key:o.key},[_vm._v(\" \"+_vm._s(o.title)+\" \")])}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, VModel, Vue } from 'vue-property-decorator'\nimport { ReorgsTimeframe } from '@/store/modules/reorgs/types'\n\ntype TimeframeOption = {\n title: string;\n key: ReorgsTimeframe;\n}\n\n@Component\nexport default class ChartWidget extends Vue {\n @VModel({ type: String }) timeframe!: ReorgsTimeframe\n\n private timeframeIndex = 2 // week\n\n get selectedTimeframe (): ReorgsTimeframe {\n return this.timeframeOptions[this.timeframeIndex].key\n }\n\n get timeframeOptions (): TimeframeOption[] {\n return [\n {\n key: 'h',\n title: this.$t('chart.timeframes.hour').toString(),\n },\n {\n key: 'd',\n title: this.$t('chart.timeframes.day').toString(),\n },\n {\n key: 'w',\n title: this.$t('chart.timeframes.week').toString(),\n },\n ]\n }\n\n private onTimeframeChange (i: number): void {\n this.timeframeIndex = i\n this.timeframe = this.timeframeOptions[i].key\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SectionControls.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SectionControls.vue?vue&type=script&lang=ts&\"","// Extensions\nimport { BaseItemGroup } from '../../components/VItemGroup/VItemGroup'\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n name: 'button-group',\n\n provide (): object {\n return {\n btnToggle: this,\n }\n },\n\n computed: {\n classes (): object {\n return BaseItemGroup.options.computed.classes.call(this)\n },\n },\n\n methods: {\n // Isn't being passed down through types\n genData: BaseItemGroup.options.methods.genData,\n },\n})\n","// Styles\nimport './VBtnToggle.sass'\n\n// Mixins\nimport ButtonGroup from '../../mixins/button-group'\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(\n ButtonGroup,\n Colorable\n).extend({\n name: 'v-btn-toggle',\n\n props: {\n backgroundColor: String,\n borderless: Boolean,\n dense: Boolean,\n group: Boolean,\n rounded: Boolean,\n shaped: Boolean,\n tile: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n ...ButtonGroup.options.computed.classes.call(this),\n 'v-btn-toggle': true,\n 'v-btn-toggle--borderless': this.borderless,\n 'v-btn-toggle--dense': this.dense,\n 'v-btn-toggle--group': this.group,\n 'v-btn-toggle--rounded': this.rounded,\n 'v-btn-toggle--shaped': this.shaped,\n 'v-btn-toggle--tile': this.tile,\n ...this.themeClasses,\n }\n },\n },\n\n methods: {\n genData () {\n const data = this.setTextColor(this.color, {\n ...ButtonGroup.options.methods.genData.call(this),\n })\n\n if (this.group) return data\n\n return this.setBackgroundColor(this.backgroundColor, data)\n },\n },\n})\n","import { render, staticRenderFns } from \"./SectionControls.vue?vue&type=template&id=32d90428&\"\nimport script from \"./SectionControls.vue?vue&type=script&lang=ts&\"\nexport * from \"./SectionControls.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VBtnToggle } from 'vuetify/lib/components/VBtnToggle';\ninstallComponents(component, {VBtn,VBtnToggle})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Ref, Vue, Watch } from 'vue-property-decorator'\nimport { ChartData, ChartRenderer } from './ChartRenderer'\nimport { ReorgsTimeframe } from '@/store/modules/reorgs/types'\nimport { reorgsStatsCount } from '@/graphql/subscriptions/reorgsStatsCount'\nimport { reorgsStore } from '@/store'\nimport SectionControls from './SectionControls.vue'\n\nconst DEFAULT_TIMEFRAME: ReorgsTimeframe = 'w'\nconst DEFAULT_NUM_BARS = 10\n\n@Component({\n components: {\n SectionControls,\n },\n})\nexport default class ChartWidget extends Vue {\n @Ref('chart') readonly chart!: HTMLDivElement | undefined\n\n private renderer: ChartRenderer | null = null\n private timeframe: ReorgsTimeframe = DEFAULT_TIMEFRAME\n\n get preparedData (): ChartData {\n let data: Record\n const { h, d, w } = reorgsStore.state.stats\n\n if (this.timeframe === 'h') data = h\n else if (this.timeframe === 'd') data = d\n else if (this.timeframe === 'w') data = w\n else throw new Error('Unexpected selected timeframe')\n\n return this.prepareDataForChart(data)\n }\n\n created (): void {\n reorgsStatsCount.init()\n }\n\n mounted (): void {\n this.renderChart()\n }\n\n @Watch('preparedData')\n onPreparedDataUpdated (): void {\n this.updateChart()\n }\n\n private prepareDataForChart (d: Record): ChartData {\n return Object.entries(d)\n .slice(0, DEFAULT_NUM_BARS)\n .map(e => ({ date: e[0], value: e[1] }))\n }\n\n private updateChart (): void {\n this.renderer\n ? this.renderer.updateData(this.preparedData, this.timeframe)\n : this.renderChart()\n }\n\n private renderChart (): void {\n this.createRenderer()\n if (!this.renderer) {\n throw new Error('Tried rendering chart with non-existing renderer')\n }\n\n this.renderer.render()\n }\n\n private createRenderer (): void {\n if (this.renderer) return\n\n if (!this.chart) {\n throw new Error('Tried creating renderer on a non-existing DOM element')\n }\n\n this.renderer = new ChartRenderer({\n rootNode: this.chart,\n timeframe: this.timeframe,\n data: this.preparedData,\n })\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=6f660744&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\ninstallComponents(component, {VCard})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{attrs:{\"outlined\":\"\"}},[_c('div',{staticClass:\"text-overline px-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('feed.title'))+\" \")]),_c('v-virtual-scroll',{staticClass:\"my-4\",attrs:{\"items\":_vm.items,\"height\":\"400\",\"item-height\":\"60\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('ReorgListItem',{directives:[{name:\"intersect\",rawName:\"v-intersect\",value:(function (entries, obs, isInt) { return _vm.onIntersect(item.id, isInt); }),expression:\"(entries, obs, isInt) => onIntersect(item.id, isInt)\"}],key:item.id,attrs:{\"item\":item}}),_c('v-divider',{staticClass:\"mx-4\"})]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-list-item',{attrs:{\"two-line\":\"\",\"dense\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.item.date)+\" \")]),_c('v-list-item-subtitle',{staticClass:\"font-weight-regular\"},[_vm._v(\" \"+_vm._s(_vm.$t('feed.listItem.level.from'))+\" \"),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.item.from)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('feed.listItem.level.to'))+\" \"),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.item.to)+\" \")])])],1),_c('v-list-item-action',{staticClass:\"mt-2\"},[_c('v-list-item-action-text',[_vm._v(\" \"+_vm._s(_vm.$t('feed.listItem.id'))+\" \"),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.item.id)+\" \")])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * Dummy class to help with Vue dev-time prop type checking.\n */\nexport class ReorgItem {\n // eslint-disable-next-line no-useless-constructor\n constructor (\n public readonly id: number,\n public readonly from: number,\n public readonly to: number,\n public readonly date: string,\n ) {}\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from 'vue-property-decorator'\nimport { ReorgItem } from './types'\n\n@Component\nexport default class ReorgListItem extends Vue {\n @Prop({\n type: ReorgItem,\n required: true,\n }) readonly item!: ReorgItem\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReorgListItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReorgListItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReorgListItem.vue?vue&type=template&id=4f13128c&\"\nimport script from \"./ReorgListItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReorgListItem.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemActionText } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VListItem,VListItemAction,VListItemActionText,VListItemContent,VListItemSubtitle,VListItemTitle})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { subscriptions } from '@/graphql'\nimport { reorgsStore } from '@/store'\nimport { dateFormatter } from '@/utils/dateUtils'\nimport { Component, Vue } from 'vue-property-decorator'\nimport ReorgListItem from './ReorgListItem.vue'\nimport { ReorgItem } from './types'\n\n// TODO: add loading indicator - spinner or smth\n@Component({\n components: {\n ReorgListItem,\n },\n})\nexport default class FeedWidget extends Vue {\n private get items (): ReorgItem[] {\n return reorgsStore.state.feed.map(r => new ReorgItem(\n r.id,\n r.from_level,\n r.to_level,\n dateFormatter.format(new Date(r.timestamp)),\n ))\n }\n\n private get lastRenderableItemId (): number | undefined {\n const item: ReorgItem | undefined = this.items[this.items.length - 1]\n return item?.id\n }\n\n created (): void {\n reorgsStore.actions.getReorgsFeed()\n subscriptions.reorgsFeed.init()\n }\n\n private onIntersect (id: number, isIntersecting: boolean): void {\n if (!isIntersecting) return\n if (this.lastRenderableItemId && id > this.lastRenderableItemId) return\n\n reorgsStore.actions.getReorgsFeed()\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","// Styles\nimport './VDivider.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\nexport default Themeable.extend({\n name: 'v-divider',\n\n props: {\n inset: Boolean,\n vertical: Boolean,\n },\n\n render (h): VNode {\n // WAI-ARIA attributes\n let orientation\n if (!this.$attrs.role || this.$attrs.role === 'separator') {\n orientation = this.vertical ? 'vertical' : 'horizontal'\n }\n return h('hr', {\n class: {\n 'v-divider': true,\n 'v-divider--inset': this.inset,\n 'v-divider--vertical': this.vertical,\n ...this.themeClasses,\n },\n attrs: {\n role: 'separator',\n 'aria-orientation': orientation,\n ...this.$attrs,\n },\n on: this.$listeners,\n })\n },\n})\n","// Styles\nimport './VVirtualScroll.sass'\n\n// Mixins\nimport Measurable from '../../mixins/measurable'\n\n// Directives\nimport Scroll from '../../directives/scroll'\n\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n} from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport default Measurable.extend({\n name: 'v-virtual-scroll',\n\n directives: { Scroll },\n\n props: {\n bench: {\n type: [Number, String],\n default: 0,\n },\n itemHeight: {\n type: [Number, String],\n required: true,\n },\n items: {\n type: Array,\n default: () => [],\n } as PropValidator,\n },\n\n data: () => ({\n first: 0,\n last: 0,\n scrollTop: 0,\n }),\n\n computed: {\n __bench (): number {\n return parseInt(this.bench, 10)\n },\n __itemHeight (): number {\n return parseInt(this.itemHeight, 10)\n },\n firstToRender (): number {\n return Math.max(0, this.first - this.__bench)\n },\n lastToRender (): number {\n return Math.min(this.items.length, this.last + this.__bench)\n },\n },\n\n watch: {\n height: 'onScroll',\n itemHeight: 'onScroll',\n },\n\n mounted () {\n this.last = this.getLast(0)\n },\n\n methods: {\n getChildren (): VNode[] {\n return this.items.slice(\n this.firstToRender,\n this.lastToRender,\n ).map(this.genChild)\n },\n genChild (item: any, index: number) {\n index += this.firstToRender\n\n const top = convertToUnit(index * this.__itemHeight)\n\n return this.$createElement('div', {\n staticClass: 'v-virtual-scroll__item',\n style: { top },\n key: index,\n }, getSlot(this, 'default', { index, item }))\n },\n getFirst (): number {\n return Math.floor(this.scrollTop / this.__itemHeight)\n },\n getLast (first: number): number {\n const height = parseInt(this.height || 0, 10) || this.$el.clientHeight\n\n return first + Math.ceil(height / this.__itemHeight)\n },\n onScroll () {\n this.scrollTop = this.$el.scrollTop\n this.first = this.getFirst()\n this.last = this.getLast(this.first)\n },\n },\n\n render (h): VNode {\n const content = h('div', {\n staticClass: 'v-virtual-scroll__container',\n style: {\n height: convertToUnit((this.items.length * this.__itemHeight)),\n },\n }, this.getChildren())\n\n return h('div', {\n staticClass: 'v-virtual-scroll',\n style: this.measurableStyles,\n directives: [{\n name: 'scroll',\n modifiers: { self: true },\n value: this.onScroll,\n }],\n on: this.$listeners,\n }, [content])\n },\n})\n","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=ff382540&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VVirtualScroll } from 'vuetify/lib/components/VVirtualScroll';\ninstallComponents(component, {VCard,VDivider,VVirtualScroll})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Intersect from 'vuetify/lib/directives/intersect'\ninstallDirectives(component, {Intersect})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\nimport ConnectionWidget from '@/components/ConnectionWidget/index.vue'\nimport ChartWidget from '@/components/ChartWidget/index.vue'\nimport FeedWidget from '@/components/FeedWidget/index.vue'\n\n@Component({\n components: {\n ConnectionWidget,\n ChartWidget,\n FeedWidget,\n },\n})\nexport default class Home extends Vue {\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts&\"","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=80b66e32&\"\nimport script from \"./Home.vue?vue&type=script&lang=ts&\"\nexport * from \"./Home.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar classof = require('../internals/classof-raw');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar TypeError = global.TypeError;\n\n// `RegExp.prototype.dotAll` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall\nif (DESCRIPTORS && UNSUPPORTED_DOT_ALL) {\n defineProperty(RegExpPrototype, 'dotAll', {\n configurable: true,\n get: function () {\n if (this === RegExpPrototype) return undefined;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (classof(this) === 'RegExp') {\n return !!getInternalState(this).dotAll;\n }\n throw TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\n\nvar Array = global.Array;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar fix = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nvar FORCED = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n // https://github.com/tc39/proposal-well-formed-stringify\n $({ target: 'JSON', stat: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n for (var i = 0, l = arguments.length, args = Array(l); i < l; i++) args[i] = arguments[i];\n var result = apply($stringify, null, args);\n return typeof result == 'string' ? replace(result, tester, fix) : result;\n }\n });\n}\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n"],"sourceRoot":""}