{"version":3,"sources":["webpack:///./node_modules/react-input-range/lib/js/utils/index.js","webpack:///./node_modules/gatsby/node_modules/core-js/modules/_math-expm1.js","webpack:///./node_modules/react-input-range/lib/js/utils/distance-to.js","webpack:///./node_modules/react-input-range/lib/js/input-range/key-codes.js","webpack:///./node_modules/react-input-range/lib/js/input-range/value-transformer.js","webpack:///./node_modules/react-input-range/lib/js/index.js","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es6.typed.float32-array.js","webpack:///./src/components/charts/broadly-studied-antiemetic/bsa-template.module.scss","webpack:///./node_modules/react-input-range/lib/js/input-range/default-class-names.js","webpack:///./src/components/q-and-a/q-and-a.module.scss","webpack:///./node_modules/react-input-range/lib/js/utils/is-defined.js","webpack:///./src/components/cta/cta.module.scss","webpack:///./src/components/tables/page-table/page-table.module.scss","webpack:///./src/components/charts/response-rates/response-rates.module.scss","webpack:///./src/components/page-card/page-card.module.scss","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es6.math.sign.js","webpack:///./node_modules/react-input-range/lib/js/input-range/track.js","webpack:///./src/components/page-footer-links/page-footer-links.module.scss","webpack:///./src/components/page-select/page-select.module.scss","webpack:///./src/components/page-footer-module/page-footer.module.scss","webpack:///./src/components/charts/proven-effectiveness/proven-effectiveness.module.scss","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es6.reflect.own-keys.js","webpack:///./src/components/page-callout/page-callout.module.scss","webpack:///./src/components/charts/ponv-incidence-pie-charts/ponv-incidence-pie-charts.module.scss","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es6.math.log1p.js","webpack:///./src/components/charts/antiemetic-guidelines/antiemetic-guidelines.module.scss","webpack:///./src/components/content-tabs/content-tabs.module.scss","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es6.math.expm1.js","webpack:///./src/components/tabs/tabs.module.scss","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es6.math.log2.js","webpack:///./node_modules/react-input-range/lib/js/utils/is-number.js","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es6.math.log10.js","webpack:///./node_modules/react-input-range/lib/js/input-range/input-range.js","webpack:///./src/components/charts/patient-dissatisfaction/donut-chart.module.scss","webpack:///./node_modules/react-input-range/lib/js/input-range/range-prop-type.js","webpack:///./node_modules/react-input-range/lib/js/utils/is-object.js","webpack:///./node_modules/gatsby/node_modules/core-js/modules/_math-log1p.js","webpack:///./node_modules/gatsby/node_modules/core-js/modules/_math-sign.js","webpack:///./node_modules/autobind-decorator/lib/index.js","webpack:///./node_modules/react-input-range/lib/js/utils/length.js","webpack:///./src/components/page-lead-gen-form/leadgenform.module.scss","webpack:///./src/components/page-lead-gen-return/leadgenreturn.module.scss","webpack:///./node_modules/react-input-range/lib/js/utils/captialize.js","webpack:///./node_modules/react-input-range/lib/js/input-range/value-prop-type.js","webpack:///./node_modules/react-input-range/lib/js/input-range/slider.js","webpack:///./node_modules/react-input-range/lib/js/utils/clamp.js","webpack:///./src/components/tabs/tab.module.scss","webpack:///./src/components/charts/recommended-dosage/recommended-dosage.module.scss","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es6.string.anchor.js","webpack:///./node_modules/react-intersection-observer/react-intersection-observer.esm.js","webpack:///./src/components/cta/cta.component.jsx","webpack:///./src/utils/strToClassName.js","webpack:///./src/components/content-tabs/content-tabs.component.jsx","webpack:///./src/components/page-footer-module/page-footer-module.component.jsx","webpack:///./src/components/page-callout/page-callout.component.jsx","webpack:///./node_modules/uuid/dist/esm-browser/rng.js","webpack:///./node_modules/uuid/dist/esm-browser/regex.js","webpack:///./node_modules/uuid/dist/esm-browser/stringify.js","webpack:///./node_modules/uuid/dist/esm-browser/validate.js","webpack:///./node_modules/uuid/dist/esm-browser/v4.js","webpack:///./src/components/page-select/page-select.component.jsx","webpack:///./src/components/charts/antiemetic-guidelines/antiemetic-guidelines.component.jsx","webpack:///./src/components/charts/proven-effectiveness/proven-effectiveness.component.jsx","webpack:///./node_modules/d3-array/src/ascending.js","webpack:///./node_modules/d3-array/src/bisector.js","webpack:///./node_modules/d3-array/src/bisect.js","webpack:///./node_modules/d3-array/src/cross.js","webpack:///./node_modules/d3-array/src/extent.js","webpack:///./node_modules/d3-array/src/array.js","webpack:///./node_modules/d3-array/src/range.js","webpack:///./node_modules/d3-array/src/ticks.js","webpack:///./node_modules/d3-array/src/zip.js","webpack:///./node_modules/d3-axis/src/array.js","webpack:///./node_modules/d3-axis/src/identity.js","webpack:///./node_modules/d3-axis/src/axis.js","webpack:///./node_modules/d3-dispatch/src/dispatch.js","webpack:///./node_modules/d3-selection/src/selector.js","webpack:///./node_modules/d3-selection/src/selectorAll.js","webpack:///./node_modules/d3-selection/src/matcher.js","webpack:///./node_modules/d3-selection/src/selection/sparse.js","webpack:///./node_modules/d3-selection/src/selection/enter.js","webpack:///./node_modules/d3-selection/src/selection/data.js","webpack:///./node_modules/d3-selection/src/selection/sort.js","webpack:///./node_modules/d3-selection/src/selection/call.js","webpack:///./node_modules/d3-selection/src/namespaces.js","webpack:///./node_modules/d3-selection/src/namespace.js","webpack:///./node_modules/d3-selection/src/selection/attr.js","webpack:///./node_modules/d3-selection/src/window.js","webpack:///./node_modules/d3-selection/src/selection/style.js","webpack:///./node_modules/d3-selection/src/selection/property.js","webpack:///./node_modules/d3-selection/src/selection/classed.js","webpack:///./node_modules/d3-selection/src/selection/text.js","webpack:///./node_modules/d3-selection/src/selection/html.js","webpack:///./node_modules/d3-selection/src/selection/raise.js","webpack:///./node_modules/d3-selection/src/selection/lower.js","webpack:///./node_modules/d3-selection/src/creator.js","webpack:///./node_modules/d3-selection/src/selection/insert.js","webpack:///./node_modules/d3-selection/src/selection/remove.js","webpack:///./node_modules/d3-selection/src/selection/clone.js","webpack:///./node_modules/d3-selection/src/selection/on.js","webpack:///./node_modules/d3-selection/src/selection/dispatch.js","webpack:///./node_modules/d3-selection/src/selection/index.js","webpack:///./node_modules/d3-selection/src/selection/select.js","webpack:///./node_modules/d3-selection/src/selection/selectAll.js","webpack:///./node_modules/d3-selection/src/selection/filter.js","webpack:///./node_modules/d3-selection/src/constant.js","webpack:///./node_modules/d3-selection/src/selection/exit.js","webpack:///./node_modules/d3-selection/src/selection/join.js","webpack:///./node_modules/d3-selection/src/selection/merge.js","webpack:///./node_modules/d3-selection/src/selection/order.js","webpack:///./node_modules/d3-selection/src/selection/nodes.js","webpack:///./node_modules/d3-selection/src/selection/node.js","webpack:///./node_modules/d3-selection/src/selection/size.js","webpack:///./node_modules/d3-selection/src/selection/empty.js","webpack:///./node_modules/d3-selection/src/selection/each.js","webpack:///./node_modules/d3-selection/src/selection/append.js","webpack:///./node_modules/d3-selection/src/selection/datum.js","webpack:///./node_modules/d3-selection/src/select.js","webpack:///./node_modules/d3-color/src/define.js","webpack:///./node_modules/d3-color/src/color.js","webpack:///./node_modules/d3-interpolate/src/basis.js","webpack:///./node_modules/d3-interpolate/src/constant.js","webpack:///./node_modules/d3-interpolate/src/color.js","webpack:///./node_modules/d3-interpolate/src/rgb.js","webpack:///./node_modules/d3-interpolate/src/basisClosed.js","webpack:///./node_modules/d3-interpolate/src/numberArray.js","webpack:///./node_modules/d3-interpolate/src/array.js","webpack:///./node_modules/d3-interpolate/src/date.js","webpack:///./node_modules/d3-interpolate/src/number.js","webpack:///./node_modules/d3-interpolate/src/object.js","webpack:///./node_modules/d3-interpolate/src/string.js","webpack:///./node_modules/d3-timer/src/timer.js","webpack:///./node_modules/d3-interpolate/src/value.js","webpack:///./node_modules/d3-timer/src/timeout.js","webpack:///./node_modules/d3-transition/src/transition/schedule.js","webpack:///./node_modules/d3-transition/src/interrupt.js","webpack:///./node_modules/d3-interpolate/src/transform/parse.js","webpack:///./node_modules/d3-interpolate/src/transform/decompose.js","webpack:///./node_modules/d3-interpolate/src/transform/index.js","webpack:///./node_modules/d3-transition/src/transition/tween.js","webpack:///./node_modules/d3-transition/src/transition/interpolate.js","webpack:///./node_modules/d3-transition/src/transition/attr.js","webpack:///./node_modules/d3-transition/src/transition/attrTween.js","webpack:///./node_modules/d3-transition/src/transition/delay.js","webpack:///./node_modules/d3-transition/src/transition/duration.js","webpack:///./node_modules/d3-transition/src/transition/ease.js","webpack:///./node_modules/d3-transition/src/transition/on.js","webpack:///./node_modules/d3-transition/src/transition/remove.js","webpack:///./node_modules/d3-transition/src/transition/selection.js","webpack:///./node_modules/d3-transition/src/transition/style.js","webpack:///./node_modules/d3-transition/src/transition/styleTween.js","webpack:///./node_modules/d3-transition/src/transition/textTween.js","webpack:///./node_modules/d3-transition/src/transition/index.js","webpack:///./node_modules/d3-transition/src/transition/select.js","webpack:///./node_modules/d3-transition/src/transition/selectAll.js","webpack:///./node_modules/d3-transition/src/transition/filter.js","webpack:///./node_modules/d3-transition/src/transition/merge.js","webpack:///./node_modules/d3-transition/src/transition/transition.js","webpack:///./node_modules/d3-transition/src/transition/text.js","webpack:///./node_modules/d3-transition/src/transition/end.js","webpack:///./node_modules/d3-transition/src/selection/transition.js","webpack:///./node_modules/d3-ease/src/cubic.js","webpack:///./node_modules/d3-transition/src/selection/index.js","webpack:///./node_modules/d3-transition/src/selection/interrupt.js","webpack:///./node_modules/d3-brush/src/brush.js","webpack:///./node_modules/d3-chord/src/math.js","webpack:///./node_modules/d3-chord/src/array.js","webpack:///./node_modules/d3-chord/src/chord.js","webpack:///./node_modules/d3-path/src/path.js","webpack:///./node_modules/d3-collection/src/map.js","webpack:///./node_modules/d3-collection/src/set.js","webpack:///./node_modules/d3-contour/src/array.js","webpack:///./node_modules/d3-quadtree/src/add.js","webpack:///./node_modules/d3-quadtree/src/cover.js","webpack:///./node_modules/d3-quadtree/src/quad.js","webpack:///./node_modules/d3-quadtree/src/x.js","webpack:///./node_modules/d3-quadtree/src/y.js","webpack:///./node_modules/d3-quadtree/src/quadtree.js","webpack:///./node_modules/d3-quadtree/src/data.js","webpack:///./node_modules/d3-quadtree/src/extent.js","webpack:///./node_modules/d3-quadtree/src/find.js","webpack:///./node_modules/d3-quadtree/src/remove.js","webpack:///./node_modules/d3-quadtree/src/root.js","webpack:///./node_modules/d3-quadtree/src/size.js","webpack:///./node_modules/d3-quadtree/src/visit.js","webpack:///./node_modules/d3-quadtree/src/visitAfter.js","webpack:///./node_modules/d3-force/src/simulation.js","webpack:///./node_modules/d3-format/src/formatDecimal.js","webpack:///./node_modules/d3-format/src/exponent.js","webpack:///./node_modules/d3-format/src/formatSpecifier.js","webpack:///./node_modules/d3-format/src/formatTrim.js","webpack:///./node_modules/d3-format/src/formatPrefixAuto.js","webpack:///./node_modules/d3-format/src/defaultLocale.js","webpack:///./node_modules/d3-format/src/formatRounded.js","webpack:///./node_modules/d3-format/src/formatTypes.js","webpack:///./node_modules/d3-format/src/identity.js","webpack:///./node_modules/d3-format/src/locale.js","webpack:///./node_modules/d3-format/src/formatGroup.js","webpack:///./node_modules/d3-format/src/formatNumerals.js","webpack:///./node_modules/d3-random/src/defaultSource.js","webpack:///./node_modules/d3-random/src/normal.js","webpack:///./node_modules/d3-random/src/uniform.js","webpack:///./node_modules/d3-random/src/irwinHall.js","webpack:///./node_modules/d3-random/src/logNormal.js","webpack:///./node_modules/d3-random/src/bates.js","webpack:///./node_modules/d3-random/src/exponential.js","webpack:///./node_modules/d3-scale/src/init.js","webpack:///./node_modules/d3-scale/src/array.js","webpack:///./node_modules/d3-scale/src/ordinal.js","webpack:///./node_modules/d3-scale/src/band.js","webpack:///./node_modules/d3-interpolate/src/round.js","webpack:///./node_modules/d3-scale/src/number.js","webpack:///./node_modules/d3-scale/src/continuous.js","webpack:///./node_modules/d3-scale/src/constant.js","webpack:///./node_modules/d3-format/src/precisionPrefix.js","webpack:///./node_modules/d3-scale/src/tickFormat.js","webpack:///./node_modules/d3-format/src/precisionRound.js","webpack:///./node_modules/d3-format/src/precisionFixed.js","webpack:///./node_modules/d3-scale/src/linear.js","webpack:///./node_modules/d3-time/src/interval.js","webpack:///./node_modules/d3-time/src/year.js","webpack:///./node_modules/d3-time/src/month.js","webpack:///./node_modules/d3-time/src/week.js","webpack:///./node_modules/d3-time/src/duration.js","webpack:///./node_modules/d3-time/src/day.js","webpack:///./node_modules/d3-time/src/hour.js","webpack:///./node_modules/d3-time/src/minute.js","webpack:///./node_modules/d3-time/src/second.js","webpack:///./node_modules/d3-time/src/millisecond.js","webpack:///./node_modules/d3-time/src/utcWeek.js","webpack:///./node_modules/d3-time/src/utcDay.js","webpack:///./node_modules/d3-time/src/utcYear.js","webpack:///./node_modules/d3-time-format/src/locale.js","webpack:///./node_modules/d3-time-format/src/defaultLocale.js","webpack:///./node_modules/d3-scale/src/time.js","webpack:///./node_modules/d3-time/src/utcMonth.js","webpack:///./node_modules/d3-time/src/utcHour.js","webpack:///./node_modules/d3-time/src/utcMinute.js","webpack:///./node_modules/d3-shape/src/constant.js","webpack:///./node_modules/d3-shape/src/math.js","webpack:///./node_modules/d3-shape/src/arc.js","webpack:///./node_modules/d3-shape/src/curve/linear.js","webpack:///./node_modules/d3-shape/src/point.js","webpack:///./node_modules/d3-shape/src/line.js","webpack:///./node_modules/d3-shape/src/descending.js","webpack:///./node_modules/d3-shape/src/identity.js","webpack:///./node_modules/d3-shape/src/pie.js","webpack:///./node_modules/d3-voronoi/src/RedBlackTree.js","webpack:///./node_modules/d3-voronoi/src/Edge.js","webpack:///./node_modules/d3-voronoi/src/Cell.js","webpack:///./node_modules/d3-voronoi/src/Circle.js","webpack:///./node_modules/d3-voronoi/src/Beach.js","webpack:///./node_modules/d3-voronoi/src/Diagram.js","webpack:///./node_modules/d3-interpolate/src/zoom.js","webpack:///./node_modules/d3-zoom/src/transform.js","webpack:///./node_modules/d3-zoom/src/zoom.js","webpack:///./src/components/charts/ponv-incidence-pie-charts/AnimatedPieHooks.js","webpack:///./src/components/charts/ponv-incidence-pie-charts/ponv-incidence-pie-charts.component.jsx","webpack:///./src/components/charts/patient-dissatisfaction/DonutChart.js","webpack:///./src/components/charts/patient-dissatisfaction/patient-dissatisfaction.component.jsx","webpack:///./src/components/charts/response-rates/BarChart.js","webpack:///./src/components/charts/response-rates/response-rates-two-hours.component.jsx","webpack:///./src/components/charts/response-rates/response-rates-two-hours-surgeons.component.jsx","webpack:///./src/components/charts/response-rates/response-rates-four-hours.component.jsx","webpack:///./src/components/charts/response-rates/response-rates-six-hours.component.jsx","webpack:///./src/components/tabs/tab.component.jsx","webpack:///./src/components/tabs/tabs.component.jsx","webpack:///./src/components/charts/response-rates/response-rates-tabs.component.jsx","webpack:///./src/components/charts/guideline-driven-care/guideline-driven-care.component.jsx","webpack:///./src/components/charts/kaplan-curve/KaplanCurveChart.js","webpack:///./src/components/charts/kaplan-curve/kaplan-curve.component.jsx","webpack:///./src/components/charts/broadly-studied-antiemetic/bsa-template.component.jsx","webpack:///./src/components/charts/broadly-studied-antiemetic/broadly-studied-antiemetic.component.jsx","webpack:///./src/components/charts/broadly-studied-antiemetic/broadly-studied-antiemetic-pharmacy.component.jsx","webpack:///./src/components/charts/recommended-dosage/recommended-dosage.component.jsx","webpack:///./src/components/tables/page-table/page-table.component.jsx","webpack:///./src/components/page-learn-more-link/page-learn-more-link.component.jsx","webpack:///./src/components/q-and-a/q-and-a.component.jsx","webpack:///./src/components/ponv-video/ponv-video.component.jsx","webpack:///./src/components/page-card/page-card.component.jsx","webpack:///./src/components/page-lead-gen-form/leadgenform.component.jsx","webpack:///./src/components/page-lead-gen-return/leadgenreturn.component.jsx","webpack:///./src/components/content-modules/content-modules.component.jsx","webpack:///./src/components/page-footer-links/page-footer-links.component.jsx","webpack:///./src/templates/Page.js","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es6.typed.data-view.js","webpack:///./node_modules/react-input-range/lib/js/input-range/label.js","webpack:///./src/components/charts/guideline-driven-care/guideline-driven-care.module.scss"],"names":["Object","defineProperty","exports","value","_captialize","enumerable","get","_interopRequireDefault","_clamp","_distanceTo","_isDefined","_isNumber","_isObject","_length","obj","__esModule","$expm1","Math","expm1","module","x","exp","pointA","pointB","xDiff","pow","yDiff","y","sqrt","DOWN_ARROW","LEFT_ARROW","RIGHT_ARROW","UP_ARROW","_extends","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","getPercentageFromPosition","getValueFromPosition","position","minValue","maxValue","clientRect","sizePerc","getValueFromProps","props","isMultiValue","min","max","getPercentageFromValue","getPercentagesFromValues","values","getPositionFromValue","getPositionsFromValues","getPositionFromEvent","event","width","clientX","touches","_utils","clamp","left","getStepValueFromValue","valuePerStep","round","_inputRange","_inputRange2","init","data","byteOffset","this","activeTrack","disabledInputRange","inputRange","labelContainer","maxLabel","minLabel","slider","sliderContainer","track","valueLabel","$export","S","sign","undefined","_class","_createClass","defineProperties","descriptor","configurable","writable","Constructor","protoProps","staticProps","_react2","_propTypes2","_autobindDecorator2","_applyDecoratedDescriptor","property","decorators","context","desc","forEach","initializer","slice","reverse","reduce","decorator","Track","_React$Component","instance","TypeError","_classCallCheck","_this","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","node","trackDragEvent","subClass","superClass","create","constructor","setPrototypeOf","_inherits","children","isRequired","classNames","objectOf","string","draggableTrack","bool","onTrackDrag","func","onTrackMouseDown","percentages","number","getBoundingClientRect","removeDocumentMouseMoveListener","ownerDocument","addEventListener","handleMouseMove","removeDocumentMouseUpListener","handleMouseUp","removeEventListener","getClientRect","addDocumentMouseMoveListener","addDocumentMouseUpListener","preventDefault","handleMouseDown","_this2","activeTrackStyle","getActiveTrackStyle","createElement","className","onMouseDown","onTouchStart","handleTouchStart","ref","style","Component","getOwnPropertyDescriptor","ownKeys","log1p","F","log2","log","LN2","log10","LOG10E","valueTransformer","newObj","_interopRequireWildcard","_defaultClassNames2","_label2","_rangePropType2","_valuePropType2","_slider2","_track2","_keyCodes","InputRange","startValue","trackNode","isSliderDragging","lastKeyMoved","allowSameValues","ariaLabelledby","ariaControls","disabled","formatLabel","name","onChangeStart","onChange","onChangeComplete","step","removeDocumentTouchEndListener","positions","getTrackClientRect","distanceTo","currentValues","isObject","isWithinRange","hasStepDifference","updatePositions","transformedValues","updateValues","shouldUpdate","updateValue","handleTouchEnd","requestAnimationFrame","updatePosition","prevEvent","_props","_props$value","stepValue","prevPosition","prevValue","offset","keyCode","decrementValue","incrementValue","_props2","_props2$value","getKeyByPosition","isDefined","handleInteractionStart","handleInteractionEnd","addDocumentTouchEndListener","_this3","getKeys","map","percentage","_props3","onSliderDrag","handleSliderDrag","onSliderKeyDown","handleSliderKeyDown","type","_this4","captialize","_this5","componentClassName","getComponentClassName","onKeyDown","handleKeyDown","onKeyUp","handleKeyUp","handleTrackDrag","handleTrackMouseDown","renderSliders","renderHiddenInputs","isNumber","Error","_typeof","Symbol","iterator","boundClass","keys","Reflect","getOwnPropertyNames","getOwnPropertySymbols","concat","boundMethod","fn","definingProperty","boundFn","bind","_len","args","Array","_key","apply","numA","numB","abs","charAt","toUpperCase","propName","Slider","removeDocumentTouchMoveListener","handleTouchMove","addDocumentTouchMoveListener","getStyle","draggable","role","tabIndex","createHTML","_defineProperty","_assertThisInitialized","INSTANCE_MAP","Map","OBSERVER_MAP","ROOT_IDS","consecutiveRootId","observe","element","callback","options","threshold","_options","root","rootMargin","has","observerId","set","toString","getRootId","observerInstance","IntersectionObserver","inView","observer","thresholds","isArray","unobserve","itemsLeft","rootObserved","item","disconnect","changes","intersection","isIntersecting","intersectionRatio","some","InView","entry","triggerOnce","setState","observeNode","state","_proto","componentDidMount","componentDidUpdate","prevProps","prevState","componentWillUnmount","_this$props","handleChange","render","_this$state","isPlainChildren","handleNode","_this$props2","as","tag","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","initialState","Cta","icon","title","body","ctaUrl","ctaText","bodyStr","styles","cta","button","path","strToClassName","toLowerCase","trim","replace","ContentTabs","initAnchors","updatedAnchors","anchors","v","anchor","onClickedAnchor","e","scrollToAnchor","hash","active","document","querySelectorAll","contentTabs__colActive","allTabs","window","location","pathname","idx","classList","remove","add","handleUrlHashScroll","getElementById","substring","isMobileView","innerWidth","headerHeight","tabsHeightOffset","rect","win","defaultView","offsetTop","top","pageYOffset","scrollTo","behavior","renderTabs","contentTabs__col","href","onClick","mobileHasScrolled","refContentTabs","createRef","snapshot","triggleScroll","contentTabs","defaultProps","connect","header","PageFooterModule","text","pageFooterModule","RenderMarkdown","PageCallout","pageCallout","getRandomValues","crypto","msCrypto","rnds8","Uint8Array","rng","uuid","test","byteToHex","push","substr","arr","buf","rnds","random","PageSelect","activeOption","getOptionVal","renderTitle","pageSelect__header","onSelectChange","renderSelectItems","adminTitle","selectItems","idSelect","pageSelect__inputWrapper","pageSelect__input","id","onBlur","aria-hidden","renderItem","colorScheme","addBorder","selectedItem","find","contentModules","classes","pageSelect__content","pageSelect__contentBorder","join","wrapperClass","pageSelect__contentNegTop","pageSelect","pageSelectBlue","pageSelectPurple","GuidelinesCard","columns","card","cardTitle","cardBody","wrapper","column","columnIcon","src","file","url","alt","description","columnBody","AntiemeticGuidelines","steps","antiemeticGuidelines","ProvenEffectiveness","highlightText","strings","refBigBlockBody","k","current","innerHTML","handleHighlightingText","useAltColor","block3HighlightedText","block3HighlightedTextSecondary","highlight1Classes","peChart__hight1","peChart__hight1Alt","split","peChart__hight2","renderSmallBlock","isColored","wrapperClasses","peChart__smallBlock","peChart__smallBlockHighlight","peChart__smallBlockHighlightAlt","peChart__smallBlockInner","peChart__smallBlockHeader","renderBigBlock","mg","mgClasses","peChart__bigBlockMg","peChart__bigBlockMgAlt","peChart__bigBlock","peChart__bigBlockHeader","peChart__bigBlockBody","subTitle","block1Percentage","block1Body","block2Percentage","block2Body","block3Header","block3Mg","block3Body","peChart","peChart__title","peChart__subTitle","peChart__smallBlocks","a","b","NaN","f","compare","d","ascending","lo","hi","mid","right","ascendingBisect","bisector","bisectRight","bisect","n","valueof","start","stop","ceil","range","e10","e5","e2","ticks","count","tickIncrement","isFinite","floor","power","LN10","error","tickStep","step0","step1","translateX","translateY","scale","center","bandwidth","entering","__axis","orient","tickArguments","tickValues","tickFormat","tickSizeInner","tickSizeOuter","tickPadding","transform","axis","domain","format","spacing","range0","range1","copy","selection","selectAll","tick","order","tickExit","exit","tickEnter","enter","append","attr","line","select","merge","insert","transition","getAttribute","p","parentNode","filter","each","_","tickSize","noop","dispatch","t","Dispatch","parseTypenames","typenames","types","c","on","typename","T","that","none","selector","querySelector","matches","update","EnterNode","parent","datum","namespaceURI","_next","_parent","__data__","appendChild","child","insertBefore","next","bindIndex","group","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","keyValues","xhtml","svg","xlink","xml","xmlns","prefix","namespaces","space","local","attrRemove","removeAttribute","attrRemoveNS","fullname","removeAttributeNS","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","attrFunctionNS","styleRemove","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","propertyRemove","propertyConstant","propertyFunction","classArray","ClassList","_node","_names","classedAdd","names","list","classedRemove","classedTrue","classedFalse","classedFunction","splice","contains","textRemove","textContent","textConstant","textFunction","htmlRemove","htmlConstant","htmlFunction","raise","nextSibling","lower","previousSibling","firstChild","creatorInherit","uri","documentElement","createElementNS","creatorFixed","namespace","constantNull","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","filterEvents","mouseenter","mouseleave","filterContextListener","listener","index","contextListener","related","relatedTarget","compareDocumentPosition","event1","event0","onRemove","__on","o","j","m","capture","onAdd","wrap","dispatchEvent","params","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","Selection","groups","parents","_groups","_parents","subgroups","subnode","subgroup","selectorAll","match","matcher","size","enterGroup","updateGroup","previous","i0","i1","_enter","_exit","sparse","onenter","onupdate","onexit","groups0","groups1","m0","m1","merges","group0","group1","sort","compareNode","sortgroups","sortgroup","nodes","empty","getAttributeNS","classed","html","creator","before","deep","factory","extend","definition","Color","reI","reN","reP","reHex","reRgbInteger","RegExp","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","l","exec","parseInt","rgbn","Rgb","rgba","hsla","r","g","rgbConvert","opacity","rgb_formatHex","hex","rgb_formatRgb","isNaN","h","s","Hsl","hslConvert","hsl2rgb","m2","basis","t1","v0","v1","v2","v3","t2","t3","define","channels","displayable","formatHsl","brighter","darker","linear","gamma","nogamma","exponential","color","end","rgbGamma","rgbSpline","spline","colors","isNumberArray","ArrayBuffer","isView","DataView","genericArray","nb","na","Date","setTime","reA","reB","taskHead","taskTail","am","bm","bs","bi","lastIndex","q","one","numberArray","valueOf","object","timeout","clockLast","clockNow","clockSkew","clock","performance","now","setFrame","setTimeout","clearNow","Timer","_call","_time","timer","delay","time","restart","wake","timerFlush","t0","Infinity","sleep","nap","poke","clearTimeout","clearInterval","setInterval","elapsed","emptyOn","emptyTween","schedules","__transition","tween","duration","ease","timing","schedule","cssNode","cssRoot","cssView","svgNode","degrees","PI","rotate","skewX","scaleX","scaleY","atan2","atan","interpolateTransform","parse","pxComma","pxParen","degParen","pop","xa","ya","xb","yb","translate","interpolateTransformCss","decompose","interpolateTransformSvg","baseVal","consolidate","matrix","tweenRemove","tween0","tween1","tweenFunction","tweenValue","_id","interpolate","value1","string00","interpolate0","string1","string0","string10","attrInterpolate","attrInterpolateNS","attrTweenNS","_value","attrTween","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","onFunction","on0","on1","sit","every","styleInterpolate","styleTween","textInterpolate","textTween","Transition","_name","newId","selection_prototype","inherit","id0","id1","styleNull","listener0","styleMaybeRemove","Promise","resolve","reject","cancel","interrupt","defaultTiming","number1","number2","cos","sin","tauEpsilon","Path","_x0","_y0","_x1","_y1","moveTo","closePath","lineTo","quadraticCurveTo","x1","y1","bezierCurveTo","x2","y2","arcTo","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","acos","t01","t21","arc","a0","a1","ccw","dx","dy","cw","da","w","clear","entries","Set","proto","tree","xm","ym","xp","yp","bottom","_root","leaf","_x","_y","quadtree","Quadtree","addAll","leaf_copy","treeProto","cover","xz","yz","z","visit","extent","x3","y3","quads","radius","d2","retainer","removeAll","visitAfter","toExponential","coefficient","formatDecimal","re","formatSpecifier","specifier","FormatSpecifier","fill","align","symbol","zero","comma","precision","prefixExponent","exponent","toFixed","toPrecision","_p","formatRounded","prefixes","locale","grouping","thousands","Number","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","String","percent","minus","nan","newFormat","formatTypes","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","formatTrim","charCodeAt","padding","formatPrefix","randomUniform","sourceRandomUniform","randomNormal","mu","sigma","sourceRandomNormal","randomLogNormal","normal","sourceRandomLogNormal","randomIrwinHall","sum","sourceRandomIrwinHall","randomBates","irwinHall","sourceRandomBates","randomExponential","lambda","sourceRandomExponential","initRange","implicit","ordinal","unknown","band","ordinalRange","paddingInner","paddingOuter","rescale","rangeRound","unit","normalize","clamper","bimap","d0","d1","r0","r1","polymap","transformer","untransform","piecewise","output","input","invert","u","continuous","precisionPrefix","precisionRound","precisionFixed","linearish","nice","newInterval","floori","offseti","field","interval","date","setMonth","setHours","setFullYear","getFullYear","setDate","getMonth","weekday","getDate","getDay","getTimezoneOffset","sunday","monday","tuesday","wednesday","thursday","friday","saturday","getMilliseconds","getSeconds","getMinutes","getHours","getUTCSeconds","utcWeekday","setUTCDate","getUTCDate","getUTCDay","setUTCHours","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcDay","utcYear","setUTCMonth","setUTCFullYear","getUTCFullYear","localDate","H","M","L","utcDate","UTC","newDate","pads","numberRe","percentRe","requoteRe","pad","requote","formatRe","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","U","parseWeekNumberISO","V","parseWeekNumberMonday","W","parseFullYear","parseYear","parseZone","Z","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","Q","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","day","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatFullYear","formatZone","formatUTCDayOfMonth","formatUTCHour24","getUTCHours","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","getUTCMonth","formatUTCMinutes","getUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","utcFormats","parses","parseSpecifier","newParse","week","X","utcFormat","utcParse","formatLocale","utcMonth","utcHour","setUTCMinutes","utcMinute","setUTCSeconds","asin","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","intersect","x10","y10","x32","y32","cornerTangents","rc","ox","oy","x11","y11","x00","y00","D","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cx","cy","cornerRadius","padRadius","buffer","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","p0","p1","oc","ax","ay","bx","by","kc","lc","centroid","Linear","_context","areaStart","_line","areaEnd","lineStart","_point","lineEnd","point","sortValues","pie","arcs","pa","RedBlackTree","RedBlackNode","C","R","P","N","RedBlackRotateLeft","RedBlackRotateRight","RedBlackFirst","after","grandpa","uncle","sibling","createEdge","edge","setEdgeEnd","cells","halfedges","createBorderEdge","vertex","clipEdge","connectEdge","fm","fb","lx","ly","rx","ry","fx","fy","cellHalfedgeAngle","cell","site","va","vb","cellHalfedgeStart","cellHalfedgeEnd","firstCircle","circlePool","Circle","attachCircle","lArc","rArc","lSite","cSite","rSite","epsilon2","ha","hc","circle","circles","detachCircle","beachPool","Beach","createBeach","beach","detachBeach","beaches","removeBeach","disappearing","unshift","iArc","nArcs","addBeach","dxl","dxr","directrix","leftBreakPoint","rightBreakPoint","createCell","newArc","hb","rfocx","rfocy","pby2","lfocx","lfocy","plby2","hl","aby2","lexicographic","Diagram","sites","array","sortCellHalfedges","clipEdges","iCell","iHalfedge","nHalfedges","startX","startY","endX","endY","nCells","dc","v00","v01","v11","v10","clipCells","edges","polygons","polygon","triangles","s0","e1","s1","links","_found","vx","vy","SQRT2","Transform","applyX","applyY","invertX","invertY","rescaleX","rescaleY","Pie","displayPercentages","txtCenter","txtCenterColor","txtCenterYAxis","txtCenterClass","useRef","cache","createPie","d3","createArc","colorScale","useEffect","prevData","groupWithData","groupWithUpdate","interpolator","height","PONVIncidencePieCharts","pie1References","pie2References","pie3References","pie4References","pieCharts","charts","footnotes","pieChart","chartsGroup","chartsGroup__header","chartsGroup__wrapper","chart","chartsGroup__chart","AnimatedPieHooks","chartsGroup__chartTxtCenter","chartsGroup__chartFootnotes","dangerouslySetInnerHTML","__html","DonutChart","redrawChart","containerRef","drawChart","legendRadius","legendPosition","outerArc","pieData","legend","bb","getBBox","centerX","centerY","PatientDissatisfaction","useState","chartSize","setChartSize","updateSize","newSize","defaultSize","BarChart","classGridTick","classBarLabel","widthWithMargin","heightWithMargin","legendMargin","xScale","label","yScale","barGroups","ResponseRatesTwoHours","chartWidth","setChartWidth","refChartContainer","updateWidth","newWidth","offsetWidth","responseRates__chart","responseRates__barChart","responseRates__barChartYGridTick","responseRates__barChartLabel","responseRates__card","responseRates__header2","responseRates__header1","responseRates__cardCopy","responseRates__highlight","responseRates__highlightAlt","responseRates__cardFooter","responseRates__footnote","ResponseRatesTwoHoursSurgeons","ResponseRatesFourHours","ResponseRatesSixHours","Tab","activeTab","tabsListItem","tabsListActive","Tabs","onClickTabItem","tab","tabs","tabsList","tabsContent","ResponseRatesTabs","GuidelineDrivenCare","txtGuidelinesFooter","txtGuidelinesBody","guidelinesTitle","childContentfulPageGuidelineDrivenCareGuidelinesBodyTextNode","guidelinesBody","childContentfulPageGuidelineDrivenCareGuidelinesFooterTextNode","guidelinesFooter","commonClassesTitle","commonClassesList","calloutPosition","childContentfulPageGuidelineDrivenCareCalloutBodyTextNode","calloutBody","renderCallout","txtCalloutBody","guidelines__rowAlt","guidelines__rowAltTop","guidelines","guidelines__row","guidelines__col","guidelines__header","paragraph","guidelines__footnotes","guidelines__list","KaplanCurveChart","margin","hoursNumber","ticksNumber","getData","series","results","hours","xTicks","arrayUnique","axisBottom","axisLeft","tableRowBarhemsys","tableRowPlacebo","defined","curve","defined0","KaplanCurve","BSATemplate","dosageData","useAlt","bsa","bsa__copy","bsa__copyAlt","bsa__graphs","bsa__graphsCol","bsa__graphsColAlt","bsa__graphsDosage","bsa__graphsDosageAlt","dosage","bsa__header","BroadlyStudiedAntiemetic","BroadlyStudiedAntiemeticPharmacy","RecommendedDosage","eyebrow","image","bynderImage","details","original","imgResponsive","fluid","renderImg","PageTable","headers","references","tableClasses","table","tableBody","headerStr","tableHeader","valueStr","tableValue","tableReferences","LearnMoreLink","to","QAndA","isAnswered","renderInputs","answers","parsedVal","ponvIncidenceQa__inputGroup","htmlFor","ponvIncidenceQa__radioContainer","ponvIncidenceQa__radio","aria-label","ponvIncidenceQa__radioBtn","renderAnswer","ponvIncidenceQa__answer","question","ponvIncidenceQa","ponvIncidenceQa__form","ponvIncidenceQa__question","PonvVideo","idWrapper","idBynder","renderVideo","createScript","script","data-bynder-widget","data-media-id","data-width","PageContentCard","linkText","linkUrl","secured","cardContent","renderBody","cardButton","cardImage","cardImageResponsive","fields","Img","LeadGenForm","plgfaccount","plgfid","plgfdomain","pageLeadGenForm","LeadGenReturn","plgrdownload","open","pageLeadGenReturn","Components","ResourceCard","ContentModules","__typename","sys","contentType","componentName","chartComponent","Chart","pageCopy","sWProps","pageFooter","aliasedTitle","pECProps","picture","tableHeaders","tableValues","lMLProps","pCCProps","pageLeadGenFormTitle","formtitle","pageLeadGenFormCopy","pLGFAccount","ssAccount","pLGFId","ssFormId","pLGFDomain","ssFormDomain","pageLeadGenReturnTitle","returntitle","pLGRDownload","formDownloadUrl","gDCProps","ponvIPCProps","resourceCardProps","pageAnchor","PageFooterLinks","pageFooterLinks","link","col","btn","query","Page","refFixedPageTabs","refFixedPageTabsWrapper","fixedPageTabsHeight","setFixedPageTabsHeight","fixedPageTabsPos","setFixedPageTabsPos","updateDimsPos","clientHeight","isShown","colClass","tabsWarpperClasses","contentfulPage","hero","footerLinks","ctaSidebar","pageTabs","_React$useState","setRef","useInView","renderPageTabs","marginBottom","isExternal","childContentfulCtaBlockBodyTextNode","G","ABV","Label","labelValue","propTypes"],"mappings":"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","file":"component---src-templates-page-js-edea46a5bd9d4f505a7c.js","sourcesContent":["'use strict';\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _captialize = require('./captialize');\n\nObject.defineProperty(exports, 'captialize', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_captialize)[\"default\"];\n }\n});\n\nvar _clamp = require('./clamp');\n\nObject.defineProperty(exports, 'clamp', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_clamp)[\"default\"];\n }\n});\n\nvar _distanceTo = require('./distance-to');\n\nObject.defineProperty(exports, 'distanceTo', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_distanceTo)[\"default\"];\n }\n});\n\nvar _isDefined = require('./is-defined');\n\nObject.defineProperty(exports, 'isDefined', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_isDefined)[\"default\"];\n }\n});\n\nvar _isNumber = require('./is-number');\n\nObject.defineProperty(exports, 'isNumber', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_isNumber)[\"default\"];\n }\n});\n\nvar _isObject = require('./is-object');\n\nObject.defineProperty(exports, 'isObject', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_isObject)[\"default\"];\n }\n});\n\nvar _length = require('./length');\n\nObject.defineProperty(exports, 'length', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_length)[\"default\"];\n }\n});\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}","// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n // Old FF bug\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;\n","\"use strict\";\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = distanceTo;\n/**\n * Calculate the distance between pointA and pointB\n * @ignore\n * @param {Point} pointA\n * @param {Point} pointB\n * @return {number} Distance\n */\n\nfunction distanceTo(pointA, pointB) {\n var xDiff = Math.pow(pointB.x - pointA.x, 2);\n var yDiff = Math.pow(pointB.y - pointA.y, 2);\n return Math.sqrt(xDiff + yDiff);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/** @ignore */\n\nvar DOWN_ARROW = exports.DOWN_ARROW = 40;\n/** @ignore */\n\nvar LEFT_ARROW = exports.LEFT_ARROW = 37;\n/** @ignore */\n\nvar RIGHT_ARROW = exports.RIGHT_ARROW = 39;\n/** @ignore */\n\nvar UP_ARROW = exports.UP_ARROW = 38;","'use strict';\n\nrequire(\"core-js/modules/es6.object.assign\");\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nexports.getPercentageFromPosition = getPercentageFromPosition;\nexports.getValueFromPosition = getValueFromPosition;\nexports.getValueFromProps = getValueFromProps;\nexports.getPercentageFromValue = getPercentageFromValue;\nexports.getPercentagesFromValues = getPercentagesFromValues;\nexports.getPositionFromValue = getPositionFromValue;\nexports.getPositionsFromValues = getPositionsFromValues;\nexports.getPositionFromEvent = getPositionFromEvent;\nexports.getStepValueFromValue = getStepValueFromValue;\n\nvar _utils = require('../utils');\n/**\n * Convert a point into a percentage value\n * @ignore\n * @param {Point} position\n * @param {ClientRect} clientRect\n * @return {number} Percentage value\n */\n\n\nfunction getPercentageFromPosition(position, clientRect) {\n var length = clientRect.width;\n var sizePerc = position.x / length;\n return sizePerc || 0;\n}\n/**\n * Convert a point into a model value\n * @ignore\n * @param {Point} position\n * @param {number} minValue\n * @param {number} maxValue\n * @param {ClientRect} clientRect\n * @return {number}\n */\n\n\nfunction getValueFromPosition(position, minValue, maxValue, clientRect) {\n var sizePerc = getPercentageFromPosition(position, clientRect);\n var valueDiff = maxValue - minValue;\n return minValue + valueDiff * sizePerc;\n}\n/**\n * Convert props into a range value\n * @ignore\n * @param {Object} props\n * @param {boolean} isMultiValue\n * @return {Range}\n */\n\n\nfunction getValueFromProps(props, isMultiValue) {\n if (isMultiValue) {\n return _extends({}, props.value);\n }\n\n return {\n min: props.minValue,\n max: props.value\n };\n}\n/**\n * Convert a model value into a percentage value\n * @ignore\n * @param {number} value\n * @param {number} minValue\n * @param {number} maxValue\n * @return {number}\n */\n\n\nfunction getPercentageFromValue(value, minValue, maxValue) {\n var validValue = (0, _utils.clamp)(value, minValue, maxValue);\n var valueDiff = maxValue - minValue;\n var valuePerc = (validValue - minValue) / valueDiff;\n return valuePerc || 0;\n}\n/**\n * Convert model values into percentage values\n * @ignore\n * @param {Range} values\n * @param {number} minValue\n * @param {number} maxValue\n * @return {Range}\n */\n\n\nfunction getPercentagesFromValues(values, minValue, maxValue) {\n return {\n min: getPercentageFromValue(values.min, minValue, maxValue),\n max: getPercentageFromValue(values.max, minValue, maxValue)\n };\n}\n/**\n * Convert a value into a point\n * @ignore\n * @param {number} value\n * @param {number} minValue\n * @param {number} maxValue\n * @param {ClientRect} clientRect\n * @return {Point} Position\n */\n\n\nfunction getPositionFromValue(value, minValue, maxValue, clientRect) {\n var length = clientRect.width;\n var valuePerc = getPercentageFromValue(value, minValue, maxValue);\n var positionValue = valuePerc * length;\n return {\n x: positionValue,\n y: 0\n };\n}\n/**\n * Convert a range of values into points\n * @ignore\n * @param {Range} values\n * @param {number} minValue\n * @param {number} maxValue\n * @param {ClientRect} clientRect\n * @return {Range}\n */\n\n\nfunction getPositionsFromValues(values, minValue, maxValue, clientRect) {\n return {\n min: getPositionFromValue(values.min, minValue, maxValue, clientRect),\n max: getPositionFromValue(values.max, minValue, maxValue, clientRect)\n };\n}\n/**\n * Convert an event into a point\n * @ignore\n * @param {Event} event\n * @param {ClientRect} clientRect\n * @return {Point}\n */\n\n\nfunction getPositionFromEvent(event, clientRect) {\n var length = clientRect.width;\n\n var _ref = event.touches ? event.touches[0] : event,\n clientX = _ref.clientX;\n\n return {\n x: (0, _utils.clamp)(clientX - clientRect.left, 0, length),\n y: 0\n };\n}\n/**\n * Convert a value into a step value\n * @ignore\n * @param {number} value\n * @param {number} valuePerStep\n * @return {number}\n */\n\n\nfunction getStepValueFromValue(value, valuePerStep) {\n return Math.round(value / valuePerStep) * valuePerStep;\n}","'use strict';\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inputRange = require('./input-range/input-range');\n\nvar _inputRange2 = _interopRequireDefault(_inputRange);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n/**\n * @ignore\n * @typedef {Object} ClientRect\n * @property {number} height\n * @property {number} left\n * @property {number} top\n * @property {number} width\n */\n\n/**\n * @typedef {Object} InputRangeClassNames\n * @property {string} activeTrack\n * @property {string} disabledInputRange\n * @property {string} inputRange\n * @property {string} labelContainer\n * @property {string} maxLabel\n * @property {string} minLabel\n * @property {string} slider\n * @property {string} sliderContainer\n * @property {string} track\n * @property {string} valueLabel\n */\n\n/**\n * @typedef {Function} LabelFormatter\n * @param {number} value\n * @param {string} type\n * @return {string}\n */\n\n/**\n * @ignore\n * @typedef {Object} Point\n * @property {number} x\n * @property {number} y\n */\n\n/**\n * @typedef {Object} Range\n * @property {number} min - Min value\n * @property {number} max - Max value\n */\n\n\nexports[\"default\"] = _inputRange2[\"default\"];\nmodule.exports = exports['default'];","require('./_typed-array')('Float32', 4, function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"bsa\":\"bsa-template-module--bsa--11WlZ\",\"bsa__graphs\":\"bsa-template-module--bsa__graphs--13Zol\",\"bsa__graphsCol\":\"bsa-template-module--bsa__graphs-col--3SZg0\",\"bsa__graphsDosage\":\"bsa-template-module--bsa__graphs-dosage--1A7OM\",\"bsa__graphsDosageAlt\":\"bsa-template-module--bsa__graphs-dosage--alt--1P2ro\",\"bsa__header\":\"bsa-template-module--bsa__header--NhbSF\",\"bsa__copy\":\"bsa-template-module--bsa__copy--1kMJw\",\"bsa__copyAlt\":\"bsa-template-module--bsa__copy--alt--1zExr\"};","'use strict';\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Default CSS class names\n * @ignore\n * @type {InputRangeClassNames}\n */\n\nvar DEFAULT_CLASS_NAMES = {\n activeTrack: 'input-range__track input-range__track--active',\n disabledInputRange: 'input-range input-range--disabled',\n inputRange: 'input-range',\n labelContainer: 'input-range__label-container',\n maxLabel: 'input-range__label input-range__label--max',\n minLabel: 'input-range__label input-range__label--min',\n slider: 'input-range__slider',\n sliderContainer: 'input-range__slider-container',\n track: 'input-range__track input-range__track--background',\n valueLabel: 'input-range__label input-range__label--value'\n};\nexports[\"default\"] = DEFAULT_CLASS_NAMES;\nmodule.exports = exports['default'];","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ponvIncidenceQa__form\":\"q-and-a-module--ponv-incidence-qa__form--J9sH-\",\"ponvIncidenceQa__inputGroup\":\"q-and-a-module--ponv-incidence-qa__input-group--34Oh1\",\"ponvIncidenceQa__radioContainer\":\"q-and-a-module--ponv-incidence-qa__radio-container--SpqfJ\",\"ponvIncidenceQa__radio\":\"q-and-a-module--ponv-incidence-qa__radio--2K_Mb\",\"ponvIncidenceQa__radioBtn\":\"q-and-a-module--ponv-incidence-qa__radio-btn--2arlo\",\"ponvIncidenceQa__question\":\"q-and-a-module--ponv-incidence-qa__question--3zC_L\",\"ponvIncidenceQa__answer\":\"q-and-a-module--ponv-incidence-qa__answer--19wQv\"};","\"use strict\";\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = isDefined;\n/**\n * Check if a value is defined\n * @ignore\n * @param {*} value\n * @return {boolean}\n */\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nmodule.exports = exports[\"default\"];","// extracted by mini-css-extract-plugin\nmodule.exports = {\"cta\":\"cta-module--cta--3cSt7\",\"icon\":\"cta-module--icon--2sxc7\",\"title\":\"cta-module--title--FbMYy\",\"body\":\"cta-module--body--SRyHC\",\"button\":\"cta-module--button--1cEgO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"page-table-module--wrapper--Tg2zD\",\"table\":\"page-table-module--table--1P-8e\",\"tableHeader\":\"page-table-module--table-header--2kKxa\",\"tableBody\":\"page-table-module--table-body--2ktyp\",\"tableReferences\":\"page-table-module--table-references--3dUdT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"responseRates__chart\":\"response-rates-module--response-rates__chart--3mefc\",\"responseRates__highlight\":\"response-rates-module--response-rates__highlight--dKOq8\",\"responseRates__highlightAlt\":\"response-rates-module--response-rates__highlight--alt--UDUPD\",\"responseRates__header1\":\"response-rates-module--response-rates__header-1--mJ1dL\",\"responseRates__header2\":\"response-rates-module--response-rates__header-2--14QGW\",\"responseRates__cardCopy\":\"response-rates-module--response-rates__card-copy--fSLTT\",\"responseRates__cardFooter\":\"response-rates-module--response-rates__card-footer--vOCmv\",\"responseRates__footnote\":\"response-rates-module--response-rates__footnote--l0G-G\",\"responseRates__barChart\":\"response-rates-module--response-rates__bar-chart--2lAUT\",\"responseRates__barChartLabel\":\"response-rates-module--response-rates__bar-chart-label--3wj_H\",\"responseRates__barChartYGridTick\":\"response-rates-module--response-rates__bar-chart-y-grid-tick--34an2\",\"responseRates__card\":\"response-rates-module--response-rates__card--rrKci\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"card\":\"page-card-module--card--jpzvo\",\"cardImage\":\"page-card-module--card-image--FxjMB\",\"cardContent\":\"page-card-module--card-content--3s_55\",\"cardImageResponsive\":\"page-card-module--card-image-responsive--r-YLK\",\"cardTitle\":\"page-card-module--card-title--1NXsL\",\"cardBody\":\"page-card-module--card-body--1V3Kk\",\"cardButton\":\"page-card-module--card-button--2eWJt\"};","// 20.2.2.28 Math.sign(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { sign: require('./_math-sign') });\n","'use strict';\n\nrequire(\"core-js/modules/es6.array.reduce\");\n\nrequire(\"core-js/modules/web.dom.iterable\");\n\nrequire(\"core-js/modules/es6.array.iterator\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es6.object.keys\");\n\nrequire(\"core-js/modules/es6.array.for-each\");\n\nrequire(\"core-js/modules/es6.object.set-prototype-of\");\n\nrequire(\"core-js/modules/es6.object.create\");\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = undefined;\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _desc, _value, _class;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _autobindDecorator = require('autobind-decorator');\n\nvar _autobindDecorator2 = _interopRequireDefault(_autobindDecorator);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nfunction _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\n var desc = {};\n Object['ke' + 'ys'](descriptor).forEach(function (key) {\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n\n if ('value' in desc || desc.initializer) {\n desc.writable = true;\n }\n\n desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n return decorator(target, property, desc) || desc;\n }, desc);\n\n if (context && desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n\n if (desc.initializer === void 0) {\n Object['define' + 'Property'](target, property, desc);\n desc = null;\n }\n\n return desc;\n}\n/**\n * @ignore\n */\n\n\nvar Track = (_class = function (_React$Component) {\n _inherits(Track, _React$Component);\n\n _createClass(Track, null, [{\n key: 'propTypes',\n\n /**\n * @override\n * @return {Object}\n * @property {Function} children\n * @property {Function} classNames\n * @property {Boolean} draggableTrack\n * @property {Function} onTrackDrag\n * @property {Function} onTrackMouseDown\n * @property {Function} percentages\n */\n get: function get() {\n return {\n children: _propTypes2[\"default\"].node.isRequired,\n classNames: _propTypes2[\"default\"].objectOf(_propTypes2[\"default\"].string).isRequired,\n draggableTrack: _propTypes2[\"default\"].bool,\n onTrackDrag: _propTypes2[\"default\"].func,\n onTrackMouseDown: _propTypes2[\"default\"].func.isRequired,\n percentages: _propTypes2[\"default\"].objectOf(_propTypes2[\"default\"].number).isRequired\n };\n }\n /**\n * @param {Object} props\n * @param {InputRangeClassNames} props.classNames\n * @param {Boolean} props.draggableTrack\n * @param {Function} props.onTrackDrag\n * @param {Function} props.onTrackMouseDown\n * @param {number} props.percentages\n */\n\n }]);\n\n function Track(props) {\n _classCallCheck(this, Track);\n /**\n * @private\n * @type {?Component}\n */\n\n\n var _this = _possibleConstructorReturn(this, (Track.__proto__ || Object.getPrototypeOf(Track)).call(this, props));\n\n _this.node = null;\n _this.trackDragEvent = null;\n return _this;\n }\n /**\n * @private\n * @return {ClientRect}\n */\n\n\n _createClass(Track, [{\n key: 'getClientRect',\n value: function getClientRect() {\n return this.node.getBoundingClientRect();\n }\n /**\n * @private\n * @return {Object} CSS styles\n */\n\n }, {\n key: 'getActiveTrackStyle',\n value: function getActiveTrackStyle() {\n var width = (this.props.percentages.max - this.props.percentages.min) * 100 + '%';\n var left = this.props.percentages.min * 100 + '%';\n return {\n left: left,\n width: width\n };\n }\n /**\n * Listen to mousemove event\n * @private\n * @return {void}\n */\n\n }, {\n key: 'addDocumentMouseMoveListener',\n value: function addDocumentMouseMoveListener() {\n this.removeDocumentMouseMoveListener();\n this.node.ownerDocument.addEventListener('mousemove', this.handleMouseMove);\n }\n /**\n * Listen to mouseup event\n * @private\n * @return {void}\n */\n\n }, {\n key: 'addDocumentMouseUpListener',\n value: function addDocumentMouseUpListener() {\n this.removeDocumentMouseUpListener();\n this.node.ownerDocument.addEventListener('mouseup', this.handleMouseUp);\n }\n /**\n * @private\n * @return {void}\n */\n\n }, {\n key: 'removeDocumentMouseMoveListener',\n value: function removeDocumentMouseMoveListener() {\n this.node.ownerDocument.removeEventListener('mousemove', this.handleMouseMove);\n }\n /**\n * @private\n * @return {void}\n */\n\n }, {\n key: 'removeDocumentMouseUpListener',\n value: function removeDocumentMouseUpListener() {\n this.node.ownerDocument.removeEventListener('mouseup', this.handleMouseUp);\n }\n /**\n * @private\n * @param {SyntheticEvent} event\n * @return {void}\n */\n\n }, {\n key: 'handleMouseMove',\n value: function handleMouseMove(event) {\n if (!this.props.draggableTrack) {\n return;\n }\n\n if (this.trackDragEvent !== null) {\n this.props.onTrackDrag(event, this.trackDragEvent);\n }\n\n this.trackDragEvent = event;\n }\n /**\n * @private\n * @return {void}\n */\n\n }, {\n key: 'handleMouseUp',\n value: function handleMouseUp() {\n if (!this.props.draggableTrack) {\n return;\n }\n\n this.removeDocumentMouseMoveListener();\n this.removeDocumentMouseUpListener();\n this.trackDragEvent = null;\n }\n /**\n * @private\n * @param {SyntheticEvent} event - User event\n */\n\n }, {\n key: 'handleMouseDown',\n value: function handleMouseDown(event) {\n var clientX = event.touches ? event.touches[0].clientX : event.clientX;\n var trackClientRect = this.getClientRect();\n var position = {\n x: clientX - trackClientRect.left,\n y: 0\n };\n this.props.onTrackMouseDown(event, position);\n\n if (this.props.draggableTrack) {\n this.addDocumentMouseMoveListener();\n this.addDocumentMouseUpListener();\n }\n }\n /**\n * @private\n * @param {SyntheticEvent} event - User event\n */\n\n }, {\n key: 'handleTouchStart',\n value: function handleTouchStart(event) {\n event.preventDefault();\n this.handleMouseDown(event);\n }\n /**\n * @override\n * @return {JSX.Element}\n */\n\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var activeTrackStyle = this.getActiveTrackStyle();\n return _react2[\"default\"].createElement('div', {\n className: this.props.classNames.track,\n onMouseDown: this.handleMouseDown,\n onTouchStart: this.handleTouchStart,\n ref: function ref(node) {\n _this2.node = node;\n }\n }, _react2[\"default\"].createElement('div', {\n style: activeTrackStyle,\n className: this.props.classNames.activeTrack\n }), this.props.children);\n }\n }]);\n\n return Track;\n}(_react2[\"default\"].Component), (_applyDecoratedDescriptor(_class.prototype, 'handleMouseMove', [_autobindDecorator2[\"default\"]], Object.getOwnPropertyDescriptor(_class.prototype, 'handleMouseMove'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleMouseUp', [_autobindDecorator2[\"default\"]], Object.getOwnPropertyDescriptor(_class.prototype, 'handleMouseUp'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleMouseDown', [_autobindDecorator2[\"default\"]], Object.getOwnPropertyDescriptor(_class.prototype, 'handleMouseDown'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleTouchStart', [_autobindDecorator2[\"default\"]], Object.getOwnPropertyDescriptor(_class.prototype, 'handleTouchStart'), _class.prototype)), _class);\nexports[\"default\"] = Track;\nmodule.exports = exports['default'];","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageFooterLinks\":\"page-footer-links-module--page-footer-links--2NuzL\",\"list\":\"page-footer-links-module--list--34yeb\",\"item\":\"page-footer-links-module--item--3elqv\",\"col\":\"page-footer-links-module--col--2lPXT\",\"btn\":\"page-footer-links-module--btn--1x8_r\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageSelect__header\":\"page-select-module--page-select__header--2J5eV\",\"pageSelect__inputWrapper\":\"page-select-module--page-select__input-wrapper--3FuNw\",\"pageSelect__input\":\"page-select-module--page-select__input--6GPvV\",\"pageSelectBlue\":\"page-select-module--page-select--blue--2elYZ\",\"pageSelect__content\":\"page-select-module--page-select__content--2QLcX\",\"pageSelect__contentNegTop\":\"page-select-module--page-select__content--neg-top--1HpgZ\",\"pageSelectPurple\":\"page-select-module--page-select--purple--3KnLi\",\"pageSelect__contentBorder\":\"page-select-module--page-select__content--border--E16UD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageFooterModule\":\"page-footer-module--page-footer-module--A4p7u\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"peChart\":\"proven-effectiveness-module--pe-chart--1Wa1z\",\"peChart__title\":\"proven-effectiveness-module--pe-chart__title--An_Ah\",\"peChart__subTitle\":\"proven-effectiveness-module--pe-chart__sub-title--2iCG8\",\"peChart__hight1\":\"proven-effectiveness-module--pe-chart__hight-1--1hZMV\",\"peChart__hight2\":\"proven-effectiveness-module--pe-chart__hight-2--zlrZc\",\"peChart__hight1Alt\":\"proven-effectiveness-module--pe-chart__hight-1--alt--3tdXD\",\"peChart__smallBlocks\":\"proven-effectiveness-module--pe-chart__small-blocks--26iVG\",\"peChart__bigBlock\":\"proven-effectiveness-module--pe-chart__big-block--1NTn5\",\"peChart__smallBlock\":\"proven-effectiveness-module--pe-chart__small-block--213my\",\"peChart__smallBlockHighlight\":\"proven-effectiveness-module--pe-chart__small-block-highlight--3hvG-\",\"peChart__smallBlockHighlightAlt\":\"proven-effectiveness-module--pe-chart__small-block-highlight--alt--1C3u0\",\"peChart__smallBlockInner\":\"proven-effectiveness-module--pe-chart__small-block-inner--27B6P\",\"peChart__smallBlockHeader\":\"proven-effectiveness-module--pe-chart__small-block-header--areAr\",\"peChart__bigBlockMg\":\"proven-effectiveness-module--pe-chart__big-block-mg--3hi7t\",\"peChart__bigBlockMgAlt\":\"proven-effectiveness-module--pe-chart__big-block-mg--alt--2pfIU\",\"peChart__bigBlockHeader\":\"proven-effectiveness-module--pe-chart__big-block-header--2JsFG\",\"peChart__bigBlockBody\":\"proven-effectiveness-module--pe-chart__big-block-body--1EaiU\"};","// 26.1.11 Reflect.ownKeys(target)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', { ownKeys: require('./_own-keys') });\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageCallout\":\"page-callout-module--page-callout--1CATS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"charts\":\"ponv-incidence-pie-charts-module--charts--360B2\",\"chartsGroup\":\"ponv-incidence-pie-charts-module--charts-group--1oQMo\",\"chartsGroup__header\":\"ponv-incidence-pie-charts-module--charts-group__header--3CSUA\",\"chartsGroup__wrapper\":\"ponv-incidence-pie-charts-module--charts-group__wrapper--3Zbbu\",\"chartsGroup__chart\":\"ponv-incidence-pie-charts-module--charts-group__chart--sBrhp\",\"chartsGroup__chartTxtCenter\":\"ponv-incidence-pie-charts-module--charts-group__chart-txt-center--1rxMm\",\"chartsGroup__chartFootnotes\":\"ponv-incidence-pie-charts-module--charts-group__chart-footnotes--3GMAo\"};","// 20.2.2.20 Math.log1p(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { log1p: require('./_math-log1p') });\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"antiemeticGuidelines\":\"antiemetic-guidelines-module--antiemetic-guidelines--26e_4\",\"title\":\"antiemetic-guidelines-module--title--3csLw\",\"card\":\"antiemetic-guidelines-module--card--3ohM0\",\"number\":\"antiemetic-guidelines-module--number--Hg_y8\",\"cardTitle\":\"antiemetic-guidelines-module--card-title--1H6k9\",\"cardBody\":\"antiemetic-guidelines-module--card-body--2EXMg\",\"wrapper\":\"antiemetic-guidelines-module--wrapper--1DRH5\",\"column\":\"antiemetic-guidelines-module--column--2CmmO\",\"columnIcon\":\"antiemetic-guidelines-module--column-icon--1vIxt\",\"columnBody\":\"antiemetic-guidelines-module--column-body--u7uKr\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"contentTabs\":\"content-tabs-module--content-tabs--1Am6Q\",\"contentTabs__col\":\"content-tabs-module--content-tabs__col--1Ui-2\",\"contentTabs__colActive\":\"content-tabs-module--content-tabs__col--active--2nt5s\"};","// 20.2.2.14 Math.expm1(x)\nvar $export = require('./_export');\nvar $expm1 = require('./_math-expm1');\n\n$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tabsList\":\"tabs-module--tabs-list--jzg6q\",\"tabsContent\":\"tabs-module--tabs-content--1QR3-\"};","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n","'use strict';\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = isNumber;\n/**\n * Check if a value is a number\n * @ignore\n * @param {*} value\n * @return {boolean}\n */\n\nfunction isNumber(value) {\n return typeof value === 'number';\n}\n\nmodule.exports = exports['default'];","// 20.2.2.21 Math.log10(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log10: function log10(x) {\n return Math.log(x) * Math.LOG10E;\n }\n});\n","'use strict';\n\nrequire(\"core-js/modules/es6.function.name\");\n\nrequire(\"core-js/modules/es6.array.map\");\n\nrequire(\"core-js/modules/es6.array.reduce\");\n\nrequire(\"core-js/modules/web.dom.iterable\");\n\nrequire(\"core-js/modules/es6.array.iterator\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es6.object.keys\");\n\nrequire(\"core-js/modules/es6.array.for-each\");\n\nrequire(\"core-js/modules/es6.object.set-prototype-of\");\n\nrequire(\"core-js/modules/es6.object.create\");\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = undefined;\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _desc, _value, _class;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _autobindDecorator = require('autobind-decorator');\n\nvar _autobindDecorator2 = _interopRequireDefault(_autobindDecorator);\n\nvar _valueTransformer = require('./value-transformer');\n\nvar valueTransformer = _interopRequireWildcard(_valueTransformer);\n\nvar _defaultClassNames = require('./default-class-names');\n\nvar _defaultClassNames2 = _interopRequireDefault(_defaultClassNames);\n\nvar _label = require('./label');\n\nvar _label2 = _interopRequireDefault(_label);\n\nvar _rangePropType = require('./range-prop-type');\n\nvar _rangePropType2 = _interopRequireDefault(_rangePropType);\n\nvar _valuePropType = require('./value-prop-type');\n\nvar _valuePropType2 = _interopRequireDefault(_valuePropType);\n\nvar _slider = require('./slider');\n\nvar _slider2 = _interopRequireDefault(_slider);\n\nvar _track = require('./track');\n\nvar _track2 = _interopRequireDefault(_track);\n\nvar _utils = require('../utils');\n\nvar _keyCodes = require('./key-codes');\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj[\"default\"] = obj;\n return newObj;\n }\n}\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nfunction _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\n var desc = {};\n Object['ke' + 'ys'](descriptor).forEach(function (key) {\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n\n if ('value' in desc || desc.initializer) {\n desc.writable = true;\n }\n\n desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n return decorator(target, property, desc) || desc;\n }, desc);\n\n if (context && desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n\n if (desc.initializer === void 0) {\n Object['define' + 'Property'](target, property, desc);\n desc = null;\n }\n\n return desc;\n}\n/**\n * A React component that allows users to input numeric values within a range\n * by dragging its sliders.\n */\n\n\nvar InputRange = (_class = function (_React$Component) {\n _inherits(InputRange, _React$Component);\n\n _createClass(InputRange, null, [{\n key: 'propTypes',\n\n /**\n * @ignore\n * @override\n * @return {Object}\n */\n get: function get() {\n return {\n allowSameValues: _propTypes2[\"default\"].bool,\n ariaLabelledby: _propTypes2[\"default\"].string,\n ariaControls: _propTypes2[\"default\"].string,\n classNames: _propTypes2[\"default\"].objectOf(_propTypes2[\"default\"].string),\n disabled: _propTypes2[\"default\"].bool,\n draggableTrack: _propTypes2[\"default\"].bool,\n formatLabel: _propTypes2[\"default\"].func,\n maxValue: _rangePropType2[\"default\"],\n minValue: _rangePropType2[\"default\"],\n name: _propTypes2[\"default\"].string,\n onChangeStart: _propTypes2[\"default\"].func,\n onChange: _propTypes2[\"default\"].func.isRequired,\n onChangeComplete: _propTypes2[\"default\"].func,\n step: _propTypes2[\"default\"].number,\n value: _valuePropType2[\"default\"]\n };\n }\n /**\n * @ignore\n * @override\n * @return {Object}\n */\n\n }, {\n key: 'defaultProps',\n get: function get() {\n return {\n allowSameValues: false,\n classNames: _defaultClassNames2[\"default\"],\n disabled: false,\n maxValue: 10,\n minValue: 0,\n step: 1\n };\n }\n /**\n * @param {Object} props\n * @param {boolean} [props.allowSameValues]\n * @param {string} [props.ariaLabelledby]\n * @param {string} [props.ariaControls]\n * @param {InputRangeClassNames} [props.classNames]\n * @param {boolean} [props.disabled = false]\n * @param {Function} [props.formatLabel]\n * @param {number|Range} [props.maxValue = 10]\n * @param {number|Range} [props.minValue = 0]\n * @param {string} [props.name]\n * @param {string} props.onChange\n * @param {Function} [props.onChangeComplete]\n * @param {Function} [props.onChangeStart]\n * @param {number} [props.step = 1]\n * @param {number|Range} props.value\n */\n\n }]);\n\n function InputRange(props) {\n _classCallCheck(this, InputRange);\n /**\n * @private\n * @type {?number}\n */\n\n\n var _this = _possibleConstructorReturn(this, (InputRange.__proto__ || Object.getPrototypeOf(InputRange)).call(this, props));\n\n _this.startValue = null;\n /**\n * @private\n * @type {?Component}\n */\n\n _this.node = null;\n /**\n * @private\n * @type {?Component}\n */\n\n _this.trackNode = null;\n /**\n * @private\n * @type {bool}\n */\n\n _this.isSliderDragging = false;\n /**\n * @private\n * @type {?string}\n */\n\n _this.lastKeyMoved = null;\n return _this;\n }\n /**\n * @ignore\n * @override\n * @return {void}\n */\n\n\n _createClass(InputRange, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.removeDocumentMouseUpListener();\n this.removeDocumentTouchEndListener();\n }\n /**\n * Return the CSS class name of the component\n * @private\n * @return {string}\n */\n\n }, {\n key: 'getComponentClassName',\n value: function getComponentClassName() {\n if (!this.props.disabled) {\n return this.props.classNames.inputRange;\n }\n\n return this.props.classNames.disabledInputRange;\n }\n /**\n * Return the bounding rect of the track\n * @private\n * @return {ClientRect}\n */\n\n }, {\n key: 'getTrackClientRect',\n value: function getTrackClientRect() {\n return this.trackNode.getClientRect();\n }\n /**\n * Return the slider key closest to a point\n * @private\n * @param {Point} position\n * @return {string}\n */\n\n }, {\n key: 'getKeyByPosition',\n value: function getKeyByPosition(position) {\n var values = valueTransformer.getValueFromProps(this.props, this.isMultiValue());\n var positions = valueTransformer.getPositionsFromValues(values, this.props.minValue, this.props.maxValue, this.getTrackClientRect());\n\n if (this.isMultiValue()) {\n var distanceToMin = (0, _utils.distanceTo)(position, positions.min);\n var distanceToMax = (0, _utils.distanceTo)(position, positions.max);\n\n if (distanceToMin < distanceToMax) {\n return 'min';\n }\n }\n\n return 'max';\n }\n /**\n * Return all the slider keys\n * @private\n * @return {string[]}\n */\n\n }, {\n key: 'getKeys',\n value: function getKeys() {\n if (this.isMultiValue()) {\n return ['min', 'max'];\n }\n\n return ['max'];\n }\n /**\n * Return true if the difference between the new and the current value is\n * greater or equal to the step amount of the component\n * @private\n * @param {Range} values\n * @return {boolean}\n */\n\n }, {\n key: 'hasStepDifference',\n value: function hasStepDifference(values) {\n var currentValues = valueTransformer.getValueFromProps(this.props, this.isMultiValue());\n return (0, _utils.length)(values.min, currentValues.min) >= this.props.step || (0, _utils.length)(values.max, currentValues.max) >= this.props.step;\n }\n /**\n * Return true if the component accepts a min and max value\n * @private\n * @return {boolean}\n */\n\n }, {\n key: 'isMultiValue',\n value: function isMultiValue() {\n return (0, _utils.isObject)(this.props.value);\n }\n /**\n * Return true if the range is within the max and min value of the component\n * @private\n * @param {Range} values\n * @return {boolean}\n */\n\n }, {\n key: 'isWithinRange',\n value: function isWithinRange(values) {\n if (this.isMultiValue()) {\n return values.min >= this.props.minValue && values.max <= this.props.maxValue && this.props.allowSameValues ? values.min <= values.max : values.min < values.max;\n }\n\n return values.max >= this.props.minValue && values.max <= this.props.maxValue;\n }\n /**\n * Return true if the new value should trigger a render\n * @private\n * @param {Range} values\n * @return {boolean}\n */\n\n }, {\n key: 'shouldUpdate',\n value: function shouldUpdate(values) {\n return this.isWithinRange(values) && this.hasStepDifference(values);\n }\n /**\n * Update the position of a slider\n * @private\n * @param {string} key\n * @param {Point} position\n * @return {void}\n */\n\n }, {\n key: 'updatePosition',\n value: function updatePosition(key, position) {\n var values = valueTransformer.getValueFromProps(this.props, this.isMultiValue());\n var positions = valueTransformer.getPositionsFromValues(values, this.props.minValue, this.props.maxValue, this.getTrackClientRect());\n positions[key] = position;\n this.lastKeyMoved = key;\n this.updatePositions(positions);\n }\n /**\n * Update the positions of multiple sliders\n * @private\n * @param {Object} positions\n * @param {Point} positions.min\n * @param {Point} positions.max\n * @return {void}\n */\n\n }, {\n key: 'updatePositions',\n value: function updatePositions(positions) {\n var values = {\n min: valueTransformer.getValueFromPosition(positions.min, this.props.minValue, this.props.maxValue, this.getTrackClientRect()),\n max: valueTransformer.getValueFromPosition(positions.max, this.props.minValue, this.props.maxValue, this.getTrackClientRect())\n };\n var transformedValues = {\n min: valueTransformer.getStepValueFromValue(values.min, this.props.step),\n max: valueTransformer.getStepValueFromValue(values.max, this.props.step)\n };\n this.updateValues(transformedValues);\n }\n /**\n * Update the value of a slider\n * @private\n * @param {string} key\n * @param {number} value\n * @return {void}\n */\n\n }, {\n key: 'updateValue',\n value: function updateValue(key, value) {\n var values = valueTransformer.getValueFromProps(this.props, this.isMultiValue());\n values[key] = value;\n this.updateValues(values);\n }\n /**\n * Update the values of multiple sliders\n * @private\n * @param {Range|number} values\n * @return {void}\n */\n\n }, {\n key: 'updateValues',\n value: function updateValues(values) {\n if (!this.shouldUpdate(values)) {\n return;\n }\n\n this.props.onChange(this.isMultiValue() ? values : values.max);\n }\n /**\n * Increment the value of a slider by key name\n * @private\n * @param {string} key\n * @return {void}\n */\n\n }, {\n key: 'incrementValue',\n value: function incrementValue(key) {\n var values = valueTransformer.getValueFromProps(this.props, this.isMultiValue());\n var value = values[key] + this.props.step;\n this.updateValue(key, value);\n }\n /**\n * Decrement the value of a slider by key name\n * @private\n * @param {string} key\n * @return {void}\n */\n\n }, {\n key: 'decrementValue',\n value: function decrementValue(key) {\n var values = valueTransformer.getValueFromProps(this.props, this.isMultiValue());\n var value = values[key] - this.props.step;\n this.updateValue(key, value);\n }\n /**\n * Listen to mouseup event\n * @private\n * @return {void}\n */\n\n }, {\n key: 'addDocumentMouseUpListener',\n value: function addDocumentMouseUpListener() {\n this.removeDocumentMouseUpListener();\n this.node.ownerDocument.addEventListener('mouseup', this.handleMouseUp);\n }\n /**\n * Listen to touchend event\n * @private\n * @return {void}\n */\n\n }, {\n key: 'addDocumentTouchEndListener',\n value: function addDocumentTouchEndListener() {\n this.removeDocumentTouchEndListener();\n this.node.ownerDocument.addEventListener('touchend', this.handleTouchEnd);\n }\n /**\n * Stop listening to mouseup event\n * @private\n * @return {void}\n */\n\n }, {\n key: 'removeDocumentMouseUpListener',\n value: function removeDocumentMouseUpListener() {\n this.node.ownerDocument.removeEventListener('mouseup', this.handleMouseUp);\n }\n /**\n * Stop listening to touchend event\n * @private\n * @return {void}\n */\n\n }, {\n key: 'removeDocumentTouchEndListener',\n value: function removeDocumentTouchEndListener() {\n this.node.ownerDocument.removeEventListener('touchend', this.handleTouchEnd);\n }\n /**\n * Handle any \"mousemove\" event received by the slider\n * @private\n * @param {SyntheticEvent} event\n * @param {string} key\n * @return {void}\n */\n\n }, {\n key: 'handleSliderDrag',\n value: function handleSliderDrag(event, key) {\n var _this2 = this;\n\n if (this.props.disabled) {\n return;\n }\n\n var position = valueTransformer.getPositionFromEvent(event, this.getTrackClientRect());\n this.isSliderDragging = true;\n requestAnimationFrame(function () {\n return _this2.updatePosition(key, position);\n });\n }\n /**\n * Handle any \"mousemove\" event received by the track\n * @private\n * @param {SyntheticEvent} event\n * @return {void}\n */\n\n }, {\n key: 'handleTrackDrag',\n value: function handleTrackDrag(event, prevEvent) {\n if (this.props.disabled || !this.props.draggableTrack || this.isSliderDragging) {\n return;\n }\n\n var _props = this.props,\n maxValue = _props.maxValue,\n minValue = _props.minValue,\n _props$value = _props.value,\n max = _props$value.max,\n min = _props$value.min;\n var position = valueTransformer.getPositionFromEvent(event, this.getTrackClientRect());\n var value = valueTransformer.getValueFromPosition(position, minValue, maxValue, this.getTrackClientRect());\n var stepValue = valueTransformer.getStepValueFromValue(value, this.props.step);\n var prevPosition = valueTransformer.getPositionFromEvent(prevEvent, this.getTrackClientRect());\n var prevValue = valueTransformer.getValueFromPosition(prevPosition, minValue, maxValue, this.getTrackClientRect());\n var prevStepValue = valueTransformer.getStepValueFromValue(prevValue, this.props.step);\n var offset = prevStepValue - stepValue;\n var transformedValues = {\n min: min - offset,\n max: max - offset\n };\n this.updateValues(transformedValues);\n }\n /**\n * Handle any \"keydown\" event received by the slider\n * @private\n * @param {SyntheticEvent} event\n * @param {string} key\n * @return {void}\n */\n\n }, {\n key: 'handleSliderKeyDown',\n value: function handleSliderKeyDown(event, key) {\n if (this.props.disabled) {\n return;\n }\n\n switch (event.keyCode) {\n case _keyCodes.LEFT_ARROW:\n case _keyCodes.DOWN_ARROW:\n event.preventDefault();\n this.decrementValue(key);\n break;\n\n case _keyCodes.RIGHT_ARROW:\n case _keyCodes.UP_ARROW:\n event.preventDefault();\n this.incrementValue(key);\n break;\n\n default:\n break;\n }\n }\n /**\n * Handle any \"mousedown\" event received by the track\n * @private\n * @param {SyntheticEvent} event\n * @param {Point} position\n * @return {void}\n */\n\n }, {\n key: 'handleTrackMouseDown',\n value: function handleTrackMouseDown(event, position) {\n if (this.props.disabled) {\n return;\n }\n\n var _props2 = this.props,\n maxValue = _props2.maxValue,\n minValue = _props2.minValue,\n _props2$value = _props2.value,\n max = _props2$value.max,\n min = _props2$value.min;\n event.preventDefault();\n var value = valueTransformer.getValueFromPosition(position, minValue, maxValue, this.getTrackClientRect());\n var stepValue = valueTransformer.getStepValueFromValue(value, this.props.step);\n\n if (!this.props.draggableTrack || stepValue > max || stepValue < min) {\n this.updatePosition(this.getKeyByPosition(position), position);\n }\n }\n /**\n * Handle the start of any mouse/touch event\n * @private\n * @return {void}\n */\n\n }, {\n key: 'handleInteractionStart',\n value: function handleInteractionStart() {\n if (this.props.onChangeStart) {\n this.props.onChangeStart(this.props.value);\n }\n\n if (this.props.onChangeComplete && !(0, _utils.isDefined)(this.startValue)) {\n this.startValue = this.props.value;\n }\n }\n /**\n * Handle the end of any mouse/touch event\n * @private\n * @return {void}\n */\n\n }, {\n key: 'handleInteractionEnd',\n value: function handleInteractionEnd() {\n if (this.isSliderDragging) {\n this.isSliderDragging = false;\n }\n\n if (!this.props.onChangeComplete || !(0, _utils.isDefined)(this.startValue)) {\n return;\n }\n\n if (this.startValue !== this.props.value) {\n this.props.onChangeComplete(this.props.value);\n }\n\n this.startValue = null;\n }\n /**\n * Handle any \"keydown\" event received by the component\n * @private\n * @param {SyntheticEvent} event\n * @return {void}\n */\n\n }, {\n key: 'handleKeyDown',\n value: function handleKeyDown(event) {\n this.handleInteractionStart(event);\n }\n /**\n * Handle any \"keyup\" event received by the component\n * @private\n * @param {SyntheticEvent} event\n * @return {void}\n */\n\n }, {\n key: 'handleKeyUp',\n value: function handleKeyUp(event) {\n this.handleInteractionEnd(event);\n }\n /**\n * Handle any \"mousedown\" event received by the component\n * @private\n * @param {SyntheticEvent} event\n * @return {void}\n */\n\n }, {\n key: 'handleMouseDown',\n value: function handleMouseDown(event) {\n this.handleInteractionStart(event);\n this.addDocumentMouseUpListener();\n }\n /**\n * Handle any \"mouseup\" event received by the component\n * @private\n * @param {SyntheticEvent} event\n */\n\n }, {\n key: 'handleMouseUp',\n value: function handleMouseUp(event) {\n this.handleInteractionEnd(event);\n this.removeDocumentMouseUpListener();\n }\n /**\n * Handle any \"touchstart\" event received by the component\n * @private\n * @param {SyntheticEvent} event\n * @return {void}\n */\n\n }, {\n key: 'handleTouchStart',\n value: function handleTouchStart(event) {\n this.handleInteractionStart(event);\n this.addDocumentTouchEndListener();\n }\n /**\n * Handle any \"touchend\" event received by the component\n * @private\n * @param {SyntheticEvent} event\n */\n\n }, {\n key: 'handleTouchEnd',\n value: function handleTouchEnd(event) {\n this.handleInteractionEnd(event);\n this.removeDocumentTouchEndListener();\n }\n /**\n * Return JSX of sliders\n * @private\n * @return {JSX.Element}\n */\n\n }, {\n key: 'renderSliders',\n value: function renderSliders() {\n var _this3 = this;\n\n var values = valueTransformer.getValueFromProps(this.props, this.isMultiValue());\n var percentages = valueTransformer.getPercentagesFromValues(values, this.props.minValue, this.props.maxValue);\n var keys = this.props.allowSameValues && this.lastKeyMoved === 'min' ? this.getKeys().reverse() : this.getKeys();\n return keys.map(function (key) {\n var value = values[key];\n var percentage = percentages[key];\n var _props3 = _this3.props,\n maxValue = _props3.maxValue,\n minValue = _props3.minValue;\n\n if (key === 'min') {\n maxValue = values.max;\n } else {\n minValue = values.min;\n }\n\n var slider = _react2[\"default\"].createElement(_slider2[\"default\"], {\n ariaLabelledby: _this3.props.ariaLabelledby,\n ariaControls: _this3.props.ariaControls,\n classNames: _this3.props.classNames,\n formatLabel: _this3.props.formatLabel,\n key: key,\n maxValue: maxValue,\n minValue: minValue,\n onSliderDrag: _this3.handleSliderDrag,\n onSliderKeyDown: _this3.handleSliderKeyDown,\n percentage: percentage,\n type: key,\n value: value\n });\n\n return slider;\n });\n }\n /**\n * Return JSX of hidden inputs\n * @private\n * @return {JSX.Element}\n */\n\n }, {\n key: 'renderHiddenInputs',\n value: function renderHiddenInputs() {\n var _this4 = this;\n\n if (!this.props.name) {\n return [];\n }\n\n var isMultiValue = this.isMultiValue();\n var values = valueTransformer.getValueFromProps(this.props, isMultiValue);\n return this.getKeys().map(function (key) {\n var value = values[key];\n var name = isMultiValue ? '' + _this4.props.name + (0, _utils.captialize)(key) : _this4.props.name;\n return _react2[\"default\"].createElement('input', {\n key: key,\n type: 'hidden',\n name: name,\n value: value\n });\n });\n }\n /**\n * @ignore\n * @override\n * @return {JSX.Element}\n */\n\n }, {\n key: 'render',\n value: function render() {\n var _this5 = this;\n\n var componentClassName = this.getComponentClassName();\n var values = valueTransformer.getValueFromProps(this.props, this.isMultiValue());\n var percentages = valueTransformer.getPercentagesFromValues(values, this.props.minValue, this.props.maxValue);\n return _react2[\"default\"].createElement('div', {\n 'aria-disabled': this.props.disabled,\n ref: function ref(node) {\n _this5.node = node;\n },\n className: componentClassName,\n onKeyDown: this.handleKeyDown,\n onKeyUp: this.handleKeyUp,\n onMouseDown: this.handleMouseDown,\n onTouchStart: this.handleTouchStart\n }, _react2[\"default\"].createElement(_label2[\"default\"], {\n classNames: this.props.classNames,\n formatLabel: this.props.formatLabel,\n type: 'min'\n }, this.props.minValue), _react2[\"default\"].createElement(_track2[\"default\"], {\n classNames: this.props.classNames,\n draggableTrack: this.props.draggableTrack,\n ref: function ref(trackNode) {\n _this5.trackNode = trackNode;\n },\n percentages: percentages,\n onTrackDrag: this.handleTrackDrag,\n onTrackMouseDown: this.handleTrackMouseDown\n }, this.renderSliders()), _react2[\"default\"].createElement(_label2[\"default\"], {\n classNames: this.props.classNames,\n formatLabel: this.props.formatLabel,\n type: 'max'\n }, this.props.maxValue), this.renderHiddenInputs());\n }\n }]);\n\n return InputRange;\n}(_react2[\"default\"].Component), (_applyDecoratedDescriptor(_class.prototype, 'handleSliderDrag', [_autobindDecorator2[\"default\"]], Object.getOwnPropertyDescriptor(_class.prototype, 'handleSliderDrag'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleTrackDrag', [_autobindDecorator2[\"default\"]], Object.getOwnPropertyDescriptor(_class.prototype, 'handleTrackDrag'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleSliderKeyDown', [_autobindDecorator2[\"default\"]], Object.getOwnPropertyDescriptor(_class.prototype, 'handleSliderKeyDown'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleTrackMouseDown', [_autobindDecorator2[\"default\"]], Object.getOwnPropertyDescriptor(_class.prototype, 'handleTrackMouseDown'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleInteractionStart', [_autobindDecorator2[\"default\"]], Object.getOwnPropertyDescriptor(_class.prototype, 'handleInteractionStart'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleInteractionEnd', [_autobindDecorator2[\"default\"]], Object.getOwnPropertyDescriptor(_class.prototype, 'handleInteractionEnd'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleKeyDown', [_autobindDecorator2[\"default\"]], Object.getOwnPropertyDescriptor(_class.prototype, 'handleKeyDown'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleKeyUp', [_autobindDecorator2[\"default\"]], Object.getOwnPropertyDescriptor(_class.prototype, 'handleKeyUp'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleMouseDown', [_autobindDecorator2[\"default\"]], Object.getOwnPropertyDescriptor(_class.prototype, 'handleMouseDown'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleMouseUp', [_autobindDecorator2[\"default\"]], Object.getOwnPropertyDescriptor(_class.prototype, 'handleMouseUp'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleTouchStart', [_autobindDecorator2[\"default\"]], Object.getOwnPropertyDescriptor(_class.prototype, 'handleTouchStart'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleTouchEnd', [_autobindDecorator2[\"default\"]], Object.getOwnPropertyDescriptor(_class.prototype, 'handleTouchEnd'), _class.prototype)), _class);\nexports[\"default\"] = InputRange;\nmodule.exports = exports['default'];","// extracted by mini-css-extract-plugin\nmodule.exports = {\"value\":\"donut-chart-module--value--3bXKJ\",\"legend\":\"donut-chart-module--legend--263kn\"};","'use strict';\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = rangePropType;\n\nvar _utils = require('../utils');\n/**\n * @ignore\n * @param {Object} props - React component props\n * @return {?Error} Return Error if validation fails\n */\n\n\nfunction rangePropType(props) {\n var maxValue = props.maxValue,\n minValue = props.minValue;\n\n if (!(0, _utils.isNumber)(minValue) || !(0, _utils.isNumber)(maxValue)) {\n return new Error('\"minValue\" and \"maxValue\" must be a number');\n }\n\n if (minValue >= maxValue) {\n return new Error('\"minValue\" must be smaller than \"maxValue\"');\n }\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nrequire(\"core-js/modules/es7.symbol.async-iterator\");\n\nrequire(\"core-js/modules/es6.symbol\");\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nexports[\"default\"] = isObject;\n/**\n * Check if a value is an object\n * @ignore\n * @param {*} value\n * @return {boolean}\n */\n\nfunction isObject(value) {\n return value !== null && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object';\n}\n\nmodule.exports = exports['default'];","// 20.2.2.20 Math.log1p(x)\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);\n};\n","// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","/**\n * @copyright 2015, Andrey Popp <8mayday@gmail.com>\n *\n * The decorator may be used on classes or methods\n * ```\n * @autobind\n * class FullBound {}\n *\n * class PartBound {\n * @autobind\n * method () {}\n * }\n * ```\n */\n'use strict';\n\nrequire(\"core-js/modules/es6.function.bind\");\n\nrequire(\"core-js/modules/es6.array.for-each\");\n\nrequire(\"core-js/modules/es6.symbol\");\n\nrequire(\"core-js/modules/es6.reflect.own-keys\");\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = autobind;\n\nfunction autobind() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 1) {\n return boundClass.apply(undefined, args);\n } else {\n return boundMethod.apply(undefined, args);\n }\n}\n/**\n * Use boundMethod to bind all methods on the target.prototype\n */\n\n\nfunction boundClass(target) {\n // (Using reflect to get all keys including symbols)\n var keys = undefined; // Use Reflect if exists\n\n if (typeof Reflect !== 'undefined' && typeof Reflect.ownKeys === 'function') {\n keys = Reflect.ownKeys(target.prototype);\n } else {\n keys = Object.getOwnPropertyNames(target.prototype); // use symbols if support is provided\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n keys = keys.concat(Object.getOwnPropertySymbols(target.prototype));\n }\n }\n\n keys.forEach(function (key) {\n // Ignore special case target method\n if (key === 'constructor') {\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(target.prototype, key); // Only methods need binding\n\n if (typeof descriptor.value === 'function') {\n Object.defineProperty(target.prototype, key, boundMethod(target, key, descriptor));\n }\n });\n return target;\n}\n/**\n * Return a descriptor removing the value and returning a getter\n * The getter will return a .bind version of the function\n * and memoize the result against a symbol on the instance\n */\n\n\nfunction boundMethod(target, key, descriptor) {\n var fn = descriptor.value;\n\n if (typeof fn !== 'function') {\n throw new Error('@autobind decorator can only be applied to methods not: ' + typeof fn);\n } // In IE11 calling Object.defineProperty has a side-effect of evaluating the\n // getter for the property which is being replaced. This causes infinite\n // recursion and an \"Out of stack space\" error.\n\n\n var definingProperty = false;\n return {\n configurable: true,\n get: function get() {\n if (definingProperty || this === target.prototype || this.hasOwnProperty(key)) {\n return fn;\n }\n\n var boundFn = fn.bind(this);\n definingProperty = true;\n Object.defineProperty(this, key, {\n value: boundFn,\n configurable: true,\n writable: true\n });\n definingProperty = false;\n return boundFn;\n }\n };\n}\n\nmodule.exports = exports['default'];","\"use strict\";\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = length;\n/**\n * Calculate the absolute difference between two numbers\n * @ignore\n * @param {number} numA\n * @param {number} numB\n * @return {number}\n */\n\nfunction length(numA, numB) {\n return Math.abs(numA - numB);\n}\n\nmodule.exports = exports[\"default\"];","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageLeadGenForm\":\"leadgenform-module--page-lead-gen-form--1aPzC\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageLeadGenReturn\":\"leadgenreturn-module--page-lead-gen-return--2GUcl\"};","\"use strict\";\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = captialize;\n/**\n * Captialize a string\n * @ignore\n * @param {string} string\n * @return {string}\n */\n\nfunction captialize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = valuePropType;\n\nvar _utils = require('../utils');\n/**\n * @ignore\n * @param {Object} props\n * @return {?Error} Return Error if validation fails\n */\n\n\nfunction valuePropType(props, propName) {\n var maxValue = props.maxValue,\n minValue = props.minValue;\n var value = props[propName];\n\n if (!(0, _utils.isNumber)(value) && (!(0, _utils.isObject)(value) || !(0, _utils.isNumber)(value.min) || !(0, _utils.isNumber)(value.max))) {\n return new Error('\"' + propName + '\" must be a number or a range object');\n }\n\n if ((0, _utils.isNumber)(value) && (value < minValue || value > maxValue)) {\n return new Error('\"' + propName + '\" must be in between \"minValue\" and \"maxValue\"');\n }\n\n if ((0, _utils.isObject)(value) && (value.min < minValue || value.min > maxValue || value.max < minValue || value.max > maxValue)) {\n return new Error('\"' + propName + '\" must be in between \"minValue\" and \"maxValue\"');\n }\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nrequire(\"core-js/modules/es6.array.reduce\");\n\nrequire(\"core-js/modules/web.dom.iterable\");\n\nrequire(\"core-js/modules/es6.array.iterator\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es6.object.keys\");\n\nrequire(\"core-js/modules/es6.array.for-each\");\n\nrequire(\"core-js/modules/es6.object.set-prototype-of\");\n\nrequire(\"core-js/modules/es6.object.create\");\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = undefined;\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _desc, _value, _class;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _autobindDecorator = require('autobind-decorator');\n\nvar _autobindDecorator2 = _interopRequireDefault(_autobindDecorator);\n\nvar _label = require('./label');\n\nvar _label2 = _interopRequireDefault(_label);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nfunction _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\n var desc = {};\n Object['ke' + 'ys'](descriptor).forEach(function (key) {\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n\n if ('value' in desc || desc.initializer) {\n desc.writable = true;\n }\n\n desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n return decorator(target, property, desc) || desc;\n }, desc);\n\n if (context && desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n\n if (desc.initializer === void 0) {\n Object['define' + 'Property'](target, property, desc);\n desc = null;\n }\n\n return desc;\n}\n/**\n * @ignore\n */\n\n\nvar Slider = (_class = function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n _createClass(Slider, null, [{\n key: 'propTypes',\n\n /**\n * Accepted propTypes of Slider\n * @override\n * @return {Object}\n * @property {Function} ariaLabelledby\n * @property {Function} ariaControls\n * @property {Function} className\n * @property {Function} formatLabel\n * @property {Function} maxValue\n * @property {Function} minValue\n * @property {Function} onSliderDrag\n * @property {Function} onSliderKeyDown\n * @property {Function} percentage\n * @property {Function} type\n * @property {Function} value\n */\n get: function get() {\n return {\n ariaLabelledby: _propTypes2[\"default\"].string,\n ariaControls: _propTypes2[\"default\"].string,\n classNames: _propTypes2[\"default\"].objectOf(_propTypes2[\"default\"].string).isRequired,\n formatLabel: _propTypes2[\"default\"].func,\n maxValue: _propTypes2[\"default\"].number,\n minValue: _propTypes2[\"default\"].number,\n onSliderDrag: _propTypes2[\"default\"].func.isRequired,\n onSliderKeyDown: _propTypes2[\"default\"].func.isRequired,\n percentage: _propTypes2[\"default\"].number.isRequired,\n type: _propTypes2[\"default\"].string.isRequired,\n value: _propTypes2[\"default\"].number.isRequired\n };\n }\n /**\n * @param {Object} props\n * @param {string} [props.ariaLabelledby]\n * @param {string} [props.ariaControls]\n * @param {InputRangeClassNames} props.classNames\n * @param {Function} [props.formatLabel]\n * @param {number} [props.maxValue]\n * @param {number} [props.minValue]\n * @param {Function} props.onSliderKeyDown\n * @param {Function} props.onSliderDrag\n * @param {number} props.percentage\n * @param {number} props.type\n * @param {number} props.value\n */\n\n }]);\n\n function Slider(props) {\n _classCallCheck(this, Slider);\n /**\n * @private\n * @type {?Component}\n */\n\n\n var _this = _possibleConstructorReturn(this, (Slider.__proto__ || Object.getPrototypeOf(Slider)).call(this, props));\n\n _this.node = null;\n return _this;\n }\n /**\n * @ignore\n * @override\n * @return {void}\n */\n\n\n _createClass(Slider, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.removeDocumentMouseMoveListener();\n this.removeDocumentMouseUpListener();\n this.removeDocumentTouchEndListener();\n this.removeDocumentTouchMoveListener();\n }\n /**\n * @private\n * @return {Object}\n */\n\n }, {\n key: 'getStyle',\n value: function getStyle() {\n var perc = (this.props.percentage || 0) * 100;\n var style = {\n position: 'absolute',\n left: perc + '%'\n };\n return style;\n }\n /**\n * Listen to mousemove event\n * @private\n * @return {void}\n */\n\n }, {\n key: 'addDocumentMouseMoveListener',\n value: function addDocumentMouseMoveListener() {\n this.removeDocumentMouseMoveListener();\n this.node.ownerDocument.addEventListener('mousemove', this.handleMouseMove);\n }\n /**\n * Listen to mouseup event\n * @private\n * @return {void}\n */\n\n }, {\n key: 'addDocumentMouseUpListener',\n value: function addDocumentMouseUpListener() {\n this.removeDocumentMouseUpListener();\n this.node.ownerDocument.addEventListener('mouseup', this.handleMouseUp);\n }\n /**\n * Listen to touchmove event\n * @private\n * @return {void}\n */\n\n }, {\n key: 'addDocumentTouchMoveListener',\n value: function addDocumentTouchMoveListener() {\n this.removeDocumentTouchMoveListener();\n this.node.ownerDocument.addEventListener('touchmove', this.handleTouchMove);\n }\n /**\n * Listen to touchend event\n * @private\n * @return {void}\n */\n\n }, {\n key: 'addDocumentTouchEndListener',\n value: function addDocumentTouchEndListener() {\n this.removeDocumentTouchEndListener();\n this.node.ownerDocument.addEventListener('touchend', this.handleTouchEnd);\n }\n /**\n * @private\n * @return {void}\n */\n\n }, {\n key: 'removeDocumentMouseMoveListener',\n value: function removeDocumentMouseMoveListener() {\n this.node.ownerDocument.removeEventListener('mousemove', this.handleMouseMove);\n }\n /**\n * @private\n * @return {void}\n */\n\n }, {\n key: 'removeDocumentMouseUpListener',\n value: function removeDocumentMouseUpListener() {\n this.node.ownerDocument.removeEventListener('mouseup', this.handleMouseUp);\n }\n /**\n * @private\n * @return {void}\n */\n\n }, {\n key: 'removeDocumentTouchMoveListener',\n value: function removeDocumentTouchMoveListener() {\n this.node.ownerDocument.removeEventListener('touchmove', this.handleTouchMove);\n }\n /**\n * @private\n * @return {void}\n */\n\n }, {\n key: 'removeDocumentTouchEndListener',\n value: function removeDocumentTouchEndListener() {\n this.node.ownerDocument.removeEventListener('touchend', this.handleTouchEnd);\n }\n /**\n * @private\n * @return {void}\n */\n\n }, {\n key: 'handleMouseDown',\n value: function handleMouseDown() {\n this.addDocumentMouseMoveListener();\n this.addDocumentMouseUpListener();\n }\n /**\n * @private\n * @return {void}\n */\n\n }, {\n key: 'handleMouseUp',\n value: function handleMouseUp() {\n this.removeDocumentMouseMoveListener();\n this.removeDocumentMouseUpListener();\n }\n /**\n * @private\n * @param {SyntheticEvent} event\n * @return {void}\n */\n\n }, {\n key: 'handleMouseMove',\n value: function handleMouseMove(event) {\n this.props.onSliderDrag(event, this.props.type);\n }\n /**\n * @private\n * @return {void}\n */\n\n }, {\n key: 'handleTouchStart',\n value: function handleTouchStart() {\n this.addDocumentTouchEndListener();\n this.addDocumentTouchMoveListener();\n }\n /**\n * @private\n * @param {SyntheticEvent} event\n * @return {void}\n */\n\n }, {\n key: 'handleTouchMove',\n value: function handleTouchMove(event) {\n this.props.onSliderDrag(event, this.props.type);\n }\n /**\n * @private\n * @return {void}\n */\n\n }, {\n key: 'handleTouchEnd',\n value: function handleTouchEnd() {\n this.removeDocumentTouchMoveListener();\n this.removeDocumentTouchEndListener();\n }\n /**\n * @private\n * @param {SyntheticEvent} event\n * @return {void}\n */\n\n }, {\n key: 'handleKeyDown',\n value: function handleKeyDown(event) {\n this.props.onSliderKeyDown(event, this.props.type);\n }\n /**\n * @override\n * @return {JSX.Element}\n */\n\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var style = this.getStyle();\n return _react2[\"default\"].createElement('span', {\n className: this.props.classNames.sliderContainer,\n ref: function ref(node) {\n _this2.node = node;\n },\n style: style\n }, _react2[\"default\"].createElement(_label2[\"default\"], {\n classNames: this.props.classNames,\n formatLabel: this.props.formatLabel,\n type: 'value'\n }, this.props.value), _react2[\"default\"].createElement('div', {\n 'aria-labelledby': this.props.ariaLabelledby,\n 'aria-controls': this.props.ariaControls,\n 'aria-valuemax': this.props.maxValue,\n 'aria-valuemin': this.props.minValue,\n 'aria-valuenow': this.props.value,\n className: this.props.classNames.slider,\n draggable: 'false',\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleMouseDown,\n onTouchStart: this.handleTouchStart,\n role: 'slider',\n tabIndex: '0'\n }));\n }\n }]);\n\n return Slider;\n}(_react2[\"default\"].Component), (_applyDecoratedDescriptor(_class.prototype, 'handleMouseDown', [_autobindDecorator2[\"default\"]], Object.getOwnPropertyDescriptor(_class.prototype, 'handleMouseDown'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleMouseUp', [_autobindDecorator2[\"default\"]], Object.getOwnPropertyDescriptor(_class.prototype, 'handleMouseUp'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleMouseMove', [_autobindDecorator2[\"default\"]], Object.getOwnPropertyDescriptor(_class.prototype, 'handleMouseMove'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleTouchStart', [_autobindDecorator2[\"default\"]], Object.getOwnPropertyDescriptor(_class.prototype, 'handleTouchStart'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleTouchMove', [_autobindDecorator2[\"default\"]], Object.getOwnPropertyDescriptor(_class.prototype, 'handleTouchMove'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleTouchEnd', [_autobindDecorator2[\"default\"]], Object.getOwnPropertyDescriptor(_class.prototype, 'handleTouchEnd'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'handleKeyDown', [_autobindDecorator2[\"default\"]], Object.getOwnPropertyDescriptor(_class.prototype, 'handleKeyDown'), _class.prototype)), _class);\nexports[\"default\"] = Slider;\nmodule.exports = exports['default'];","\"use strict\";\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = clamp;\n/**\n * Clamp a value between a min and max value\n * @ignore\n * @param {number} value\n * @param {number} min\n * @param {number} max\n * @return {number}\n */\n\nfunction clamp(value, min, max) {\n return Math.min(Math.max(value, min), max);\n}\n\nmodule.exports = exports[\"default\"];","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tabsListItem\":\"tab-module--tabs-list-item--Csfk-\",\"tabsListActive\":\"tab-module--tabs-list-active--2mct7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"recommended-dosage-module--wrapper--aIfdS\",\"eyebrow\":\"recommended-dosage-module--eyebrow--RlMS2\",\"title\":\"recommended-dosage-module--title--3epEv\",\"body\":\"recommended-dosage-module--body--1GOu9\",\"details\":\"recommended-dosage-module--details--7zub6\",\"image\":\"recommended-dosage-module--image--3-JAM\",\"imgResponsive\":\"recommended-dosage-module--imgResponsive--3k1nk\",\"value\":\"recommended-dosage-module--value--3qKGV\",\"type\":\"recommended-dosage-module--type--uz9TS\",\"description\":\"recommended-dosage-module--description--34COl\",\"dosage\":\"recommended-dosage-module--dosage--3-VRT\"};","'use strict';\n// B.2.3.2 String.prototype.anchor(name)\nrequire('./_string-html')('anchor', function (createHTML) {\n return function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n };\n});\n","import \"core-js/modules/es6.array.some\";\nimport \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es6.array.is-array\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.date.to-string\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\nimport \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/es6.object.create\";\nimport \"core-js/modules/es6.object.assign\";\nimport \"core-js/modules/es6.object.define-property\";\nimport { createElement, Component, useRef, useState, useCallback, useEffect } from 'react';\nimport invariant from 'tiny-invariant';\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 _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nvar INSTANCE_MAP = new Map();\nvar OBSERVER_MAP = new Map();\nvar ROOT_IDS = new Map();\nvar consecutiveRootId = 0;\n/**\n * Generate a unique ID for the root element\n * @param root\n */\n\nfunction getRootId(root) {\n if (!root) return '';\n if (ROOT_IDS.has(root)) return ROOT_IDS.get(root);\n consecutiveRootId += 1;\n ROOT_IDS.set(root, consecutiveRootId.toString());\n return ROOT_IDS.get(root) + '_';\n}\n/**\n * Monitor element, and trigger callback when element becomes inView\n * @param element {HTMLElement}\n * @param callback {Function} Called with inView\n * @param options {Object} InterSection observer options\n * @param options.threshold {Number} Number between 0 and 1, indicating how much of the element should be inView before triggering\n * @param options.root {HTMLElement}\n * @param options.rootMargin {String} The CSS margin to apply to the root element.\n */\n\n\nfunction observe(element, callback, options) {\n if (options === void 0) {\n options = {};\n } // IntersectionObserver needs a threshold to trigger, so set it to 0 if it's not defined.\n // Modify the options object, since it's used in the onChange handler.\n\n\n if (!options.threshold) options.threshold = 0;\n var _options = options,\n root = _options.root,\n rootMargin = _options.rootMargin,\n threshold = _options.threshold; // Validate that the element is not being used in another \n\n !!INSTANCE_MAP.has(element) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"react-intersection-observer: Trying to observe %s, but it's already being observed by another instance.\\nMake sure the `ref` is only used by a single instance.\\n\\n%s\") : invariant(false) : void 0;\n /* istanbul ignore if */\n\n if (!element) return; // Create a unique ID for this observer instance, based on the root, root margin and threshold.\n // An observer with the same options can be reused, so lets use this fact\n\n var observerId = getRootId(root) + (rootMargin ? threshold.toString() + \"_\" + rootMargin : threshold.toString());\n var observerInstance = OBSERVER_MAP.get(observerId);\n\n if (!observerInstance) {\n observerInstance = new IntersectionObserver(onChange, options);\n /* istanbul ignore else */\n\n if (observerId) OBSERVER_MAP.set(observerId, observerInstance);\n }\n\n var instance = {\n callback: callback,\n element: element,\n inView: false,\n observerId: observerId,\n observer: observerInstance,\n // Make sure we have the thresholds value. It's undefined on a browser like Chrome 51.\n thresholds: observerInstance.thresholds || (Array.isArray(threshold) ? threshold : [threshold])\n };\n INSTANCE_MAP.set(element, instance);\n observerInstance.observe(element);\n return instance;\n}\n/**\n * Stop observing an element. If an element is removed from the DOM or otherwise destroyed,\n * make sure to call this method.\n * @param element {Element}\n */\n\n\nfunction unobserve(element) {\n if (!element) return;\n var instance = INSTANCE_MAP.get(element);\n\n if (instance) {\n var observerId = instance.observerId,\n observer = instance.observer;\n var root = observer.root;\n observer.unobserve(element); // Check if we are still observing any elements with the same threshold.\n\n var itemsLeft = false; // Check if we still have observers configured with the same root.\n\n var rootObserved = false;\n /* istanbul ignore else */\n\n if (observerId) {\n INSTANCE_MAP.forEach(function (item, key) {\n if (key !== element) {\n if (item.observerId === observerId) {\n itemsLeft = true;\n rootObserved = true;\n }\n\n if (item.observer.root === root) {\n rootObserved = true;\n }\n }\n });\n }\n\n if (!rootObserved && root) ROOT_IDS[\"delete\"](root);\n\n if (observer && !itemsLeft) {\n // No more elements to observe for threshold, disconnect observer\n observer.disconnect();\n } // Remove reference to element\n\n\n INSTANCE_MAP[\"delete\"](element);\n }\n}\n\nfunction onChange(changes) {\n changes.forEach(function (intersection) {\n var isIntersecting = intersection.isIntersecting,\n intersectionRatio = intersection.intersectionRatio,\n target = intersection.target;\n var instance = INSTANCE_MAP.get(target); // Firefox can report a negative intersectionRatio when scrolling.\n\n /* istanbul ignore else */\n\n if (instance && intersectionRatio >= 0) {\n // If threshold is an array, check if any of them intersects. This just triggers the onChange event multiple times.\n var inView = instance.thresholds.some(function (threshold) {\n return instance.inView ? intersectionRatio > threshold : intersectionRatio >= threshold;\n });\n\n if (isIntersecting !== undefined) {\n // If isIntersecting is defined, ensure that the element is actually intersecting.\n // Otherwise it reports a threshold of 0\n inView = inView && isIntersecting;\n }\n\n instance.inView = inView;\n instance.callback(inView, intersection);\n }\n });\n}\n\nfunction isPlainChildren(props) {\n return typeof props.children !== 'function';\n}\n/**\n * Monitors scroll, and triggers the children function with updated props\n *\n \n {({inView, ref}) => (\n

{`${inView}`}

\n )}\n
\n */\n\n\nvar InView = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InView, _React$Component);\n\n function InView() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n inView: false,\n entry: undefined\n });\n\n _defineProperty(_assertThisInitialized(_this), \"node\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"handleNode\", function (node) {\n if (_this.node) {\n unobserve(_this.node);\n\n if (!node && !_this.props.triggerOnce) {\n _this.setState({\n inView: false,\n entry: undefined\n });\n }\n }\n\n _this.node = node ? node : null;\n\n _this.observeNode();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleChange\", function (inView, entry) {\n // Only trigger a state update if inView has changed.\n // This prevents an unnecessary extra state update during mount, when the element stats outside the viewport\n if (inView !== _this.state.inView || inView) {\n _this.setState({\n inView: inView,\n entry: entry\n });\n }\n\n if (_this.props.onChange) {\n // If the user is actively listening for onChange, always trigger it\n _this.props.onChange(inView, entry);\n }\n });\n\n return _this;\n }\n\n var _proto = InView.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n !this.node ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"react-intersection-observer: No DOM node found. Make sure you forward \\\"ref\\\" to the root DOM element you want to observe.\") : invariant(false) : void 0;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // If a IntersectionObserver option changed, reinit the observer\n if (prevProps.rootMargin !== this.props.rootMargin || prevProps.root !== this.props.root || prevProps.threshold !== this.props.threshold) {\n unobserve(this.node);\n this.observeNode();\n }\n\n if (prevState.inView !== this.state.inView) {\n if (this.state.inView && this.props.triggerOnce) {\n unobserve(this.node);\n this.node = null;\n }\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.node) {\n unobserve(this.node);\n this.node = null;\n }\n };\n\n _proto.observeNode = function observeNode() {\n if (!this.node) return;\n var _this$props = this.props,\n threshold = _this$props.threshold,\n root = _this$props.root,\n rootMargin = _this$props.rootMargin;\n observe(this.node, this.handleChange, {\n threshold: threshold,\n root: root,\n rootMargin: rootMargin\n });\n };\n\n _proto.render = function render() {\n var _this$state = this.state,\n inView = _this$state.inView,\n entry = _this$state.entry;\n\n if (!isPlainChildren(this.props)) {\n return this.props.children({\n inView: inView,\n entry: entry,\n ref: this.handleNode\n });\n }\n\n var _this$props2 = this.props,\n children = _this$props2.children,\n as = _this$props2.as,\n tag = _this$props2.tag,\n triggerOnce = _this$props2.triggerOnce,\n threshold = _this$props2.threshold,\n root = _this$props2.root,\n rootMargin = _this$props2.rootMargin,\n onChange = _this$props2.onChange,\n props = _objectWithoutPropertiesLoose(_this$props2, [\"children\", \"as\", \"tag\", \"triggerOnce\", \"threshold\", \"root\", \"rootMargin\", \"onChange\"]);\n\n return createElement(as || tag || 'div', _extends({\n ref: this.handleNode\n }, props), children);\n };\n\n return InView;\n}(Component);\n\n_defineProperty(InView, \"displayName\", 'InView');\n\n_defineProperty(InView, \"defaultProps\", {\n threshold: 0,\n triggerOnce: false\n});\n/* eslint-disable react-hooks/exhaustive-deps */\n\n\nvar initialState = {\n inView: false,\n entry: undefined\n};\n\nfunction useInView(options) {\n if (options === void 0) {\n options = {};\n }\n\n var ref = useRef();\n\n var _React$useState = useState(initialState),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var setRef = useCallback(function (node) {\n if (ref.current) {\n unobserve(ref.current);\n }\n\n if (node) {\n observe(node, function (inView, intersection) {\n setState({\n inView: inView,\n entry: intersection\n });\n\n if (inView && options.triggerOnce) {\n // If it should only trigger once, unobserve the element after it's inView\n unobserve(node);\n }\n }, options);\n } // Store a reference to the node, so we can unobserve it later\n\n\n ref.current = node;\n }, [options.threshold, options.root, options.rootMargin, options.triggerOnce]);\n useEffect(function () {\n if (!ref.current && state !== initialState && !options.triggerOnce) {\n // If we don't have a ref, then reset the state (unless the hook is set to only `triggerOnce`)\n // This ensures we correctly reflect the current state - If you aren't observing anything, then nothing is inView\n setState(initialState);\n }\n });\n return [setRef, state.inView, state.entry];\n}\n\nexport default InView;\nexport { InView, useInView };","import React from 'react';\nimport { BtnPrimary } from '~components/buttons/buttons.component';\n\nimport styles from './cta.module.scss';\n\nconst Cta = (props) => {\n const { icon, title, body, ctaUrl, ctaText } = props;\n const bodyStr = body ? body.body : '';\n return (\n
\n \n \n \n

{title}

\n
{bodyStr}
\n \n {ctaText}\n \n
\n );\n}\n\nexport default Cta;\n","/**\n * A helper to generate a CSS ready class name.\n *\n * @param {string}\n * A string to convert to a class name string.\n *\n * @returns {string}\n * A CSS ready class name.\n */\nconst strToClassName = (string) => {\n return string\n .toLowerCase()\n .trim()\n .replace(/[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~]/g, '')\n .replace(/\\s/g, '-');\n}\n\n\nexport {\n strToClassName,\n}\n","import React, { Component, createRef } from 'react';\nimport { strToClassName } from '~utils/strToClassName';\nimport { connect } from 'react-redux';\n\nimport styles from './content-tabs.module.scss';\n\nconst breakpoint = 992;\n\nclass ContentTabs extends Component {\n static defaultProps = {\n tabsHeightOffset: 0,\n }\n\n constructor(props) {\n super(props);\n this.state = {\n anchors: [],\n mobileHasScrolled: false,\n }\n this.refContentTabs = createRef();\n }\n\n componentDidMount() {\n this.initAnchors();\n this.handleUrlHashScroll();\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n const { triggleScroll } = this.props;\n const { mobileHasScrolled } = this.state;\n const isMobileView = window.innerWidth < breakpoint;\n\n if (isMobileView && !mobileHasScrolled) {\n this.handleUrlHashScroll();\n this.setState({\n mobileHasScrolled: true,\n });\n }\n\n if (!isMobileView && triggleScroll) {\n this.handleUrlHashScroll();\n }\n }\n\n initAnchors = () => {\n const { anchors } = this.props;\n const updatedAnchors = anchors.map((v, i) => {\n return {\n title: v.title,\n anchor: `#page-anchor__${strToClassName(v.title)}`,\n }\n });\n\n this.setState({\n anchors: updatedAnchors,\n })\n }\n\n onClickedAnchor = (e) => {\n e.preventDefault();\n this.scrollToAnchor(e.target.hash);\n const active = document.querySelectorAll(`.${styles.contentTabs__colActive}`);\n const allTabs = document.querySelectorAll(\"[href='\" + window.location.pathname + e.target.hash + \"']\");\n active.forEach(function(node, idx) {\n node && node.classList.remove(styles.contentTabs__colActive);\n });\n allTabs.forEach(function(node, idx) {\n node.classList.add(styles.contentTabs__colActive);\n });\n }\n\n handleUrlHashScroll = () => {\n // Abort if there is no hash in the URL. This is intended for direct linking.\n if (!window.location.hash) {\n return;\n }\n this.scrollToAnchor(window.location.hash);\n }\n\n scrollToAnchor = hash => {\n const element = document.getElementById(hash.substring(1));\n const isMobileView = window.innerWidth < breakpoint;\n\n if (element) {\n const { headerHeight, tabsHeightOffset } = this.props;\n const rect = element.getBoundingClientRect();\n const win = element.ownerDocument.defaultView;\n const offsetTop = isMobileView\n ? rect.top + win.pageYOffset - 10\n : rect.top + win.pageYOffset - (headerHeight + tabsHeightOffset + 10);\n\n window.scrollTo({\n top: offsetTop,\n behavior: 'smooth',\n });\n }\n }\n\n renderTabs = () => {\n const { onClickedAnchor } = this;\n const { anchors } = this.state;\n return anchors.map((v, i) => {\n return (\n \n {v.title}\n \n );\n })\n }\n\n render() {\n const { refContentTabs, renderTabs } = this;\n return (\n \n {renderTabs()}\n \n );\n }\n}\n\nconst mapStateToProps = ({header: {headerHeight}}) => {\n return {\n headerHeight,\n }\n};\n\nexport default connect(mapStateToProps)(ContentTabs);\n","import React from 'react';\nimport RenderMarkdown from '~components/RenderMarkdown';\n\nimport styles from './page-footer.module.scss';\n\nconst PageFooterModule = ({text}) => {\n return (\n
\n \n
\n );\n\n}\n\nexport default PageFooterModule;\n","import React from 'react';\nimport RenderMarkdown from '~components/RenderMarkdown';\n\nimport styles from './page-callout.module.scss';\n\nconst PageCallout = ({text}) => {\n return (\n
\n \n
\n );\n}\n\nexport default PageCallout;\n","import \"core-js/modules/es6.typed.uint8-array\";\nimport \"core-js/modules/es6.function.bind\";\n// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n// find the complete implementation of crypto (msCrypto) on IE11.\nvar getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.date.to-string\";\nimport \"core-js/modules/es6.object.to-string\";\nimport validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","import React, { Component } from 'react';\nimport ContentModules from '~components/content-modules/content-modules.component';\nimport { strToClassName } from '~utils/strToClassName';\nimport { v4 as uuid } from 'uuid';\n\nimport styles from './page-select.module.scss';\n\nclass PageSelect extends Component {\n state = {\n activeOption: null,\n }\n\n componentDidMount() {\n this.setState({\n activeOption: this.getOptionVal(this.props.selectItems[0].title),\n });\n }\n\n getOptionVal = text => {\n return text.toLowerCase().replace(/\\s/g, '_').trim();\n }\n\n renderTitle = () => {\n const { title } = this.props;\n if (!title) {\n return null;\n }\n return

{title}

;\n }\n\n onSelectChange = e => {\n if (e.target.value === this.state.activeOption) {\n return;\n }\n this.setState({\n activeOption: e.target.value,\n });\n }\n\n renderSelectItems = () => {\n const { getOptionVal, onSelectChange } = this;\n const { adminTitle, title, selectItems } = this.props;\n const { activeOption } = this.state;\n const idSelect = `${title ? strToClassName(title) : strToClassName(adminTitle)}__${uuid()}`;\n return (\n
\n \n {selectItems.map((item, i) => {\n return (\n \n {item.title}\n \n );\n })}\n \n \n
\n );\n }\n\n renderItem = () => {\n const { getOptionVal } = this;\n const { selectItems, colorScheme, addBorder } = this.props;\n const { activeOption } = this.state;\n const selectedItem = selectItems.find(item => getOptionVal(item.title) === activeOption);\n if (!selectedItem) {\n return null;\n }\n\n const { contentModules } = selectedItem;\n\n let classes = [\n styles.pageSelect__content,\n ];\n\n if (addBorder) {\n classes.push(styles.pageSelect__contentBorder);\n }\n\n return (\n
\n \n
\n )\n }\n\n render() {\n const { renderTitle, renderSelectItems, renderItem } = this;\n const { colorScheme } = this.props;\n let classes = [\n styles.pageSelect,\n ];\n\n if (colorScheme === 'blue') {\n classes.push(styles.pageSelectBlue);\n } else if (colorScheme === 'purple') {\n classes.push(styles.pageSelectPurple);\n }\n\n return (\n
\n {renderTitle()}\n {renderSelectItems()}\n {renderItem()}\n
\n );\n }\n}\n\nexport default PageSelect;\n","import React from 'react';\nimport RenderMarkdown from '~components/RenderMarkdown';\n\nimport styles from './antiemetic-guidelines.module.scss';\n\nconst GuidelinesCard = ({ number, title, body, columns }) => (\n
\n
{number}
\n

{title}

\n {body &&\n
\n \n
\n }\n
\n {columns && columns.map((column, i) => (\n
\n {column.icon &&\n
\n {column.icon.description}\n
\n }\n
\n \n
\n
\n ))}\n
\n
\n);\n\nconst AntiemeticGuidelines = ({ title, steps }) => {\n return (\n
\n

\n \n

\n {steps.map((step, i) => (\n \n ))}\n
\n )\n};\n\nexport default AntiemeticGuidelines;\n","import React, { Component, createRef } from 'react';\nimport RenderMarkdown from '~components/RenderMarkdown';\n\nimport styles from './proven-effectiveness.module.scss';\n\nclass ProvenEffectiveness extends Component {\n constructor(props) {\n super(props);\n this.state = {\n useAltColor: props.colorScheme === 'Blue' ? true : false,\n }\n this.refBigBlockBody = createRef();\n }\n\n componentDidMount() {\n this.handleHighlightingText();\n }\n\n highlightText = (className, strings) => {\n const { refBigBlockBody } = this;\n if (!className && !Array.isArray(strings) && strings.length) {\n return;\n }\n strings.forEach(k => {\n refBigBlockBody.current.innerHTML = refBigBlockBody.current.innerHTML.replace(k, `${k}`)\n });\n }\n\n handleHighlightingText = () => {\n const { highlightText } = this;\n const { useAltColor } = this.state;\n const {\n block3HighlightedText,\n block3HighlightedTextSecondary,\n } = this.props;\n let highlight1Classes = [\n styles.peChart__hight1,\n ];\n if (useAltColor) {\n highlight1Classes.push(styles.peChart__hight1Alt);\n }\n\n highlightText(highlight1Classes.join(' '), block3HighlightedText.split(',').map(item => item.trim()));\n highlightText(styles.peChart__hight2, block3HighlightedTextSecondary.split(',').map(item => item.trim()));\n }\n\n renderSmallBlock = ({percentage, body, isColored = false}) => {\n const { useAltColor } = this.state;\n let wrapperClasses = [\n styles.peChart__smallBlock,\n ];\n if (isColored) {\n wrapperClasses.push(styles.peChart__smallBlockHighlight);\n\n if (useAltColor) {\n wrapperClasses.push(styles.peChart__smallBlockHighlightAlt);\n }\n }\n return (\n
\n
\n

{percentage}

\n \n
\n
\n );\n }\n\n renderBigBlock = ({mg, header, body}) => {\n const { useAltColor } = this.state;\n const { refBigBlockBody } = this;\n let mgClasses = [\n styles.peChart__bigBlockMg,\n ];\n if (useAltColor) {\n mgClasses.push(styles.peChart__bigBlockMgAlt);\n }\n return (\n
\n
{mg} mg
\n

{header}

\n \n \n
\n \n );\n }\n\n render() {\n const { renderSmallBlock, renderBigBlock } = this;\n const {\n title,\n subTitle,\n block1Percentage,\n block1Body,\n block2Percentage,\n block2Body,\n block3Header,\n block3Mg,\n block3Body,\n } = this.props;\n\n return (\n
\n

{title}

\n

{subTitle}

\n
\n {renderSmallBlock({\n percentage: block1Percentage,\n body: block1Body.block1Body ? block1Body.block1Body : block1Body,\n })}\n {renderSmallBlock({\n percentage: block2Percentage,\n body: block2Body.block2Body ? block2Body.block2Body : block2Body,\n isColored: true,\n })}\n
\n {renderBigBlock({\n mg: block3Mg,\n header: block3Header,\n body: block3Body.block3Body ? block3Body.block3Body : block3Body,\n })}\n
\n );\n }\n}\n\nexport default ProvenEffectiveness;\n","export default function (a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}","import ascending from \"./ascending\";\nexport default function (compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function left(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;else hi = mid;\n }\n\n return lo;\n },\n right: function right(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;else lo = mid + 1;\n }\n\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function (d, x) {\n return ascending(f(d), x);\n };\n}","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;","import { pair } from \"./pairs\";\nexport default function (values0, values1, reduce) {\n var n0 = values0.length,\n n1 = values1.length,\n values = new Array(n0 * n1),\n i0,\n i1,\n i,\n value0;\n if (reduce == null) reduce = pair;\n\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n\n return values;\n}","export default function (values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min,\n max;\n\n if (valueof == null) {\n while (++i < n) {\n // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = max = value;\n\n while (++i < n) {\n // Compare the remaining values.\n if ((value = values[i]) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n } else {\n while (++i < n) {\n // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = max = value;\n\n while (++i < n) {\n // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n return [min, max];\n}","import \"core-js/modules/es6.array.map\";\nvar array = Array.prototype;\nexport var slice = array.slice;\nexport var map = array.map;","export default function (start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\nexport default function (start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n\n while (++i < n) {\n ticks[i] = (start + i) * step;\n }\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n\n while (++i < n) {\n ticks[i] = (start - i) / step;\n }\n }\n\n if (reverse) ticks.reverse();\n return ticks;\n}\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;else if (error >= e5) step1 *= 5;else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}","import transpose from \"./transpose\";\nexport default function () {\n return transpose(arguments);\n}","export var slice = Array.prototype.slice;","export default function (x) {\n return x;\n}","import \"core-js/modules/es6.array.filter\";\nimport { slice } from \"./array\";\nimport identity from \"./identity\";\nvar top = 1,\n right = 2,\n bottom = 3,\n left = 4,\n epsilon = 1e-6;\n\nfunction translateX(x) {\n return \"translate(\" + (x + 0.5) + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + (y + 0.5) + \")\";\n}\n\nfunction number(scale) {\n return function (d) {\n return +scale(d);\n };\n}\n\nfunction center(scale) {\n var offset = Math.max(0, scale.bandwidth() - 1) / 2; // Adjust for 0.5px offset.\n\n if (scale.round()) offset = Math.round(offset);\n return function (d) {\n return +scale(d) + offset;\n };\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3,\n k = orient === top || orient === left ? -1 : 1,\n x = orient === left || orient === right ? \"x\" : \"y\",\n transform = orient === top || orient === bottom ? translateX : translateY;\n\n function axis(context) {\n var values = tickValues == null ? scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain() : tickValues,\n format = tickFormat == null ? scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n range = scale.range(),\n range0 = +range[0] + 0.5,\n range1 = +range[range.length - 1] + 0.5,\n position = (scale.bandwidth ? center : number)(scale.copy()),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\");\n path = path.merge(path.enter().insert(\"path\", \".tick\").attr(\"class\", \"domain\").attr(\"stroke\", \"currentColor\"));\n tick = tick.merge(tickEnter);\n line = line.merge(tickEnter.append(\"line\").attr(\"stroke\", \"currentColor\").attr(x + \"2\", k * tickSizeInner));\n text = text.merge(tickEnter.append(\"text\").attr(\"fill\", \"currentColor\").attr(x, k * spacing).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 tickExit = tickExit.transition(context).attr(\"opacity\", epsilon).attr(\"transform\", function (d) {\n return isFinite(d = position(d)) ? transform(d) : this.getAttribute(\"transform\");\n });\n tickEnter.attr(\"opacity\", epsilon).attr(\"transform\", function (d) {\n var p = this.parentNode.__axis;\n return transform(p && isFinite(p = p(d)) ? p : position(d));\n });\n }\n\n tickExit.remove();\n path.attr(\"d\", orient === left || orient == right ? tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H0.5V\" + range1 + \"H\" + k * tickSizeOuter : \"M0.5,\" + range0 + \"V\" + range1 : tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V0.5H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",0.5H\" + range1);\n tick.attr(\"opacity\", 1).attr(\"transform\", function (d) {\n return transform(position(d));\n });\n line.attr(x + \"2\", k * tickSizeInner);\n text.attr(x, k * spacing).text(format);\n selection.filter(entering).attr(\"fill\", \"none\").attr(\"font-size\", 10).attr(\"font-family\", \"sans-serif\").attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n selection.each(function () {\n this.__axis = position;\n });\n }\n\n axis.scale = function (_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function () {\n return tickArguments = slice.call(arguments), axis;\n };\n\n axis.tickArguments = function (_) {\n return arguments.length ? (tickArguments = _ == null ? [] : slice.call(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function (_) {\n return arguments.length ? (tickValues = _ == null ? null : slice.call(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function (_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function (_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function (_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function (_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function (_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n return axis;\n}\n\nexport function axisTop(scale) {\n return axis(top, scale);\n}\nexport function axisRight(scale) {\n return axis(right, scale);\n}\nexport function axisBottom(scale) {\n return axis(bottom, scale);\n}\nexport function axisLeft(scale) {\n return axis(left, scale);\n}","import \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/es6.string.trim\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.array.map\";\nvar noop = {\n value: function value() {}\n};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || t in _ || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function (t) {\n var name = \"\",\n i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {\n type: t,\n name: name\n };\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function on(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length; // If no callback was specified, return the callback of the given type and name.\n\n if (arguments.length < 2) {\n while (++i < n) {\n if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n }\n\n return;\n } // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n\n\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);else if (callback == null) for (t in _) {\n _[t] = set(_[t], typename.name, null);\n }\n }\n\n return this;\n },\n copy: function copy() {\n var copy = {},\n _ = this._;\n\n for (var t in _) {\n copy[t] = _[t].slice();\n }\n\n return new Dispatch(copy);\n },\n call: function call(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) {\n args[i] = arguments[i + 2];\n }\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) {\n t[i].value.apply(that, args);\n }\n },\n apply: function apply(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) {\n t[i].value.apply(that, args);\n }\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n\n if (callback != null) type.push({\n name: name,\n value: callback\n });\n return type;\n}\n\nexport default dispatch;","function none() {}\n\nexport default function (selector) {\n return selector == null ? none : function () {\n return this.querySelector(selector);\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}","export default function (selector) {\n return function () {\n return this.matches(selector);\n };\n}","export default function (update) {\n return new Array(update.length);\n}","import \"core-js/modules/es6.array.map\";\nimport sparse from \"./sparse\";\nimport { Selection } from \"./index\";\nexport default function () {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function appendChild(child) {\n return this._parent.insertBefore(child, this._next);\n },\n insertBefore: function insertBefore(child, next) {\n return this._parent.insertBefore(child, next);\n },\n querySelector: function querySelector(selector) {\n return this._parent.querySelector(selector);\n },\n querySelectorAll: function querySelectorAll(selector) {\n return this._parent.querySelectorAll(selector);\n }\n};","import { Selection } from \"./index\";\nimport { EnterNode } from \"./enter\";\nimport constant from \"../constant\";\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length; // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n } // Put any non-null nodes that don’t fit into exit.\n\n\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue; // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n } // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n\n\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n } // Add any remaining nodes that were not bound to data to exit.\n\n\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && nodeByKeyValue[keyValues[i]] === node) {\n exit[i] = node;\n }\n }\n}\n\nexport default function (value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function (d) {\n data[++j] = d;\n });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key); // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n\n while (!(next = updateGroup[i1]) && ++i1 < dataLength) {\n ;\n }\n\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}","import \"core-js/modules/es6.array.sort\";\nimport { Selection } from \"./index\";\nexport default function (compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}","export default function () {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}","export var xhtml = \"http://www.w3.org/1999/xhtml\";\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};","import \"core-js/modules/es6.array.index-of\";\nimport namespaces from \"./namespaces\";\nexport default function (name) {\n var prefix = name += \"\",\n i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {\n space: namespaces[prefix],\n local: name\n } : name;\n}","import namespace from \"../namespace\";\n\nfunction attrRemove(name) {\n return function () {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function () {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function () {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function () {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function (name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local ? node.getAttributeNS(fullname.space, fullname.local) : node.getAttribute(fullname);\n }\n\n return this.each((value == null ? fullname.local ? attrRemoveNS : attrRemove : typeof value === \"function\" ? fullname.local ? attrFunctionNS : attrFunction : fullname.local ? attrConstantNS : attrConstant)(fullname, value));\n}","export default function (node) {\n return node.ownerDocument && node.ownerDocument.defaultView || // node is a Node\n node.document && node // node is a Window\n || node.defaultView; // node is a Document\n}","import defaultView from \"../window\";\n\nfunction styleRemove(name) {\n return function () {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function () {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function (name, value, priority) {\n return arguments.length > 1 ? this.each((value == null ? styleRemove : typeof value === \"function\" ? styleFunction : styleConstant)(name, value, priority == null ? \"\" : priority)) : styleValue(this.node(), name);\n}\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name) || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}","function propertyRemove(name) {\n return function () {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function () {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];else this[name] = v;\n };\n}\n\nexport default function (name, value) {\n return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === \"function\" ? propertyFunction : propertyConstant)(name, value)) : this.node()[name];\n}","import \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/es6.string.trim\";\nimport \"core-js/modules/es6.regexp.split\";\n\nfunction classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function add(name) {\n var i = this._names.indexOf(name);\n\n if (i < 0) {\n this._names.push(name);\n\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function remove(name) {\n var i = this._names.indexOf(name);\n\n if (i >= 0) {\n this._names.splice(i, 1);\n\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function contains(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node),\n i = -1,\n n = names.length;\n\n while (++i < n) {\n list.add(names[i]);\n }\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node),\n i = -1,\n n = names.length;\n\n while (++i < n) {\n list.remove(names[i]);\n }\n}\n\nfunction classedTrue(names) {\n return function () {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function () {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function () {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function (name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()),\n i = -1,\n n = names.length;\n\n while (++i < n) {\n if (!list.contains(names[i])) return false;\n }\n\n return true;\n }\n\n return this.each((typeof value === \"function\" ? classedFunction : value ? classedTrue : classedFalse)(names, value));\n}","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function () {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function () {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function (value) {\n return arguments.length ? this.each(value == null ? textRemove : (typeof value === \"function\" ? textFunction : textConstant)(value)) : this.node().textContent;\n}","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function () {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function () {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function (value) {\n return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === \"function\" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML;\n}","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function () {\n return this.each(raise);\n}","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function () {\n return this.each(lower);\n}","import namespace from \"./namespace\";\nimport { xhtml } from \"./namespaces\";\n\nfunction creatorInherit(name) {\n return function () {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml ? document.createElement(name) : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function () {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function (name) {\n var fullname = namespace(name);\n return (fullname.local ? creatorFixed : creatorInherit)(fullname);\n}","import creator from \"../creator\";\nimport selector from \"../selector\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function (name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function () {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function () {\n return this.each(remove);\n}","function selection_cloneShallow() {\n var clone = this.cloneNode(false),\n parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true),\n parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function (deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}","import \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/es6.string.trim\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.array.map\";\nvar filterEvents = {};\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\"\n };\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function (event) {\n var related = event.relatedTarget;\n\n if (!related || related !== this && !(related.compareDocumentPosition(this) & 8)) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function (event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n\n event = event1;\n\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function (t) {\n var name = \"\",\n i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {\n type: t,\n name: name\n };\n });\n}\n\nfunction onRemove(typename) {\n return function () {\n var on = this.__on;\n if (!on) return;\n\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n\n if (++i) on.length = i;else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function (d, i, group) {\n var on = this.__on,\n o,\n listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {\n type: typename.type,\n name: typename.name,\n value: value,\n listener: listener,\n capture: capture\n };\n if (!on) this.__on = [o];else on.push(o);\n };\n}\n\nexport default function (typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"),\n i,\n n = typenames.length,\n t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n\n for (i = 0; i < n; ++i) {\n this.each(on(typenames[i], value, capture));\n }\n\n return this;\n}\nexport function customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}","import defaultView from \"../window\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function () {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function () {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function (type, params) {\n return this.each((typeof params === \"function\" ? dispatchFunction : dispatchConstant)(type, params));\n}","import selection_select from \"./select\";\nimport selection_selectAll from \"./selectAll\";\nimport selection_filter from \"./filter\";\nimport selection_data from \"./data\";\nimport selection_enter from \"./enter\";\nimport selection_exit from \"./exit\";\nimport selection_join from \"./join\";\nimport selection_merge from \"./merge\";\nimport selection_order from \"./order\";\nimport selection_sort from \"./sort\";\nimport selection_call from \"./call\";\nimport selection_nodes from \"./nodes\";\nimport selection_node from \"./node\";\nimport selection_size from \"./size\";\nimport selection_empty from \"./empty\";\nimport selection_each from \"./each\";\nimport selection_attr from \"./attr\";\nimport selection_style from \"./style\";\nimport selection_property from \"./property\";\nimport selection_classed from \"./classed\";\nimport selection_text from \"./text\";\nimport selection_html from \"./html\";\nimport selection_raise from \"./raise\";\nimport selection_lower from \"./lower\";\nimport selection_append from \"./append\";\nimport selection_insert from \"./insert\";\nimport selection_remove from \"./remove\";\nimport selection_clone from \"./clone\";\nimport selection_datum from \"./datum\";\nimport selection_on from \"./on\";\nimport selection_dispatch from \"./dispatch\";\nexport var root = [null];\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\nexport default selection;","import { Selection } from \"./index\";\nimport selector from \"../selector\";\nexport default function (select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}","import { Selection } from \"./index\";\nimport selectorAll from \"../selectorAll\";\nexport default function (select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}","import { Selection } from \"./index\";\nimport matcher from \"../matcher\";\nexport default function (match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}","export default function (x) {\n return function () {\n return x;\n };\n}","import \"core-js/modules/es6.array.map\";\nimport sparse from \"./sparse\";\nimport { Selection } from \"./index\";\nexport default function () {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}","export default function (onenter, onupdate, onexit) {\n var enter = this.enter(),\n update = this,\n exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove();else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}","import { Selection } from \"./index\";\nexport default function (selection) {\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}","export default function () {\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}","export default function () {\n var nodes = new Array(this.size()),\n i = -1;\n this.each(function () {\n nodes[++i] = this;\n });\n return nodes;\n}","export default function () {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}","export default function () {\n var size = 0;\n this.each(function () {\n ++size;\n });\n return size;\n}","export default function () {\n return !this.node();\n}","export default function (callback) {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}","import creator from \"../creator\";\nexport default function (name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function () {\n return this.appendChild(create.apply(this, arguments));\n });\n}","export default function (value) {\n return arguments.length ? this.property(\"__data__\", value) : this.node().__data__;\n}","import { Selection, root } from \"./selection/index\";\nexport default function (selector) {\n return typeof selector === \"string\" ? new Selection([[document.querySelector(selector)]], [document.documentElement]) : new Selection([[selector]], root);\n}","import \"core-js/modules/es6.object.create\";\nexport default function (constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n\n for (var key in definition) {\n prototype[key] = definition[key];\n }\n\n return prototype;\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.date.to-string\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.string.trim\";\nimport \"core-js/modules/es6.object.assign\";\nimport \"core-js/modules/es6.regexp.constructor\";\nimport define, { extend } from \"./define.js\";\nexport function Color() {}\nvar _darker = 0.7;\nexport { _darker as darker };\n\nvar _brighter = 1 / _darker;\n\nexport { _brighter as brighter };\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\ndefine(Color, color, {\n copy: function copy(channels) {\n return Object.assign(new this.constructor(), this, channels);\n },\n displayable: function displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb(m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, (m & 0xf) << 4 | m & 0xf, 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba(m >> 12 & 0xf | m >> 8 & 0xf0, m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, ((m & 0xf) << 4 | m & 0xf) / 0xff) // #f000\n : null // invalid hex\n ) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0) : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb();\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\ndefine(Rgb, rgb, extend(Color, {\n brighter: function brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function rgb() {\n return this;\n },\n displayable: function displayable() {\n return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1;\n },\n hex: rgb_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\") + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;else if (l <= 0 || l >= 1) h = s = NaN;else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl();\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;else if (g === max) h = (b - r) / s + 2;else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n\n return new Hsl(h, s, l, o.opacity);\n}\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function brighter(k) {\n k = k == null ? _brighter : Math.pow(_brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function darker(k) {\n k = k == null ? _darker : Math.pow(_darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), hsl2rgb(h, m1, m2), hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), this.opacity);\n },\n displayable: function displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;\n },\n formatHsl: function formatHsl() {\n var a = this.opacity;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\") + (this.h || 0) + \", \" + (this.s || 0) * 100 + \"%, \" + (this.l || 0) * 100 + \"%\" + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n/* From FvD 13.37, CSS Color Module Level 3 */\n\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;\n}","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1,\n t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6;\n}\nexport default function (values) {\n var n = values.length - 1;\n return function (t) {\n var i = t <= 0 ? t = 0 : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}","export default function (x) {\n return function () {\n return x;\n };\n}","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function (t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function (t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function (a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}","import { rgb as colorRgb } from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, { gamma } from \"./color.js\";\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function (t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function (colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i,\n color;\n\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function (t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);","import { basis } from \"./basis.js\";\nexport default function (values) {\n var n = values.length;\n return function (t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}","import \"core-js/modules/es6.typed.data-view\";\nexport 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) {\n c[i] = a[i] * (1 - t) + b[i] * t;\n }\n\n return c;\n };\n}\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}","import value from \"./value.js\";\nimport numberArray, { isNumberArray } from \"./numberArray.js\";\nexport default function (a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\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) {\n x[i] = value(a[i], b[i]);\n }\n\n for (; i < nb; ++i) {\n c[i] = b[i];\n }\n\n return function (t) {\n for (i = 0; i < na; ++i) {\n c[i] = x[i](t);\n }\n\n return c;\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}","export default function (a, b) {\n return a = +a, b = +b, function (t) {\n return a * (1 - t) + b * t;\n };\n}","import value from \"./value.js\";\nexport default function (a, b) {\n var i = {},\n c = {},\n k;\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) {\n c[k] = i[k](t);\n }\n\n return c;\n };\n}","import \"core-js/modules/es6.regexp.constructor\";\nimport number from \"./number.js\";\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function () {\n return b;\n };\n}\n\nfunction one(b) {\n return function (t) {\n return b(t) + \"\";\n };\n}\n\nexport default function (a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0,\n // scan index for next number in b\n am,\n // current match in a\n bm,\n // current match in b\n bs,\n // string preceding current number in b, if any\n i = -1,\n // index in s\n s = [],\n // string constants and placeholders\n q = []; // number interpolators\n // Coerce inputs to strings.\n\n a = a + \"\", b = b + \"\"; // Interpolate pairs of numbers in a & b.\n\n while ((am = reA.exec(a)) && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) {\n // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n if ((am = am[0]) === (bm = bm[0])) {\n // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else {\n // interpolate non-matching numbers\n s[++i] = null;\n q.push({\n i: i,\n x: number(am, bm)\n });\n }\n\n bi = reB.lastIndex;\n } // Add remains of b.\n\n\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n } // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n\n\n return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function (t) {\n for (var i = 0, o; i < b; ++i) {\n s[(o = q[i]).i] = o.x(t);\n }\n\n return s.join(\"\");\n });\n}","import \"core-js/modules/es6.function.bind\";\nvar frame = 0,\n // is an animation frame pending?\ntimeout = 0,\n // is a timeout pending?\ninterval = 0,\n // are any timers active?\npokeDelay = 1000,\n // how frequently we check for clock skew\ntaskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function (f) {\n setTimeout(f, 17);\n};\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call = this._time = this._next = null;\n}\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function restart(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;else taskHead = this;\n taskTail = this;\n }\n\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function stop() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\nexport function timer(callback, delay, time) {\n var t = new Timer();\n t.restart(callback, delay, time);\n return t;\n}\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n\n var t = taskHead,\n e;\n\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(),\n delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0,\n t1 = taskHead,\n t2,\n time = Infinity;\n\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.date.to-string\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.array.is-array\";\nimport { 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\";\nexport default function (a, b) {\n var t = typeof b,\n c;\n return b == null || t === \"boolean\" ? constant(b) : (t === \"number\" ? number : t === \"string\" ? (c = color(b)) ? (b = c, rgb) : string : b instanceof color ? rgb : b instanceof Date ? date : isNumberArray(b) ? numberArray : Array.isArray(b) ? genericArray : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object : number)(a, b);\n}","import { Timer } from \"./timer.js\";\nexport default function (callback, delay, time) {\n var t = new Timer();\n delay = delay == null ? 0 : +delay;\n t.restart(function (elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}","import \"core-js/modules/es6.function.name\";\nimport { dispatch } from \"d3-dispatch\";\nimport { timer, timeout } from \"d3-timer\";\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\nexport default function (node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index,\n // For context during callback.\n group: group,\n // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween; // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time); // If the elapsed delay is less than our first sleep, start immediately.\n\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o; // If the state is not SCHEDULED, then we previously errored on start.\n\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue; // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n\n if (o.state === STARTED) return timeout(start); // Interrupt the active transition, if any.\n\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n } // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n } // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n\n\n timeout(function () {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n }); // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n\n self.state = STARTED; // Initialize the tween, deleting null tween.\n\n tween = new Array(n = self.tween.length);\n\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n } // Dispatch the end event.\n\n\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n\n for (var i in schedules) {\n return;\n } // eslint-disable-line no-unused-vars\n\n\n delete node.__transition;\n }\n}","import \"core-js/modules/es6.function.name\";\nimport { STARTING, ENDING, ENDED } from \"./transition/schedule.js\";\nexport default function (node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n if (!schedules) return;\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) {\n empty = false;\n continue;\n }\n\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}","import \"core-js/modules/es6.regexp.split\";\nimport decompose, { identity } from \"./decompose.js\";\nvar cssNode, cssRoot, cssView, svgNode;\nexport function parseCss(value) {\n if (value === \"none\") return identity;\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}","var degrees = 180 / Math.PI;\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\nexport default function (a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}","import number from \"../number.js\";\nimport { parseCss, parseSvg } from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({\n i: i - 4,\n x: number(xa, xb)\n }, {\n i: i - 2,\n x: number(ya, yb)\n });\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360;else if (b - a > 180) a += 360; // shortest path\n\n q.push({\n i: s.push(pop(s) + \"rotate(\", null, degParen) - 2,\n x: number(a, b)\n });\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({\n i: s.push(pop(s) + \"skewX(\", null, degParen) - 2,\n x: number(a, b)\n });\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({\n i: i - 4,\n x: number(xa, xb)\n }, {\n i: i - 2,\n x: number(ya, yb)\n });\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function (a, b) {\n var s = [],\n // string constants and placeholders\n q = []; // number interpolators\n\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n\n return function (t) {\n var i = -1,\n n = q.length,\n o;\n\n while (++i < n) {\n s[(o = q[i]).i] = o.x(t);\n }\n\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");","import \"core-js/modules/es6.function.name\";\nimport { get, set } from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function () {\n var schedule = set(this, id),\n tween = schedule.tween; // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error();\n return function () {\n var schedule = set(this, id),\n tween = schedule.tween; // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n\n for (var t = {\n name: name,\n value: value\n }, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function (name, value) {\n var id = this._id;\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n transition.each(function () {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n return function (node) {\n return get(node, id).value[name];\n };\n}","import { color } from \"d3-color\";\nimport { interpolateNumber, interpolateRgb, interpolateString } from \"d3-interpolate\";\nexport default function (a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber : b instanceof color ? interpolateRgb : (c = color(b)) ? (b = c, interpolateRgb) : interpolateString)(a, b);\n}","import { interpolateTransformSvg as interpolateTransform } from \"d3-interpolate\";\nimport { namespace } from \"d3-selection\";\nimport { tweenValue } from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function () {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function () {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function () {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function () {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00, string10, interpolate0;\n return function () {\n var string0,\n value1 = value(this),\n string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00, string10, interpolate0;\n return function () {\n var string0,\n value1 = value(this),\n string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function (name, value) {\n var fullname = namespace(name),\n i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\" ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value)) : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname) : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}","import { namespace } from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function (t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function (t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n\n tween._value = value;\n return tween;\n}\n\nexport default function (name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error();\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}","import { get, init } from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function () {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function () {\n init(this, id).delay = value;\n };\n}\n\nexport default function (value) {\n var id = this._id;\n return arguments.length ? this.each((typeof value === \"function\" ? delayFunction : delayConstant)(id, value)) : get(this.node(), id).delay;\n}","import { get, set } from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function () {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function () {\n set(this, id).duration = value;\n };\n}\n\nexport default function (value) {\n var id = this._id;\n return arguments.length ? this.each((typeof value === \"function\" ? durationFunction : durationConstant)(id, value)) : get(this.node(), id).duration;\n}","import { get, set } from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error();\n return function () {\n set(this, id).ease = value;\n };\n}\n\nexport default function (value) {\n var id = this._id;\n return arguments.length ? this.each(easeConstant(id, value)) : get(this.node(), id).ease;\n}","import \"core-js/modules/es6.array.index-of\";\nimport \"core-js/modules/es6.string.trim\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.array.is-array\";\nimport { get, set, init } from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function (t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0,\n on1,\n sit = start(name) ? init : set;\n return function () {\n var schedule = sit(this, id),\n on = schedule.on; // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n schedule.on = on1;\n };\n}\n\nexport default function (name, listener) {\n var id = this._id;\n return arguments.length < 2 ? get(this.node(), id).on.on(name) : this.each(onFunction(id, name, listener));\n}","function removeFunction(id) {\n return function () {\n var parent = this.parentNode;\n\n for (var i in this.__transition) {\n if (+i !== id) return;\n }\n\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function () {\n return this.on(\"end.remove\", removeFunction(this._id));\n}","import { selection } from \"d3-selection\";\nvar Selection = selection.prototype.constructor;\nexport default function () {\n return new Selection(this._groups, this._parents);\n}","import { interpolateTransformCss as interpolateTransform } from \"d3-interpolate\";\nimport { style } from \"d3-selection\";\nimport { set } from \"./schedule.js\";\nimport { tweenValue } from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00, string10, interpolate0;\n return function () {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function () {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function () {\n var string0 = style(this, name);\n return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00, string10, interpolate0;\n return function () {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0,\n on1,\n listener0,\n key = \"style.\" + name,\n event = \"end.\" + key,\n remove;\n return function () {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined; // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n schedule.on = on1;\n };\n}\n\nexport default function (name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this.styleTween(name, styleNull(name, i)).on(\"end.style.\" + name, styleRemove(name)) : typeof value === \"function\" ? this.styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value))).each(styleMaybeRemove(this._id, name)) : this.styleTween(name, styleConstant(name, i, value), priority).on(\"end.style.\" + name, null);\n}","function styleInterpolate(name, i, priority) {\n return function (t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n\n tween._value = value;\n return tween;\n}\n\nexport default function (name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error();\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}","function textInterpolate(i) {\n return function (t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n\n tween._value = value;\n return tween;\n}\n\nexport default function (value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error();\n return this.tween(key, textTween(value));\n}","import { selection } from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\nvar id = 0;\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\nexport default function transition(name) {\n return selection().transition(name);\n}\nexport function newId() {\n return ++id;\n}\nvar selection_prototype = selection.prototype;\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n end: transition_end\n};","import { selector } from \"d3-selection\";\nimport { Transition } from \"./index.js\";\nimport schedule, { get } from \"./schedule.js\";\nexport default function (select) {\n var name = this._name,\n id = this._id;\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}","import { selectorAll } from \"d3-selection\";\nimport { Transition } from \"./index.js\";\nimport schedule, { get } from \"./schedule.js\";\nexport default function (select) {\n var name = this._name,\n id = this._id;\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}","import { matcher } from \"d3-selection\";\nimport { Transition } from \"./index.js\";\nexport default function (match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}","import { Transition } from \"./index.js\";\nexport default function (transition) {\n if (transition._id !== this._id) throw new Error();\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}","import { Transition, newId } from \"./index.js\";\nimport schedule, { get } from \"./schedule.js\";\nexport default function () {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}","import { tweenValue } from \"./tween.js\";\n\nfunction textConstant(value) {\n return function () {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function () {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function (value) {\n return this.tween(\"text\", typeof value === \"function\" ? textFunction(tweenValue(this, \"text\", value)) : textConstant(value == null ? \"\" : value + \"\"));\n}","import \"core-js/modules/es6.promise\";\nimport \"core-js/modules/es6.object.to-string\";\nimport { set } from \"./schedule.js\";\nexport default function () {\n var on0,\n on1,\n that = this,\n id = that._id,\n size = that.size();\n return new Promise(function (resolve, reject) {\n var cancel = {\n value: reject\n },\n end = {\n value: function value() {\n if (--size === 0) resolve();\n }\n };\n that.each(function () {\n var schedule = set(this, id),\n on = schedule.on; // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n\n if (on !== on0) {\n on1 = (on0 = on).copy();\n\n on1._.cancel.push(cancel);\n\n on1._.interrupt.push(cancel);\n\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n });\n}","import { Transition, newId } from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport { easeCubicInOut } from \"d3-ease\";\nimport { now } from \"d3-timer\";\nvar defaultTiming = {\n time: null,\n // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n return defaultTiming.time = now(), defaultTiming;\n }\n }\n\n return timing;\n}\n\nexport default function (name) {\n var id, timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}","export function cubicIn(t) {\n return t * t * t;\n}\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}","import { selection } from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;","import interrupt from \"../interrupt.js\";\nexport default function (name) {\n return this.each(function () {\n interrupt(this, name);\n });\n}","import \"core-js/modules/es6.array.filter\";\nimport \"core-js/modules/es6.array.map\";\nimport { dispatch } from \"d3-dispatch\";\nimport { dragDisable, dragEnable } from \"d3-drag\";\nimport { interpolate } from \"d3-interpolate\";\nimport { customEvent, event, touch, mouse, select } from \"d3-selection\";\nimport { interrupt } from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, { nopropagation } from \"./noevent.js\";\nvar MODE_DRAG = {\n name: \"drag\"\n},\n MODE_SPACE = {\n name: \"space\"\n},\n MODE_HANDLE = {\n name: \"handle\"\n},\n MODE_CENTER = {\n name: \"center\"\n};\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nfunction toucher(identifier) {\n return function (target) {\n return touch(target, event.touches, identifier);\n };\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function input(x, e) {\n return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]];\n },\n output: function output(xy) {\n return xy && [xy[0][0], xy[1][0]];\n }\n};\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function input(y, e) {\n return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]];\n },\n output: function output(xy) {\n 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 input(xy) {\n return xy == null ? null : number2(xy);\n },\n output: function output(xy) {\n 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};\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\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};\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 {\n type: t\n };\n} // Ignore right-click, since that should open the context menu.\n\n\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n\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\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || \"ontouchstart\" in this;\n} // Like d3.local, but with the name “__brush” rather than auto-generated.\n\n\nfunction local(node) {\n while (!node.__brush) {\n if (!(node = node.parentNode)) return;\n }\n\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0] || 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}\nexport function brushX() {\n return brush(X);\n}\nexport function brushY() {\n return brush(Y);\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.property(\"__brush\", initialize).selectAll(\".overlay\").data([type(\"overlay\")]);\n overlay.enter().append(\"rect\").attr(\"class\", \"overlay\").attr(\"pointer-events\", \"all\").attr(\"cursor\", cursors.overlay).merge(overlay).each(function () {\n var extent = local(this).extent;\n select(this).attr(\"x\", extent[0][0]).attr(\"y\", extent[0][1]).attr(\"width\", extent[1][0] - extent[0][0]).attr(\"height\", extent[1][1] - extent[0][1]);\n });\n group.selectAll(\".selection\").data([type(\"selection\")]).enter().append(\"rect\").attr(\"class\", \"selection\").attr(\"cursor\", cursors.selection).attr(\"fill\", \"#777\").attr(\"fill-opacity\", 0.3).attr(\"stroke\", \"#fff\").attr(\"shape-rendering\", \"crispEdges\");\n var handle = group.selectAll(\".handle\").data(dim.handles, function (d) {\n return d.type;\n });\n handle.exit().remove();\n handle.enter().append(\"rect\").attr(\"class\", function (d) {\n return \"handle handle--\" + d.type;\n }).attr(\"cursor\", function (d) {\n return cursors[d.type];\n });\n group.each(redraw).attr(\"fill\", \"none\").attr(\"pointer-events\", \"all\").on(\"mousedown.brush\", started).filter(touchable).on(\"touchstart.brush\", started).on(\"touchmove.brush\", touchmoved).on(\"touchend.brush touchcancel.brush\", touchended).style(\"touch-action\", \"none\").style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function (group, selection) {\n if (group.selection) {\n group.on(\"start.brush\", function () {\n emitter(this, arguments).beforestart().start();\n }).on(\"interrupt.brush end.brush\", function () {\n emitter(this, arguments).end();\n }).tween(\"brush\", function () {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group.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 interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start().brush().end();\n });\n }\n };\n\n brush.clear = function (group) {\n brush.move(group, null);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\").style(\"display\", null).attr(\"x\", selection[0][0]).attr(\"y\", selection[0][1]).attr(\"width\", selection[1][0] - selection[0][0]).attr(\"height\", selection[1][1] - selection[0][1]);\n group.selectAll(\".handle\").style(\"display\", null).attr(\"x\", function (d) {\n return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2;\n }).attr(\"y\", function (d) {\n return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2;\n }).attr(\"width\", function (d) {\n return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize;\n }).attr(\"height\", function (d) {\n return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize;\n });\n } else {\n group.selectAll(\".selection,.handle\").style(\"display\", \"none\").attr(\"x\", null).attr(\"y\", null).attr(\"width\", null).attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n return !clean && that.__brush.emitter || new Emitter(that, args);\n }\n\n function Emitter(that, args) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n }\n\n Emitter.prototype = {\n beforestart: function beforestart() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function start() {\n if (this.starting) this.starting = false, this.emit(\"start\");else this.emit(\"brush\");\n return this;\n },\n brush: function brush() {\n this.emit(\"brush\");\n return this;\n },\n end: function end() {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\");\n return this;\n },\n emit: function emit(type) {\n customEvent(new BrushEvent(brush, type, dim.output(this.state.selection)), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function started() {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n 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],\n w0,\n w1,\n N = extent[0][1],\n n0,\n n1,\n E = extent[1][0],\n e0,\n e1,\n S = extent[1][1],\n s0,\n s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n pointer = event.touches ? toucher(event.changedTouches[0].identifier) : mouse,\n point0 = pointer(that),\n point = point0,\n emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n state.selection = selection = [[w0 = dim === Y ? W : point0[0], n0 = dim === X ? N : point0[1]], [e0 = dim === Y ? E : w0, s0 = dim === X ? S : n0]];\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 var group = select(that).attr(\"pointer-events\", \"none\");\n var overlay = group.selectAll(\".overlay\").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).on(\"mousemove.brush\", moved, true).on(\"mouseup.brush\", ended, true);\n if (keys) view.on(\"keydown.brush\", keydowned, true).on(\"keyup.brush\", keyupped, true);\n dragDisable(event.view);\n }\n\n nopropagation();\n interrupt(that);\n redraw.call(that);\n emit.start();\n\n function moved() {\n var point1 = pointer(that);\n\n if (shifting && !lockX && !lockY) {\n if (Math.abs(point1[0] - point[0]) > Math.abs(point1[1] - point[1])) lockY = true;else lockX = true;\n }\n\n point = point1;\n moving = true;\n noevent();\n move();\n }\n\n function move() {\n var t;\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 {\n if (signX) dx = Math.max(W - w0, Math.min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = Math.max(N - n0, Math.min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n\n case MODE_HANDLE:\n {\n if (signX < 0) dx = Math.max(W - w0, Math.min(E - w0, dx)), w1 = w0 + dx, e1 = e0;else if (signX > 0) dx = Math.max(W - e0, Math.min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = Math.max(N - n0, Math.min(S - n0, dy)), n1 = n0 + dy, s1 = s0;else if (signY > 0) dy = Math.max(N - s0, Math.min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n break;\n }\n\n case MODE_CENTER:\n {\n if (signX) w1 = Math.max(W, Math.min(E, w0 - dx * signX)), e1 = Math.max(W, Math.min(E, e0 + dx * signX));\n if (signY) n1 = Math.max(N, Math.min(S, n0 - dy * signY)), s1 = Math.max(N, Math.min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n\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 || selection[0][1] !== n1 || selection[1][0] !== e1 || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush();\n }\n }\n\n function ended() {\n nopropagation();\n\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function () {\n touchending = null;\n }, 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\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\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end();\n }\n\n function keydowned() {\n switch (event.keyCode) {\n case 16:\n {\n // SHIFT\n shifting = signX && signY;\n break;\n }\n\n case 18:\n {\n // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move();\n }\n\n break;\n }\n\n case 32:\n {\n // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx;else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy;else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move();\n }\n\n break;\n }\n\n default:\n return;\n }\n\n noevent();\n }\n\n function keyupped() {\n switch (event.keyCode) {\n case 16:\n {\n // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move();\n }\n\n break;\n }\n\n case 18:\n {\n // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1;else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1;else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move();\n }\n\n break;\n }\n\n case 32:\n {\n // 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\n overlay.attr(\"cursor\", cursors[type]);\n move();\n }\n\n break;\n }\n\n default:\n return;\n }\n\n noevent();\n }\n }\n\n function touchmoved() {\n emitter(this, arguments).moved();\n }\n\n function touchended() {\n emitter(this, arguments).ended();\n }\n\n function initialize() {\n var state = this.__brush || {\n selection: null\n };\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}","export var cos = Math.cos;\nexport var sin = Math.sin;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = pi * 2;\nexport var max = Math.max;","export var slice = Array.prototype.slice;","import \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es6.array.sort\";\nimport { range } from \"d3-array\";\nimport { max, tau } from \"./math\";\n\nfunction compareValue(compare) {\n return function (a, b) {\n return compare(a.source.value + a.target.value, b.source.value + b.target.value);\n };\n}\n\nexport default function () {\n var padAngle = 0,\n sortGroups = null,\n sortSubgroups = null,\n sortChords = null;\n\n function chord(matrix) {\n var n = matrix.length,\n groupSums = [],\n groupIndex = range(n),\n subgroupIndex = [],\n chords = [],\n groups = chords.groups = new Array(n),\n subgroups = new Array(n * n),\n k,\n x,\n x0,\n dx,\n i,\n j; // Compute the sum.\n\n k = 0, i = -1;\n\n while (++i < n) {\n x = 0, j = -1;\n\n while (++j < n) {\n x += matrix[i][j];\n }\n\n groupSums.push(x);\n subgroupIndex.push(range(n));\n k += x;\n } // Sort groups…\n\n\n if (sortGroups) groupIndex.sort(function (a, b) {\n return sortGroups(groupSums[a], groupSums[b]);\n }); // Sort subgroups…\n\n if (sortSubgroups) subgroupIndex.forEach(function (d, i) {\n d.sort(function (a, b) {\n return sortSubgroups(matrix[i][a], matrix[i][b]);\n });\n }); // Convert the sum to scaling factor for [0, 2pi].\n // TODO Allow start and end angle to be specified?\n // TODO Allow padding to be specified as percentage?\n\n k = max(0, tau - padAngle * n) / k;\n dx = k ? padAngle : tau / n; // Compute the start and end angle for each group and subgroup.\n // Note: Opera has a bug reordering object literal properties!\n\n x = 0, i = -1;\n\n while (++i < n) {\n x0 = x, j = -1;\n\n while (++j < n) {\n var di = groupIndex[i],\n dj = subgroupIndex[di][j],\n v = matrix[di][dj],\n a0 = x,\n a1 = x += v * k;\n subgroups[dj * n + di] = {\n index: di,\n subindex: dj,\n startAngle: a0,\n endAngle: a1,\n value: v\n };\n }\n\n groups[di] = {\n index: di,\n startAngle: x0,\n endAngle: x,\n value: groupSums[di]\n };\n x += dx;\n } // Generate chords for each (non-empty) subgroup-subgroup link.\n\n\n i = -1;\n\n while (++i < n) {\n j = i - 1;\n\n while (++j < n) {\n var source = subgroups[j * n + i],\n target = subgroups[i * n + j];\n\n if (source.value || target.value) {\n chords.push(source.value < target.value ? {\n source: target,\n target: source\n } : {\n source: source,\n target: target\n });\n }\n }\n }\n\n return sortChords ? chords.sort(sortChords) : chords;\n }\n\n chord.padAngle = function (_) {\n return arguments.length ? (padAngle = max(0, _), chord) : padAngle;\n };\n\n chord.sortGroups = function (_) {\n return arguments.length ? (sortGroups = _, chord) : sortGroups;\n };\n\n chord.sortSubgroups = function (_) {\n return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups;\n };\n\n chord.sortChords = function (_) {\n return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._;\n };\n\n return chord;\n}","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n\n this._ = \"\";\n}\n\nfunction path() {\n return new Path();\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function moveTo(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function lineTo(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function quadraticCurveTo(x1, y1, x, y) {\n this._ += \"Q\" + +x1 + \",\" + +y1 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + +x1 + \",\" + +y1 + \",\" + +x2 + \",\" + +y2 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01; // Is the radius negative? Error.\n\n if (r < 0) throw new Error(\"negative radius: \" + r); // Is this path empty? Move to (x1,y1).\n\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n } // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon)) ; // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n } // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21; // If the start tangent is not coincident with (x0,y0), line to.\n\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + +(y01 * x20 > x01 * y20) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0; // Is the radius negative? Error.\n\n if (r < 0) throw new Error(\"negative radius: \" + r); // Is this path empty? Move to (x0,y0).\n\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n } // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n } // Is this arc empty? We’re done.\n\n\n if (!r) return; // Does the angle go the wrong way? Flip the direction.\n\n if (da < 0) da = da % tau + tau; // Is this a complete circle? Draw two arcs to complete the circle.\n\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n } // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + +(da >= pi) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function rect(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + +w + \"v\" + +h + \"h\" + -w + \"Z\";\n },\n toString: function toString() {\n return this._;\n }\n};\nexport default path;","import \"core-js/modules/es6.array.is-array\";\nexport var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function has(key) {\n return prefix + key in this;\n },\n get: function get(key) {\n return this[prefix + key];\n },\n set: function set(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function remove(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function clear() {\n for (var property in this) {\n if (property[0] === prefix) delete this[property];\n }\n },\n keys: function keys() {\n var keys = [];\n\n for (var property in this) {\n if (property[0] === prefix) keys.push(property.slice(1));\n }\n\n return keys;\n },\n values: function values() {\n var values = [];\n\n for (var property in this) {\n if (property[0] === prefix) values.push(this[property]);\n }\n\n return values;\n },\n entries: function entries() {\n var entries = [];\n\n for (var property in this) {\n if (property[0] === prefix) entries.push({\n key: property.slice(1),\n value: this[property]\n });\n }\n\n return entries;\n },\n size: function size() {\n var size = 0;\n\n for (var property in this) {\n if (property[0] === prefix) ++size;\n }\n\n return size;\n },\n empty: function empty() {\n for (var property in this) {\n if (property[0] === prefix) return false;\n }\n\n return true;\n },\n each: function each(f) {\n for (var property in this) {\n if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n }\n};\n\nfunction map(object, f) {\n var map = new Map(); // Copy constructor.\n\n if (object instanceof Map) object.each(function (value, key) {\n map.set(key, value);\n }); // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n if (f == null) while (++i < n) {\n map.set(i, object[i]);\n } else while (++i < n) {\n map.set(f(o = object[i], i, object), o);\n }\n } // Convert object to map.\n else if (object) for (var key in object) {\n map.set(key, object[key]);\n }\n return map;\n}\n\nexport default map;","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.to-string\";\nimport { default as map, prefix } from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function add(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set(); // Copy constructor.\n\n if (object instanceof Set) object.each(function (value) {\n set.add(value);\n }); // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1,\n n = object.length;\n if (f == null) while (++i < n) {\n set.add(object[i]);\n } else while (++i < n) {\n set.add(f(object[i], i, object));\n }\n }\n return set;\n}\n\nexport default set;","var array = Array.prototype;\nexport var slice = array.slice;","export default function (d) {\n var x = +this._x.call(null, d),\n y = +this._y.call(null, d);\n return add(this.cover(x, y), x, y, d);\n}\n\nfunction add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {\n data: d\n },\n x0 = tree._x0,\n y0 = tree._y0,\n x1 = tree._x1,\n y1 = tree._y1,\n xm,\n ym,\n xp,\n yp,\n right,\n bottom,\n i,\n j; // If the tree is empty, initialize the root as a leaf.\n\n if (!node) return tree._root = leaf, tree; // Find the existing leaf for the new point, or add it.\n\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n } // Is the new point is exactly coincident with the existing point?\n\n\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree; // Otherwise, split the leaf node until the old and new point are separated.\n\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | xp >= xm));\n\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n var d,\n i,\n n = data.length,\n x,\n y,\n xz = new Array(n),\n yz = new Array(n),\n x0 = Infinity,\n y0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity; // Compute the points and their extent.\n\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n } // If there were no (valid) points, abort.\n\n\n if (x0 > x1 || y0 > y1) return this; // Expand the tree to cover the new points.\n\n this.cover(x0, y0).cover(x1, y1); // Add the new points.\n\n for (i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], data[i]);\n }\n\n return this;\n}","export default function (x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1; // If the quadtree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing quadrant boundaries don’t change due to floating point error!\n\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n } // Otherwise, double repeatedly to cover.\n else {\n var z = x1 - x0,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n i = (y < y0) << 1 | x < x0;\n parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n\n switch (i) {\n case 0:\n x1 = x0 + z, y1 = y0 + z;\n break;\n\n case 1:\n x0 = x1 - z, y1 = y0 + z;\n break;\n\n case 2:\n x1 = x0 + z, y0 = y1 - z;\n break;\n\n case 3:\n x0 = x1 - z, y0 = y1 - z;\n break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n}","export default function (node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n}","export function defaultX(d) {\n return d[0];\n}\nexport default function (_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}","export function defaultY(d) {\n return d[1];\n}\nexport default function (_) {\n return arguments.length ? (this._y = _, this) : this._y;\n}","import \"core-js/modules/es6.array.find\";\nimport tree_add, { addAll as tree_addAll } from \"./add.js\";\nimport tree_cover from \"./cover.js\";\nimport tree_data from \"./data.js\";\nimport tree_extent from \"./extent.js\";\nimport tree_find from \"./find.js\";\nimport tree_remove, { removeAll as tree_removeAll } from \"./remove.js\";\nimport tree_root from \"./root.js\";\nimport tree_size from \"./size.js\";\nimport tree_visit from \"./visit.js\";\nimport tree_visitAfter from \"./visitAfter.js\";\nimport tree_x, { defaultX } from \"./x.js\";\nimport tree_y, { defaultY } from \"./y.js\";\nexport default function quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {\n data: leaf.data\n },\n next = copy;\n\n while (leaf = leaf.next) {\n next = next.next = {\n data: leaf.data\n };\n }\n\n return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function () {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n node = this._root,\n nodes,\n child;\n if (!node) return copy;\n if (!node.length) return copy._root = leaf_copy(node), copy;\n nodes = [{\n source: node,\n target: copy._root = new Array(4)\n }];\n\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({\n source: child,\n target: node.target[i] = new Array(4)\n });else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;","export default function () {\n var data = [];\n this.visit(function (node) {\n if (!node.length) do {\n data.push(node.data);\n } while (node = node.next);\n });\n return data;\n}","export default function (_) {\n return arguments.length ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1]) : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n}","import Quad from \"./quad.js\";\nexport default function (x, y, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n x1,\n y1,\n x2,\n y2,\n x3 = this._x1,\n y3 = this._y1,\n quads = [],\n node = this._root,\n q,\n i;\n if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n\n while (q = quads.pop()) {\n // Stop searching if this quadrant can’t contain a closer node.\n if (!(node = q.node) || (x1 = q.x0) > x3 || (y1 = q.y0) > y3 || (x2 = q.x1) < x0 || (y2 = q.y1) < y0) continue; // Bisect the current quadrant.\n\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2;\n quads.push(new Quad(node[3], xm, ym, x2, y2), new Quad(node[2], x1, ym, xm, y2), new Quad(node[1], xm, y1, x2, ym), new Quad(node[0], x1, y1, xm, ym)); // Visit the closest quadrant first.\n\n if (i = (y >= ym) << 1 | x >= xm) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n } // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n d2 = dx * dx + dy * dy;\n\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}","export default function (d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1,\n x,\n y,\n xm,\n ym,\n right,\n bottom,\n i,\n j; // If the tree is empty, initialize the root as a leaf.\n\n if (!node) return this; // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[i + 1 & 3] || parent[i + 2 & 3] || parent[i + 3 & 3]) retainer = parent, j = i;\n } // Find the point to remove.\n\n while (node.data !== d) {\n if (!(previous = node, node = node.next)) return this;\n }\n\n if (next = node.next) delete node.next; // If there are multiple coincident points, remove just the point.\n\n if (previous) return next ? previous.next = next : delete previous.next, this; // If this is the root point, remove it.\n\n if (!parent) return this._root = next, this; // Remove this leaf.\n\n next ? parent[i] = next : delete parent[i]; // If the parent now contains exactly one leaf, collapse superfluous parents.\n\n if ((node = parent[0] || parent[1] || parent[2] || parent[3]) && node === (parent[3] || parent[2] || parent[1] || parent[0]) && !node.length) {\n if (retainer) retainer[j] = node;else this._root = node;\n }\n\n return this;\n}\nexport function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) {\n this.remove(data[i]);\n }\n\n return this;\n}","export default function () {\n return this._root;\n}","export default function () {\n var size = 0;\n this.visit(function (node) {\n if (!node.length) do {\n ++size;\n } while (node = node.next);\n });\n return size;\n}","import Quad from \"./quad.js\";\nexport default function (callback) {\n var quads = [],\n q,\n node = this._root,\n child,\n x0,\n y0,\n x1,\n y1;\n if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2,\n ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n }\n }\n\n return this;\n}","import Quad from \"./quad.js\";\nexport default function (callback) {\n var quads = [],\n next = [],\n q;\n if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n\n while (q = quads.pop()) {\n var node = q.node;\n\n if (node.length) {\n var child,\n x0 = q.x0,\n y0 = q.y0,\n x1 = q.x1,\n y1 = q.y1,\n xm = (x0 + x1) / 2,\n ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n }\n\n next.push(q);\n }\n\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n\n return this;\n}","import { dispatch } from \"d3-dispatch\";\nimport { map } from \"d3-collection\";\nimport { timer } from \"d3-timer\";\nexport function x(d) {\n return d.x;\n}\nexport function y(d) {\n return d.y;\n}\nvar initialRadius = 10,\n initialAngle = Math.PI * (3 - Math.sqrt(5));\nexport default function (_nodes) {\n var simulation,\n _alpha = 1,\n _alphaMin = 0.001,\n _alphaDecay = 1 - Math.pow(_alphaMin, 1 / 300),\n _alphaTarget = 0,\n _velocityDecay = 0.6,\n forces = map(),\n stepper = timer(step),\n event = dispatch(\"tick\", \"end\");\n\n if (_nodes == null) _nodes = [];\n\n function step() {\n tick();\n event.call(\"tick\", simulation);\n\n if (_alpha < _alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation);\n }\n }\n\n function tick(iterations) {\n var i,\n n = _nodes.length,\n node;\n if (iterations === undefined) iterations = 1;\n\n for (var k = 0; k < iterations; ++k) {\n _alpha += (_alphaTarget - _alpha) * _alphaDecay;\n forces.each(function (force) {\n force(_alpha);\n });\n\n for (i = 0; i < n; ++i) {\n node = _nodes[i];\n if (node.fx == null) node.x += node.vx *= _velocityDecay;else node.x = node.fx, node.vx = 0;\n if (node.fy == null) node.y += node.vy *= _velocityDecay;else node.y = node.fy, node.vy = 0;\n }\n }\n\n return simulation;\n }\n\n function initializeNodes() {\n for (var i = 0, n = _nodes.length, node; i < n; ++i) {\n node = _nodes[i], node.index = i;\n if (node.fx != null) node.x = node.fx;\n if (node.fy != null) node.y = node.fy;\n\n if (isNaN(node.x) || isNaN(node.y)) {\n var radius = initialRadius * Math.sqrt(i),\n angle = i * initialAngle;\n node.x = radius * Math.cos(angle);\n node.y = radius * Math.sin(angle);\n }\n\n if (isNaN(node.vx) || isNaN(node.vy)) {\n node.vx = node.vy = 0;\n }\n }\n }\n\n function initializeForce(force) {\n if (force.initialize) force.initialize(_nodes);\n return force;\n }\n\n initializeNodes();\n return simulation = {\n tick: tick,\n restart: function restart() {\n return stepper.restart(step), simulation;\n },\n stop: function stop() {\n return stepper.stop(), simulation;\n },\n nodes: function nodes(_) {\n return arguments.length ? (_nodes = _, initializeNodes(), forces.each(initializeForce), simulation) : _nodes;\n },\n alpha: function alpha(_) {\n return arguments.length ? (_alpha = +_, simulation) : _alpha;\n },\n alphaMin: function alphaMin(_) {\n return arguments.length ? (_alphaMin = +_, simulation) : _alphaMin;\n },\n alphaDecay: function alphaDecay(_) {\n return arguments.length ? (_alphaDecay = +_, simulation) : +_alphaDecay;\n },\n alphaTarget: function alphaTarget(_) {\n return arguments.length ? (_alphaTarget = +_, simulation) : _alphaTarget;\n },\n velocityDecay: function velocityDecay(_) {\n return arguments.length ? (_velocityDecay = 1 - _, simulation) : 1 - _velocityDecay;\n },\n force: function force(name, _) {\n return arguments.length > 1 ? (_ == null ? forces.remove(name) : forces.set(name, initializeForce(_)), simulation) : forces.get(name);\n },\n find: function find(x, y, radius) {\n var i = 0,\n n = _nodes.length,\n dx,\n dy,\n d2,\n node,\n closest;\n if (radius == null) radius = Infinity;else radius *= radius;\n\n for (i = 0; i < n; ++i) {\n node = _nodes[i];\n dx = x - node.x;\n dy = y - node.y;\n d2 = dx * dx + dy * dy;\n if (d2 < radius) closest = node, radius = d2;\n }\n\n return closest;\n },\n on: function on(name, _) {\n return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n }\n };\n}","import \"core-js/modules/es6.array.index-of\";\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimal(1.23) returns [\"123\", 0].\nexport default function (x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n\n var i,\n coefficient = x.slice(0, i); // 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\n return [coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, +x.slice(i + 1)];\n}","import formatDecimal from \"./formatDecimal.js\";\nexport default function (x) {\n return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.date.to-string\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.string.trim\";\nimport \"core-js/modules/es6.array.fill\";\n// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\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}\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 + this.align + this.sign + this.symbol + (this.zero ? \"0\" : \"\") + (this.width === undefined ? \"\" : Math.max(1, this.width | 0)) + (this.comma ? \",\" : \"\") + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0)) + (this.trim ? \"~\" : \"\") + this.type;\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 \".\":\n i0 = i1 = i;\n break;\n\n case \"0\":\n if (i0 === 0) i0 = i;\n i1 = i;\n break;\n\n default:\n if (!+s[i]) break out;\n if (i0 > 0) i0 = 0;\n break;\n }\n }\n\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}","import formatDecimal from \"./formatDecimal.js\";\nexport var prefixExponent;\nexport default function (x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient : i > n ? coefficient + new Array(i - n + 1).join(\"0\") : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i) : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimal(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}","import formatLocale from \"./locale.js\";\nvar locale;\nexport var format;\nexport var formatPrefix;\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}","import formatDecimal from \"./formatDecimal.js\";\nexport default function (x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1) : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.date.to-string\";\nimport \"core-js/modules/es6.object.to-string\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\nexport default {\n \"%\": function _(x, p) {\n return (x * 100).toFixed(p);\n },\n \"b\": function b(x) {\n return Math.round(x).toString(2);\n },\n \"c\": function c(x) {\n return x + \"\";\n },\n \"d\": function d(x) {\n return Math.round(x).toString(10);\n },\n \"e\": function e(x, p) {\n return x.toExponential(p);\n },\n \"f\": function f(x, p) {\n return x.toFixed(p);\n },\n \"g\": function g(x, p) {\n return x.toPrecision(p);\n },\n \"o\": function o(x) {\n return Math.round(x).toString(8);\n },\n \"p\": function p(x, _p) {\n return formatRounded(x * 100, _p);\n },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function X(x) {\n return Math.round(x).toString(16).toUpperCase();\n },\n \"x\": function x(_x) {\n return Math.round(_x).toString(16);\n }\n};","export default function (x) {\n return x;\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.date.to-string\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.string.trim\";\nimport \"core-js/modules/es6.array.fill\";\nimport \"core-js/modules/es6.number.constructor\";\nimport \"core-js/modules/es6.array.map\";\nimport 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\";\nvar map = Array.prototype.map,\n prefixes = [\"y\", \"z\", \"a\", \"f\", \"p\", \"n\", \"µ\", \"m\", \"\", \"k\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\"];\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 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; // The \"n\" type is an alias for \",g\".\n\n if (type === \"n\") comma = true, type = \"g\"; // 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\"; // If zero fill is specified, padding goes after sign and before digits.\n\n if (zero || fill === \"0\" && align === \"=\") zero = true, fill = \"0\", align = \"=\"; // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\"; // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type); // 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\n precision = precision === undefined ? 6 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i,\n n,\n c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value; // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n\n var valueNegative = value < 0 || 1 / value < 0; // Perform the initial formatting.\n\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision); // Trim insignificant zeros.\n\n if (trim) value = formatTrim(value); // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false; // Compute the prefix and suffix.\n\n valuePrefix = (valueNegative ? sign === \"(\" ? sign : minus : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\"); // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n\n if (maybeSuffix) {\n i = -1, n = value.length;\n\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 } // If the fill character is not \"0\", grouping is applied before padding.\n\n\n if (comma && !zero) value = group(value, Infinity); // Compute the padding.\n\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\"; // If the fill character is \"0\", grouping is applied after padding.\n\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\"; // Reconstruct the final output based on the desired alignment.\n\n switch (align) {\n case \"<\":\n value = valuePrefix + value + valueSuffix + padding;\n break;\n\n case \"=\":\n value = valuePrefix + padding + value + valueSuffix;\n break;\n\n case \"^\":\n value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);\n break;\n\n default:\n value = padding + valuePrefix + value + valueSuffix;\n 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}","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}","import \"core-js/modules/es6.regexp.replace\";\nexport default function (numerals) {\n return function (value) {\n return value.replace(/[0-9]/g, function (i) {\n return numerals[+i];\n });\n };\n}","export default function () {\n return Math.random();\n}","import defaultSource from \"./defaultSource\";\nexport default (function sourceRandomNormal(source) {\n function randomNormal(mu, sigma) {\n var x, r;\n mu = mu == null ? 0 : +mu;\n sigma = sigma == null ? 1 : +sigma;\n return function () {\n var y; // If available, use the second previously-generated uniform random.\n\n if (x != null) y = x, x = null; // Otherwise, generate a new x and y.\n else do {\n x = source() * 2 - 1;\n y = source() * 2 - 1;\n r = x * x + y * y;\n } while (!r || r > 1);\n return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r);\n };\n }\n\n randomNormal.source = sourceRandomNormal;\n return randomNormal;\n})(defaultSource);","import defaultSource from \"./defaultSource\";\nexport default (function sourceRandomUniform(source) {\n function randomUniform(min, max) {\n min = min == null ? 0 : +min;\n max = max == null ? 1 : +max;\n if (arguments.length === 1) max = min, min = 0;else max -= min;\n return function () {\n return source() * max + min;\n };\n }\n\n randomUniform.source = sourceRandomUniform;\n return randomUniform;\n})(defaultSource);","import defaultSource from \"./defaultSource\";\nexport default (function sourceRandomIrwinHall(source) {\n function randomIrwinHall(n) {\n return function () {\n for (var sum = 0, i = 0; i < n; ++i) {\n sum += source();\n }\n\n return sum;\n };\n }\n\n randomIrwinHall.source = sourceRandomIrwinHall;\n return randomIrwinHall;\n})(defaultSource);","import defaultSource from \"./defaultSource\";\nimport normal from \"./normal\";\nexport default (function sourceRandomLogNormal(source) {\n function randomLogNormal() {\n var randomNormal = normal.source(source).apply(this, arguments);\n return function () {\n return Math.exp(randomNormal());\n };\n }\n\n randomLogNormal.source = sourceRandomLogNormal;\n return randomLogNormal;\n})(defaultSource);","import defaultSource from \"./defaultSource\";\nimport irwinHall from \"./irwinHall\";\nexport default (function sourceRandomBates(source) {\n function randomBates(n) {\n var randomIrwinHall = irwinHall.source(source)(n);\n return function () {\n return randomIrwinHall() / n;\n };\n }\n\n randomBates.source = sourceRandomBates;\n return randomBates;\n})(defaultSource);","import defaultSource from \"./defaultSource\";\nexport default (function sourceRandomExponential(source) {\n function randomExponential(lambda) {\n return function () {\n return -Math.log(1 - source()) / lambda;\n };\n }\n\n randomExponential.source = sourceRandomExponential;\n return randomExponential;\n})(defaultSource);","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0:\n break;\n\n case 1:\n this.range(domain);\n break;\n\n default:\n this.range(range).domain(domain);\n break;\n }\n\n return this;\n}\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0:\n break;\n\n case 1:\n this.interpolator(domain);\n break;\n\n default:\n this.interpolator(interpolator).domain(domain);\n break;\n }\n\n return this;\n}","import \"core-js/modules/es6.array.map\";\nvar array = Array.prototype;\nexport var map = array.map;\nexport var slice = array.slice;","import { map } from \"d3-collection\";\nimport { slice } from \"./array\";\nimport { initRange } from \"./init\";\nexport var implicit = {\n name: \"implicit\"\n};\nexport default function ordinal() {\n var index = map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\",\n i = index.get(key);\n\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function (_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = map();\n var i = -1,\n n = _.length,\n d,\n key;\n\n while (++i < n) {\n if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n }\n\n return scale;\n };\n\n scale.range = function (_) {\n return arguments.length ? (range = slice.call(_), scale) : range.slice();\n };\n\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function () {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n return scale;\n}","import \"core-js/modules/es6.array.map\";\nimport { range as sequence } from \"d3-array\";\nimport { initRange } from \"./init\";\nimport ordinal from \"./ordinal\";\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n range = [0, 1],\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = range[1] < range[0],\n start = range[reverse - 0],\n stop = range[1 - reverse];\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function (i) {\n return start + step * i;\n });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function (_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function (_) {\n return arguments.length ? (range = [+_[0], +_[1]], rescale()) : range.slice();\n };\n\n scale.rangeRound = function (_) {\n return range = [+_[0], +_[1]], round = true, rescale();\n };\n\n scale.bandwidth = function () {\n return bandwidth;\n };\n\n scale.step = function () {\n return step;\n };\n\n scale.round = function (_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function (_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function (_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function (_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function (_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function () {\n return band(domain(), range).round(round).paddingInner(paddingInner).paddingOuter(paddingOuter).align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\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}","export default function (a, b) {\n return a = +a, b = +b, function (t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}","export default function (x) {\n return +x;\n}","import \"core-js/modules/es6.array.map\";\nimport { bisect } from \"d3-array\";\nimport { interpolate as interpolateValue, interpolateNumber, interpolateRound } from \"d3-interpolate\";\nimport { map, slice } from \"./array\";\nimport constant from \"./constant\";\nimport number from \"./number\";\nvar unit = [0, 1];\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= a = +a) ? function (x) {\n return (x - a) / b;\n } : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(domain) {\n var a = domain[0],\n b = domain[domain.length - 1],\n t;\n if (a > b) t = a, a = b, b = t;\n return function (x) {\n return Math.max(a, Math.min(b, x));\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].\n\n\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0],\n d1 = domain[1],\n r0 = range[0],\n r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function (x) {\n return r0(d0(x));\n };\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; // Reverse descending domains.\n\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.domain(source.domain()).range(source.range()).interpolate(source.interpolate()).clamp(source.clamp()).unknown(source.unknown());\n}\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function (y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function (_) {\n return arguments.length ? (domain = map.call(_, number), clamp === identity || (clamp = clamper(domain)), rescale()) : domain.slice();\n };\n\n scale.range = function (_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function (_) {\n return range = slice.call(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function (_) {\n return arguments.length ? (clamp = _ ? clamper(domain) : identity, scale) : clamp !== identity;\n };\n\n scale.interpolate = function (_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function (t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\nexport default function continuous(transform, untransform) {\n return transformer()(transform, untransform);\n}","export default function (x) {\n return function () {\n return x;\n };\n}","import exponent from \"./exponent.js\";\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}","import { tickStep } from \"d3-array\";\nimport { format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound } from \"d3-format\";\nexport default function (start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n\n switch (specifier.type) {\n case \"s\":\n {\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\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\":\n {\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\n case \"f\":\n case \"%\":\n {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n\n return format(specifier);\n}","import exponent from \"./exponent.js\";\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}","import exponent from \"./exponent.js\";\nexport default function (step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}","import { ticks, tickIncrement } from \"d3-array\";\nimport continuous, { copy, identity } from \"./continuous\";\nimport { initRange } from \"./init\";\nimport tickFormat from \"./tickFormat\";\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 var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\nexport default function linear() {\n var scale = continuous(identity, identity);\n\n scale.copy = function () {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n return linearish(scale);\n}","import \"core-js/modules/es6.array.is-array\";\nimport \"core-js/modules/es6.array.filter\";\nvar t0 = new Date(),\n t1 = new Date();\nexport default function newInterval(floori, offseti, count, field) {\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 = [],\n 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\n do {\n range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n } while (previous < start && start < stop);\n\n return range;\n };\n\n interval.filter = function (test) {\n return newInterval(function (date) {\n if (date >= date) while (floori(date), !test(date)) {\n date.setTime(date - 1);\n }\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\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n\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 : !(step > 1) ? interval : interval.filter(field ? function (d) {\n return field(d) % step === 0;\n } : function (d) {\n return interval.count(0, d) % step === 0;\n });\n };\n }\n\n return interval;\n}","import \"core-js/modules/es6.array.is-array\";\nimport interval from \"./interval.js\";\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}); // An optimized implementation for this simple case.\n\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;","import interval from \"./interval.js\";\nvar month = interval(function (date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setMonth(date.getMonth() + step);\n}, function (start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function (date) {\n return date.getMonth();\n});\nexport default month;\nexport var months = month.range;","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);\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;","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;","import interval from \"./interval.js\";\nimport { durationDay, durationMinute } from \"./duration.js\";\nvar day = interval(function (date) {\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setDate(date.getDate() + step);\n}, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function (date) {\n return date.getDate() - 1;\n});\nexport default day;\nexport var days = day.range;","import interval from \"./interval.js\";\nimport { durationHour, durationMinute, durationSecond } from \"./duration.js\";\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});\nexport default hour;\nexport var hours = hour.range;","import interval from \"./interval.js\";\nimport { durationMinute, durationSecond } from \"./duration.js\";\nvar minute = interval(function (date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function (date, step) {\n date.setTime(+date + step * durationMinute);\n}, function (start, end) {\n return (end - start) / durationMinute;\n}, function (date) {\n return date.getMinutes();\n});\nexport default minute;\nexport var minutes = minute.range;","import interval from \"./interval.js\";\nimport { durationSecond } from \"./duration.js\";\nvar second = interval(function (date) {\n date.setTime(date - date.getMilliseconds());\n}, function (date, step) {\n date.setTime(+date + step * durationSecond);\n}, function (start, end) {\n return (end - start) / durationSecond;\n}, function (date) {\n return date.getUTCSeconds();\n});\nexport default second;\nexport var seconds = second.range;","import \"core-js/modules/es6.array.is-array\";\nimport interval from \"./interval.js\";\nvar millisecond = interval(function () {// noop\n}, function (date, step) {\n date.setTime(+date + step);\n}, function (start, end) {\n return end - start;\n}); // An optimized implementation for this simple case.\n\nmillisecond.every = function (k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function (date) {\n date.setTime(Math.floor(date / k) * k);\n }, function (date, step) {\n date.setTime(+date + step * k);\n }, function (start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;","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);\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;","import interval from \"./interval.js\";\nimport { durationDay } from \"./duration.js\";\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});\nexport default utcDay;\nexport var utcDays = utcDay.range;","import \"core-js/modules/es6.array.is-array\";\nimport interval from \"./interval.js\";\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}); // An optimized implementation for this simple case.\n\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;","import \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.regexp.constructor\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.date.to-string\";\nimport \"core-js/modules/es6.object.to-string\";\nimport { timeDay, timeSunday, timeMonday, timeThursday, timeYear, utcDay, utcSunday, utcMonday, utcThursday, utcYear } 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\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\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 {\n y: y,\n m: m,\n d: d,\n H: 0,\n M: 0,\n S: 0,\n L: 0\n };\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 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 var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n }; // These recursive directive definitions must be deferred.\n\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 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);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,\n day;\n if (i != string.length) return null; // If a UNIX timestamp is specified, return it.\n\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)); // If this is utcParse, never use the local timezone.\n\n if (Z && !(\"Z\" in d)) d.Z = 0; // The am-pm flag is 0 for AM, and 1 for PM.\n\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12; // If the month was not specified, inherit from the quarter.\n\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0; // Convert day-of-week and week-of-year to day-of-year.\n\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n\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 } // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n\n\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n } // Otherwise, all fields are in local time.\n\n\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\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || (j = parse(d, string, j)) < 0) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function format(specifier) {\n var f = newFormat(specifier += \"\", formats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n parse: function parse(specifier) {\n var p = newParse(specifier += \"\", false);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n },\n utcFormat: function utcFormat(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n\n f.toString = function () {\n return specifier;\n };\n\n return f;\n },\n utcParse: function utcParse(specifier) {\n var p = newParse(specifier += \"\", true);\n\n p.toString = function () {\n return specifier;\n };\n\n return p;\n }\n };\n}\nvar pads = {\n \"-\": \"\",\n \"_\": \" \",\n \"0\": \"0\"\n},\n numberRe = /^\\s*\\d+/,\n // note: ignores next directive\npercentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {},\n i = -1,\n n = names.length;\n\n while (++i < n) {\n map[names[i].toLowerCase()] = i;\n }\n\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatWeekNumberISO(d, p) {\n var day = d.getDay();\n d = day >= 4 || day === 0 ? timeThursday(d) : timeThursday.ceil(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\")) + pad(z / 60 | 0, \"0\", 2) + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n var day = d.getUTCDay();\n d = day >= 4 || day === 0 ? utcThursday(d) : utcThursday.ceil(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}","import formatLocale from \"./locale.js\";\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\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});\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}","import \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.array.is-array\";\nimport { bisector, tickStep } from \"d3-array\";\nimport { timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond } from \"d3-time\";\nimport { timeFormat } from \"d3-time-format\";\nimport { map } from \"./array\";\nimport continuous, { copy, identity } from \"./continuous\";\nimport { initRange } from \"./init\";\nimport nice from \"./nice\";\nvar durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(identity, identity),\n invert = scale.invert,\n domain = scale.domain;\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n var tickIntervals = [[second, 1, durationSecond], [second, 5, 5 * durationSecond], [second, 15, 15 * durationSecond], [second, 30, 30 * durationSecond], [minute, 1, durationMinute], [minute, 5, 5 * durationMinute], [minute, 15, 15 * durationMinute], [minute, 30, 30 * durationMinute], [hour, 1, durationHour], [hour, 3, 3 * durationHour], [hour, 6, 6 * durationHour], [hour, 12, 12 * durationHour], [day, 1, durationDay], [day, 2, 2 * durationDay], [week, 1, durationWeek], [month, 1, durationMonth], [month, 3, 3 * durationMonth], [year, 1, durationYear]];\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond : minute(date) < date ? formatSecond : hour(date) < date ? formatMinute : day(date) < date ? formatHour : month(date) < date ? week(date) < date ? formatDay : formatWeek : year(date) < date ? formatMonth : formatYear)(date);\n }\n\n function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10; // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = bisector(function (i) {\n return i[2];\n }).right(tickIntervals, target);\n\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = millisecond;\n }\n }\n\n return step == null ? interval : interval.every(step);\n }\n\n scale.invert = function (y) {\n return new Date(invert(y));\n };\n\n scale.domain = function (_) {\n return arguments.length ? domain(map.call(_, number)) : domain().map(date);\n };\n\n scale.ticks = function (interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function (count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function (interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step)) ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function () {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\nexport default function () {\n return initRange.apply(calendar(timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}","import interval from \"./interval.js\";\nvar utcMonth = interval(function (date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function (start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function (date) {\n return date.getUTCMonth();\n});\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;","import interval from \"./interval.js\";\nimport { durationHour } from \"./duration.js\";\nvar utcHour = interval(function (date) {\n date.setUTCMinutes(0, 0, 0);\n}, function (date, step) {\n date.setTime(+date + step * durationHour);\n}, function (start, end) {\n return (end - start) / durationHour;\n}, function (date) {\n return date.getUTCHours();\n});\nexport default utcHour;\nexport var utcHours = utcHour.range;","import interval from \"./interval.js\";\nimport { durationMinute } from \"./duration.js\";\nvar utcMinute = interval(function (date) {\n date.setUTCSeconds(0, 0);\n}, function (date, step) {\n date.setTime(+date + step * durationMinute);\n}, function (start, end) {\n return (end - start) / durationMinute;\n}, function (date) {\n return date.getUTCMinutes();\n});\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;","export default function (x) {\n return function constant() {\n return x;\n };\n}","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}","import { path } from \"d3-path\";\nimport constant from \"./constant.js\";\nimport { abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau } from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0,\n y10 = y1 - y0,\n x32 = x3 - x2,\n y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n} // Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\n\n\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00; // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function () {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n if (!context) context = buffer = path(); // Ensure that the outer radius is always larger than the inner radius.\n\n if (r1 < r0) r = r1, r1 = r0, r0 = r; // Is it a point?\n\n if (!(r1 > epsilon)) context.moveTo(0, 0); // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n } // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = ap > epsilon && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1; // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= cw ? 1 : -1, a00 += p0, a10 -= p0;else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= cw ? 1 : -1, a01 += p1, a11 -= p1;else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10); // Apply rounded corners?\n\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc; // Restrict the corner radius according to the sector angle.\n\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n } // Is the sector collapsed to a line?\n\n\n if (!(da1 > epsilon)) context.moveTo(x01, y01); // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01); // Have the corners merged?\n\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n } // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw); // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10); // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01); // Have the corners merged?\n\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw); // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n } // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n context.closePath();\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function () {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function (_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function (_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function (_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function (_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function (_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function (_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function (_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function (_) {\n return arguments.length ? (context = _ == null ? null : _, arc) : context;\n };\n\n return arc;\n}","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function areaStart() {\n this._line = 0;\n },\n areaEnd: function areaEnd() {\n this._line = NaN;\n },\n lineStart: function lineStart() {\n this._point = 0;\n },\n lineEnd: function lineEnd() {\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function point(x, y) {\n x = +x, y = +y;\n\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n\n case 1:\n this._point = 2;\n // proceed\n\n default:\n this._context.lineTo(x, y);\n\n break;\n }\n }\n};\nexport default function (context) {\n return new Linear(context);\n}","export function x(p) {\n return p[0];\n}\nexport function y(p) {\n return p[1];\n}","import { path } from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport { x as pointX, y as pointY } from \"./point.js\";\nexport default function () {\n var x = pointX,\n y = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function line(data) {\n var i,\n n = data.length,\n d,\n defined0 = false,\n buffer;\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();else output.lineEnd();\n }\n\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function (_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function (_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function (_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function (_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function (_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}","export default function (a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}","export default function (d) {\n return d;\n}","import \"core-js/modules/es6.array.sort\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport { tau } from \"./math.js\";\nexport default function () {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = data.length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n } // Optionally sort the arcs by previously-computed values or by data.\n\n\n if (sortValues != null) index.sort(function (i, j) {\n return sortValues(arcs[i], arcs[j]);\n });else if (sort != null) index.sort(function (i, j) {\n return sort(data[i], data[j]);\n }); // Compute the arcs! They are stored in the original data's order.\n\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function (_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function (_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function (_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function (_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function (_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function (_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}","function RedBlackTree() {\n this._ = null; // root node\n}\n\nexport function RedBlackNode(node) {\n node.U = // parent node\n node.C = // color - true for red, false for black\n node.L = // left node\n node.R = // right node\n node.P = // previous node\n node.N = null; // next node\n}\nRedBlackTree.prototype = {\n constructor: RedBlackTree,\n insert: function insert(after, node) {\n var parent, grandpa, uncle;\n\n if (after) {\n node.P = after;\n node.N = after.N;\n if (after.N) after.N.P = node;\n after.N = node;\n\n if (after.R) {\n after = after.R;\n\n while (after.L) {\n after = after.L;\n }\n\n after.L = node;\n } else {\n after.R = node;\n }\n\n parent = after;\n } else if (this._) {\n after = RedBlackFirst(this._);\n node.P = null;\n node.N = after;\n after.P = after.L = node;\n parent = after;\n } else {\n node.P = node.N = null;\n this._ = node;\n parent = null;\n }\n\n node.L = node.R = null;\n node.U = parent;\n node.C = true;\n after = node;\n\n while (parent && parent.C) {\n grandpa = parent.U;\n\n if (parent === grandpa.L) {\n uncle = grandpa.R;\n\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.R) {\n RedBlackRotateLeft(this, parent);\n after = parent;\n parent = after.U;\n }\n\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateRight(this, grandpa);\n }\n } else {\n uncle = grandpa.L;\n\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.L) {\n RedBlackRotateRight(this, parent);\n after = parent;\n parent = after.U;\n }\n\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateLeft(this, grandpa);\n }\n }\n\n parent = after.U;\n }\n\n this._.C = false;\n },\n remove: function remove(node) {\n if (node.N) node.N.P = node.P;\n if (node.P) node.P.N = node.N;\n node.N = node.P = null;\n var parent = node.U,\n sibling,\n left = node.L,\n right = node.R,\n next,\n red;\n if (!left) next = right;else if (!right) next = left;else next = RedBlackFirst(right);\n\n if (parent) {\n if (parent.L === node) parent.L = next;else parent.R = next;\n } else {\n this._ = next;\n }\n\n if (left && right) {\n red = next.C;\n next.C = node.C;\n next.L = left;\n left.U = next;\n\n if (next !== right) {\n parent = next.U;\n next.U = node.U;\n node = next.R;\n parent.L = node;\n next.R = right;\n right.U = next;\n } else {\n next.U = parent;\n parent = next;\n node = next.R;\n }\n } else {\n red = node.C;\n node = next;\n }\n\n if (node) node.U = parent;\n if (red) return;\n\n if (node && node.C) {\n node.C = false;\n return;\n }\n\n do {\n if (node === this._) break;\n\n if (node === parent.L) {\n sibling = parent.R;\n\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateLeft(this, parent);\n sibling = parent.R;\n }\n\n if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {\n if (!sibling.R || !sibling.R.C) {\n sibling.L.C = false;\n sibling.C = true;\n RedBlackRotateRight(this, sibling);\n sibling = parent.R;\n }\n\n sibling.C = parent.C;\n parent.C = sibling.R.C = false;\n RedBlackRotateLeft(this, parent);\n node = this._;\n break;\n }\n } else {\n sibling = parent.L;\n\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateRight(this, parent);\n sibling = parent.L;\n }\n\n if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {\n if (!sibling.L || !sibling.L.C) {\n sibling.R.C = false;\n sibling.C = true;\n RedBlackRotateLeft(this, sibling);\n sibling = parent.L;\n }\n\n sibling.C = parent.C;\n parent.C = sibling.L.C = false;\n RedBlackRotateRight(this, parent);\n node = this._;\n break;\n }\n }\n\n sibling.C = true;\n node = parent;\n parent = parent.U;\n } while (!node.C);\n\n if (node) node.C = false;\n }\n};\n\nfunction RedBlackRotateLeft(tree, node) {\n var p = node,\n q = node.R,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.R = q.L;\n if (p.R) p.R.U = p;\n q.L = p;\n}\n\nfunction RedBlackRotateRight(tree, node) {\n var p = node,\n q = node.L,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.L = q.R;\n if (p.L) p.L.U = p;\n q.R = p;\n}\n\nfunction RedBlackFirst(node) {\n while (node.L) {\n node = node.L;\n }\n\n return node;\n}\n\nexport default RedBlackTree;","import { cells, edges, epsilon } from \"./Diagram\";\nexport function createEdge(left, right, v0, v1) {\n var edge = [null, null],\n index = edges.push(edge) - 1;\n edge.left = left;\n edge.right = right;\n if (v0) setEdgeEnd(edge, left, right, v0);\n if (v1) setEdgeEnd(edge, right, left, v1);\n cells[left.index].halfedges.push(index);\n cells[right.index].halfedges.push(index);\n return edge;\n}\nexport function createBorderEdge(left, v0, v1) {\n var edge = [v0, v1];\n edge.left = left;\n return edge;\n}\nexport function setEdgeEnd(edge, left, right, vertex) {\n if (!edge[0] && !edge[1]) {\n edge[0] = vertex;\n edge.left = left;\n edge.right = right;\n } else if (edge.left === right) {\n edge[1] = vertex;\n } else {\n edge[0] = vertex;\n }\n} // Liang–Barsky line clipping.\n\nfunction clipEdge(edge, x0, y0, x1, y1) {\n var a = edge[0],\n b = edge[1],\n ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (!(t0 > 0) && !(t1 < 1)) return true; // TODO Better check?\n\n if (t0 > 0) edge[0] = [ax + t0 * dx, ay + t0 * dy];\n if (t1 < 1) edge[1] = [ax + t1 * dx, ay + t1 * dy];\n return true;\n}\n\nfunction connectEdge(edge, x0, y0, x1, y1) {\n var v1 = edge[1];\n if (v1) return true;\n var v0 = edge[0],\n left = edge.left,\n right = edge.right,\n lx = left[0],\n ly = left[1],\n rx = right[0],\n ry = right[1],\n fx = (lx + rx) / 2,\n fy = (ly + ry) / 2,\n fm,\n fb;\n\n if (ry === ly) {\n if (fx < x0 || fx >= x1) return;\n\n if (lx > rx) {\n if (!v0) v0 = [fx, y0];else if (v0[1] >= y1) return;\n v1 = [fx, y1];\n } else {\n if (!v0) v0 = [fx, y1];else if (v0[1] < y0) return;\n v1 = [fx, y0];\n }\n } else {\n fm = (lx - rx) / (ry - ly);\n fb = fy - fm * fx;\n\n if (fm < -1 || fm > 1) {\n if (lx > rx) {\n if (!v0) v0 = [(y0 - fb) / fm, y0];else if (v0[1] >= y1) return;\n v1 = [(y1 - fb) / fm, y1];\n } else {\n if (!v0) v0 = [(y1 - fb) / fm, y1];else if (v0[1] < y0) return;\n v1 = [(y0 - fb) / fm, y0];\n }\n } else {\n if (ly < ry) {\n if (!v0) v0 = [x0, fm * x0 + fb];else if (v0[0] >= x1) return;\n v1 = [x1, fm * x1 + fb];\n } else {\n if (!v0) v0 = [x1, fm * x1 + fb];else if (v0[0] < x0) return;\n v1 = [x0, fm * x0 + fb];\n }\n }\n }\n\n edge[0] = v0;\n edge[1] = v1;\n return true;\n}\n\nexport function clipEdges(x0, y0, x1, y1) {\n var i = edges.length,\n edge;\n\n while (i--) {\n if (!connectEdge(edge = edges[i], x0, y0, x1, y1) || !clipEdge(edge, x0, y0, x1, y1) || !(Math.abs(edge[0][0] - edge[1][0]) > epsilon || Math.abs(edge[0][1] - edge[1][1]) > epsilon)) {\n delete edges[i];\n }\n }\n}","import \"core-js/modules/es6.array.sort\";\nimport { createBorderEdge } from \"./Edge\";\nimport { cells, edges, epsilon } from \"./Diagram\";\nexport function createCell(site) {\n return cells[site.index] = {\n site: site,\n halfedges: []\n };\n}\n\nfunction cellHalfedgeAngle(cell, edge) {\n var site = cell.site,\n va = edge.left,\n vb = edge.right;\n if (site === vb) vb = va, va = site;\n if (vb) return Math.atan2(vb[1] - va[1], vb[0] - va[0]);\n if (site === va) va = edge[1], vb = edge[0];else va = edge[0], vb = edge[1];\n return Math.atan2(va[0] - vb[0], vb[1] - va[1]);\n}\n\nexport function cellHalfedgeStart(cell, edge) {\n return edge[+(edge.left !== cell.site)];\n}\nexport function cellHalfedgeEnd(cell, edge) {\n return edge[+(edge.left === cell.site)];\n}\nexport function sortCellHalfedges() {\n for (var i = 0, n = cells.length, cell, halfedges, j, m; i < n; ++i) {\n if ((cell = cells[i]) && (m = (halfedges = cell.halfedges).length)) {\n var index = new Array(m),\n array = new Array(m);\n\n for (j = 0; j < m; ++j) {\n index[j] = j, array[j] = cellHalfedgeAngle(cell, edges[halfedges[j]]);\n }\n\n index.sort(function (i, j) {\n return array[j] - array[i];\n });\n\n for (j = 0; j < m; ++j) {\n array[j] = halfedges[index[j]];\n }\n\n for (j = 0; j < m; ++j) {\n halfedges[j] = array[j];\n }\n }\n }\n}\nexport function clipCells(x0, y0, x1, y1) {\n var nCells = cells.length,\n iCell,\n cell,\n site,\n iHalfedge,\n halfedges,\n nHalfedges,\n start,\n startX,\n startY,\n end,\n endX,\n endY,\n cover = true;\n\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n halfedges = cell.halfedges;\n iHalfedge = halfedges.length; // Remove any dangling clipped edges.\n\n while (iHalfedge--) {\n if (!edges[halfedges[iHalfedge]]) {\n halfedges.splice(iHalfedge, 1);\n }\n } // Insert any border edges as necessary.\n\n\n iHalfedge = 0, nHalfedges = halfedges.length;\n\n while (iHalfedge < nHalfedges) {\n end = cellHalfedgeEnd(cell, edges[halfedges[iHalfedge]]), endX = end[0], endY = end[1];\n start = cellHalfedgeStart(cell, edges[halfedges[++iHalfedge % nHalfedges]]), startX = start[0], startY = start[1];\n\n if (Math.abs(endX - startX) > epsilon || Math.abs(endY - startY) > epsilon) {\n halfedges.splice(iHalfedge, 0, edges.push(createBorderEdge(site, end, Math.abs(endX - x0) < epsilon && y1 - endY > epsilon ? [x0, Math.abs(startX - x0) < epsilon ? startY : y1] : Math.abs(endY - y1) < epsilon && x1 - endX > epsilon ? [Math.abs(startY - y1) < epsilon ? startX : x1, y1] : Math.abs(endX - x1) < epsilon && endY - y0 > epsilon ? [x1, Math.abs(startX - x1) < epsilon ? startY : y0] : Math.abs(endY - y0) < epsilon && endX - x0 > epsilon ? [Math.abs(startY - y0) < epsilon ? startX : x0, y0] : null)) - 1);\n ++nHalfedges;\n }\n }\n\n if (nHalfedges) cover = false;\n }\n } // If there weren’t any edges, have the closest site cover the extent.\n // It doesn’t matter which corner of the extent we measure!\n\n\n if (cover) {\n var dx,\n dy,\n d2,\n dc = Infinity;\n\n for (iCell = 0, cover = null; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n dx = site[0] - x0;\n dy = site[1] - y0;\n d2 = dx * dx + dy * dy;\n if (d2 < dc) dc = d2, cover = cell;\n }\n }\n\n if (cover) {\n var v00 = [x0, y0],\n v01 = [x0, y1],\n v11 = [x1, y1],\n v10 = [x1, y0];\n cover.halfedges.push(edges.push(createBorderEdge(site = cover.site, v00, v01)) - 1, edges.push(createBorderEdge(site, v01, v11)) - 1, edges.push(createBorderEdge(site, v11, v10)) - 1, edges.push(createBorderEdge(site, v10, v00)) - 1);\n }\n } // Lastly delete any cells with no edges; these were entirely clipped.\n\n\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n if (!cell.halfedges.length) {\n delete cells[iCell];\n }\n }\n }\n}","import { RedBlackNode } from \"./RedBlackTree\";\nimport { circles, epsilon2 } from \"./Diagram\";\nvar circlePool = [];\nexport var firstCircle;\n\nfunction Circle() {\n RedBlackNode(this);\n this.x = this.y = this.arc = this.site = this.cy = null;\n}\n\nexport function attachCircle(arc) {\n var lArc = arc.P,\n rArc = arc.N;\n if (!lArc || !rArc) return;\n var lSite = lArc.site,\n cSite = arc.site,\n rSite = rArc.site;\n if (lSite === rSite) return;\n var bx = cSite[0],\n by = cSite[1],\n ax = lSite[0] - bx,\n ay = lSite[1] - by,\n cx = rSite[0] - bx,\n cy = rSite[1] - by;\n var d = 2 * (ax * cy - ay * cx);\n if (d >= -epsilon2) return;\n var ha = ax * ax + ay * ay,\n hc = cx * cx + cy * cy,\n x = (cy * ha - ay * hc) / d,\n y = (ax * hc - cx * ha) / d;\n var circle = circlePool.pop() || new Circle();\n circle.arc = arc;\n circle.site = cSite;\n circle.x = x + bx;\n circle.y = (circle.cy = y + by) + Math.sqrt(x * x + y * y); // y bottom\n\n arc.circle = circle;\n var before = null,\n node = circles._;\n\n while (node) {\n if (circle.y < node.y || circle.y === node.y && circle.x <= node.x) {\n if (node.L) node = node.L;else {\n before = node.P;\n break;\n }\n } else {\n if (node.R) node = node.R;else {\n before = node;\n break;\n }\n }\n }\n\n circles.insert(before, circle);\n if (!before) firstCircle = circle;\n}\nexport function detachCircle(arc) {\n var circle = arc.circle;\n\n if (circle) {\n if (!circle.P) firstCircle = circle.N;\n circles.remove(circle);\n circlePool.push(circle);\n RedBlackNode(circle);\n arc.circle = null;\n }\n}","import { RedBlackNode } from \"./RedBlackTree\";\nimport { createCell } from \"./Cell\";\nimport { attachCircle, detachCircle } from \"./Circle\";\nimport { createEdge, setEdgeEnd } from \"./Edge\";\nimport { beaches, epsilon } from \"./Diagram\";\nvar beachPool = [];\n\nfunction Beach() {\n RedBlackNode(this);\n this.edge = this.site = this.circle = null;\n}\n\nfunction createBeach(site) {\n var beach = beachPool.pop() || new Beach();\n beach.site = site;\n return beach;\n}\n\nfunction detachBeach(beach) {\n detachCircle(beach);\n beaches.remove(beach);\n beachPool.push(beach);\n RedBlackNode(beach);\n}\n\nexport function removeBeach(beach) {\n var circle = beach.circle,\n x = circle.x,\n y = circle.cy,\n vertex = [x, y],\n previous = beach.P,\n next = beach.N,\n disappearing = [beach];\n detachBeach(beach);\n var lArc = previous;\n\n while (lArc.circle && Math.abs(x - lArc.circle.x) < epsilon && Math.abs(y - lArc.circle.cy) < epsilon) {\n previous = lArc.P;\n disappearing.unshift(lArc);\n detachBeach(lArc);\n lArc = previous;\n }\n\n disappearing.unshift(lArc);\n detachCircle(lArc);\n var rArc = next;\n\n while (rArc.circle && Math.abs(x - rArc.circle.x) < epsilon && Math.abs(y - rArc.circle.cy) < epsilon) {\n next = rArc.N;\n disappearing.push(rArc);\n detachBeach(rArc);\n rArc = next;\n }\n\n disappearing.push(rArc);\n detachCircle(rArc);\n var nArcs = disappearing.length,\n iArc;\n\n for (iArc = 1; iArc < nArcs; ++iArc) {\n rArc = disappearing[iArc];\n lArc = disappearing[iArc - 1];\n setEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);\n }\n\n lArc = disappearing[0];\n rArc = disappearing[nArcs - 1];\n rArc.edge = createEdge(lArc.site, rArc.site, null, vertex);\n attachCircle(lArc);\n attachCircle(rArc);\n}\nexport function addBeach(site) {\n var x = site[0],\n directrix = site[1],\n lArc,\n rArc,\n dxl,\n dxr,\n node = beaches._;\n\n while (node) {\n dxl = leftBreakPoint(node, directrix) - x;\n if (dxl > epsilon) node = node.L;else {\n dxr = x - rightBreakPoint(node, directrix);\n\n if (dxr > epsilon) {\n if (!node.R) {\n lArc = node;\n break;\n }\n\n node = node.R;\n } else {\n if (dxl > -epsilon) {\n lArc = node.P;\n rArc = node;\n } else if (dxr > -epsilon) {\n lArc = node;\n rArc = node.N;\n } else {\n lArc = rArc = node;\n }\n\n break;\n }\n }\n }\n\n createCell(site);\n var newArc = createBeach(site);\n beaches.insert(lArc, newArc);\n if (!lArc && !rArc) return;\n\n if (lArc === rArc) {\n detachCircle(lArc);\n rArc = createBeach(lArc.site);\n beaches.insert(newArc, rArc);\n newArc.edge = rArc.edge = createEdge(lArc.site, newArc.site);\n attachCircle(lArc);\n attachCircle(rArc);\n return;\n }\n\n if (!rArc) {\n // && lArc\n newArc.edge = createEdge(lArc.site, newArc.site);\n return;\n } // else lArc !== rArc\n\n\n detachCircle(lArc);\n detachCircle(rArc);\n var lSite = lArc.site,\n ax = lSite[0],\n ay = lSite[1],\n bx = site[0] - ax,\n by = site[1] - ay,\n rSite = rArc.site,\n cx = rSite[0] - ax,\n cy = rSite[1] - ay,\n d = 2 * (bx * cy - by * cx),\n hb = bx * bx + by * by,\n hc = cx * cx + cy * cy,\n vertex = [(cy * hb - by * hc) / d + ax, (bx * hc - cx * hb) / d + ay];\n setEdgeEnd(rArc.edge, lSite, rSite, vertex);\n newArc.edge = createEdge(lSite, site, null, vertex);\n rArc.edge = createEdge(site, rSite, null, vertex);\n attachCircle(lArc);\n attachCircle(rArc);\n}\n\nfunction leftBreakPoint(arc, directrix) {\n var site = arc.site,\n rfocx = site[0],\n rfocy = site[1],\n pby2 = rfocy - directrix;\n if (!pby2) return rfocx;\n var lArc = arc.P;\n if (!lArc) return -Infinity;\n site = lArc.site;\n var lfocx = site[0],\n lfocy = site[1],\n plby2 = lfocy - directrix;\n if (!plby2) return lfocx;\n var hl = lfocx - rfocx,\n aby2 = 1 / pby2 - 1 / plby2,\n b = hl / plby2;\n if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;\n return (rfocx + lfocx) / 2;\n}\n\nfunction rightBreakPoint(arc, directrix) {\n var rArc = arc.N;\n if (rArc) return leftBreakPoint(rArc, directrix);\n var site = arc.site;\n return site[1] === directrix ? site[0] : Infinity;\n}","import \"core-js/modules/es6.array.filter\";\nimport \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.array.sort\";\nimport { addBeach, removeBeach } from \"./Beach\";\nimport { sortCellHalfedges, cellHalfedgeStart, clipCells } from \"./Cell\";\nimport { firstCircle } from \"./Circle\";\nimport { clipEdges } from \"./Edge\";\nimport RedBlackTree from \"./RedBlackTree\";\nexport var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var beaches;\nexport var cells;\nexport var circles;\nexport var edges;\n\nfunction triangleArea(a, b, c) {\n return (a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1]);\n}\n\nfunction lexicographic(a, b) {\n return b[1] - a[1] || b[0] - a[0];\n}\n\nexport default function Diagram(sites, extent) {\n var site = sites.sort(lexicographic).pop(),\n x,\n y,\n circle;\n edges = [];\n cells = new Array(sites.length);\n beaches = new RedBlackTree();\n circles = new RedBlackTree();\n\n while (true) {\n circle = firstCircle;\n\n if (site && (!circle || site[1] < circle.y || site[1] === circle.y && site[0] < circle.x)) {\n if (site[0] !== x || site[1] !== y) {\n addBeach(site);\n x = site[0], y = site[1];\n }\n\n site = sites.pop();\n } else if (circle) {\n removeBeach(circle.arc);\n } else {\n break;\n }\n }\n\n sortCellHalfedges();\n\n if (extent) {\n var x0 = +extent[0][0],\n y0 = +extent[0][1],\n x1 = +extent[1][0],\n y1 = +extent[1][1];\n clipEdges(x0, y0, x1, y1);\n clipCells(x0, y0, x1, y1);\n }\n\n this.edges = edges;\n this.cells = cells;\n beaches = circles = edges = cells = null;\n}\nDiagram.prototype = {\n constructor: Diagram,\n polygons: function polygons() {\n var edges = this.edges;\n return this.cells.map(function (cell) {\n var polygon = cell.halfedges.map(function (i) {\n return cellHalfedgeStart(cell, edges[i]);\n });\n polygon.data = cell.site.data;\n return polygon;\n });\n },\n triangles: function triangles() {\n var triangles = [],\n edges = this.edges;\n this.cells.forEach(function (cell, i) {\n if (!(m = (halfedges = cell.halfedges).length)) return;\n var site = cell.site,\n halfedges,\n j = -1,\n m,\n s0,\n e1 = edges[halfedges[m - 1]],\n s1 = e1.left === site ? e1.right : e1.left;\n\n while (++j < m) {\n s0 = s1;\n e1 = edges[halfedges[j]];\n s1 = e1.left === site ? e1.right : e1.left;\n\n if (s0 && s1 && i < s0.index && i < s1.index && triangleArea(site, s0, s1) < 0) {\n triangles.push([site.data, s0.data, s1.data]);\n }\n }\n });\n return triangles;\n },\n links: function links() {\n return this.edges.filter(function (edge) {\n return edge.right;\n }).map(function (edge) {\n return {\n source: edge.left.data,\n target: edge.right.data\n };\n });\n },\n find: function find(x, y, radius) {\n var that = this,\n i0,\n i1 = that._found || 0,\n n = that.cells.length,\n cell; // Use the previously-found cell, or start with an arbitrary one.\n\n while (!(cell = that.cells[i1])) {\n if (++i1 >= n) return null;\n }\n\n var dx = x - cell.site[0],\n dy = y - cell.site[1],\n d2 = dx * dx + dy * dy; // Traverse the half-edges to find a closer cell, if any.\n\n do {\n cell = that.cells[i0 = i1], i1 = null;\n cell.halfedges.forEach(function (e) {\n var edge = that.edges[e],\n v = edge.left;\n if ((v === cell.site || !v) && !(v = edge.right)) return;\n var vx = x - v[0],\n vy = y - v[1],\n v2 = vx * vx + vy * vy;\n if (v2 < d2) d2 = v2, i1 = v.index;\n });\n } while (i1 !== null);\n\n that._found = i0;\n return radius == null || d2 <= radius * radius ? cell.site : null;\n }\n};","var rho = Math.SQRT2,\n rho2 = 2,\n rho4 = 4,\n epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n} // p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\n\n\nexport default function (p0, p1) {\n var ux0 = p0[0],\n uy0 = p0[1],\n w0 = p0[2],\n ux1 = p1[0],\n uy1 = p1[1],\n w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S; // Special case for u0 ≅ u1.\n\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n\n i = function i(t) {\n return [ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(rho * t * S)];\n };\n } // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n\n i = function i(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / cosh(rho * s + r0)];\n };\n }\n\n i.duration = S * 1000;\n return i;\n}","import \"core-js/modules/es6.array.map\";\nexport function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\nTransform.prototype = {\n constructor: Transform,\n scale: function scale(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function translate(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function apply(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function applyX(x) {\n return x * this.k + this.x;\n },\n applyY: function applyY(y) {\n return y * this.k + this.y;\n },\n invert: function invert(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function invertX(x) {\n return (x - this.x) / this.k;\n },\n invertY: function invertY(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function rescaleX(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function rescaleY(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function toString() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\nexport var identity = new Transform(1, 0, 0);\ntransform.prototype = Transform.prototype;\nexport default function transform(node) {\n while (!node.__zoom) {\n if (!(node = node.parentNode)) return identity;\n }\n\n return node.__zoom;\n}","import \"core-js/modules/es6.array.filter\";\nimport { dispatch } from \"d3-dispatch\";\nimport { dragDisable, dragEnable } from \"d3-drag\";\nimport { interpolateZoom } from \"d3-interpolate\";\nimport { event, customEvent, select, mouse, touch } from \"d3-selection\";\nimport { interrupt } from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport { Transform, identity } from \"./transform.js\";\nimport noevent, { nopropagation } from \"./noevent.js\"; // Ignore right-click, since that should open the context menu.\n\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta() {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || \"ontouchstart\" in this;\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1), dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1));\n}\n\nexport default function () {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0;\n\n function zoom(selection) {\n selection.property(\"__zoom\", defaultTransform).on(\"wheel.zoom\", wheeled).on(\"mousedown.zoom\", mousedowned).on(\"dblclick.zoom\", dblclicked).filter(touchable).on(\"touchstart.zoom\", touchstarted).on(\"touchmove.zoom\", touchmoved).on(\"touchend.zoom touchcancel.zoom\", touchended).style(\"touch-action\", \"none\").style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function (collection, transform, point) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n\n if (collection !== selection) {\n schedule(collection, transform, point);\n } else {\n selection.interrupt().each(function () {\n gesture(this, arguments).start().zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform).end();\n });\n }\n };\n\n zoom.scaleBy = function (selection, k, p) {\n zoom.scaleTo(selection, function () {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p);\n };\n\n zoom.scaleTo = function (selection, k, p) {\n zoom.transform(selection, function () {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p);\n };\n\n zoom.translateBy = function (selection, x, y) {\n zoom.transform(selection, function () {\n return constrain(this.__zoom.translate(typeof x === \"function\" ? x.apply(this, arguments) : x, typeof y === \"function\" ? y.apply(this, arguments) : y), extent.apply(this, arguments), translateExtent);\n });\n };\n\n zoom.translateTo = function (selection, x, y, p) {\n zoom.transform(selection, function () {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(typeof x === \"function\" ? -x.apply(this, arguments) : -x, typeof y === \"function\" ? -y.apply(this, arguments) : -y), e, translateExtent);\n }, p);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k,\n y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point) {\n transition.on(\"start.zoom\", function () {\n gesture(this, arguments).start();\n }).on(\"interrupt.zoom end.zoom\", function () {\n gesture(this, arguments).end();\n }).tween(\"zoom\", function () {\n var that = this,\n args = arguments,\n g = gesture(that, args),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function (t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else {\n var l = i(t),\n k = w / l[2];\n t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k);\n }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return !clean && that.__zooming || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n start: function start() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n\n return this;\n },\n zoom: function zoom(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function end() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n\n return this;\n },\n emit: function emit(type) {\n customEvent(new ZoomEvent(zoom, type, this.that.__zoom), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function wheeled() {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, arguments),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = mouse(this); // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n\n clearTimeout(g.wheel);\n } // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return; // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent();\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var g = gesture(this, arguments, true),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = mouse(this),\n x0 = event.clientX,\n y0 = event.clientY;\n dragDisable(event.view);\n nopropagation();\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved() {\n noevent();\n\n if (!g.moved) {\n var dx = event.clientX - x0,\n dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n\n g.zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = mouse(g.that), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped() {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent();\n g.end();\n }\n }\n\n function dblclicked() {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = mouse(this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, arguments), translateExtent);\n noevent();\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0);else select(this).call(zoom.transform, t1);\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, arguments, event.changedTouches.length === n),\n started,\n i,\n t,\n p;\n nopropagation();\n\n for (i = 0; i < n; ++i) {\n t = touches[i], p = touch(this, touches, t.identifier);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchstarting = setTimeout(function () {\n touchstarting = null;\n }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved() {\n if (!this.__zooming) return;\n var g = gesture(this, arguments),\n touches = event.changedTouches,\n n = touches.length,\n i,\n t,\n p,\n l;\n noevent();\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n g.taps = 0;\n\n for (i = 0; i < n; ++i) {\n t = touches[i], p = touch(this, touches, t.identifier);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n\n t = g.that.__zoom;\n\n if (g.touch1) {\n var p0 = g.touch0[0],\n l0 = g.touch0[1],\n p1 = g.touch1[0],\n l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n } else if (g.touch0) p = g.touch0[0], l = g.touch0[1];else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended() {\n if (!this.__zooming) return;\n var g = gesture(this, arguments),\n touches = event.changedTouches,\n n = touches.length,\n i,\n t;\n nopropagation();\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function () {\n touchending = null;\n }, touchDelay);\n\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);else {\n g.end(); // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n\n if (g.taps === 2) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n\n zoom.wheelDelta = function (_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function (_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function (_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function (_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function (_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function (_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function (_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function (_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function (_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function () {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function (_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n return zoom;\n}","import React, { useEffect, useRef } from \"react\";\nimport * as d3 from 'd3';\n\nconst Pie = props => {\n const { displayPercentages, txtCenter, txtCenterColor, txtCenterYAxis, txtCenterClass } = props;\n const ref = useRef(null);\n const cache = useRef(props.data);\n const createPie = d3\n .pie()\n .value(d => d.value)\n .sort(null);\n const createArc = d3\n .arc()\n .innerRadius(props.innerRadius)\n .outerRadius(props.outerRadius);\n\n const colorScale = d3.scaleOrdinal()\n .domain([\n 'purple',\n 'purpleLite',\n 'teal',\n 'tealLite',\n 'grey',\n ])\n .range([\n '#4d0348',\n '#792d8b',\n '#005d81',\n '#00a6c3',\n '#e6e7e8',\n ]);\n\n const format = d3.format(\".0%\");\n\n useEffect(\n () => {\n const data = createPie(props.data);\n const prevData = createPie(cache.current);\n const group = d3.select(ref.current);\n const groupWithData = group.selectAll(\"g.arc\").data(data);\n\n groupWithData.exit().remove();\n\n const groupWithUpdate = groupWithData\n .enter()\n .append(\"g\")\n .attr(\"class\", \"arc\");\n\n const path = groupWithUpdate\n .append(\"path\")\n .merge(groupWithData.select(\"path.arc\"));\n\n const arcTween = (d, i) => {\n const interpolator = d3.interpolate(prevData[i], d);\n\n return t => createArc(interpolator(t));\n };\n\n path\n .attr(\"class\", \"arc\")\n .attr(\"fill\", (d) => {\n return colorScale(d.data.color)\n })\n .transition()\n .attrTween(\"d\", arcTween);\n\n if (displayPercentages) {\n const text = groupWithUpdate\n .append(\"text\")\n .merge(groupWithData.select(\"text\"));\n\n text\n .attr(\"text-anchor\", \"middle\")\n .attr(\"alignment-baseline\", \"middle\")\n .style(\"fill\", \"white\")\n .style(\"font-size\", 10)\n .transition()\n .attr(\"transform\", d => `translate(${createArc.centroid(d)})`)\n .tween(\"text\", (d, i, nodes) => {\n const interpolator = d3.interpolate(prevData[i], d);\n return t => d3.select(nodes[i]).text(format(interpolator(t).value));\n });\n }\n\n if (txtCenter) {\n const centeredText = group\n .append(\"text\");\n\n centeredText\n .attr(\"text-anchor\", \"middle\")\n .attr(\"fill\", colorScale(txtCenterColor))\n .attr('y', txtCenterYAxis)\n .attr(\"class\",txtCenterClass ? txtCenterClass : \"chart-center-text\")\n .text(txtCenter);\n }\n\n cache.current = props.data;\n },\n );\n\n return (\n \n \n \n );\n};\n\nexport default Pie;\n","import React from 'react';\nimport AnimatedPieHooks from './AnimatedPieHooks';\nimport styles from \"./ponv-incidence-pie-charts.module.scss\";\n\nconst PONVIncidencePieCharts = props => {\n const {\n pie1References,\n pie2References,\n pie3References,\n pie4References,\n } = props;\n\n const pieCharts = [\n {\n title: 'In high-risk patients',\n charts: [\n {\n data: [\n {\n value: .80,\n color: 'purple',\n },\n {\n value: .20,\n color: 'grey',\n },\n ],\n txtCenter: '~80%',\n txtCenterColor: 'purple',\n footnotes: `can experience PONV${pie1References ? pie1References : '1,2'}`,\n },\n {\n data: [\n {\n value: .30,\n color: 'teal',\n },\n {\n value: .70,\n color: 'grey',\n },\n ],\n txtCenter: '>30%',\n txtCenterColor: 'teal',\n footnotes: `can experience PONV despite prophylaxis${pie2References ? pie2References : '3,4'}`,\n },\n ]\n },\n {\n title: 'In patients who failed prophylaxis',\n charts: [\n {\n data: [\n {\n value: .95,\n color: 'tealLite',\n },\n {\n value: .10,\n color: 'grey',\n },\n ],\n txtCenter: '>95%',\n txtCenterColor: 'tealLite',\n footnotes: `can experience nausea${pie3References ? pie3References : '4,5'}`,\n },\n {\n data: [\n {\n value: .20,\n color: 'purpleLite',\n },\n {\n value: .75,\n color: 'grey',\n },\n ],\n txtCenter: '>20%',\n txtCenterColor: 'purpleLite',\n footnotes: `can experience vomiting${pie4References ? pie4References : '4'}`,\n },\n ]\n },\n ];\n\n const renderCharts = () => {\n return pieCharts.map((pieChart, i) => {\n return (\n \n
{pieChart.title}
\n
\n {pieChart.charts.map((chart, k) => {\n return (\n
\n \n\n \n
\n );\n })}\n
\n \n );\n })\n }\n\n return (\n
\n {renderCharts()}\n
\n );\n}\n\nexport default PONVIncidencePieCharts;\n","import React, { Component, createRef } from 'react';\nimport * as d3 from 'd3';\n\nimport styles from './donut-chart.module.scss';\n\nclass DonutChart extends Component {\n constructor(props) {\n super(props);\n this.containerRef = createRef();\n }\n\n componentDidMount() {\n this.drawChart();\n }\n\n componentDidUpdate() {\n this.redrawChart();\n }\n\n redrawChart = () => {\n const { containerRef } = this;\n d3.select(containerRef.current).select('svg').remove();\n this.drawChart();\n }\n\n drawChart = () => {\n const { containerRef } = this;\n const { width, height, data } = this.props;\n const radius = Math.min(width, height) / 2 - 40;\n const legendRadius = width / 72.5;\n const legendPosition = legendRadius * -2.25;\n\n // D3 functions.\n const arc = d3.arc()\n .innerRadius(radius * 0.62)\n .outerRadius(radius * 0.8);\n const outerArc = d3.arc()\n .innerRadius(radius * 0.9)\n .outerRadius(radius * 0.9);\n const pie = d3.pie()\n .sort((a, b) => d3.ascending(a.value, b.value))\n .value(d => d.value);\n\n // Input data.\n const pieData = pie(data);\n const colorScale = d3.scaleOrdinal()\n .domain([\n 'purple',\n 'greyDark',\n 'orange',\n 'teal',\n ])\n .range([\n '#4d0348',\n '#727272',\n '#e9850e',\n '#005d81',\n ]);\n\n // Draw chart container.\n const svg = d3.select(containerRef.current)\n .append('svg')\n .attr('width', width)\n .attr('height', height)\n .append('g')\n .attr('transform', `translate(${width / 2}, ${height / 2})`);\n\n // Draw chart slices.\n svg.selectAll('allSlices')\n .data(pieData)\n .enter()\n .append('path')\n .attr('d', arc)\n .attr('fill', d => colorScale(d.data.color));\n\n // Draw chart values.\n svg.selectAll('allValues')\n .data(pieData)\n .enter()\n .append('text')\n .text(d => `${d.data.value}%`)\n .attr('transform', d => {\n var pos = outerArc.centroid(d);\n return `translate(${pos})`;\n })\n .attr('fill', d => colorScale(d.data.key))\n .attr('text-anchor', d => {\n return (d.endAngle + d.startAngle) / 2 > Math.PI ? 'end' : 'start';\n })\n .attr('class', styles.value);\n\n // Draw and position chart legend.\n const legend = svg.append('g').attr('class', styles.legend);\n legend.selectAll('bullets')\n .data(pieData)\n .enter()\n .append('circle')\n .attr('cx', legendPosition)\n .attr('cy', (d, i) => `${i*1.3 - 0.3}em`)\n .attr('r', legendRadius)\n .attr('fill', d => colorScale(d.data.color))\n\n legend.selectAll('labels')\n .data(pieData)\n .enter()\n .append('text')\n .text(d => d.data.key)\n .attr('dy', (d, i) => `${i*1.3}em`);\n\n // Center legend box.\n let bb = legend.node().getBBox();\n let centerX = bb.width / -2 - bb.x;\n let centerY = bb.height / -2 - bb.y;\n legend.attr('transform', `translate(${centerX}, ${centerY})`);\n }\n\n render() {\n return
;\n }\n};\n\nexport default DonutChart;\n","import React, {useEffect, useState} from 'react';\nimport DonutChart from './DonutChart';\n\nconst PatientDissatisfaction = () => {\n const defaultSize = 580;\n const [chartSize, setChartSize] = useState(defaultSize);\n\n useEffect(() => {\n // Holds the timer for setTimeout and clearInterval.\n let timer = null;\n const RESET_TIMEOUT = 100;\n\n const updateSize = () => {\n const newSize = window.innerWidth < 768 ? defaultSize / 2 : defaultSize;\n setChartSize(newSize);\n };\n\n window.addEventListener('resize', () => {\n clearInterval(timer);\n timer = setTimeout(updateSize, RESET_TIMEOUT);\n });\n updateSize();\n });\n\n const data = [\n {\n key: 'PONV',\n value: 49,\n color: 'purple',\n },\n {\n key: 'Pain',\n value: 27,\n color: 'greyDark',\n },\n {\n key: 'Alertness',\n value: 13,\n color: 'orange',\n },\n {\n key: 'Additional Cost',\n value: 11,\n color: 'teal',\n }\n ];\n\n return (\n \n );\n};\n\nexport default PatientDissatisfaction;\n","import React, { createRef, Component } from 'react';\nimport * as d3 from 'd3';\n\nclass BarChart extends Component {\n constructor(props) {\n super(props);\n this.containerRef = createRef();\n }\n\n componentDidMount() {\n this.drawChart();\n }\n\n componentDidUpdate() {\n this.redrawChart();\n }\n\n redrawChart = () => {\n const { containerRef } = this;\n d3.select(containerRef.current).select('svg').remove();\n this.drawChart();\n }\n\n drawChart = () => {\n const { containerRef } = this;\n const { width, height, data, classGridTick, classBarLabel } = this.props;\n\n const marginWidth = 85;\n const marginHeight = 20;\n const widthWithMargin = width - marginWidth;\n const heightWithMargin = height - marginHeight;\n // Legend margin below chart.\n const legendMargin = 30 + 20 * data.length;\n\n const format = d3.format(\".0%\");\n\n const svg = d3.select(containerRef.current)\n .append('svg')\n .attr('height', height + legendMargin)\n .attr('width', width);\n\n const chart = svg.append('g')\n .attr('transform', `translate(${marginWidth}, ${marginHeight / 2})`);\n\n const xScale = d3.scaleBand()\n .range([0, widthWithMargin])\n .domain(data.map((s) => s.label))\n .padding(0.4);\n\n const yScale = d3.scaleLinear()\n .range([heightWithMargin, 0])\n .domain([0, 1]);\n\n const makeYLines = () => d3.axisLeft()\n .scale(yScale);\n\n const tickeVals = [0, .2, .4, .6, .8, 1];\n chart\n .append('g')\n .attr('class', 'grid')\n .call(makeYLines()\n .tickSize(-widthWithMargin, 0, 0)\n .tickFormat(format)\n .tickValues(tickeVals)\n )\n .selectAll(\"line,path\")\n .style(\"stroke\", \"#b8b8b8\")\n .style('opacity', 0.24);\n\n chart\n .selectAll('.tick text')\n .attr('class', classGridTick ? classGridTick : 'chart-bar__y-grid-tick');\n\n const barGroups = chart.selectAll()\n .data(data)\n .enter()\n .append('g')\n\n barGroups\n .append('rect')\n .attr('class', 'bar')\n .attr('x', (g) => xScale(g.label))\n .attr('y', (g) => yScale(g.value))\n .attr('height', (g) => heightWithMargin - yScale(g.value))\n .attr('width', xScale.bandwidth())\n .attr('fill', g => g.color);\n\n barGroups\n .append('text')\n .attr('class', classBarLabel ? classBarLabel : 'chart-bar__label')\n .attr('x', (a) => xScale(a.label) + xScale.bandwidth() / 2)\n .attr('y', (a) => yScale(a.value) - 30)\n .attr('text-anchor', 'middle')\n .attr('fill', a => a.color)\n .text((a) => `${a.value * 100}%`);\n\n svg\n .append('text')\n .attr('class', 'label')\n .attr('x', -(heightWithMargin / 2) - marginHeight)\n .attr('y', 17)\n .attr('transform', 'rotate(-90)')\n .attr('text-anchor', 'middle')\n .text('Patients');\n\n const labelsWrapper = svg\n .append('g')\n .attr('transform', 'translate(126, 366)');\n\n const legend = labelsWrapper\n .append(\"g\");\n legend\n .selectAll(\"g\")\n .data(data.reverse())\n .join(\"g\")\n .attr(\"transform\", (d, i) => `translate(-40,${(i - (data.length - 1) / 2) * 20})`)\n .call(g => g.append(\"rect\")\n .attr(\"width\", 14)\n .attr(\"height\", 14)\n .attr(\"fill\", d => d.color))\n .call(g => g.append(\"text\")\n .attr(\"x\", 24)\n .attr(\"y\", 9)\n .attr(\"dy\", \"0.2rem\")\n .attr('font-size', '14px')\n .text(d => d.label));\n }\n\n render() {\n const { containerRef } = this;\n return
;\n }\n}\n\nexport default BarChart;\n","import React, {useEffect, useRef, useState} from 'react';\nimport BarChart from './BarChart';\nimport styles from \"./response-rates.module.scss\";\n\nconst ResponseRatesTwoHours = () => {\n const [chartWidth, setChartWidth] = useState(367);\n const refChartContainer = useRef();\n\n const paddingChartRight = 53;\n\n\n useEffect(() => {\n // Holds the timer for setTimeout and clearInterval.\n let timer = null;\n const RESET_TIMEOUT = 100;\n\n const updateWidth = () => {\n if (refChartContainer.current) {\n const newWidth = window.innerWidth < 768 ? refChartContainer.current.offsetWidth : refChartContainer.current.offsetWidth / 2 - paddingChartRight;\n setChartWidth(newWidth);\n }\n }\n\n window.addEventListener('resize', () => {\n clearInterval(timer);\n timer = setTimeout(updateWidth, RESET_TIMEOUT);\n });\n updateWidth();\n })\n\n\n\n const data = [\n {\n label: 'Placebo (n=235)',\n value: .49,\n color: '#727272'\n },\n {\n label: 'Barhemsys 10 mg (n=230)',\n value: .70,\n color: '#ea860f'\n },\n ];\n\n return (\n <>\n
\n
\n \n
\n
\n

Secondary endpoint

\n

In patients who failed prophylaxis

\n

70% (160/230) of patients met the criteria for complete response at 2 hours after receiving a 10 mg dose of Barhemsys compared with 49% (116/235) of placebo-treated patients2,§

\n

At each of the prespecified interim time points (4 and 6 hours), the percentage of patients who met the criteria for complete response was approximately 20% higher with Barhemsys 10 mg compared with placebo.2

\n
\n
\n
\n §The secondary endpoint was not adequately powered nor error controlled, and observed treatment differences cannot be regarded as statistically significant.\n
\n \n );\n}\n\nexport default ResponseRatesTwoHours;\n","import React, {useEffect, useRef, useState} from 'react';\nimport BarChart from './BarChart';\nimport styles from \"./response-rates.module.scss\";\n\nconst ResponseRatesTwoHoursSurgeons = () => {\n const [chartWidth, setChartWidth] = useState(367);\n const refChartContainer = useRef();\n\n const paddingChartRight = 53;\n\n\n useEffect(() => {\n // Holds the timer for setTimeout and clearInterval.\n let timer = null;\n const RESET_TIMEOUT = 100;\n\n const updateWidth = () => {\n if (refChartContainer.current) {\n const newWidth = window.innerWidth < 768 ? refChartContainer.current.offsetWidth : refChartContainer.current.offsetWidth / 2 - paddingChartRight;\n setChartWidth(newWidth);\n }\n }\n\n window.addEventListener('resize', () => {\n clearInterval(timer);\n timer = setTimeout(updateWidth, RESET_TIMEOUT);\n });\n updateWidth();\n })\n\n\n\n const data = [\n {\n label: 'Placebo (n=235)',\n value: .49,\n color: '#727272'\n },\n {\n label: 'Barhemsys 10 mg (n=230)',\n value: .70,\n color: '#ea860f'\n },\n ];\n\n return (\n <>\n
\n
\n \n
\n
\n

Secondary endpoint

\n

In patients who failed prophylaxis

\n

70% (160/230) of patients met the criteria for complete response at 2 hours after receiving a 10 mg dose of Barhemsys compared with 49% (116/235) of placebo-treated patients2,†

\n

At each of the prespecified interim time points (4 and 6 hours), the percentage of patients who met the criteria for complete response was approximately 20% higher with Barhemsys 10 mg compared with placebo.2

\n
\n
\n
\n The secondary endpoint was not adequately powered nor error controlled, and observed treatment differences cannot be regarded as statistically significant.\n
\n \n );\n}\n\nexport default ResponseRatesTwoHoursSurgeons;\n","import React, {useEffect, useRef, useState} from 'react';\nimport BarChart from './BarChart';\nimport styles from \"./response-rates.module.scss\";\n\nconst ResponseRatesFourHours = () => {\n const [chartWidth, setChartWidth] = useState(367);\n const refChartContainer = useRef();\n\n const paddingChartRight = 53;\n\n useEffect(() => {\n // Holds the timer for setTimeout and clearInterval.\n let timer = null;\n const RESET_TIMEOUT = 100;\n\n const updateWidth = () => {\n if (refChartContainer.current) {\n const newWidth = window.innerWidth < 768 ? refChartContainer.current.offsetWidth : refChartContainer.current.offsetWidth / 2 - paddingChartRight;\n setChartWidth(newWidth);\n }\n }\n\n window.addEventListener('resize', () => {\n clearInterval(timer);\n timer = setTimeout(updateWidth, RESET_TIMEOUT);\n });\n updateWidth();\n })\n\n\n\n const data = [\n {\n label: 'Placebo (n=235)',\n value: .37,\n color: '#727272'\n },\n {\n label: 'Barhemsys 10 mg (n=230)',\n value: .59,\n color: '#ea860f'\n },\n ];\n\n return (\n <>\n
\n
\n \n
\n
\n

Secondary endpoint

\n

In patients who failed prophylaxis

\n

59% of patients met the criteria for complete response at 4 hours after receiving a 10 mg dose of Barhemsys compared with 37% of placebo-treated patients2,§

\n
\n
\n
\n §The secondary endpoint was not adequately powered nor error controlled, and observed treatment differences cannot be regarded as statistically significant.\n
\n \n );\n}\n\nexport default ResponseRatesFourHours;\n","import React, {useEffect, useRef, useState} from 'react';\nimport BarChart from './BarChart';\nimport styles from \"./response-rates.module.scss\";\n\nconst ResponseRatesSixHours = () => {\n const [chartWidth, setChartWidth] = useState(367);\n const refChartContainer = useRef();\n\n const paddingChartRight = 53;\n\n useEffect(() => {\n // Holds the timer for setTimeout and clearInterval.\n let timer = null;\n const RESET_TIMEOUT = 100;\n\n const updateWidth = () => {\n if (refChartContainer.current) {\n const newWidth = window.innerWidth < 768 ? refChartContainer.current.offsetWidth : refChartContainer.current.offsetWidth / 2 - paddingChartRight;\n setChartWidth(newWidth);\n }\n }\n\n window.addEventListener('resize', () => {\n clearInterval(timer);\n timer = setTimeout(updateWidth, RESET_TIMEOUT);\n });\n updateWidth();\n })\n\n\n\n const data = [\n {\n label: 'Placebo (n=235)',\n value: .33,\n color: '#727272'\n },\n {\n label: 'Barhemsys 10 mg (n=230)',\n value: .53,\n color: '#ea860f'\n },\n ];\n\n return (\n <>\n
\n
\n \n
\n
\n

Secondary endpoint

\n

In patients who failed prophylaxis

\n

53% of patients met the criteria for complete response at 6 hours after receiving a 10 mg dose of Barhemsys compared with 33% of placebo-treated patients2,§

\n
\n
\n
\n §The secondary endpoint was not adequately powered nor error controlled, and observed treatment differences cannot be regarded as statistically significant.\n
\n \n );\n}\n\nexport default ResponseRatesSixHours;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport styles from './tab.module.scss';\n\nclass Tab extends Component {\n static propTypes = {\n activeTab: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n };\n\n onClick = () => {\n const { label, onClick } = this.props;\n onClick(label);\n }\n\n render() {\n const {\n onClick,\n props: {\n activeTab,\n label,\n style,\n },\n } = this;\n\n let className = styles.tabsListItem;\n\n if (activeTab === label) {\n className += ` ${styles.tabsListActive}`;\n\n return (\n \n \n
\n );\n }\n\n return (\n \n \n
\n );\n }\n}\n\nexport default Tab;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Tab from './tab.component';\n\nimport styles from './tabs.module.scss';\n\nclass Tabs extends Component {\n static propTypes = {\n children: PropTypes.instanceOf(Array).isRequired,\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n activeTab: this.props.children[0].props.label,\n };\n }\n\n onClickTabItem = (tab) => {\n this.setState({ activeTab: tab });\n }\n\n render() {\n const {\n onClickTabItem,\n props: {\n children,\n },\n state: {\n activeTab,\n }\n } = this;\n\n return (\n
\n
\n {children.map((child) => {\n const { label } = child.props;\n\n return (\n \n );\n })}\n
\n
\n {children.map((child) => {\n if (child.props.label !== activeTab) return undefined;\n return child.props.children;\n })}\n
\n
\n );\n }\n}\n\nexport default Tabs;\n","import React from 'react';\nimport Tabs from '~components/tabs/tabs.component';\nimport ResponseRatesTwoHours from './response-rates-two-hours.component';\nimport ResponseRatesFourHours from './response-rates-four-hours.component';\nimport ResponseRatesSixHours from './response-rates-six-hours.component';\n\nconst ResponseRatesTabs = () => {\n return (\n \n
§\">\n \n
\n
§\">\n \n
\n
§\">\n \n
\n
\n );\n}\n\nexport default ResponseRatesTabs;\n","import React from 'react';\nimport RenderMarkdown from '~components/RenderMarkdown';\n\nimport styles from './guideline-driven-care.module.scss';\n\nconst GuidelineDrivenCare = props => {\n const {\n guidelinesTitle,\n childContentfulPageGuidelineDrivenCareGuidelinesBodyTextNode,\n guidelinesBody,\n childContentfulPageGuidelineDrivenCareGuidelinesFooterTextNode,\n guidelinesFooter,\n commonClassesTitle,\n commonClassesList,\n calloutPosition,\n childContentfulPageGuidelineDrivenCareCalloutBodyTextNode,\n calloutBody,\n } = props;\n\n const renderCommonClassesList = () => {\n return (\n
    \n {commonClassesList.map((item, i) => {\n return (\n
  1. \n \n
  2. \n );\n })}\n
\n );\n }\n\n const renderCallout = () => {\n const txtCalloutBody = childContentfulPageGuidelineDrivenCareCalloutBodyTextNode\n ? childContentfulPageGuidelineDrivenCareCalloutBodyTextNode.calloutBody\n : calloutBody\n ? calloutBody\n : null;\n\n if (!txtCalloutBody) {\n return null;\n }\n\n let classes = [\n styles.guidelines__rowAlt,\n ];\n\n if (calloutPosition === 'top') {\n classes.push(styles.guidelines__rowAltTop)\n }\n\n return (\n
\n \n
\n );\n }\n\n const renderGuidelinesBody = () => {\n const txtGuidelinesBody = childContentfulPageGuidelineDrivenCareGuidelinesBodyTextNode\n ? childContentfulPageGuidelineDrivenCareGuidelinesBodyTextNode.guidelinesBody\n : guidelinesBody\n ? guidelinesBody\n : null;\n\n if (!txtGuidelinesBody) {\n return null;\n }\n\n return (\n \n );\n }\n\n const renderGuidelinesFooter = () => {\n const txtGuidelinesFooter = childContentfulPageGuidelineDrivenCareGuidelinesFooterTextNode\n ? childContentfulPageGuidelineDrivenCareGuidelinesFooterTextNode.guidelinesFooter\n : guidelinesFooter\n ? guidelinesFooter\n : null;\n\n if (!txtGuidelinesFooter) {\n return null;\n }\n\n return (\n
\n \n
\n );\n }\n\n return (\n
\n {calloutPosition === 'top' ? renderCallout() : null}\n
\n
\n

\n \n

\n {renderGuidelinesBody()}\n {renderGuidelinesFooter()}\n
\n
\n

\n \n

\n {renderCommonClassesList()}\n
\n
\n {calloutPosition === 'bottom' ? renderCallout() : null}\n
\n );\n}\n\nexport default GuidelineDrivenCare;\n","import React, { Component, createRef } from 'react';\nimport InputRange from 'react-input-range';\nimport * as d3 from 'd3';\nimport 'react-input-range/lib/css/index.css';\nimport './kaplan-curve.scss';\n\nclass KaplanCurveChart extends Component {\n\n constructor(props) {\n super(props);\n this.containerRef = createRef();\n this.state = { value: 24 };\n this.data = this.getData();\n }\n\n componentDidMount() {\n this.drawChart();\n }\n\n componentDidUpdate() {\n this.redrawChart();\n }\n\n redrawChart = () => {\n const { containerRef } = this;\n d3.select(containerRef.current).select('svg').remove();\n this.drawChart();\n }\n\n getData() {\n return {\n series: [\n {\n color: \"#ff8000\",\n values: [\n 1, 0.769565217, 0.695652174, 0.639130435, 0.591304348, 0.556521739, 0.526086957, 0.504347826, 0.491304348, 0.491304348, 0.486956522, 0.469565217, 0.465217391, 0.465217391, 0.460869565, 0.456521739, 0.447826087, 0.439130435, 0.430434783, 0.430434783, 0.430434783, 0.426086957, 0.42173913, 0.417391304, 0.417391304,\n ],\n results: [\n 230, 177, 160, 147, 136, 128, 121, 116, 113, 113, 112, 108, 107, 107, 106, 105, 103, 101, 99, 99, 99, 98, 97, 96, 96,\n ],\n },\n {\n color: \"#5f5f5f\",\n values: [\n 1, 0.621276596, 0.493617021, 0.425531915, 0.370212766, 0.340425532, 0.327659574, 0.323404255, 0.319148936, 0.319148936, 0.314893617, 0.314893617, 0.310638298, 0.306382979, 0.30212766, 0.30212766, 0.30212766, 0.30212766, 0.29787234, 0.289361702, 0.289361702, 0.285106383, 0.285106383, 0.285106383, 0.285106383,\n ],\n results: [\n 235, 146, 116, 100, 87, 80, 77, 76, 75, 75, 74, 74, 73, 72, 71, 71, 71, 71, 70, 68, 68, 67, 67, 67, 67,\n ],\n }\n ],\n hours: [],\n };\n }\n\n arrayUnique(array) {\n const a = array.concat();\n for(let i = 0; i < a.length; ++i) {\n for(let j = i + 1; j < a.length; ++j) {\n a[i] === a[j] && a.splice(j--, 1);\n }\n }\n return a;\n }\n\n drawChart = () => {\n const { containerRef } = this;\n const width = this.props.width;\n const height = 525;\n const margin = { top: 5, right: 10, bottom: 145, left: 120 };\n // Selected hours.\n const hoursNumber = +this.state.value;\n // Narrow ticks number if mobile screen enabled.\n const ticksNumber = width < 700 ? 6 : hoursNumber;\n\n // Get chart data.\n this.data = this.getData();\n\n // Narrow down the chart data results when hours selected.\n for (const series of this.data.series) {\n series.values = series.values.slice(0, hoursNumber + 1);\n series.results = series.results.slice(0, hoursNumber + 1);\n }\n for (let i = 0; i <= hoursNumber; i++) {\n this.data.hours.push(i);\n }\n\n const svg = d3.select(containerRef.current)\n .append('svg')\n .attr(\"viewBox\", [0, 0, width, height])\n .style(\"overflow\", \"visible\");\n\n // X Scale.\n const xScale = d3.scaleLinear()\n .domain(d3.extent(this.data.hours))\n .range([margin.left, width - margin.right]);\n const xTicks = this.arrayUnique(xScale.ticks(ticksNumber).concat(xScale.domain().pop()));\n const axisBottom = d3.axisBottom(xScale)\n .ticks(ticksNumber)\n .tickSize(13)\n .tickPadding(5)\n .tickValues(xTicks);\n svg.append(\"g\")\n .attr(\"transform\", `translate(0, ${height - margin.bottom})`)\n .call(axisBottom)\n .attr('font-size', '12px');\n\n // Y Scale\n const yScale = d3.scaleLinear()\n .domain([0, 1])\n .range([height - margin.bottom, margin.top]);\n const axisLeft = d3.axisLeft(yScale)\n .ticks(6)\n .tickSize(13);\n svg.append(\"g\")\n .attr(\"transform\", `translate(${margin.left}, 0)`)\n .call(axisLeft)\n .attr('font-size', '18px');\n\n // Time after Study table block.\n svg.append(\"text\")\n .text(\"Barhemsys 10 mg\")\n .attr('font-size', '10px')\n .attr(\"x\", 2)\n .attr(\"y\", height - 39)\n .clone()\n .text(\"Placebo\")\n .attr('font-size', '10px')\n .attr(\"x\", 2)\n .attr(\"y\", height - 9)\n .clone()\n .text(\"Number at risk\")\n .attr('font-size', '12px')\n .attr('font-weight', 'bold')\n .attr(\"x\", 2)\n .attr(\"y\", height - 60)\n .clone()\n .text(\"Time After Study Drug Administration (Hours)\")\n .attr('font-size', '14px')\n .attr('font-weight', 'bold')\n .attr(\"x\", width / 2 - margin.left)\n .attr(\"y\", height - 85);\n\n const tableRowBarhemsys = d3.axisBottom(xScale)\n .ticks(ticksNumber)\n .tickValues(xTicks)\n .tickSize(13)\n .tickPadding(85);\n svg.append(\"g\")\n .attr(\"transform\", `translate(0,${height - margin.bottom})`)\n .call(tableRowBarhemsys.tickFormat((i) => this.data.series[0].results[i]))\n .attr('font-size', '12px');\n\n const tableRowPlacebo = Object.assign({}, tableRowBarhemsys);\n tableRowPlacebo.tickPadding(115);\n svg.append(\"g\")\n .attr(\"transform\", `translate(0,${height - margin.bottom})`)\n .call(tableRowPlacebo.tickFormat((i) => this.data.series[1].results[i]))\n .attr('font-size', '12px');\n\n // Draw legend block.\n svg.append(\"line\")\n .attr(\"fill\", \"none\")\n .attr(\"stroke-width\", 2)\n .attr(\"stroke\", \"#ff8000\")\n .attr(\"x1\", width - 210)\n .attr(\"x2\", (width - 210) + 13)\n .attr(\"y1\", 7)\n .attr(\"y2\", 7);\n\n svg.append(\"text\")\n .text(\"Barhemsys 10 mg (n=230)\")\n .attr('font-size', '14px')\n .attr(\"x\", width - 185)\n .attr(\"y\", 12);\n\n svg.append(\"line\")\n .attr(\"fill\", \"none\")\n .attr(\"stroke-width\", 2)\n .attr(\"stroke\", \"#5f5f5f\")\n .attr(\"x1\", width - 210)\n .attr(\"x2\", (width - 210) + 13)\n .attr(\"y1\", 37)\n .attr(\"y2\", 37);\n\n svg.append(\"text\")\n .text(\"Placebo (n=235)\")\n .attr('font-size', '14px')\n .attr(\"x\", width - 185)\n .attr(\"y\", 42)\n .clone()\n .text(\"HR (95% CI): 0.63 (0.50, 0.80)\")\n .attr(\"y\", 72);\n\n // Set axis styles.\n svg.selectAll('g.tick')\n .select('line')\n .attr('stroke', \"#e8e9ea\");\n svg.selectAll('g.tick')\n .select('text')\n .attr('font-family', '\"Roboto\", Arial, Helvetica, sans-serif')\n .attr('font-weight', '500');\n svg.selectAll('path.domain').attr('stroke', \"#e8e9ea\");\n\n // Vertical title text.\n svg.append('text')\n .attr('class', 'label')\n .attr('font-size', '16px')\n .attr('transform', 'rotate(-90)')\n .attr('text-anchor', 'middle')\n .attr('x', -190)\n .attr('y', 20)\n .text('Probability of Patient Continuing to Meet')\n .clone()\n .text('Criteria for Complete Response')\n .attr('x', -190)\n .attr('y', 45);\n\n // Draw chart lines.\n const line = d3.line()\n .defined(d => !isNaN(d))\n .x((d, i) => xScale(this.data.hours[i]))\n .y(d => yScale(d));\n\n svg.append(\"g\")\n .attr(\"fill\", \"none\")\n .attr(\"stroke-width\", 2)\n .attr(\"stroke-linejoin\", \"round\")\n .attr(\"stroke-linecap\", \"round\")\n .selectAll(\"path\")\n .data(this.data.series)\n .join(\"path\")\n .style(\"mix-blend-mode\", \"multiply\")\n .attr(\"stroke\", d => d.color)\n .attr(\"d\", d => line(d.values));\n }\n\n render() {\n return (\n
\n Try adjusting the slider to take a closer look at the time points.\n
\n
Hours
\n this.setState({ value })} />\n
\n
\n

\n
\n );\n }\n}\n\nexport default KaplanCurveChart;\n","import React, {useEffect, useState} from 'react';\nimport KaplanCurveChart from './KaplanCurveChart';\n\nconst KaplanCurve = () => {\n const [chartWidth, setChartWidth] = useState(745);\n useEffect(() => {\n const updateWidth = () => {\n const newWidth = window.innerWidth < 768 ? 425 : 745;\n setChartWidth(newWidth);\n }\n window.addEventListener('resize', () => updateWidth());\n updateWidth();\n })\n\n return (\n
\n \n
\n );\n};\n\nexport default KaplanCurve;\n","import React from 'react';\nimport styles from \"./bsa-template.module.scss\";\n\nconst BSATemplate = ({ header, copy, dosageData, useAlt }) => {\n const renderDosage = () => {\n return dosageData.map((d, i) => {\n return (\n \n
{d.dosage}
\n

{d.header}

\n

\n

\n );\n });\n }\n return (\n
\n

{header}

\n

\n

\n {renderDosage()}\n
\n
\n );\n}\n\nexport default BSATemplate;\n","import React from 'react';\nimport BSATemplate from './bsa-template.component';\n\nconst BroadlyStudiedAntiemetic = () => {\n return (\n <>\n 6,7',\n },\n {\n dosage: '5 mg',\n header: 'Combination Prophylaxis',\n html: 'Study 2 (N=1147) patients received Barhemsys in combination with 1 other intravenously administered, nondopaminergic antiemetic6,8',\n },\n ]}\n />\n 6,9',\n },\n {\n dosage: '10 mg',\n header: 'Rescue Treatment',\n html: 'Study 4 (N=465) enrolled patients with moderate to high risk of PONV after they failed antiemetic prophylaxis with an antiemetic of another class4,6',\n },\n ]}\n useAlt={true}\n />\n \n );\n}\n\nexport default BroadlyStudiedAntiemetic;\n","import React from 'react';\nimport BSATemplate from './bsa-template.component';\n\nconst BroadlyStudiedAntiemeticPharmacy = () => {\n return (\n <>\n 6,7',\n },\n {\n dosage: '5 mg',\n header: 'Combination Prophylaxis',\n html: 'Study 2 (N=1147) patients received Barhemsys in combination with 1 other intravenously administered, nondopaminergic antiemetic6,8',\n },\n ]}\n />\n 6,9',\n },\n {\n dosage: '10 mg',\n header: 'Rescue Treatment',\n html: 'Study 4 (N=465) enrolled patients with moderate to high risk of PONV after they failed antiemetic prophylaxis with an antiemetic of another class2,6',\n },\n ]}\n useAlt={true}\n />\n \n );\n}\n\nexport default BroadlyStudiedAntiemeticPharmacy;\n","import React from 'react';\nimport Img from 'gatsby-image';\n\nimport styles from './recommended-dosage.module.scss';\n\nconst RecommendedDosage = props => {\n const {\n title,\n eyebrow,\n body,\n image,\n bynderImage,\n color,\n value,\n type,\n description\n } = props;\n\n const renderImg = () => {\n if (bynderImage && bynderImage.length) {\n const {\n description,\n name,\n original,\n } = bynderImage[0];\n return (\n \n );\n }\n const {\n description,\n fluid,\n } = image;\n\n return {description};\n };\n\n return (\n
\n
{eyebrow}
\n
{title}
\n
{body}
\n
\n
{renderImg()}
\n
\n
{value}
\n
{type}
\n
{description}
\n
\n
\n
\n )\n};\n\nexport default RecommendedDosage;\n","import React from 'react';\nimport RenderMarkdown from '~components/RenderMarkdown';\n\nimport styles from './page-table.module.scss';\n\nconst PageTable = ({ body, color, headers, values, references, wrapperClass }) => {\n let wrapperClasses = [\n styles.wrapper,\n ];\n\n let tableClasses = [\n styles.table,\n color,\n ];\n\n if (wrapperClass) {\n wrapperClasses.push(wrapperClass);\n }\n\n if (wrapperClass) {\n tableClasses.push(wrapperClass);\n }\n\n return (\n
\n {body && }\n
\n {headers.map((header, i) => {\n let headerStr = header.tableHeader;\n if (header.tableHeader) {\n // Parse the Markdown new line \" \\n\" from Contentful.\n headerStr = header.tableHeader.replace(/\\s\\s\\\\n/g, ' \\n');\n }\n return (\n
\n \n
\n )\n })}\n {values.map((value, i) => {\n let valueStr = value.tableValue;\n if (value.tableValue) {\n // Parse the Markdown new line \" \\n\" from Contentful.\n valueStr = value.tableValue.replace(/\\s\\s\\\\n/g, ' \\n');\n }\n return (\n
\n \n
\n )\n })}\n
\n {references &&\n
\n \n
\n }\n
\n );\n}\n\nexport default PageTable;\n","import React from 'react';\nimport {Link} from 'gatsby';\nimport RenderMarkdown from '~components/RenderMarkdown';\n\nconst LearnMoreLink = ({title, url}) => {\n return (\n

\n \n \n \n

\n );\n}\n\nexport default LearnMoreLink;\n","import React, { Component } from 'react';\nimport { v4 as uuid } from 'uuid';\nimport { strToClassName } from '~utils/strToClassName';\nimport ContentModules from '~components/content-modules/content-modules.component';\n\nimport styles from './q-and-a.module.scss';\n\nclass QAndA extends Component {\n state = {\n isAnswered: false,\n };\n\n renderInputs = () => {\n const { answers } = this.props;\n return answers.map((v, i) => {\n const parsedVal = `${strToClassName(v)}__${uuid()}`;\n return (\n
\n \n {v}\n \n \n \n
\n );\n });\n }\n\n renderAnswer = () => {\n if (!this.state.isAnswered) {\n return null;\n }\n\n const { contentModules } = this.props;\n\n return (\n
\n \n
\n );\n }\n\n onChange = () => {\n this.setState({\n isAnswered: true,\n })\n }\n\n render() {\n const { renderInputs, renderAnswer, onChange } = this;\n const { question } = this.props;\n\n return (\n
\n \n

\n {question}\n

\n {renderInputs()}\n \n {renderAnswer()}\n
\n );\n }\n}\n\nexport default QAndA;\n","import React, { Component } from 'react';\n\nclass PonvVideo extends Component {\n componentDidMount() {\n this.renderVideo();\n }\n\n idWrapper = 'bynder-widgets-js-wrapper'\n idBynder = 'bynder-widgets-js'\n\n createScript() {\n const { idWrapper, idBynder } = this;\n const target = document.querySelector(`#${idWrapper}`);\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.id = idBynder;\n script.setAttribute('data-account-url', 'bynder.acaciapharma.com');\n script.setAttribute('data-language', 'en');\n script.setAttribute('src', 'https://d8ejoa1fys2rk.cloudfront.net/bynder-embed/latest/bynder-embed.js');\n target.appendChild(script);\n }\n\n renderVideo() {\n this.createScript();\n }\n\n render() {\n const { idWrapper } = this;\n return (\n \n );\n }\n}\n\nexport default PonvVideo;\n","import React from 'react';\nimport RenderMarkdown from '~components/RenderMarkdown';\nimport { BtnPrimary } from '~components/buttons/buttons.component';\nimport styles from './page-card.module.scss';\nimport { Link } from 'gatsby';\n\nconst PageContentCard = ({title, body, bynderImage, linkText, linkUrl, image, secured=false}) => {\n const renderImg = () => {\n if (!image && !bynderImage) {\n return null;\n }\n\n if (bynderImage && bynderImage.length) {\n const {\n description,\n name,\n src,\n } = bynderImage[0];\n return (\n \n );\n }\n\n if (secured) {\n const {\n description,\n file: { url },\n } = image.fields;\n\n return (\n \n );\n }\n\n const {\n description,\n fluid,\n } = image;\n\n return {description};\n }\n const renderBody = () => {\n if (!body) {\n return null;\n }\n\n const text = secured ? body : body.body;\n\n return (\n
\n\n \n \n
\n );\n }\n return (\n
\n
\n \n \n {renderBody()}\n \n {linkUrl &&\n \n {linkText}\n \n }\n
\n
\n {renderImg()}\n
\n
\n );\n}\n\nexport default PageContentCard;","import React, { useEffect } from 'react';\nimport RenderMarkdown from '~components/RenderMarkdown';\nimport styles from './leadgenform.module.scss';\n\nconst LeadGenForm = ({title, text, plgfaccount, plgfid, plgfdomain}) => {\n useEffect(() => {\n const renderForm = () => {\n const settings = `var ss_form = {'account': '`+plgfaccount+`', 'formID': '`+plgfid+`'};\n ss_form.width = '100%';\n ss_form.domain = 'app-`+plgfdomain+`';\n ss_form.hidden = {'_usePlaceholders': true};\n ss_form.target_id = 'leadgen-form';\n ss_form.polling = true;`;\n createScript(settings, \"script\");\n createScript(`https://koi-`+plgfdomain+`/client/form.js?ver=2.0.1`, \"src\");\n // this.createScript(settings, \"script\");\n // this.createScript(\"https://koi-3QNLPQABDS.marketingautomation.services/client/form.js?ver=2.0.1\", \"src\");\n }\n \n const createScript = (data, type) => {\n const script = document.createElement('script');\n script.type = 'text/javascript';\n type === \"src\" ? script.src = data : script.innerHTML = data;\n document.body.appendChild(script);\n // console.log(script);\n }\n setTimeout(renderForm, 1500);\n },[plgfaccount, plgfid, plgfdomain])\n \n return (\n
\n \n \n
\n
\n );\n}\n\nexport default LeadGenForm;","import React, { useEffect } from 'react';\nimport styles from './leadgenreturn.module.scss';\n\nconst LeadGenReturn = ({title, plgrdownload}) => {\n useEffect(() => {\n const renderReturn = () => {\n window.open(plgrdownload, '_self');\n }\n setTimeout(renderReturn, 8000);\n },[plgrdownload])\n \n return (\n
\n );\n}\n\nexport default LeadGenReturn;","import React from 'react';\nimport { strToClassName } from '~utils/strToClassName';\nimport PageFooterModule from '~components/page-footer-module/page-footer-module.component';\nimport PageCallout from '~components/page-callout/page-callout.component';\nimport PageSelect from '~components/page-select/page-select.component';\nimport RenderMarkdown from '~components/RenderMarkdown';\nimport AntiemeticGuidelines from '~components/charts/antiemetic-guidelines/antiemetic-guidelines.component';\nimport ProvenEffectiveness from '~components/charts/proven-effectiveness/proven-effectiveness.component';\nimport PONVIncidencePieCharts from '~components/charts/ponv-incidence-pie-charts/ponv-incidence-pie-charts.component';\nimport PatientDissatisfaction from '~components/charts/patient-dissatisfaction/patient-dissatisfaction.component';\nimport ResponseRatesTwoHours from '~components/charts/response-rates/response-rates-two-hours.component';\nimport ResponseRatesTwoHoursSurgeons from '~components/charts/response-rates/response-rates-two-hours-surgeons.component';\nimport ResponseRatesFourHours from '~components/charts/response-rates/response-rates-four-hours.component';\nimport ResponseRatesSixHours from '~components/charts/response-rates/response-rates-six-hours.component';\nimport ResponseRatesTabs from '~components/charts/response-rates/response-rates-tabs.component';\nimport GuidelineDrivenCare from '~components/charts/guideline-driven-care/guideline-driven-care.component';\nimport KaplanCurve from '~components/charts/kaplan-curve/kaplan-curve.component';\nimport BroadlyStudiedAntiemetic from '~components/charts/broadly-studied-antiemetic/broadly-studied-antiemetic.component';\nimport BroadlyStudiedAntiemeticPharmacy from '~components/charts/broadly-studied-antiemetic/broadly-studied-antiemetic-pharmacy.component';\nimport RecommendedDosage from '~components/charts/recommended-dosage/recommended-dosage.component';\nimport PageTable from '~components/tables/page-table/page-table.component';\nimport PageLearnMoreLink from '~components/page-learn-more-link/page-learn-more-link.component';\nimport PageQAndA from '~components/q-and-a/q-and-a.component';\nimport PonvVideo from '~components/ponv-video/ponv-video.component';\nimport PageContentCard from '~components/page-card/page-card.component';\nimport PageLeadGenForm from '~components/page-lead-gen-form/leadgenform.component';\nimport PageLeadGenReturn from '~components/page-lead-gen-return/leadgenreturn.component';\nimport ResourceCard from '~components/resource-card/resource-card.component';\n\nconst Components = {\n PONVIncidencePieCharts,\n PatientDissatisfaction,\n ResponseRatesTwoHours,\n ResponseRatesTwoHoursSurgeons,\n ResponseRatesFourHours,\n ResponseRatesSixHours,\n ResponseRatesTabs,\n BroadlyStudiedAntiemetic,\n BroadlyStudiedAntiemeticPharmacy,\n KaplanCurve,\n RecommendedDosage,\n PonvVideo,\n ResourceCard,\n};\n\nconst ContentModules = ({contentModules, wrapperClass}) => {\n if (!contentModules || !Array.isArray(contentModules)) {\n return null;\n }\n\n const renderContentModules = () => {\n return contentModules.map((module, i) => {\n const typename = module.__typename\n ? module.__typename\n : module.sys\n ? module.sys.contentType.sys.id\n : false;\n\n if (!typename) {\n return null;\n }\n\n switch (typename) {\n // Chart.\n case \"chart\":\n case \"ContentfulPageChart\":\n const componentName = typename === 'chart' ? module.fields.chartComponent : module.chartComponent;\n const Chart = Components[componentName];\n if (!Chart) {\n return null;\n }\n return ;\n\n // Page Copy\n case \"pageCopy\":\n case \"ContentfulPageCopy\":\n const pageCopy = typename === 'pageCopy' ? module.fields.copy : module.copy.copy;\n return (\n \n );\n\n // Page Callout\n case \"pageCallout\":\n case \"ContentfulPageCallout\":\n const pageCallout = typename === 'pageCallout' ? module.fields.body : module.body.body;\n return (\n \n );\n\n // Page select widget.\n case \"pageSelectWidget\":\n // The select widget from the Contentful API doesn't contain\n // all required data. This cannot be done until the Node.js\n // backend returns all required data.\n return null;\n\n case \"ContentfulPageSelectWidget\":\n const sWProps = typename === 'pageSelectWidget' ? module.fields : module;\n return (\n \n );\n\n case \"pageFooter\":\n case \"ContentfulPageFooter\":\n const pageFooter = typename === 'pageFooter' ? module.fields.body : module.body.body;\n return (\n \n );\n\n // Antiemetic Guidelines.\n case \"antiemeticGuidelines\":\n // The Antiemetic Guidelines from the Contentful API doesn't contain\n // all required data. This cannot be done until the Node.js\n // backend returns all required data.\n return null;\n\n case \"ContentfulAntiemeticGuidelines\":\n return (\n \n );\n\n // Proven Effectiveness.\n case \"provenEffectivenessChart\":\n case \"ContentfulProvenEffectivenessChart\":\n const pECProps = typename === 'provenEffectivenessChart' ? module.fields : module;\n return (\n \n );\n\n case \"ContentfulPageRecommendedDosage\":\n return (\n \n );\n\n // Page table.\n case \"pageTable\":\n // The table from the Contentful API doesn't contain\n // all required data. This cannot be done until the Node.js\n // backend returns all required data.\n return null;\n\n case \"ContentfulPageTable\":\n return (\n \n );\n\n case \"pageLearnMoreLink\":\n case \"ContentfulPageLearnMoreLink\":\n const lMLProps = typename === 'pageLearnMoreLink' ? module.fields : module;\n return (\n \n );\n\n // Page Content Card\n case \"pageContentCard\":\n case \"ContentfulPageContentCard\":\n const pCCProps = typename === 'pageContentCard' ? module.fields : module;\n return (\n \n );\n \n // Page Lead Gen Form\n case \"pageLeadGenForm\":\n case \"ContentfulPageLeadGenForm\":\n const pageLeadGenFormTitle = typename === 'pageLeadGenForm' ? module.fields.formtitle : module.formtitle;\n const pageLeadGenFormCopy = typename === 'pageLeadGenForm' ? module.fields.copy : module.copy.copy;\n const pLGFAccount = typename === 'pageLeadGenForm' ? module.fields.ssAccount : module.ssAccount;\n const pLGFId = typename === 'pageLeadGenForm' ? module.fields.ssFormId : module.ssFormId;\n const pLGFDomain = typename === 'pageLeadGenForm' ? module.fields.ssFormDomain : module.ssFormDomain;\n return (\n \n );\n \n // Page Lead Gen Return\n case \"pageLeadGenReturn\":\n case \"ContentfulPageLeadGenReturn\":\n const pageLeadGenReturnTitle = typename === 'pageLeadGenReturn' ? module.fields.returntitle : module.returntitle;\n const pLGRDownload = typename === 'pageLeadGenReturn' ? module.fields.formDownloadUrl : module.formDownloadUrl;\n return (\n \n );\n\n case \"pageGuidelineDrivenCare\":\n case \"ContentfulPageGuidelineDrivenCare\":\n const gDCProps = typename === 'pageGuidelineDrivenCare' ? module.fields : module;\n return (\n \n );\n\n case \"pagePonvIncidencePieCharts\":\n case \"ContentfulPagePonvIncidencePieCharts\":\n const ponvIPCProps = typename === 'pagePonvIncidencePieCharts' ? module.fields : module;\n return (\n \n );\n\n case \"ContentfulPageQA\":\n return (\n \n );\n \n case \"ResourceCard\":\n case 'ContentfulResourceCard':\n const resourceCardProps = typename === 'resourceCard' ? module.fields : module;\n //const resourceCard = secured ? module.fields : module;\n const secured = false;\n return (\n \n );\n\n case \"pageAnchor\":\n case \"ContentfulPageAnchor\":\n const pageAnchor = typename === 'pageAnchor' ? module.fields.title : module.title;\n\n return
;\n\n default:\n return null;\n\n \n\n }\n });\n }\n\n return (\n <>\n {renderContentModules()}\n \n );\n}\n\nexport default ContentModules;\n","import React from 'react';\nimport {Link} from \"gatsby\";\n\nimport styles from './page-footer-links.module.scss';\n\nconst PageFooterLinks = ({ links }) => {\n if (!links || !links.length) {\n return null;\n }\n\n return (\n
\n
    \n {\n links.map((link, i) => {\n return (\n \n
    \n {link.title}\n
    \n
    \n \n Learn more\n \n
    \n \n );\n })\n }\n
\n
\n );\n}\n\nexport default PageFooterLinks;\n","import React, { useRef, useState, useEffect } from 'react';\nimport { graphql } from 'gatsby';\nimport { useInView } from 'react-intersection-observer'\nimport Container from '~components/container/container.component';\nimport PageWrapper from '~components/page-wrapper/page-wrapper.component';\nimport SEO from '~components/seo';\nimport Hero from '~components/hero/hero.component';\nimport Cta from '~components/cta/cta.component';\nimport ContentTabs from '~components/content-tabs/content-tabs.component';\nimport ContentModules from '~components/content-modules/content-modules.component';\nimport PageFooterLinks from '~components/page-footer-links/page-footer-links.component';\n\nimport '~styles/pages/_content-page.scss';\n\nconst Page = ({ data }) => {\n const refFixedPageTabs = useRef(null);\n const refFixedPageTabsWrapper = useRef(null);\n const [fixedPageTabsHeight, setFixedPageTabsHeight] = useState(0);\n const [fixedPageTabsPos, setFixedPageTabsPos] = useState(0);\n const RESET_TIMEOUT = 100;\n\n useEffect(() => {\n // Holds the timer for setTimeout and clearInterval.\n let timer = null;\n\n const updateDimsPos = () => {\n if (refFixedPageTabsWrapper.current) {\n setTimeout(() => {\n setFixedPageTabsHeight(refFixedPageTabsWrapper.current.clientHeight);\n }, 100)\n }\n if (refFixedPageTabs.current) {\n setTimeout(() => {\n setFixedPageTabsPos(refFixedPageTabs.current.offsetTop - 2 + fixedPageTabsHeight);\n }, 200)\n }\n\n }\n\n window.addEventListener('resize', () => {\n clearInterval(timer);\n timer = setTimeout(updateDimsPos, RESET_TIMEOUT);\n });\n updateDimsPos();\n }, [\n refFixedPageTabsWrapper,\n setFixedPageTabsHeight,\n refFixedPageTabs,\n fixedPageTabsHeight,\n setFixedPageTabsPos,\n ]);\n\n const {\n title,\n description,\n contentModules,\n hero,\n footerLinks,\n ctaSidebar,\n references\n } = data.contentfulPage;\n\n const pageTabs = contentModules.filter(item => {\n return item.__typename === 'ContentfulPageAnchor';\n });\n\n const renderSeo = () => {\n if (!description) {\n return ;\n }\n return (\n \n );\n }\n\n const renderHero = () => {\n if (!hero) {\n return null;\n }\n return (\n
\n

{title}

\n \n
\n )\n }\n\n const [ref, inView, entry] = useInView({\n rootMargin: `-${fixedPageTabsPos}px 0px 0px 0px`,\n });\n\n const renderPageTabs = () => {\n if (!pageTabs || !pageTabs.length) {\n return null;\n }\n\n return (\n
\n \n
\n );\n }\n\n const renderFixedPageTabs = () => {\n let isShown = pageTabs && pageTabs.length && entry && !inView;\n const colClass = ctaSidebar ? 'column-2' : 'column-1';\n let tabsWarpperClasses = [\n 'content__tabs-wrapper',\n ];\n\n if (!isShown) {\n tabsWarpperClasses.push('content__tabs-wrapper--hidden');\n }\n\n return (\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n
\n );\n }\n\n const columnOne = () => (\n
\n
\n {renderPageTabs()}\n \n \n
\n
\n );\n\n const columnTwo = () =>(\n
\n \n
\n {renderPageTabs()}\n
\n {ctaSidebar.map((cta, i) => (\n \n ))}\n
\n \n \n \n
\n \n \n
\n );\n\n return (\n \n {renderSeo()}\n {ctaSidebar ? columnTwo() : columnOne()}\n \n );\n}\n\nexport default Page;\n\nexport const query = graphql`\n query page($contentful_id: String) {\n contentfulPage(contentful_id: {eq: $contentful_id}) {\n contentful_id\n title\n description {\n description\n }\n slug\n hero {\n bannerCopy\n image {\n file {\n url\n }\n description\n title\n }\n bynderBackgroundImage {\n name\n src\n original\n }\n slides {\n ... on Node {\n ... on ContentfulCtaBlock {\n title\n childContentfulCtaBlockBodyTextNode {\n body\n }\n ctaText\n ctaUrl\n }\n ... on ContentfulResourceCard {\n title\n body {\n body\n }\n linkText\n resourceFile {\n file {\n url\n }\n }\n resourceUrl\n iFrame\n }\n }\n }\n }\n contentModules {\n ... on Node {\n ... on ContentfulPageChart {\n chartComponent\n }\n ... on ContentfulPageCopy {\n copy {\n copy\n }\n }\n ... on ContentfulPageTable {\n color\n tableBody {\n tableBody\n }\n tableHeaders {\n tableHeader\n }\n tableValues {\n tableValue\n }\n tableReferences {\n tableReferences\n }\n }\n ... on ContentfulAntiemeticGuidelines {\n aliasedTitle: title {\n title\n }\n steps {\n title\n body {\n body\n }\n columns {\n icon {\n file {\n url\n }\n description\n }\n body {\n body\n }\n }\n }\n }\n ... on ContentfulProvenEffectivenessChart {\n colorScheme\n title\n subTitle\n block1Percentage\n block1Body {\n block1Body\n }\n block2Percentage\n block2Body {\n block2Body\n }\n block3Mg\n block3Header\n block3Body {\n block3Body\n }\n block3HighlightedText\n block3HighlightedTextSecondary\n }\n ... on ContentfulPageFooter {\n body {\n body\n }\n }\n ... on ContentfulPageCallout {\n body {\n body\n }\n }\n ... on ContentfulPageSelectWidget {\n adminTitle\n title\n colorScheme\n addBorder\n selectItems {\n title\n contentModules {\n ... on Node {\n ... on ContentfulPageCopy {\n copy {\n copy\n }\n }\n ... on ContentfulPageTable {\n color\n tableBody {\n tableBody\n }\n tableHeaders {\n tableHeader\n }\n tableValues {\n tableValue\n }\n tableReferences {\n tableReferences\n }\n }\n ... on ContentfulPageRecommendedDosage {\n title\n eyebrow\n body {\n body\n }\n image {\n fluid {\n ...GatsbyContentfulFluid_tracedSVG\n }\n description\n }\n picture {\n description\n name\n src\n original\n }\n color\n dosage\n type\n description {\n description\n }\n }\n ... on ContentfulProvenEffectivenessChart {\n colorScheme\n title\n subTitle\n block1Percentage\n block1Body {\n block1Body\n }\n block2Percentage\n block2Body {\n block2Body\n }\n block3Mg\n block3Header\n block3Body {\n block3Body\n }\n block3HighlightedText\n block3HighlightedTextSecondary\n }\n ... on ContentfulPageFooter {\n body {\n body\n }\n }\n ... on ContentfulPageCallout {\n body {\n body\n }\n }\n ... on ContentfulPagePonvIncidencePieCharts {\n pie1References\n pie2References\n pie3References\n pie4References\n }\n }\n }\n }\n }\n ... on ContentfulPageLearnMoreLink {\n title\n url\n }\n ... on ContentfulPageContentCard {\n title\n linkText\n linkUrl\n body {\n body\n }\n bynderImage {\n name\n src\n }\n }\n ... on ContentfulPageLeadGenForm {\n formtitle\n copy {\n copy\n }\n ssAccount\n ssFormId\n ssFormDomain\n }\n ... on ContentfulPageLeadGenReturn {\n returntitle\n formDownloadUrl\n }\n ... on ContentfulPageGuidelineDrivenCare {\n guidelinesTitle\n childContentfulPageGuidelineDrivenCareGuidelinesBodyTextNode {\n guidelinesBody\n }\n childContentfulPageGuidelineDrivenCareGuidelinesFooterTextNode {\n guidelinesFooter\n }\n commonClassesTitle\n commonClassesList\n calloutPosition\n childContentfulPageGuidelineDrivenCareCalloutBodyTextNode {\n calloutBody\n }\n }\n ... on ContentfulPagePonvIncidencePieCharts {\n pie1References\n pie2References\n pie3References\n pie4References\n }\n ... on ContentfulPageQA {\n question\n answers\n contentModules {\n ... on Node {\n ... on ContentfulPageChart {\n chartComponent\n }\n ... on ContentfulPageCopy {\n copy {\n copy\n }\n }\n ... on ContentfulPageTable {\n color\n tableBody {\n tableBody\n }\n tableHeaders {\n tableHeader\n }\n tableValues {\n tableValue\n }\n tableReferences {\n tableReferences\n }\n }\n ... on ContentfulPageRecommendedDosage {\n title\n eyebrow\n body {\n body\n }\n image {\n fluid {\n ...GatsbyContentfulFluid_tracedSVG\n }\n description\n }\n picture {\n description\n name\n src\n original\n }\n color\n dosage\n type\n description {\n description\n }\n }\n ... on ContentfulProvenEffectivenessChart {\n colorScheme\n title\n subTitle\n block1Percentage\n block1Body {\n block1Body\n }\n block2Percentage\n block2Body {\n block2Body\n }\n block3Mg\n block3Header\n block3Body {\n block3Body\n }\n block3HighlightedText\n block3HighlightedTextSecondary\n }\n ... on ContentfulPageFooter {\n body {\n body\n }\n }\n ... on ContentfulPageCallout {\n body {\n body\n }\n }\n ... on ContentfulPagePonvIncidencePieCharts {\n pie1References\n pie2References\n pie3References\n pie4References\n }\n }\n }\n }\n ... on ContentfulPageAnchor {\n title\n }\n }\n }\n ctaSidebar {\n icon\n title\n childContentfulCtaBlockBodyTextNode {\n body\n }\n ctaText\n ctaUrl\n }\n footerLinks {\n title\n url\n }\n references {\n references\n }\n }\n }\n`\n","var $export = require('./_export');\n$export($export.G + $export.W + $export.F * !require('./_typed').ABV, {\n DataView: require('./_typed-buffer').DataView\n});\n","'use strict';\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = Label;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n/**\n * @ignore\n * @param {Object} props\n * @param {InputRangeClassNames} props.classNames\n * @param {Function} props.formatLabel\n * @param {string} props.type\n */\n\n\nfunction Label(props) {\n var labelValue = props.formatLabel ? props.formatLabel(props.children, props.type) : props.children;\n return _react2[\"default\"].createElement('span', {\n className: props.classNames[props.type + 'Label']\n }, _react2[\"default\"].createElement('span', {\n className: props.classNames.labelContainer\n }, labelValue));\n}\n/**\n * @type {Object}\n * @property {Function} children\n * @property {Function} classNames\n * @property {Function} formatLabel\n * @property {Function} type\n */\n\n\nLabel.propTypes = {\n children: _propTypes2[\"default\"].node.isRequired,\n classNames: _propTypes2[\"default\"].objectOf(_propTypes2[\"default\"].string).isRequired,\n formatLabel: _propTypes2[\"default\"].func,\n type: _propTypes2[\"default\"].string.isRequired\n};\nmodule.exports = exports['default'];","// extracted by mini-css-extract-plugin\nmodule.exports = {\"guidelines\":\"guideline-driven-care-module--guidelines--3nBrj\",\"guidelines__row\":\"guideline-driven-care-module--guidelines__row--3jaTS\",\"guidelines__col\":\"guideline-driven-care-module--guidelines__col--3rtV9\",\"guidelines__rowAlt\":\"guideline-driven-care-module--guidelines__row--alt--UlL4r\",\"guidelines__rowAltTop\":\"guideline-driven-care-module--guidelines__row--alt-top--2EODH\",\"guidelines__header\":\"guideline-driven-care-module--guidelines__header--29Njl\",\"guidelines__list\":\"guideline-driven-care-module--guidelines__list--3qRGP\",\"guidelines__footnotes\":\"guideline-driven-care-module--guidelines__footnotes--2L5Qv\"};"],"sourceRoot":""}