{"version":3,"sources":["../node_modules/react/jsx-runtime.js","../node_modules/react/index.js","../node_modules/chart.js/dist/chunks/helpers.segment.mjs","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/react-bootstrap/esm/Feedback.js","../node_modules/react-bootstrap/esm/FormContext.js","../node_modules/react-bootstrap/esm/FormCheckInput.js","../node_modules/react-bootstrap/esm/FormCheckLabel.js","../node_modules/react-bootstrap/esm/FormCheck.js","../node_modules/react-bootstrap/esm/ElementChildren.js","../node_modules/react-bootstrap/esm/FormControl.js","../node_modules/react-bootstrap/esm/FormFloating.js","../node_modules/react-bootstrap/esm/FormGroup.js","../node_modules/react-bootstrap/esm/FormLabel.js","../node_modules/react-bootstrap/esm/FormRange.js","../node_modules/react-bootstrap/esm/FormSelect.js","../node_modules/react-bootstrap/esm/FormText.js","../node_modules/react-bootstrap/esm/Switch.js","../node_modules/react-bootstrap/esm/FloatingLabel.js","../node_modules/react-bootstrap/esm/Form.js","../node_modules/react-bootstrap/esm/Row.js","../node_modules/react-bootstrap/esm/Col.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/classnames/index.js","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/index.js","../node_modules/axios/index.js","../node_modules/react-bootstrap/esm/Container.js","../node_modules/chart.js/dist/chart.mjs","../node_modules/prop-types/index.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/react-bootstrap/esm/Table.js","../node_modules/react-bootstrap/esm/Button.js","../node_modules/@restart/ui/esm/DropdownItem.js","../node_modules/@restart/ui/esm/Dropdown.js","../node_modules/react-bootstrap/esm/DropdownItem.js","../node_modules/react-bootstrap/esm/Dropdown.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@restart/hooks/esm/useEventCallback.js","../node_modules/dom-helpers/esm/scrollbarSize.js","../node_modules/react-bootstrap/esm/ModalBody.js","../node_modules/react-bootstrap/esm/ModalDialog.js","../node_modules/react-bootstrap/esm/ModalFooter.js","../node_modules/react-bootstrap/esm/ModalHeader.js","../node_modules/react-bootstrap/esm/ModalTitle.js","../node_modules/react-bootstrap/esm/Modal.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@restart/ui/esm/SelectableContext.js","../node_modules/dom-helpers/esm/camelize.js","../node_modules/react-bootstrap/esm/createWithBsPrefix.js","../node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../modules/miniCreateReactContext.js","../../modules/createContext.js","../../modules/createNamedContext.js","../../modules/HistoryContext.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/hooks.js","../../src/utils/errors.ts","../../src/utils/common.ts","../../src/utils/plugins.ts","../../src/core/scope.ts","../../src/core/finalize.ts","../../src/core/proxy.ts","../../src/core/immerClass.ts","../../src/core/current.ts","../../src/plugins/es5.ts","../../src/immer.ts","../../src/utils/env.ts","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-transition-group/esm/utils/reflow.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../node_modules/@restart/ui/esm/Nav.js","../node_modules/react-bootstrap/esm/CardHeaderContext.js","../node_modules/react-bootstrap/esm/NavItem.js","../node_modules/react-bootstrap/esm/Nav.js","../node_modules/@restart/hooks/esm/useMergedRefs.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../node_modules/react-bootstrap/esm/NavbarContext.js","../node_modules/dom-helpers/esm/getComputedStyle.js","../node_modules/dom-helpers/esm/ownerWindow.js","../node_modules/dom-helpers/esm/hyphenate.js","../node_modules/dom-helpers/esm/hyphenateStyle.js","../node_modules/dom-helpers/esm/isTransform.js","../node_modules/dom-helpers/esm/css.js","../../src/devtoolsExtension.ts","../../src/isPlainObject.ts","../../src/utils.ts","../../src/getDefaultMiddleware.ts","../../src/configureStore.ts","../../src/createAction.ts","../../src/mapBuilders.ts","../../src/createReducer.ts","../../src/nanoid.ts","../../src/createAsyncThunk.ts","../../src/listenerMiddleware/index.ts","../../src/listenerMiddleware/task.ts","../../src/autoBatchEnhancer.ts","../../src/index.ts","../node_modules/axios/lib/utils.js","../node_modules/react-dom/index.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/uncontrollable/lib/esm/utils.js","../node_modules/uncontrollable/lib/esm/hook.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/@restart/ui/esm/DataKey.js","../node_modules/dom-helpers/esm/querySelectorAll.js","../node_modules/react-bootstrap/esm/Fade.js","../node_modules/@restart/ui/esm/TabContext.js","../node_modules/dom-helpers/esm/listen.js","../node_modules/dom-helpers/esm/ownerDocument.js","../node_modules/@restart/hooks/esm/useCommittedRef.js","../node_modules/chartjs-plugin-datalabels/dist/chartjs-plugin-datalabels.esm.js","../../src/chart.tsx","../../src/typedCharts.tsx","../node_modules/redux/es/redux.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@restart/hooks/esm/useIsomorphicEffect.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@restart/hooks/esm/useMounted.js","../node_modules/@restart/ui/esm/Button.js","../node_modules/@restart/ui/esm/DropdownContext.js","../node_modules/@restart/ui/esm/TabPanel.js","../node_modules/@restart/ui/esm/Tabs.js","../node_modules/react-bootstrap/esm/getTabTransitionComponent.js","../node_modules/react-bootstrap/esm/TabContainer.js","../node_modules/react-bootstrap/esm/TabContent.js","../node_modules/react-bootstrap/esm/TabPane.js","../node_modules/react-bootstrap/esm/Tab.js","../node_modules/react-bootstrap/esm/DropdownButton.js","../node_modules/@restart/hooks/esm/useMediaQuery.js","../node_modules/@restart/hooks/esm/useBreakpoint.js","../node_modules/react-bootstrap/esm/OffcanvasBody.js","../node_modules/react-bootstrap/esm/OffcanvasToggling.js","../node_modules/react-bootstrap/esm/OffcanvasHeader.js","../node_modules/react-bootstrap/esm/OffcanvasTitle.js","../node_modules/react-bootstrap/esm/Offcanvas.js","../node_modules/@restart/hooks/esm/useCallbackRef.js","../node_modules/@restart/hooks/esm/usePrevious.js","../node_modules/@restart/hooks/esm/useEventListener.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/dom-helpers/esm/addEventListener.js","../node_modules/react-bootstrap/esm/transitionEndListener.js","../node_modules/react-bootstrap/esm/ModalContext.js","../node_modules/@restart/ui/esm/useWindow.js","../node_modules/@restart/ui/esm/NoopTransition.js","../node_modules/@restart/ui/esm/NavContext.js","../node_modules/@restart/hooks/esm/useWillUnmount.js","../node_modules/@restart/hooks/esm/useUpdatedRef.js","../node_modules/react-bootstrap/esm/TransitionWrapper.js","../node_modules/react-bootstrap/esm/safeFindDOMNode.js","../node_modules/dom-helpers/esm/contains.js","../node_modules/react-csv/index.js","../node_modules/react-bootstrap/esm/AccordionContext.js","../node_modules/react-bootstrap/esm/AccordionCollapse.js","../node_modules/react-bootstrap/esm/AccordionItemContext.js","../node_modules/react-bootstrap/esm/AccordionBody.js","../node_modules/react-bootstrap/esm/AccordionButton.js","../node_modules/react-bootstrap/esm/AccordionHeader.js","../node_modules/react-bootstrap/esm/AccordionItem.js","../node_modules/react-bootstrap/esm/Accordion.js","../node_modules/warning/warning.js","../node_modules/invariant/browser.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/dom-helpers/esm/removeEventListener.js","../node_modules/react-bootstrap/esm/DropdownMenu.js","../node_modules/@restart/ui/esm/DropdownToggle.js","../node_modules/react-bootstrap/esm/NavDropdown.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-bootstrap/esm/BootstrapModalManager.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/@restart/ui/esm/ModalManager.js","../node_modules/@restart/ui/esm/getScrollbarWidth.js","../node_modules/react-bootstrap/esm/createUtilityClasses.js","../node_modules/react-bootstrap/esm/Stack.js","../node_modules/webpack/buildin/global.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/react-bootstrap/esm/types.js","../node_modules/reselect/es/defaultMemoize.js","../node_modules/reselect/es/index.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/react-bootstrap/esm/triggerBrowserReflow.js","../node_modules/react-bootstrap/esm/AbstractModalHeader.js","../node_modules/react-bootstrap/esm/CloseButton.js","../node_modules/react-bootstrap/esm/divWithClassName.js","../node_modules/@restart/hooks/esm/useForceUpdate.js","../node_modules/@restart/ui/esm/NavItem.js","../node_modules/react-bootstrap/esm/NavLink.js","../node_modules/react-bootstrap/esm/InputGroupContext.js","../node_modules/react-bootstrap/esm/DropdownContext.js","../node_modules/react-bootstrap/esm/useWrappedRefWithWarning.js","../node_modules/react-bootstrap/esm/DropdownToggle.js","../node_modules/moment/moment.js","../node_modules/dequal/dist/index.mjs","../node_modules/@restart/hooks/esm/useSafeState.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@restart/ui/esm/popper.js","../node_modules/@restart/ui/esm/usePopper.js","../node_modules/@restart/ui/esm/useClickOutside.js","../node_modules/@restart/ui/esm/mergeOptionsWithPopperConfig.js","../node_modules/@restart/ui/esm/DropdownMenu.js","../node_modules/@restart/hooks/esm/useResizeObserver.js","../node_modules/@restart/ui/esm/Anchor.js","../node_modules/dom-helpers/esm/activeElement.js","../node_modules/@restart/ui/esm/useWaitForDOMRef.js","../node_modules/@restart/ui/esm/ImperativeTransition.js","../node_modules/@restart/ui/esm/Modal.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/dom-helpers/esm/transitionEnd.js","../node_modules/dom-helpers/esm/triggerEvent.js","../node_modules/react-bootstrap/esm/createChainedFunction.js","../node_modules/react-bootstrap/esm/Collapse.js","../node_modules/@restart/hooks/esm/useTimeout.js","../node_modules/react-bootstrap/esm/ToastFade.js","../node_modules/react-bootstrap/esm/ToastContext.js","../node_modules/react-bootstrap/esm/ToastHeader.js","../node_modules/react-bootstrap/esm/ToastBody.js","../node_modules/react-bootstrap/esm/Toast.js","../node_modules/object-assign/index.js","../node_modules/redux-thunk/es/index.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/path-to-regexp/index.js","../node_modules/chartjs-chart-treemap/dist/chartjs-chart-treemap.esm.js","../node_modules/react-table/index.js","../node_modules/react-is/index.js","../node_modules/process/browser.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/env/data.js","../node_modules/react-csv/lib/core.js","../node_modules/react-csv/lib/metaProps.js","../node_modules/react-redux/node_modules/react-is/index.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/dayjs/dayjs.min.js","../node_modules/react-bootstrap/esm/Spinner.js","../node_modules/redux-logger/dist/redux-logger.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types-extra/lib/all.js","../node_modules/prop-types-extra/lib/utils/createChainableTypeChecker.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/path-to-regexp/node_modules/isarray/index.js","../node_modules/webpack/buildin/module.js","../../src/publicUtils.js","../../src/utils.js","../../src/makeDefaultPluginHooks.js","../../src/hooks/useColumnVisibility.js","../../src/hooks/useTable.js","../../src/plugin-hooks/useExpanded.js","../../src/filterTypes.js","../../src/plugin-hooks/useFilters.js","../../src/plugin-hooks/useGlobalFilter.js","../../src/aggregations.js","../../src/plugin-hooks/useGroupBy.js","../../src/sortTypes.js","../../src/plugin-hooks/useSortBy.js","../../src/plugin-hooks/usePagination.js","../../src/plugin-hooks/_UNSTABLE_usePivotColumns.js","../../src/plugin-hooks/useRowSelect.js","../../src/plugin-hooks/useRowState.js","../../src/plugin-hooks/useColumnOrder.js","../../src/plugin-hooks/useResizeColumns.js","../../src/plugin-hooks/useAbsoluteLayout.js","../../src/plugin-hooks/useBlockLayout.js","../../src/plugin-hooks/useFlexLayout.js","../../src/plugin-hooks/useGridLayout.js","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/react-csv/lib/index.js","../node_modules/react-csv/lib/components/Download.js","../node_modules/react-csv/lib/components/Link.js","../packages/@react-aria/ssr/src/SSRProvider.tsx","../node_modules/react-bootstrap/esm/NavbarBrand.js","../node_modules/react-bootstrap/esm/NavbarCollapse.js","../node_modules/react-bootstrap/esm/NavbarToggle.js","../node_modules/react-bootstrap/esm/NavbarOffcanvas.js","../node_modules/react-bootstrap/esm/Navbar.js"],"names":["module","exports","require","noop","uid","id","isNullOrUndef","value","isArray","Array","type","Object","prototype","toString","call","slice","isObject","isNumberFinite","Number","isFinite","finiteOrDefault","defaultValue","valueOrDefault","toPercentage","dimension","endsWith","parseFloat","toDimension","callback","fn","args","thisArg","apply","each","loopable","reverse","i","len","keys","length","_elementsEqual","a0","a1","ilen","v0","v1","datasetIndex","index","clone$1","source","map","target","create","klen","k","isValidKey","key","indexOf","_merger","options","tval","sval","merge","sources","merger","mergeIf","_mergerIf","hasOwnProperty","keyResolvers","v","x","o","y","resolveObjectKey","obj","resolver","parts","split","tmp","push","_splitKey","_getKeyResolver","_capitalize","str","charAt","toUpperCase","defined","isFunction","setsEqual","a","b","size","item","has","_isClickEvent","e","PI","Math","TAU","PITAU","INFINITY","POSITIVE_INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","sign","niceNum","range","roundedRange","round","almostEquals","niceRange","pow","floor","fraction","_factorize","result","sqrt","sort","pop","isNumber","n","isNaN","epsilon","abs","almostWhole","rounded","_setMinAndMaxByKey","array","property","min","max","toRadians","degrees","toDegrees","radians","_decimalPlaces","p","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","angle","atan2","distance","distanceBetweenPoints","pt1","pt2","_angleDiff","_normalizeAngle","_angleBetween","start","end","sameAngleIsFullCircle","s","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","_int16Range","_isBetween","_lookup","table","cmp","mid","hi","lo","_lookupByKey","last","_rlookupByKey","_filterBetween","values","arrayEvents","listenArrayEvents","listener","_chartjs","listeners","defineProperty","configurable","enumerable","forEach","method","base","res","this","object","unlistenArrayEvents","stub","splice","_arrayUnique","items","set","Set","add","from","requestAnimFrame","window","requestAnimationFrame","throttled","updateFn","updateArgs","ticking","rest","debounce","delay","timeout","clearTimeout","setTimeout","_toLeftRightCenter","align","_alignStartEnd","_textX","left","right","rtl","_getStartAndCountOfVisiblePoints","meta","points","animationsDisabled","pointCount","count","_sorted","iScale","_parsed","axis","getUserBounds","minDefined","maxDefined","getPixelForValue","_scaleRangesChanged","xScale","yScale","_scaleRanges","newRanges","xmin","xmax","ymin","ymax","changed","assign","atEdge","t","elasticIn","sin","elasticOut","effects","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","cos","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","m","d","easeInOutBounce","lim","l","h","p2b","n2b","b2n","n2p","map$1","A","B","C","D","E","F","c","f","hex","h1","h2","eq","hexString","r","g","isShort","alpha","undefined","HUE_RE","hsl2rgbn","hsv2rgbn","hwb2rgbn","w","rgb","rgb2hsl","hueValue","calln","hsl2rgb","hue","hueParse","exec","p1","p2","hwb2rgb","hsv2rgb","names","Z","Y","X","W","V","U","T","S","R","Q","P","O","N","M","L","K","G","H","I","J","names$1","OiceXe","antiquewEte","aqua","aquamarRe","azuY","beige","bisque","black","blanKedOmond","Xe","XeviTet","bPwn","burlywood","caMtXe","KartYuse","KocTate","cSO","cSnflowerXe","cSnsilk","crimson","cyan","xXe","xcyan","xgTMnPd","xWay","xgYF","xgYy","xkhaki","xmagFta","xTivegYF","xSange","xScEd","xYd","xsOmon","xsHgYF","xUXe","xUWay","xUgYy","xQe","xviTet","dAppRk","dApskyXe","dimWay","dimgYy","dodgerXe","fiYbrick","flSOwEte","foYstWAn","fuKsia","gaRsbSo","ghostwEte","gTd","gTMnPd","Way","gYF","gYFLw","gYy","honeyMw","hotpRk","RdianYd","Rdigo","ivSy","khaki","lavFMr","lavFMrXsh","lawngYF","NmoncEffon","ZXe","ZcSO","Zcyan","ZgTMnPdLw","ZWay","ZgYF","ZgYy","ZpRk","ZsOmon","ZsHgYF","ZskyXe","ZUWay","ZUgYy","ZstAlXe","ZLw","lime","limegYF","lRF","magFta","maPon","VaquamarRe","VXe","VScEd","VpurpN","VsHgYF","VUXe","VsprRggYF","VQe","VviTetYd","midnightXe","mRtcYam","mistyPse","moccasR","navajowEte","navy","Tdlace","Tive","TivedBb","Sange","SangeYd","ScEd","pOegTMnPd","pOegYF","pOeQe","pOeviTetYd","papayawEp","pHKpuff","peru","pRk","plum","powMrXe","purpN","YbeccapurpN","Yd","Psybrown","PyOXe","saddNbPwn","sOmon","sandybPwn","sHgYF","sHshell","siFna","silver","skyXe","UXe","UWay","UgYy","snow","sprRggYF","stAlXe","tan","teO","tEstN","tomato","Qe","viTet","JHt","wEte","wEtesmoke","Lw","LwgYF","nameParse","j","ok","nk","unpacked","tkeys","replace","parseInt","unpack","transparent","toLowerCase","RGB_RE","to","modHSL","ratio","clone","proto","fromObject","input","functionParse","rgbParse","Color","ret","hexParse","_rgb","_valid","hslString","color","weight","w2","c1","c2","w1","rgb1","rgb2","interpolate","val","deg","rotate","index_esm","isPatternOrGradient","getHoverColor","saturate","darken","overrides","descriptors","getScope$1","node","root","scope","Defaults","_descriptors","animation","backgroundColor","borderColor","datasets","devicePixelRatio","context","chart","platform","getDevicePixelRatio","elements","events","font","family","style","lineHeight","hover","hoverBackgroundColor","ctx","hoverBorderColor","hoverColor","indexAxis","interaction","mode","intersect","includeInvisible","maintainAspectRatio","onHover","onClick","parsing","plugins","responsive","scale","scales","showLine","drawActiveElementsOnTop","describe","name","targetScope","targetName","scopeObject","targetScopeObject","privateName","defineProperties","writable","get","local","defaults","_scriptable","startsWith","_indexable","_fallback","_measureText","data","gc","longest","string","textWidth","measureText","width","_longestText","arrayOfThings","cache","garbageCollect","save","jlen","thing","nestedThing","restore","gcLen","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","clearCanvas","canvas","getContext","resetTransform","clearRect","height","drawPoint","drawPointLegend","xOffset","yOffset","cornerRadius","pointStyle","rotation","radius","rad","translate","drawImage","beginPath","ellipse","arc","closePath","moveTo","lineTo","SQRT1_2","rect","fill","borderWidth","stroke","_isPointInArea","point","area","margin","top","bottom","clipArea","clip","unclipArea","_steppedLineTo","previous","flip","midpoint","_bezierCurveTo","bezierCurveTo","cp1x","cp2x","cp1y","cp2y","renderText","text","line","opts","lines","strokeWidth","strokeColor","translation","fillStyle","textAlign","textBaseline","setRenderOpts","strokeStyle","lineWidth","strokeText","maxWidth","fillText","decorateText","strikethrough","underline","metrics","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","yDecoration","decorationWidth","addRoundedRectPath","topLeft","bottomLeft","bottomRight","topRight","LINE_HEIGHT","RegExp","FONT_STYLE","toLineHeight","matches","match","numberOrZero","_readValueToProps","props","objProps","read","prop","toTRBL","toTRBLCorners","toPadding","toFont","fallback","console","warn","toFontString","resolve","inputs","info","cacheable","_addGrace","minmax","grace","beginAtZero","change","keepZero","createContext","parentContext","_createResolver","scopes","prefixes","rootScopes","getTarget","_resolve","Symbol","toStringTag","Proxy","deleteProperty","_keys","_cached","proxy","prefix","readKey","needsSubResolver","createSubResolver","_resolveWithPrefixes","getOwnPropertyDescriptor","Reflect","_scopes","getPrototypeOf","getKeysFromAllScopes","includes","ownKeys","storage","_storage","_attachContext","subProxy","descriptorDefaults","_cacheable","_proxy","_context","_subProxy","_stack","setContext","override","receiver","isScriptable","Error","join","delete","_resolveScriptable","isIndexable","arr","filter","_resolveArray","_resolveWithContext","allKeys","scriptable","indexable","_allKeys","constructor","resolveFallback","getScope","parent","addScopes","parentScopes","parentFallback","_rootScopes","allScopes","addScopesFromKey","_getTarget","subGetTarget","resolveKeysFromAllScopes","_parseObjectDataRadialScale","_parsing","parsed","parse","EPSILON","getPoint","skip","getValueAxis","splineCurve","firstPoint","middlePoint","afterPoint","current","next","d01","d12","s01","s12","fa","fb","splineCurveMonotone","pointBefore","pointCurrent","valueAxis","pointsLen","deltaK","mK","pointAfter","slopeDelta","alphaK","betaK","tauK","squaredMagnitude","monotoneAdjust","delta","iPixel","vPixel","monotoneCompute","capControlPoint","pt","_updateBezierControlPoints","loop","controlPoints","spanGaps","cubicInterpolationMode","prev","tension","capBezierPoints","inArea","inAreaPrev","inAreaNext","_isDomSupported","document","_getParentNode","domNode","parentNode","host","parseMaxStyle","styleValue","parentProperty","valueInPixels","getComputedStyle","element","positions","getPositionedStyle","styles","suffix","pos","useOffsetPos","shadowRoot","getRelativePosition","evt","borderBox","boxSizing","paddings","borders","touches","offsetX","offsetY","box","getBoundingClientRect","clientX","clientY","getCanvasPosition","round1","getMaximumSize","bbWidth","bbHeight","aspectRatio","margins","maxHeight","containerSize","container","containerStyle","containerBorder","containerPadding","clientWidth","clientHeight","getContainerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","setTransform","supportsEventListenerOptions","passiveSupported","passive","addEventListener","removeEventListener","readUsedSize","el","getPropertyValue","getStyle","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","intlCache","Map","formatNumber","num","locale","cacheKey","JSON","stringify","formatter","Intl","NumberFormat","getNumberFormat","format","getRightToLeftAdapter","rectX","setWidth","xPlus","leftForLtr","itemWidth","getLeftToRightAdapter","_itemWidth","getRtlAdapter","overrideTextDirection","direction","original","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","propertyFn","between","compare","normalize","normalizeSegment","_boundSegment","segment","bounds","prevValue","startBound","endBound","getSegment","inside","subStart","shouldStart","shouldStop","_boundSegments","segments","sub","_computeSegments","segmentOptions","_loop","findStartAndEnd","splitByStyles","cur","stop","solidSegments","_fullLoop","chartContext","_chart","baseStyle","readStyle","_datasetIndex","prevStyle","addStyle","st","dir","styleChanged","p0","p0DataIndex","p1DataIndex","doSplitByStyles","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread2","arguments","getOwnPropertyDescriptors","_slicedToArray","_i","iterator","_s","_e","_x","_r","_arr","_n","_d","done","err","unsupportedIterableToArray","TypeError","propTypes","PropTypes","tooltip","bool","as","elementType","Feedback","React","ref","Component","className","_jsx","classNames","displayName","FormContext","FormCheckInput","bsPrefix","isValid","isInvalid","controlId","useContext","useBootstrapPrefix","FormCheckLabel","htmlFor","FormCheck","bsSwitchPrefix","inline","disabled","feedbackTooltip","feedback","feedbackType","title","label","children","innerFormContext","useMemo","hasLabel","toArray","some","child","hasChildOfType","Provider","_jsxs","_Fragment","Input","Label","FormControl","classes","htmlSize","plaintext","readOnly","createWithBsPrefix","FormGroup","FormLabel","column","visuallyHidden","columnClass","Col","defaultProps","FormRange","FormSelect","FormText","muted","Switch","FloatingLabel","_ref","any","validated","Form","Group","Control","Floating","FormFloating","Check","Text","Range","Select","Row","decoratedBsPrefix","breakpoints","useBootstrapBreakpoints","minBreakpoint","useBootstrapMinBreakpoint","sizePrefix","brkPoint","cols","propValue","infix","spans","span","offset","order","useCol","colProps","_objectWithoutProperties","excluded","sourceSymbolKeys","propertyIsEnumerable","hasOwn","arg","argType","inner","default","DEFAULT_BREAKPOINTS","DEFAULT_MIN_BREAKPOINT","ThemeContext","Consumer","defaultPrefix","useIsRTL","ReactReduxContext","batch","getBatch","nullListeners","notify","createSubscription","store","parentSub","unsubscribe","handleChangeWrapper","subscription","onStateChange","trySubscribe","addNestedSub","subscribe","first","clear","isSubscribed","createListenerCollection","notifyNestedSubs","Boolean","tryUnsubscribe","getListeners","useIsomorphicLayoutEffect","createElement","useLayoutEffect","useEffect","contextValue","previousState","getState","Context","useReduxContext","createStoreHook","useDefaultReduxContext","useStore","createDispatchHook","useDefaultStore","dispatch","useDispatch","refEquality","createSelectorHook","selector","equalityFn","_useReduxContext","selectedState","contextSub","forceRender","useReducer","latestSubscriptionCallbackError","useRef","latestSelector","latestStoreState","latestSelectedState","storeState","newSelectedState","message","stack","checkForUpdates","newStoreState","_newSelectedState","useSelectorWithStoreAndSubscription","useDebugValue","newBatch","useSelector","Container","fluid","Animator","_request","_charts","_running","_lastDate","anims","date","callbacks","numSteps","duration","initial","currentStep","_update","_refresh","Date","now","remaining","running","draw","_active","_total","tick","_notify","charts","complete","progress","event","cb","_getAnims","reduce","acc","_duration","cancel","animator","interpolators","boolean","factor","c0","valid","mix","number","Animation","cfg","currentValue","_fn","_easing","easing","_start","_target","_prop","_from","_to","_promises","elapsed","remain","promises","Promise","rej","resolved","animationOptions","colors","properties","numbers","active","resize","show","animations","visible","hide","Animations","config","_properties","configure","animatedProps","getOwnPropertyNames","option","newOptions","$shared","$animations","resolveTargetOptions","_createAnimations","anim","wait","all","awaitAll","then","update","_animateOptions","scaleClip","allowedOverflow","getSortedDatasetIndices","filterVisible","metasets","_getSortedDatasetMetas","applyStack","dsIndex","otherValue","singleMode","isStacked","stacked","getOrCreateStack","stacks","stackKey","indexValue","subStack","getLastIndexInStack","vScale","positive","getMatchingVisibleMetas","updateStacks","controller","_cachedMeta","_stacks","iAxis","vAxis","indexScale","valueScale","getStackKey","_top","_bottom","getFirstScaleId","shift","clearStacks","isDirectUpdateMode","cloneIfNotShared","cached","shared","DatasetController","_ctx","_cachedDataOpts","getMeta","_type","_data","_objectData","_sharedOptions","_drawStart","_drawCount","enableOptionSharing","supportsDecimation","$context","_syncList","initialize","linkScales","_stacked","addElements","dataset","getDataset","chooseId","xid","xAxisID","yid","yAxisID","rid","rAxisID","iid","iAxisID","vid","vAxisID","getScaleForId","rScale","getDatasetMeta","scaleID","adata","convertObjectDataToArray","isExtensible","_dataCheck","datasetElementType","resetNewElements","stackChanged","oldStacked","_resyncElements","scopeKeys","datasetScopeKeys","getOptionScopes","createResolver","sorted","parseArrayData","parseObjectData","parsePrimitiveData","labels","getLabels","singleScale","xAxisKey","yAxisKey","parsedValue","NaN","canStack","otherScale","_getOtherScale","hidden","createStack","NEGATIVE_INFINITY","otherMin","otherMax","_skip","updateRangeFromParsed","getParsed","getLabelForValue","_clip","toClip","defaultClip","getMaxOverflow","chartArea","resolveDatasetElementOptions","resolveDataElementOptions","dataIndex","raw","createDataContext","createDatasetContext","_resolveElementOptions","dataElementType","sharing","datasetElementScopeKeys","resolveNamedOptions","freeze","transition","datasetAnimationScopeKeys","sharedOptions","_animationsDisabled","firstOpts","previouslySharedOptions","getSharedOptions","includeOptions","updateSharedOptions","_resolveAnimations","_setStyle","arg1","arg2","numMeta","numData","_insertElements","_removeElements","move","updateElements","removed","_dataChanges","_sync","newCount","computeMinSampleSize","curr","_cache","$bar","visibleMetas","concat","getAllParsedValues","getAllScaleValues","_length","updateMinAndPrev","ticks","getPixelForTick","parseValue","entry","startValue","endValue","barStart","barEnd","_custom","parseFloatBar","parseArrayOrPrimitive","isFloatBar","custom","setBorderSkipped","edge","borderSkipped","horizontal","borderProps","enableBorderRadius","parseEdge","orig","v2","startEnd","setInflateAmount","inflateAmount","BarController","iAxisKey","vAxisKey","bars","reset","getBasePixel","isHorizontal","ruler","_getRuler","_getSharedOptions","vpixels","head","_calculateBarValuePixels","ipixels","_calculateBarIndexPixels","center","updateElement","grouped","skipNull","_getStacks","pixels","barThickness","_startPixel","_endPixel","stackCount","_getStackCount","categoryPercentage","barPercentage","baseValue","minBarLength","actualBase","floating","getDataVisibility","barSign","startPixel","getPixelForDecimal","endPixel","halfGrid","getLineWidthForValue","maxBarThickness","Infinity","percent","chunk","computeFlexCategoryTraits","thickness","computeFitCategoryTraits","stackIndex","_getStackIndex","rects","_index_","grid","_value_","BubbleController","DoughnutController","innerRadius","outerRadius","getter","circumference","isDatasetVisible","_getRotation","_getCircumference","arcs","spacing","getMaxBorderWidth","getMaxOffset","maxSize","cutout","chartWeight","_getRingWeight","_getRotationExtents","ratioX","ratioY","startAngle","endAngle","startX","startY","endX","endY","calcMax","calcMin","maxX","maxY","minX","minY","getRatioAndOffset","maxRadius","radiusLength","_getVisibleDatasetWeightTotal","total","calculateTotal","_getRingWeightOffset","animateRotate","calculateCircumference","animationOpts","centerX","centerY","animateScale","_circumference","metaData","borderAlign","hoverBorderWidth","hoverOffset","ringWeightOffset","legend","generateLabels","legendItem","toggleDataVisibility","tooltipItem","dataLabel","formattedValue","LineController","_dataset","_decimated","animated","maxGapLength","directUpdate","prevParsed","nullData","border","lastPoint","updateControlPoints","PolarAreaController","bind","_updateRadius","minSize","cutoutPercentage","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getIndexAngle","defaultAngle","countVisibleElements","_computeAngle","getDistanceFromCenterForValue","angleLines","display","circular","pointLabels","PieController","RadarController","pointPosition","getPointPositionForValue","Element","useFinalPosition","getProps","final","defaultRoutes","formatters","numeric","tickValue","notation","maxTick","calculateDelta","logDelta","numDecimal","minimumFractionDigits","maximumFractionDigits","logarithmic","Ticks","autoSkip","tickOpts","ticksLimit","maxTicksLimit","tickLength","_tickSize","maxScale","maxChart","_maxLength","determineMaxTicks","majorIndices","major","enabled","getMajorIndices","numMajorIndices","newTicks","ceil","skipMajors","evenMajorSpacing","diff","getEvenSpacing","factors","calculateSpacing","avgMajorSpacing","majorStart","majorEnd","drawBorder","drawOnChartArea","drawTicks","tickWidth","tickColor","padding","minRotation","maxRotation","mirror","textStrokeWidth","textStrokeColor","autoSkipPadding","labelOffset","minor","crossAlign","showLabelBackdrop","backdropColor","backdropPadding","route","offsetFromEdge","sample","numItems","increment","getPixelForGridLine","offsetGridLines","validIndex","lineValue","getTickMarkLength","getTitleHeight","titleAlign","position","reverseAlign","Scale","_margins","paddingTop","paddingBottom","paddingLeft","paddingRight","labelRotation","_range","_gridLineItems","_labelItems","_labelSizes","_longestTextCache","_reversePixels","_userMax","_userMin","_suggestedMax","_suggestedMin","_ticksLength","_borderValue","_dataLimitsCached","suggestedMin","suggestedMax","metas","getMinMax","xLabels","yLabels","beforeUpdate","sampleSize","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","samplingEnabled","_convertTicksToLabels","beforeCalculateLabelRotation","calculateLabelRotation","afterCalculateLabelRotation","afterAutoSkip","beforeFit","fit","afterFit","afterUpdate","reversePixels","_alignToPixels","alignToPixels","notifyPlugins","_callHooks","beforeTickToLabelConversion","afterTickToLabelConversion","maxLabelDiagonal","numTicks","_isVisible","labelSizes","_getLabelSizes","maxLabelWidth","widest","maxLabelHeight","highest","asin","titleOpts","gridOpts","titleHeight","tickPadding","angleRadians","labelHeight","labelWidth","_calculatePadding","_handleMargins","isRotated","labelsBelowTicks","offsetLeft","offsetRight","fullSize","generateTickLabels","_computeLabelSizes","tickFont","fontString","nestedLabel","caches","widths","heights","widestLabelSize","highestLabelSize","_resolveTickFontOptions","valueAt","idx","decimal","getBaseValue","createTickContext","optionTicks","rot","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","x1","y1","x2","y2","ticksLength","tl","borderOpts","axisWidth","axisHalfWidth","alignBorderValue","positionAxisID","limit","step","optsAtIndex","lineColor","tickBorderDash","tickBorderDashOffset","lineCount","textOffset","tickAndPadding","hTickAndPadding","_getXAxisLabelAlignment","_getYAxisLabelAlignment","halfCount","tickTextAlign","backdrop","labelPadding","fillRect","findIndex","_computeGridLineItems","drawLine","setLineDash","lineDashOffset","lastLineWidth","_computeLabelArea","_computeLabelItems","titleX","titleY","titleArgs","drawBackground","drawGrid","drawTitle","drawLabels","tz","z","gz","getSortedVisibleDatasetMetas","axisID","fontSize","TypedRegistry","isPrototypeOf","parentScope","isIChartComponent","register","itemDefaults","routes","propertyParts","sourceName","sourceScope","routeDefaults","registerDefaults","Registry","controllers","_typedRegistries","_each","_get","typedRegistry","reg","_getRegistryForType","isForType","_exec","itemReg","registry","component","camelMethod","ScatterController","getElement","abstract","DateAdapter","chartOptions","timestamp","amount","unit","weekday","members","adapters","_date","binarySearch","metaset","lookupMethod","getRange","evaluateInteractionItems","handler","getIntersectItems","isPointInArea","inRange","getNearestCartesianItems","distanceMetric","useX","useY","deltaX","deltaY","getDistanceMetricForAxis","minDistance","getCenterPoint","getNearestItems","getNearestRadialItems","getAxisItems","rangeMethod","intersectsItem","Interaction","modes","nearest","STATIC_POSITIONS","filterByPosition","filterDynamicPositionByAxis","sortByWeight","setLayoutDims","layouts","params","layout","wrap","stackWeight","placed","buildStacks","vBoxMaxWidth","hBoxMaxHeight","availableWidth","availableHeight","getCombinedMax","maxPadding","updateMaxPadding","boxPadding","updateDims","getPadding","newWidth","outerWidth","newHeight","outerHeight","widthChanged","heightChanged","same","other","getMargins","marginForPositions","fitBoxes","boxes","refit","refitBoxes","setBoxDims","placeBoxes","userPadding","autoPadding","addBox","_layers","removeBox","layoutItem","minPadding","layoutBoxes","wrapBoxes","centerHorizontal","centerVertical","leftAndTop","rightAndBottom","vertical","buildLayoutBoxes","verticalBoxes","horizontalBoxes","beforeLayout","visibleVerticalBoxCount","updatePos","handleMaxPadding","BasePlatform","BasicPlatform","EXPANDO_KEY","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","isNullOrEmpty","eventListenerOptions","removeListener","nodeListContains","nodeList","contains","createAttachObserver","observer","MutationObserver","entries","trigger","addedNodes","removedNodes","observe","childList","subtree","createDetachObserver","drpListeningCharts","oldDevicePixelRatio","onWindowResize","dpr","createResizeObserver","ResizeObserver","contentRect","listenDevicePixelRatioChanges","releaseObserver","disconnect","unlistenDevicePixelRatioChanges","createProxyAndListen","native","fromNativeEvent","addListener","DomPlatform","renderHeight","getAttribute","renderWidth","displayWidth","displayHeight","initCanvas","removeAttribute","setAttribute","proxies","$proxies","attach","detach","isConnected","PluginService","_init","hook","_createDescriptors","descriptor","plugin","cancelable","_oldCache","_notifyStateChanges","localIds","getPlugin","allPlugins","getOpts","pluginOpts","createDescriptors","previousDescriptors","pluginScopeKeys","getIndexAxis","datasetDefaults","determineAxis","scaleOptions","initOptions","chartDefaults","configScales","chartIndexAxis","firstIDs","scaleConf","error","defaultId","getDefaultScaleIDFromAxis","defaultScaleOptions","defaultID","getAxisFromDefaultScaleID","mergeScaleConfig","initData","keyCache","keysCached","cachedKeys","generate","addIfFound","Config","_config","initConfig","_scopeCache","_resolverCache","clearCache","datasetType","additionalOptionScopes","mainScope","resetCache","keyLists","_cachedScopes","getResolver","subPrefixes","hasFunction","needContext","subResolver","resolverCache","KNOWN_POSITIONS","positionIsHorizontal","compare2Level","l1","l2","onAnimationsComplete","onComplete","onAnimationProgress","onProgress","getCanvas","getElementById","instances","getChart","moveNumericKeys","intKey","Chart","userConfig","initialCanvas","existingChart","chartOptionScopes","OffscreenCanvas","_detectPlatform","updateConfig","acquireContext","_options","_aspectRatio","_metasets","_lastEvent","_listeners","_responsiveListeners","_sortedMetasets","_plugins","_hiddenIndices","attached","_doResize","resizeDelay","listen","_initialize","bindEvents","_resizeBeforeDraw","_resize","newSize","newRatio","onResize","render","scalesOptions","axisOptions","scaleOpts","updated","isRadial","dposition","dtype","scaleType","getScale","init","hasUpdated","_destroyDatasetMeta","newControllers","_removeUnreferencedMetasets","updateIndex","ControllerClass","getController","_updateMetasets","_resetElements","animsDisabled","_updateScales","_checkEventBindings","_updateHiddenIndices","invalidate","buildOrUpdateControllers","buildOrUpdateElements","_minPadding","_updateLayout","_updateDatasets","_eventHandler","_updateHoverStyles","ensureScalesHaveIDs","buildOrUpdateScales","existingEvents","newEvents","unbindEvents","changes","_getUniformDataChanges","datasetCount","makeSet","changeSet","noArea","_idx","_updateDataset","layers","_drawDatasets","_drawDataset","useClip","setDatasetVisibility","_updateVisibility","_destroy","remove","_stop","releaseContext","toDataURL","bindUserEvents","bindResponsiveEvents","_add","detached","_remove","isAttached","activeElements","lastActive","replay","hoverOptions","deactivated","activated","updateHoverStyle","inChartArea","eventFilter","_handleEvent","_getActiveElements","isClick","lastEvent","determineLastEvent","getElementsAtEventForMode","invalidatePlugins","clipArc","pixelMargin","angleMargin","parseBorderRadius$1","angleDelta","borderRadius","halfThickness","innerLimit","computeOuterLimit","outerArcLimit","outerStart","outerEnd","innerStart","innerEnd","rThetaToXY","theta","pathArc","innerR","spacingOffset","avNogSpacingRadius","angleOffset","outerStartAdjustedRadius","outerEndAdjustedRadius","outerStartAdjustedAngle","outerEndAdjustedAngle","innerStartAdjustedRadius","innerEndAdjustedRadius","innerStartAdjustedAngle","innerEndAdjustedAngle","pCenter","p4","p8","outerStartX","outerStartY","outerEndX","outerEndY","lineJoin","fullCircles","drawFullCircleBorders","version","unregister","ArcElement","chartX","chartY","rAdjust","betweenAngles","withinRadius","halfAngle","halfRadius","radiusOffset","drawArc","setStyle","lineCap","pathVars","paramsStart","paramsEnd","segmentStart","segmentEnd","outside","pathSegment","lineMethod","stepped","getLineMethod","fastPathSegment","prevX","lastY","avgX","countX","pointIndex","drawX","truncX","_getSegmentMethod","usePath2D","Path2D","path","_path","strokePathWithCache","segmentMethod","strokePathDirect","LineElement","_points","_segments","_pointsUpdated","_interpolate","_getInterpolationMethod","interpolated","inRange$1","hitRadius","PointElement","mouseX","mouseY","hoverRadius","getBarBounds","bar","half","skipOrLimit","boundingRects","maxW","maxH","parseBorderWidth","maxR","enableBorder","parseBorderRadius","outer","skipX","skipY","addNormalRectPath","inflateRect","refRect","BarElement","addRectPath","getBoxSize","labelOpts","boxHeight","boxWidth","usePointStyle","pointStyleWidth","itemHeight","Legend","_added","legendHitBoxes","_hoveredItem","doughnutMode","legendItems","columnSizes","lineWidths","buildLabels","labelFont","_computeTitleHeight","_fitRows","_fitCols","hitboxes","totalHeight","row","heightLimit","totalWidth","currentColWidth","currentColHeight","col","rtlHelper","hitbox","_draw","cursor","defaultColor","fontColor","halfFontSize","textDirection","lineDash","drawOptions","SQRT2","yBoxTop","xBoxLeft","drawLegendBox","titleFont","titlePadding","topPaddingPlusHalfFontSize","hitBox","lh","onLeave","isListened","hoveredItem","_getLegendItemAt","sameItem","plugin_legend","_element","_args","adjustHitBoxes","afterEvent","handleEvent","ci","Title","_padding","textSize","fontOpts","_drawArgs","plugin_title","titleBlock","createTitle","positioners","WeakMap","average","hasValue","tooltipPosition","eventPosition","nearestElement","tp","pushOrConcat","toPush","splitNewlines","String","createTooltipItem","getLabelAndValue","getTooltipSize","body","footer","bodyFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","before","after","beforeBody","afterBody","titleSpacing","titleMarginBottom","displayColors","bodySpacing","footerMarginTop","footerSpacing","widthPadding","maxLineWidth","determineXAlign","yAlign","chartWidth","xAlign","caret","caretSize","caretPadding","doesNotFitWithAlign","determineAlignment","determineYAlign","getBackgroundPoint","alignment","paddingAndSize","alignX","alignY","getAlignedX","getBeforeAfterBodyLines","overrideCallbacks","Tooltip","opacity","_eventPosition","_size","_cachedAnimations","_tooltipItems","dataPoints","caretX","caretY","labelColors","labelPointStyles","labelTextColors","tooltipItems","beforeTitle","afterTitle","bodyItems","scoped","beforeLabel","afterLabel","beforeFooter","afterFooter","itemSort","labelColor","labelPointStyle","labelTextColor","_createItems","getTitle","getBeforeBody","getBody","getAfterBody","getFooter","positionAndSize","backgroundPoint","external","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","titleColor","colorX","rtlColorX","yOffSet","colorY","multiKeyBackground","outerX","innerX","strokeRect","textColor","bodyAlign","bodyLineHeight","xLinePadding","fillLineOfText","bodyAlignForCalculation","bodyColor","_drawColorBox","footerAlign","footerColor","tooltipSize","drawCaret","quadraticCurveTo","animX","animY","_updateAnimationTarget","hasTooltipContent","globalAlpha","drawBody","drawFooter","positionChanged","_positionChanged","_ignoreReplayEvents","plugin_tooltip","afterInit","afterDraw","_willRender","labelCount","findOrAddLabel","addedLabels","unshift","addIfString","lastIndexOf","CategoryScale","_startValue","_valueRange","_addedLabels","added","getDecimalForPixel","relativeLabelSize","minSpacing","LinearScaleBase","_endValue","setMin","setMax","minSign","maxSign","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","maxTicks","stepSize","computeTickLimit","getTickLimit","generationOptions","dataRange","niceMin","niceMax","numSpaces","precision","maxDigits","includeBounds","maxSpaces","rmin","rmax","countDefined","decimalPlaces","generateTicks$1","_maxDigits","LinearScale","handleTickRangeOptions","isMajor","tickVal","LogarithmicScale","_zero","exp","endExp","endSignificand","significand","lastTick","generateTicks","getTickBackdropHeight","determineLimits","fitWithPointLabels","limits","valueCount","_pointLabels","pointLabelOpts","additionalAngle","centerPointLabels","getPointLabelContext","getPointPosition","drawingArea","plFont","updateLimits","setCenterPoint","_pointLabelItems","extra","outerDistance","pointLabelPosition","yForAngle","getTextAlignForAngle","leftForTextAlign","buildPointLabelItems","hLimits","vLimits","pathRadiusLine","RadialLinearScale","leftMovement","rightMovement","topMovement","bottomMovement","angleMultiplier","scalingFactor","scaledDistance","pointLabel","createPointLabelContext","distanceFromCenter","backdropLeft","backdropTop","backdropWidth","backdropHeight","drawPointLabels","gridLineOpts","drawRadiusLine","animate","INTERVALS","millisecond","common","steps","second","minute","hour","day","week","month","quarter","year","UNITS","sorter","adapter","_adapter","_parseOpts","parser","isoWeekday","startOf","determineUnitForAutoTicks","minUnit","capacity","interval","addTick","time","timestamps","ticksFromTimestamps","majorUnit","setMajorTicks","TimeScale","_unit","_majorUnit","_offsets","_normalized","displayFormats","formats","normalized","_applyBounds","_getLabelBounds","endOf","getLabelTimestamps","timeOpts","_generate","_getLabelCapacity","determineUnitForFormatting","determineMajorUnit","initOffsets","offsetAfterAutoskip","getDecimalForValue","hasWeekday","getDataTimestamps","tooltipFormat","datetime","minorFormat","majorFormat","_tickFormatFunction","offsets","ticksOpts","tickLabelWidth","cosRotation","sinRotation","tickFontSize","exampleTime","exampleLabel","_getLabelSize","prevSource","nextSource","prevTarget","nextTarget","TimeSeriesScale","_table","_minPos","_tableRange","_getTimestampsForTable","buildLookupTable","_classCallCheck","instance","Constructor","_defineProperties","_createClass","protoProps","staticProps","_defineProperty","_toConsumableArray","arrayLikeToArray","iter","Table","striped","bordered","borderless","variant","responsiveClass","Button","useButtonProps","tagName","buttonProps","href","_excluded","useDropdownItem","onSelectCtx","SelectableContext","activeKey","NavContext","eventKey","makeEventKey","isActive","handleClick","useEventCallback","isPropagationStopped","dataAttr","DropdownItem","sourceKeys","_objectWithoutPropertiesLoose","dropdownItemProps","useRefWithUpdate","forceUpdate","useForceUpdate","attachRef","useCallback","Dropdown","defaultShow","rawShow","onSelect","rawOnToggle","onToggle","itemSelector","focusFirstItemOnShow","placement","useWindow","useUncontrolledProp","menuRef","setMenu","menuElement","toggleRef","setToggle","toggleElement","lastShow","usePrevious","lastSourceEvent","focusInDropdown","toggle","nextShow","originalEvent","handleSelect","ownerDocument","activeElement","focusToggle","focus","maybeFocusFirst","focusType","isRoleMenu","test","qsa","getNextFocusedChild","useEventListener","_menuRef$current","_toggleRef$current","fromMenu","fromToggle","preventDefault","_menuRef$current2","once","stopPropagation","DropdownContext","Menu","DropdownMenu","Toggle","DropdownToggle","Item","Anchor","DropdownHeader","role","DropdownDivider","DropdownItemText","pProps","useUncontrolled","drop","autoClose","navbar","isInputGroup","InputGroupContext","isRTL","handleToggle","currentTarget","alignEnd","getDropdownMenuPlacement","directionClasses","down","up","BaseDropdown","ItemText","Divider","Header","_createForOfIteratorHelper","allowArrayLike","it","normalCompletion","didErr","_e2","useCommittedRef","scrollbarSize","recalc","canUseDOM","scrollDiv","overflow","appendChild","offsetWidth","removeChild","ModalDialog","contentClassName","centered","fullscreen","scrollable","dialogClass","fullScreenClass","ModalHeader","AbstractModalHeader","closeLabel","closeButton","DivStyledAsH4","divWithClassName","keyboard","autoFocus","enforceFocus","restoreFocus","dialogAs","DialogTransition","Fade","BackdropTransition","Modal","dialogClassName","Dialog","ariaLabelledby","ariaDescribedby","ariaLabel","onEscapeKeyDown","onShow","onHide","restoreFocusOptions","onEntered","onExit","onExiting","onEnter","onEntering","onExited","backdropClassName","propsManager","manager","useState","modalStyle","animateStaticModal","setAnimateStaticModal","waitingForMouseUpRef","ignoreBackdropClickRef","removeStaticModalAnimationRef","useCallbackRef","modal","setModalRef","mergedRef","useMergedRefs","handleHide","modalContext","getModalManager","getSharedManager","updateDialogStyle","containerIsOverflowing","getScrollbarWidth","modalIsOverflowing","scrollHeight","documentElement","getScrollbarSize","handleWindowResize","dialog","useWillUnmount","handleDialogMouseDown","handleMouseUp","handleStaticModalAnimation","transitionEnd","handleStaticBackdropClick","renderBackdrop","backdropProps","baseModalStyle","ModalContext","BaseModal","isAppearing","backdropTransition","renderDialog","dialogProps","onMouseUp","onMouseDown","Body","ModalBody","ModalTitle","Footer","ModalFooter","TRANSITION_DURATION","BACKDROP_TRANSITION_DURATION","_extends","_inherits","subClass","superClass","_createSuper","Derived","hasNativeReflectConstruct","construct","sham","valueOf","Super","NewTarget","self","assertThisInitialized","_getPrototypeOf","setPrototypeOf","__proto__","rHyphen","pascalCase","_","chr","BsComponent","Tag","resolvedPrefix","desc","MAX_SIGNED_31_BIT_INT","commonjsGlobal","globalThis","global","calculateChangedBits","contextProp","getUniqueId","emitter","handlers","on","off","newValue","changedBits","createEventEmitter","getChildContext","componentWillReceiveProps","nextProps","oldValue","childContextTypes","isRequired","observedBits","state","getValue","onUpdate","setState","componentDidMount","componentWillUnmount","contextTypes","createNamedContext","historyContext","Router","location","history","_isMounted","_pendingLocation","staticContext","unlisten","computeRootMatch","pathname","url","isExact","RouterContext","HistoryContext","cacheLimit","cacheCount","matchPath","exact","strict","sensitive","matched","pathCache","regexp","pathToRegexp","compilePath","memo","Route","computedMatch","Children","isEmptyChildren","addLeadingSlash","stripBasename","basename","substr","createURL","createPath","staticHandler","methodName","invariant","isValidElement","cloneElement","useHistory","useLocation","useParams","useRouteMatch","die","msg","isDraft","DRAFT_STATE","isDraftable","Ctor","Function","objectCtorString","DRAFTABLE","isMap","isSet","getArchtype","type_","propOrOldValue","is","hasMap","hasSet","latest","copy_","base_","shallowCopy","deep","isFrozen","dontMutateFrozenCollections","pluginKey","loadPlugin","implementation","getCurrentScope","currentScope","usePatchesInScope","patchListener","patches_","inversePatches_","patchListener_","revokeScope","leaveScope","drafts_","revokeDraft","parent_","enterScope","immer","immer_","canAutoFreeze_","unfinalizedDrafts_","draft","revoke_","revoked_","processResult","baseDraft","isReplaced","useProxies_","willFinalizeES5_","modified_","finalize","maybeFreeze","generateReplacementPatches_","NOTHING","rootScope","childValue","finalizeProperty","scope_","finalized_","draft_","resultEach","generatePatches_","parentState","targetObject","rootPath","targetIsSet","assigned_","autoFreeze_","peek","getDescriptorFromProto","markChanged","prepareCopy","createProxy","proxyMap_","proxySet_","isManual_","traps","objectTraps","arrayTraps","revocable","revoke","createES5Proxy_","currentImpl","copy","archType","hasChanges_","copyHelper","enableES5","proxyProperty","markChangesSweep","drafts","hasArrayChanges","hasObjectChanges","baseIsDraft","markChangesRecursively","hasSymbol","hasProxies","for","currentState","owner","Immer","recipe","defaultBase","_this","produce","_this2","hasError","ip","produceWithPatches","patches","inversePatches","nextState","useProxies","setUseProxies","autoFreeze","setAutoFreeze","createDraft","finishDraft","applyPatches","patch","op","applyPatchesImpl","applyPatches_","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","_React$Component","initialStatus","appear","isMounting","enter","appearStatus","in","unmountOnExit","mountOnEnter","status","nextCallback","_inheritsLoose","getDerivedStateFromProps","prevState","_proto","updateStatus","componentDidUpdate","prevProps","nextStatus","cancelNextCallback","getTimeouts","exit","mounting","nodeRef","ReactDOM","findDOMNode","scrollTop","forceReflow","performEnter","performExit","appearing","_ref2","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onTransitionEnd","_this3","setNextCallback","_this4","doesNotHaveTimeoutOrListener","addEndListener","_ref3","maybeNextCallback","_this$props","childProps","TransitionGroupContext","only","contextType","resolveToLocation","currentLocation","normalizeToLocation","createLocation","forwardRefShim","forwardRef","LinkAnchor","forwardedRef","innerRef","navigate","ex","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","Link","createHref","isDuplicateNavigation","ariaCurrent","activeClassName","activeStyle","classNameProp","isActiveProp","locationProp","styleProp","toLocation","escapedPath","classnames","joinClassnames","EVENT_KEY_ATTR","Nav","getControlledId","getControllerId","onKeyDown","needsRefocusRef","parentOnSelect","tabContext","TabContext","listNode","getNextActiveTab","currentListNode","activeChild","querySelector","nextIndex","nextActiveChild","dataProp","NavItem","uncontrolledProps","navbarBsPrefix","cardHeaderBsPrefix","initialBsPrefix","justify","navbarScroll","isNavbar","navbarContext","NavbarContext","cardHeaderContext","CardHeaderContext","BaseNav","NavLink","toFnRef","refA","refB","mergeRefs","isAbsolute","spliceOne","list","resolvePathname","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","part","valueEqual","every","aValue","bValue","stripLeadingSlash","hasBasename","stripTrailingSlash","search","hash","hashIndex","searchIndex","parsePath","decodeURI","URIError","locationsAreEqual","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","appendListener","notifyListeners","_len","_key","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","ua","navigator","userAgent","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_window$location","createKey","random","transitionManager","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","fromLocation","toIndex","fromIndex","go","revertPop","initialLocation","listenerCount","checkDOMListeners","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","substring","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","baseTag","pushHashPath","nextPaths","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","nextEntries","canGo","psuedoElement","doc","defaultView","ownerWindow","rUpper","msPattern","hyphenateStyleName","hyphenate","supportedTransforms","css","transforms","isTransform","removeProperty","cssText","composeWithDevTools","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","__REDUX_DEVTOOLS_EXTENSION__","isPlainObject","baseProto","curryGetDefaultMiddleware","thunk","middlewareArray","MiddlewareArray","withExtraArgument","extraArgument","getDefaultMiddleware","IS_PRODUCTION","configureStore","rootReducer","curriedGetDefaultMiddleware","reducer","middleware","devTools","preloadedState","enhancers","finalMiddleware","middlewareEnhancer","finalCompose","trace","storeEnhancers","composedEnhancer","createAction","prepareAction","actionCreator","prepared","payload","executeReducerBuilderCallback","builderCallback","defaultCaseReducer","actionsMap","actionMatchers","builder","addCase","typeOrActionCreator","addMatcher","matcher","addDefaultCase","createReducer","initialState","mapOrBuilderCallback","getInitialState","finalActionMatchers","finalDefaultCaseReducer","freezeDraftable","caseReducers","cr","caseReducer","nanoid","commonProperties","miniSerializeError","simpleError","typePrefix","payloadCreator","fulfilled","requestId","requestStatus","pending","rejected","serializeError","rejectedWithValue","aborted","condition","AC","AbortController","signal","dispatchEvent","onabort","reason","throwIfAborted","abort","abortReason","idGenerator","abortController","conditionResult","abortedPromise","reject","getPendingMeta","race","rejectWithValue","RejectWithValue","fulfillWithValue","FulfillWithMeta","finalAction","dispatchConditionRejection","unwrap","unwrapResult","withTypes","alm","queueMicrotask","promise","createQueueWithTimer","isUndefined","isArrayBuffer","isBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","product","assignValue","extend","trim","stripBOM","content","charCodeAt","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","isProduction","process","provided","defaultKey","_toPropertyKey","hint","prim","toPrimitive","_toPrimitive","wasPropRef","_useState","stateValue","isProp","wasProp","fieldName","_extends2","Utils","propsValue","handlerName","_useUncontrolledProp","componentWillMount","componentWillUpdate","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","__suppressDeprecationWarning","ATTRIBUTE_PREFIX","PROPERTY_PREFIX","querySelectorAll","fadeStyles","transitionClasses","handleEnter","triggerBrowserReflow","TransitionWrapper","transitionEndListener","childRef","innerProps","eventName","screen","deviceXDPI","logicalXDPI","utils","updates","orient","origin","x0","y0","dx","dy","ln","R_INSIDE","R_LEFT","R_RIGHT","R_BOTTOM","R_TOP","region","compute$1","anchor","r0","r1","clipped","vx","vy","aligned","rx","ry","sx","sy","rasterize","getScaleOrigin","drawFrame","model","bgColor","drawRoundedRect","drawTextLine","shadow","shadowBlur","stroked","filled","me","_index","_model","_rects","_el","_modelize","defaults$1","positioner","textShadowBlur","textShadowColor","th","tw","tx","ty","frame","geometry","textGeometry","shadowColor","drawText","MIN_INTEGER","MAX_INTEGER","rotated","cx","cy","projected","dp","toAxis","HitBox","_rotation","_rect","coordinates","vs","intersects","pr0","pr1","axes","prepare","$layout","_box","_hidable","_visible","_set","sa","sb","dirty","collider","s0","s1","collide","h0","compute","lookup","DEFAULT_KEY","callback$1","groups","$groups","_dirty","handleMoveEvents","expando","leave","_labels","_hovered","dispatchMoveEvents","beforeInit","_actives","_listened","_datasets","afterDatasetUpdate","datalabels","configs","afterDatasetsDraw","beforeEvent","click","handleClickEvents","actives","getActiveElements","defaultDatasetIdKey","reforwardRef","setLabels","currentData","nextLabels","setDatasets","nextDatasets","datasetIdKey","addedDatasets","nextDataset","currentDataset","find","cloneData","nextData","ChartComponent","redraw","fallbackContent","updateMode","canvasRef","chartRef","renderChart","ChartJS","destroyChart","destroy","nextOptions","createTypedChart","registerables","Bar","Doughnut","formatProdErrorMessage","code","$$observable","observable","randomString","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","createStore","enhancer","currentReducer","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","replaceReducer","nextReducer","outerSubscribe","observeState","combineReducers","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","previousStateForKey","nextStateForKey","compose","funcs","applyMiddleware","middlewares","_dispatch","middlewareAPI","chain","_objectSpread","_typeof","isReactNative","isDOM","_assertThisInitialized","ReferenceError","useMounted","mounted","isMounted","rel","tabIndex","isTrivialHref","asProp","_excluded2","_excluded3","useTabPanel","TabPanel","tabPanelProps","NoopTransition","Tabs","userId","generateCustomChildId","generateChildId","propsOnSelect","propsActiveKey","defaultActiveKey","useSSRSafeId","Panel","getTabTransitionComponent","TabContainer","TabPane","oneOfType","tabClassName","tabAttrs","Tab","Content","TabContent","Pane","func","alignPropType","menuRole","renderMenuOnMount","rootCloseEvent","menuVariant","oneOf","DropdownButton","childBsPrefix","renderOnMount","matchersByWindow","getMatcher","query","targetWindow","matchers","mql","matchMedia","refCount","media","useMediaQuery","setMatches","handleChange","useBreakpoint","breakpointValues","and","getMaxQuery","breakpoint","getNext","breakpointOrMap","breakpointMap","_breakpointMap","getMinQuery","createBreakpointHook","xs","sm","md","lg","xl","xxl","transitionStyles","OffcanvasToggling","OffcanvasHeader","DivStyledAsH5","Offcanvas","scroll","renderStaticNode","modalManager","showOffcanvas","setShowOffcanvas","hideResponsiveOffcanvas","visibility","BootstrapModalManager","handleContainerOverflow","OffcanvasBody","OffcanvasTitle","eventTarget","capture","_unsupportedIterableToArray","minLen","optionsSupported","onceSupported","wrappedHandler","__once","onceHandler","parseDuration","mult","inProp","hasEnteredRef","handleExited","combinedRef","onUnmount","valueRef","useUpdatedRef","componentOrElement","param","handleEntering","handleEntered","handleExit","handleExiting","handleAddEndListener","compareDocumentPosition","isAccordionItemSelected","activeEventKey","AccordionCollapse","AccordionContext","Collapse","AccordionBody","AccordionItemContext","AccordionButton","accordionOnClick","alwaysOpen","eventKeyPassed","useAccordionButton","AccordionHeader","AccordionItem","Accordion","flush","controlledProps","warning","argIndex","framesToPop","_arrayLikeToArray","arr2","reactIs","REACT_STATICS","getDefaultProps","getDerivedStateFromError","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","dropDirection","showProps","popperConfig","contextAlign","alignClasses","useDropdownMenu","usePopper","menuProps","hasShown","popper","useWrappedRefWithWarning","useIsomorphicEffect","close","_el$getAttribute","useDropdownToggle","NavDropdown","navItemPrefix","replaceClassName","origClass","classToRemove","sharedManager","Selector","adjust","actual","containerState","classList","baseVal","hasClass","scrollBarWidth","paddingProp","marginProp","adjustAndStore","ModalManager","OPEN_DATA_ATTRIBUTE","modals","innerWidth","getBodyScrollbarWidth","_modal","modalIdx","setModalAttributes","setContainerStyle","removeContainerStyle","removeModalAttributes","createUtilityClassName","utilityValues","utilName","utilValue","bpValue","Stack","gap","normalizeHeaderName","enhanceError","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","transitional","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","XMLHttpRequest","getDefaultAdapter","transformRequest","rawValue","encoder","stringifySafely","transformResponse","strictJSONParsing","responseType","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","Cancel","__CANCEL__","alignDirection","shape","NOT_FOUND","defaultEqualityCheck","defaultMemoize","equalityCheckOrOptions","providedOptions","equalityCheck","_providedOptions$equa","_providedOptions$maxS","resultEqualityCheck","comparator","createCacheKeyComparator","equals","put","getEntries","createSingletonCache","cacheIndex","createLruCache","memoized","matchingEntry","createSelectorCreator","memoize","memoizeOptionsFromArgs","_len2","_key2","_lastResult","_recomputations","directlyPassedOptions","memoizeOptions","resultFunc","_directlyPassedOption2","finalMemoizeOptions","dependencies","dep","dependencyTypes","getDependencies","memoizedResultFunc","lastResult","recomputations","resetRecomputations","createSelector","_setPrototypeOf","offsetHeight","closeVariant","CloseButton","useNavItem","navContext","contextControllerId","contextControlledId","navItemProps","componentName","dropdownContext","toggleProps","hookCallback","hooks","setHookCallback","hasOwnProp","isObjectEmpty","arrLen","createUTC","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","_isValid","flags","parsedParts","isNowValid","getTime","invalidWeekday","_strict","bigHour","createInvalid","fun","momentProperties","updateInProgress","copyConfig","momentPropertiesLen","_isAMomentObject","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","updateOffset","isMoment","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","argLen","deprecations","deprecateSimple","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","mom","output","_calendar","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","localeData","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","defaultLongDateFormat","LTS","LT","LL","LLL","LLLL","_longDateFormat","formatUpper","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","future","past","ss","mm","hh","dd","ww","MM","yy","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","aliases","addUnitAlias","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","u","isLeapYear","absFloor","toInt","argumentForCoercion","coercedNumber","makeGetSet","keepTime","set$1","daysInMonth","stringGet","stringSet","prioritized","prioritizedLen","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","p3","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","_a","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","mod","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","parseTwoDigitYear","getSetYear","getIsLeapYear","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","ws","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","hours","kFormat","lowercase","minutes","matchMeridiem","_meridiemParse","localeIsPM","seconds","kInput","_isPm","isPM","_meridiem","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","globalLocale","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","commonPrefix","arr1","minl","normalizeLocale","chooseLocale","loadLocale","isLocaleNameSane","oldLocale","_abbr","aliasedRequire","getSetGlobalLocale","getLocale","defineLocale","abbr","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","createFromInputFallback","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","temp","weekdayOverflow","curWeek","GG","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","isValid$1","createInvalid$1","createDuration","Duration","years","quarters","weeks","isoWeek","days","milliseconds","_milliseconds","_days","_bubble","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","separator","utcOffset","offsetFromString","chunkOffset","cloneWithOffset","setTime","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","isAfter","isBefore","createAdder","period","isAdding","invalid","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","sod","calendarFormat","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","toISOString","keepOffset","toDate","inspect","zone","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","unix","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","localeErasParse","eraName","narrow","localeErasConvertYear","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","isoWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","eraYearOrdinalParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","createUnix","createInZone","parseZone","preParsePostFormat","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","get$1","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","valueOf$1","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","argWithSuffix","argThresholds","withSuffix","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","toFixed","proto$2","toIsoString","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","factory","tar","dequal","foo","ctor","Uint8Array","DataView","byteLength","getInt8","useSafeState","getBasePlacement","getWindow","isElement","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","getUAString","uaData","userAgentData","brands","brand","isLayoutViewport","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","visualViewport","addVisualOffsets","offsetTop","getLayoutRect","rootNode","getRootNode","isSameNode","getNodeName","nodeName","isTableElement","getDocumentElement","getParentNode","assignedSlot","getTrueOffsetParent","offsetParent","getOffsetParent","isFirefox","currentNode","transform","perspective","contain","willChange","getContainingBlock","getMainAxisFromPlacement","within","mathMax","mathMin","mergePaddingObject","paddingObject","expandToHashMap","hashMap","auto","basePlacements","clippingParents","viewport","reference","variationPlacements","placements","modifierPhases","phase","_state$modifiersData$","arrowElement","arrow","popperOffsets","modifiersData","basePlacement","toPaddingObject","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","axisProp","centerOffset","effect","_options$element","requires","requiresIfExists","getVariation","unsetSides","mapToStyles","_Object$assign2","popperRect","variation","gpuAcceleration","adaptive","roundOffsets","isFixed","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","win","heightProp","widthProp","_Object$assign","commonStyles","_ref4","roundOffsetsByDPR","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","strategy","attributes","_options$scroll","_options$resize","scrollParents","scrollParent","getOppositePlacement","getOppositeVariationPlacement","getWindowScroll","scrollLeft","pageXOffset","pageYOffset","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflowX","overflowY","getScrollParent","listScrollParents","_element$ownerDocumen","isBody","updatedList","rectToClientRect","getClientRectFromMixedType","clippingParent","html","layoutViewport","getViewportRect","clientTop","clientLeft","getInnerBoundingClientRect","winScroll","scrollWidth","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","contextElement","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","check","fittingPlacement","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","_options$offset","invertDistance","skidding","distanceAndSkiddingToXY","_data$state$placement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","getNodeScroll","modifiers","visited","modifier","depModifier","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","orderedModifiers","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","orderModifiers","merged","existing","mergeByName","_ref3$options","cleanupFn","noopFn","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","createPopper","computeStyles","eventListeners","disabledApplyStylesModifier","ariaDescribedByModifier","ids","_popper$getAttribute","EMPTY_MODIFIERS","referenceElement","popperElement","prevModifiers","popperInstanceRef","_popperInstanceRef$cu","_popperInstanceRef$cu2","popperState","updateModifier","nextModifiers","getRefTarget","InitialTriggerEvents","mouseup","useClickOutside","onClickOutside","clickTrigger","preventMouseClickOutsideRef","waitingForTrigger","handleMouseCapture","isLeftClickEvent","handleInitialMouse","handleMouse","currentEvent","removeInitialTriggerListener","removeMouseCaptureListener","removeMouseListener","mobileSafariHackListeners","toModifierArray","mergeOptionsWithPopperConfig","_modifiers$eventListe","_modifiers$preventOve","_modifiers$preventOve2","_modifiers$offset","_modifiers$arrow","enableEvents","fixed","toModifierMap","attachArrowRef","hasShownRef","placementOverride","enableEventListeners","shouldUsePopper","metadata","arrowProps","handleKeyDown","resolveContainerRef","ImperativeTransition","exited","setExited","onTransition","isInitialRef","handleTransition","stale","isStale","useTransition","renderTransition","runTransition","useModalManager","getManager","isTopModal","setDialogRef","setBackdropRef","onBackdropClick","runBackdropTransition","providedManager","containerRef","onResolved","resolvedRef","setRef","earlyRef","nextRef","useWaitForDOMRef","prevShow","lastFocusRef","useImperativeHandle","handleShow","removeKeydownListenerRef","handleDocumentKeyDown","removeFocusListenerRef","handleEnforceFocus","currentActiveElement","_lastFocusRef$current","handleBackdropClick","keyCode","backdropElement","createPortal","Manager","emulateTransitionEnd","called","handle","bubbles","createEvent","initEvent","triggerEvent","removeEmulate","createChainedFunction","MARGINS","getDefaultDimensionValue","elem","collapseStyles","getDimensionValue","computedDimension","MAX_DELAY_MS","setChainedTimeout","handleRef","timeoutAtMs","delayMs","useTimeout","ToastFade","ToastContext","onClose","ToastHeader","Toast","autohide","bg","delayRef","onCloseRef","autohideTimeout","autohideToast","autohideFunc","toastContext","hasAnimation","toast","ToastBody","propIsEnumerable","test1","test2","fromCharCode","test3","letter","shouldUseNative","createThunkMiddleware","_regeneratorRuntime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","makeInvokeMethod","tryCatch","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","mark","awrap","async","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","isarray","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","defaultDelimiter","delimiter","escaped","group","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","encode","pretty","encodeURIComponent","attachKeys","re","endsWithDelimiter","regexpToRegexp","arrayToRegexp","stringToRegexp","isOlderPart","act","req","getGroupKey","lvl","scanTreeObject","treeLeafKey","tree","objIndex","reduced","childKey","normalizeTreeToArray","maxVal","ikeys","groupKey","grp","mainGrp","mainValue","addKeys","tmpRef","getPath","ak","widthCache","getBounds","shouldDrawCaption","levels","captions","isLeaf","contents","fonts","hoverFont","optFont","getFontFromOptions","labelSize","fontsKey","mapKey","measureLabelSize","lblToDraw","labelToDraw","fitRatio","toFonts","optColor","xyPoint","calculateX","calculateXYLabel","lhs","drawLabel","oColor","oAlign","oFont","drawCaption","TreemapElement","dividers","lineCapStyle","drawDivider","getDims","itm","s2","ar","d1","d2","getX","iw","_ix","buildRow","dims","sum","_iy","level","gs","groupSum","Rect","ih","nsum","maxd2","totd1","getNewStat","nmin","nmax","stat","setStat","StatArray","_hist","nstat","compareAspectRatio","oldStat","newStat","os2","ns2","or","squarify","rectangle","gsum","rows","gval","pushIf","flatten","scaleRect","sq","sp","sp2","arrayNotEqual","TreemapController","_groups","_rectChanged","r2","sumKeys","_prevTree","mainRect","glen","recur","gidx","pg","gdata","gsq","bw","subRect","buildData","dataItem","beforeRegister","pkg","ver","requireVersion","afterRegister","tooltipPlugin","treemap","afterUnregister","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","nextTick","browser","env","argv","versions","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","umask","paramsSerializer","serializedParams","hashmarkIndex","request","response","isAxiosError","description","fileName","lineNumber","columnNumber","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","onCanceled","requestData","requestHeaders","cancelToken","auth","username","password","unescape","Authorization","btoa","fullPath","baseURL","onloadend","responseHeaders","getAllResponseHeaders","responseText","statusText","open","onreadystatechange","readyState","responseURL","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","setRequestHeader","onDownloadProgress","onUploadProgress","upload","send","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","isSafari","isJsons","isArrays","jsonsHeaders","json","jsons2arrays","jsons","headerLabels","headerKeys","header","getHeaderValue","foundValue","elementOrEmpty","joiner","enclosingCharacter","arrays2csv","jsons2csv","string2csv","toCSV","buildURI","uFEFF","csv","blob","Blob","dataURI","URL","webkitURL","createObjectURL","PropsNotForwarded","_react","_propTypes","__esModule","filename","asyncOnClick","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","$","$L","$u","$x","$offset","$d","$y","$M","$D","$W","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","$g","$locale","weekStart","$set","YY","YYYY","MMM","MMMM","DD","ddd","dddd","HH","SSS","toUTCString","$i","isDayjs","en","Ls","Spinner","bsSpinnerPrefix","super_","prefilter","rhs","kind","groupCollapsed","log","groupEnd","logger","actionTransformer","titleFormatter","collapsed","started","startedTime","took","stateTransformer","errorTransformer","predicate","logErrors","diffPredicate","performance","DeepDiff","observableDiff","applyDiff","applyChange","revertChange","isConflict","noConflict","transformer","createLogger","Fragment","StrictMode","Profiler","q","Suspense","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","refs","updater","isReactComponent","isPureReactComponent","__self","__source","$$typeof","_owner","escape","_status","_result","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","IsSomeRendererActing","PureComponent","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","createFactory","createRef","lazy","_payload","aa","ba","ca","da","ea","ha","ia","ja","ka","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","oa","pa","qa","ma","na","la","setAttributeNS","xlinkHref","ra","ta","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","Qa","tag","_render","Ra","Sa","Ta","Va","_valueTracker","setValue","stopTracking","Ua","Wa","checked","Xa","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","controlled","$a","ab","bb","eb","db","selected","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","textContent","kb","mathml","svg","lb","mb","nb","ob","namespaceURI","innerHTML","firstChild","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeType","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","rb","tb","ub","menuitem","br","embed","hr","img","keygen","link","track","wbr","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","$b","memoizedState","dehydrated","ac","cc","sibling","bc","dc","ec","fc","hc","ic","jc","kc","lc","mc","nc","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","sc","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","hydrate","containerInfo","xc","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","LN2","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","nd","od","charCode","pd","qd","rd","_reactName","_targetInst","isDefaultPrevented","returnValue","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","timeStamp","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","pageX","pageY","getModifierState","zd","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Meta","Shift","Pd","Qd","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","targetTouches","changedTouches","Xd","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","email","tel","ne","oe","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","nextSibling","Me","Ne","HTMLIFrameElement","contentWindow","Oe","contentEditable","Pe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Ye","Ze","Yb","$e","af","bf","cf","df","Nb","ef","ff","parentWindow","gf","hf","je","char","ke","jf","kf","lf","mf","nf","__html","of","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","cg","dg","eg","fg","hg","ig","jg","kg","mg","ng","og","qg","rg","sg","childLanes","tg","firstContext","lanes","ug","vg","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","yg","zg","eventTime","lane","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","Ng","UNSAFE_componentWillReceiveProps","Og","UNSAFE_componentWillMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","Vg","Wg","Xg","Yg","Zg","ah","bh","ch","dh","eh","fh","gh","memoizedProps","revealOrder","jh","kh","mh","nh","oh","pendingProps","ph","qh","rh","sh","uh","_workInProgressVersionPrimary","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","getSnapshot","setSnapshot","Oh","Ph","Qh","Rh","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","di","readContext","useDeferredValue","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","qi","ri","pendingContext","Bi","Ci","Di","Ei","si","retryLane","ti","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","tail","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onclick","createElementNS","createTextNode","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","aj","bj","onCommitFiberUnmount","cj","dj","ej","fj","gj","hj","insertBefore","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","qj","rj","sj","tj","uj","vj","wj","ck","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","bk","dk","rangeCount","focusedElem","selectionRange","ek","createRange","setStart","removeAllRanges","addRange","setEnd","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","lk","mk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hasAttribute","sk","uk","kk","hk","unstable_observedBits","unmount","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","isDisabled","supportsFiber","inject","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","jsx","jsxs","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","propFullName","secret","getShim","ReactPropTypes","bigint","symbol","arrayOf","instanceOf","objectOf","checkPropTypes","validators","_createChainableTypeChecker2","validator","_createChainableTypeChecker","validate","checkType","componentNameSafe","propFullNameSafe","chainedCheckType","Axios","mergeConfig","axios","createInstance","defaultConfig","instanceConfig","CancelToken","isCancel","VERSION","spread","InterceptorManager","dispatchRequest","interceptors","assertOptions","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","responseInterceptorChain","newConfig","onFulfilled","onRejected","getUri","use","eject","transformData","throwIfCancellationRequested","throwIfRequested","fns","normalizedName","write","expires","domain","secure","cookie","toGMTString","decodeURIComponent","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","originURL","msie","urlParsingNode","resolveURL","protocol","hostname","port","requestURL","deprecatedWarnings","formatMessage","opt","schema","allowUnknown","executor","resolvePromise","onfulfilled","webpackPolyfill","paths","actions","defaultRenderer","emptyRenderer","defaultColumn","Cell","minWidth","mergeProps","propList","makePropGetter","userProps","handlePropGetter","reduceHooks","allowUndefined","loopHooks","ensurePluginOrder","befores","pluginName","afters","functionalUpdate","old","useGetLatest","safeUseLayoutEffect","useMountedLayoutEffect","mountedRef","makeRenderer","Comp","flexRender","linkColumnStructure","depth","assignColumnAccessor","flattenColumns","flattenBy","accessor","accessorPath","def","pathObj","pathObjCache","flattenDeep","newArr","reOpenBracket","reCloseBracket","pathPart","decorateColumn","userDefaultColumn","originalWidth","makeHeaderGroups","allColumns","additionalHeaderProperties","headerGroups","scanColumns","getUID","headerGroup","parentColumns","hasParents","newParent","latestParentColumn","originalId","placeholderOf","getFirstDefined","flat","recurse","expandRows","manualExpandedKey","expanded","expandSubRows","expandedRows","handleRow","addToExpandedRows","isExpanded","canExpand","subRows","getFilterMethod","userFilterTypes","filterTypes","shouldAutoRemoveFilter","autoRemove","unpreparedAccessWarning","defaultGetTableProps","defaultGetTableBodyProps","defaultGetHeaderProps","colSpan","totalVisibleHeaderCount","defaultGetFooterProps","defaultGetHeaderGroupProps","defaultGetFooterGroupProps","defaultGetRowProps","defaultGetCellProps","cell","makeDefaultPluginHooks","useOptions","stateReducers","useControlledState","columnsDeps","allColumnsDeps","accessValue","materializedColumns","materializedColumnsDeps","useInstanceAfterData","visibleColumns","visibleColumnsDeps","headerGroupsDeps","useInstanceBeforeDimensions","useInstance","prepareRow","getTableProps","getTableBodyProps","getHeaderGroupProps","getFooterGroupProps","getHeaderProps","getFooterProps","getRowProps","getCellProps","useFinalInstance","resetHiddenColumns","toggleHideColumn","setHiddenColumns","toggleHideAllColumns","useColumnVisibility","getToggleHiddenProps","defaultGetToggleHiddenProps","getToggleHideAllColumnsProps","defaultGetToggleHideAllColumnsProps","hiddenColumns","onChange","toggleHidden","isVisible","allColumnsHidden","indeterminate","columnId","handleColumn","parentVisible","subColumn","subHeader","flatHeaders","getHooks","autoResetHiddenColumns","getInstance","getAutoResetHiddenColumns","defaultInitialState","defaultColumnInstance","defaultReducer","defaultGetSubRows","defaultGetRowId","defaultUseControlledState","applyDefaults","getSubRows","getRowId","stateReducer","calculateHeaderWidths","sumTotalMinWidth","sumTotalWidth","sumTotalMaxWidth","sumTotalFlexWidth","subHeaders","totalLeft","totalMinWidth","totalMaxWidth","totalFlexWidth","canResize","accessRowsForColumn","flatRows","rowsById","accessValueHooks","originalRow","rowIndex","accessRow","parentRows","originalSubRows","cells","resetExpanded","toggleRowExpanded","toggleAllRowsExpanded","useExpanded","getToggleAllRowsExpandedProps","defaultGetToggleAllRowsExpandedProps","getToggleRowExpandedProps","defaultGetToggleRowExpandedProps","isAllRowsExpanded","rowId","setExpanded","exists","shouldExist","paginateExpandedRows","autoResetExpanded","getAutoResetExpanded","expandedDepth","maxDepth","splitId","preExpandedRows","filterValue","rowValue","exactText","exactTextCase","includesAll","includesSome","includesValue","resetFilters","setFilter","setAllFilters","useFilters","filters","filterMethod","previousfilter","newFilter","manualFilters","defaultCanFilter","disableFilters","autoResetFilters","columnDefaultCanFilter","columnDisableFilters","canFilter","found","filteredFlatRows","filteredRowsById","filterRows","filteredRows","filteredSoFar","preFilteredRows","getAutoResetFilters","preFilteredFlatRows","preFilteredRowsById","resetGlobalFilter","setGlobalFilter","useGlobalFilter","globalFilter","manualGlobalFilter","globalFilterValue","autoResetGlobalFilter","disableGlobalFilter","columnDisableGlobalFilter","filterableColumns","globalFilteredRows","globalFilteredFlatRows","globalFilteredRowsById","getAutoResetGlobalFilter","preGlobalFilteredRows","preGlobalFilteredFlatRows","preGlobalFilteredRowsById","aggregatedValues","nums","emptyArray","emptyObject","resetGroupBy","setGroupBy","toggleGroupBy","useGroupBy","getGroupByToggleProps","defaultGetGroupByToggleProps","groupBy","canGroupBy","resolvedGroupBy","groupByColumns","nonGroupByColumns","isGrouped","groupedIndex","defaultUserAggregations","groupByFn","defaultGroupByFn","manualGroupBy","aggregations","userAggregations","autoResetGroupBy","disableGroupBy","defaultCanGroupBy","defaultColumnGroupBy","defaultGroupBy","columnDisableGroupBy","Aggregated","existingGroupBy","groupedFlatRows","groupedRowsById","onlyGroupedFlatRows","onlyGroupedRowsById","nonGroupedFlatRows","nonGroupedRowsById","groupedRows","groupUpRecursively","parentId","rowGroupsMap","groupByVal","leafRows","aggregateFn","aggregate","groupedValues","leafValues","columnValue","aggregateValue","aggregateValueFn","groupByID","subRow","getAutoResetGroupBy","preGroupedRows","preGroupedFlatRow","preGroupedRowsById","allCells","isPlaceholder","isAggregated","resKey","reSplitAlphaNumeric","compareBasic","getRowValuesByColumnID","row1","row2","rowA","rowB","an","bn","combo","alower","blower","replaceNonNumeric","resetSortBy","setSortBy","toggleSortBy","clearSortBy","sortType","sortDescFirst","useSortBy","getSortByToggleProps","defaultGetSortByToggleProps","isMultiSortEvent","canSort","disableMultiSort","sortBy","sortAction","multi","disableSortRemove","disableMultiRemove","maxMultiSortColCount","existingSortBy","existingIndex","hasDescDefined","newSortBy","orderByFn","defaultOrderByFn","userSortTypes","sortTypes","manualSortBy","defaultCanSort","disableSortBy","autoResetSortBy","defaultColumnCanSort","columnDisableSortBy","columnSort","isSorted","sortedIndex","isSortedDesc","sortedFlatRows","availableSortBy","sortData","sortedData","sortMethod","sortInverted","sortedRows","getAutoResetSortBy","preSortedRows","preSortedFlatRows","dirs","sortFn","sortInt","resetPage","gotoPage","setPageSize","usePagination","pageSize","pageIndex","pageCount","page","newPageIndex","canNavigate","topRowIndex","autoResetPage","userPageCount","manualPagination","getAutoResetPage","pageOptions","pageStart","pageEnd","canPreviousPage","canNextPage","previousPage","nextPage","resetPivot","togglePivot","_UNSTABLE_usePivotColumns","getPivotToggleProps","defaultGetPivotToggleProps","defaultPivotColumns","canPivot","pivotColumns","setPivot","resolvedPivot","isPivotSource","uniqueValues","materialized","sourceColumns","newMaterialized","buildPivotColumns","pivotFilters","pivotColumn","columnGroup","PivotHeader","uniqueValue","isPivotGroup","pivotValue","sourceColumn","isPivoted","autoResetPivot","manaulPivot","disablePivot","defaultCanPivot","defaultColumnPivot","defaultPivot","columnDisablePivot","getAutoResetPivot","resetSelectedRows","toggleAllRowsSelected","toggleRowSelected","toggleAllPageRowsSelected","useRowSelect","getToggleRowSelectedProps","defaultGetToggleRowSelectedProps","getToggleAllRowsSelectedProps","defaultGetToggleAllRowsSelectedProps","getToggleAllPageRowsSelectedProps","defaultGetToggleAllPageRowsSelectedProps","manualRowSelectedKey","isSelected","isSomeSelected","isAllRowsSelected","selectedRowIds","isAllPageRowsSelected","setSelected","selectAll","selectSubRows","newSelectedRowIds","handleRowById","autoResetSelectedRows","selectedFlatRows","getRowIsSelected","allChildrenSelected","someSelected","getAutoResetSelectedRows","defaultInitialRowStateAccessor","defaultInitialCellStateAccessor","setRowState","setCellState","resetRowState","useRowState","initialRowStateAccessor","initialCellStateAccessor","rowState","oldRowState","oldCellState","cellState","autoResetRowState","getAutoResetRowState","resetColumnOrder","setColumnOrder","useColumnOrder","columnOrder","columnOrderCopy","columnsCopy","columnsInOrder","targetColumnId","foundIndex","columnStartResizing","columnResizing","columnDoneResizing","resetResize","useResizeColumns","getResizerProps","defaultGetResizerProps","onResizeStart","isTouchEvent","raf","mostRecentClientX","headerIdWidths","leafHeaders","recurseHeader","dispatchEnd","dispatchMove","scheduleDispatchMoveOnNextAnimationFrame","clientXPos","handlersAndEvents","mouse","moveEvent","moveHandler","upEvent","upHandler","touch","passiveIfSupported","supported","columnWidth","onTouchStart","draggable","columnWidths","isResizingColumn","percentageDeltaX","newColumnWidths","headerId","headerWidth","disableResizing","isResizing","autoResetResize","getAutoResetResize","resetResizing","cellStyles","useAbsoluteLayout","getRowStyles","totalColumnsWidth","useBlockLayout","useFlexLayout","totalColumnsMinWidth","useGridLayout","gridTemplateColumns","gridLayout","startWidths","getElementWidth","minWidths","maxWidths","headerIdGridWidths","defaultFn","defaultWait","debounceRef","getDefaultFn","getDefaultWait","userColumns","getStateReducer","reducerState","allColumnsQueue","initialRows","visibleColumnsDep","totalColumnsMaxWidth","footerGroups","CSVLink","CSVDownload","_Download2","_interopRequireDefault","_Link2","_react2","_core","_metaProps","_possibleConstructorReturn","specs","isAsync","msSaveOrOpenBlob","csvData","msSaveBlob","proceed","handleLegacy","handleAsyncClick","handleSyncClick","_props2","download","NavbarBrand","NavbarCollapse","NavbarToggle","NavbarOffcanvas","NavbarText","Navbar","expand","sticky","collapseOnSelect","handleCollapse","expandClass","Brand"],"mappings":"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","file":"static/js/2.25a2874d.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/*!\n * Chart.js v3.9.1\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\n */\nfunction noop() {}\nconst uid = (function() {\n let id = 0;\n return function() {\n return id++;\n };\n}());\nfunction isNullOrUndef(value) {\n return value === null || typeof value === 'undefined';\n}\nfunction isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\nconst isNumberFinite = (value) => (typeof value === 'number' || value instanceof Number) && isFinite(+value);\nfunction finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\nfunction valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100\n : value / dimension;\nconst toDimension = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100 * dimension\n : +value;\nfunction callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\nfunction _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\nfunction clone$1(source) {\n if (isArray(source)) {\n return source.map(clone$1);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for (; k < klen; ++k) {\n target[keys[k]] = clone$1(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\nfunction _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n merge(tval, sval, options);\n } else {\n target[key] = clone$1(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [source];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n for (let i = 0; i < ilen; ++i) {\n source = sources[i];\n if (!isObject(source)) {\n continue;\n }\n const keys = Object.keys(source);\n for (let k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, source, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n return merge(target, source, {merger: _mergerIf});\n}\nfunction _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone$1(sval);\n }\n}\nfunction _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous +\n\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\nconst keyResolvers = {\n '': v => v,\n x: o => o.x,\n y: o => o.y\n};\nfunction resolveObjectKey(obj, key) {\n const resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n return resolver(obj);\n}\nfunction _getKeyResolver(key) {\n const keys = _splitKey(key);\n return obj => {\n for (const k of keys) {\n if (k === '') {\n break;\n }\n obj = obj && obj[k];\n }\n return obj;\n };\n}\nfunction _splitKey(key) {\n const parts = key.split('.');\n const keys = [];\n let tmp = '';\n for (const part of parts) {\n tmp += part;\n if (tmp.endsWith('\\\\')) {\n tmp = tmp.slice(0, -1) + '.';\n } else {\n keys.push(tmp);\n tmp = '';\n }\n }\n return keys;\n}\nfunction _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value) => typeof value !== 'undefined';\nconst isFunction = (value) => typeof value === 'function';\nconst setsEqual = (a, b) => {\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a) {\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\nfunction _isClickEvent(e) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\nconst PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction niceNum(range) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\nfunction _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b) => a - b).pop();\n return result;\n}\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return ((rounded - epsilon) <= x) && ((rounded + epsilon) >= x);\n}\nfunction _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\nfunction _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n return p;\n}\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < (-0.5 * PI)) {\n angle += TAU;\n }\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\nfunction _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\nfunction _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\nfunction _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || (sameAngleIsFullCircle && s === e)\n || (angleToStart > angleToEnd && startToAngle < endToAngle);\n}\nfunction _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\nfunction _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\nfunction _isBetween(value, start, end, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || ((index) => table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while (hi - lo > 1) {\n mid = (lo + hi) >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {lo, hi};\n}\nconst _lookupByKey = (table, key, value, last) =>\n _lookup(table, value, last\n ? index => table[index][key] <= value\n : index => table[index][key] < value);\nconst _rlookupByKey = (table, key, value) =>\n _lookup(table, value, index => table[index][key] >= value);\nfunction _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while (start < end && values[start] < min) {\n start++;\n }\n while (end > start && values[end - 1] > max) {\n end--;\n }\n return start > 0 || end < values.length\n ? values.slice(start, end)\n : values;\n}\nconst arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n arrayEvents.forEach((key) => {\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value(...args) {\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach((object) => {\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach((key) => {\n delete array[key];\n });\n delete array._chartjs;\n}\nfunction _arrayUnique(items) {\n const set = new Set();\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n set.add(items[i]);\n }\n if (set.size === ilen) {\n return items;\n }\n return Array.from(set);\n}\n\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\nconst requestAnimFrame = (function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}());\nfunction throttled(fn, thisArg, updateFn) {\n const updateArgs = updateFn || ((args) => Array.prototype.slice.call(args));\n let ticking = false;\n let args = [];\n return function(...rest) {\n args = updateArgs(rest);\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, () => {\n ticking = false;\n fn.apply(thisArg, args);\n });\n }\n };\n}\nfunction debounce(fn, delay) {\n let timeout;\n return function(...args) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\nconst _toLeftRightCenter = (align) => align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\nconst _alignStartEnd = (align, start, end) => align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\nconst _textX = (align, left, right, rtl) => {\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\nfunction _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n const pointCount = points.length;\n let start = 0;\n let count = pointCount;\n if (meta._sorted) {\n const {iScale, _parsed} = meta;\n const axis = iScale.axis;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(Math.min(\n _lookupByKey(_parsed, iScale.axis, min).lo,\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo),\n 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(Math.max(\n _lookupByKey(_parsed, iScale.axis, max, true).hi + 1,\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1),\n start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n return {start, count};\n}\nfunction _scaleRangesChanged(meta) {\n const {xScale, yScale, _scaleRanges} = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min\n\t\t|| _scaleRanges.xmax !== xScale.max\n\t\t|| _scaleRanges.ymin !== yScale.min\n\t\t|| _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nconst atEdge = (t) => t === 0 || t === 1;\nconst elasticIn = (t, s, p) => -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p) => Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\nconst effects = {\n linear: t => t,\n easeInQuad: t => t * t,\n easeOutQuad: t => -t * (t - 2),\n easeInOutQuad: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t\n : -0.5 * ((--t) * (t - 2) - 1),\n easeInCubic: t => t * t * t,\n easeOutCubic: t => (t -= 1) * t * t + 1,\n easeInOutCubic: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t\n : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: t => t * t * t * t,\n easeOutQuart: t => -((t -= 1) * t * t * t - 1),\n easeInOutQuart: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t\n : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: t => t * t * t * t * t,\n easeOutQuint: t => (t -= 1) * t * t * t * t + 1,\n easeInOutQuint: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t * t\n : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: t => -Math.cos(t * HALF_PI) + 1,\n easeOutSine: t => Math.sin(t * HALF_PI),\n easeInOutSine: t => -0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: t => (t === 0) ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: t => (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: t => atEdge(t) ? t : t < 0.5\n ? 0.5 * Math.pow(2, 10 * (t * 2 - 1))\n : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: t => (t >= 1) ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: t => Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: t => ((t /= 0.5) < 1)\n ? -0.5 * (Math.sqrt(1 - t * t) - 1)\n : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: t => atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: t => atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic(t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t :\n t < 0.5\n ? 0.5 * elasticIn(t * 2, s, p)\n : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack(t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack(t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n },\n easeInBounce: t => 1 - effects.easeOutBounce(1 - t),\n easeOutBounce(t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < (1 / d)) {\n return m * t * t;\n }\n if (t < (2 / d)) {\n return m * (t -= (1.5 / d)) * t + 0.75;\n }\n if (t < (2.5 / d)) {\n return m * (t -= (2.25 / d)) * t + 0.9375;\n }\n return m * (t -= (2.625 / d)) * t + 0.984375;\n },\n easeInOutBounce: t => (t < 0.5)\n ? effects.easeInBounce(t * 2) * 0.5\n : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5,\n};\n\n/*!\n * @kurkle/color v0.2.1\n * https://github.com/kurkle/color#readme\n * (c) 2022 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v\n ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n : undefined;\n}\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return ((g - b) / d) + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (\n Array.isArray(a)\n ? f(a[0], a[1], a[2])\n : f(a, b, c)\n ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255\n ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n : `hsl(${h}, ${s}%, ${l}%)`;\n}\nconst map = {\n x: 'dark',\n Z: 'light',\n Y: 're',\n X: 'blu',\n W: 'gr',\n V: 'medium',\n U: 'slate',\n A: 'ee',\n T: 'ol',\n S: 'or',\n B: 'ra',\n C: 'lateg',\n D: 'ights',\n R: 'in',\n Q: 'turquois',\n E: 'hi',\n P: 'ro',\n O: 'al',\n N: 'le',\n M: 'de',\n L: 'yello',\n F: 'en',\n K: 'ch',\n G: 'arks',\n H: 'ea',\n I: 'ightg',\n J: 'wh'\n};\nconst names$1 = {\n OiceXe: 'f0f8ff',\n antiquewEte: 'faebd7',\n aqua: 'ffff',\n aquamarRe: '7fffd4',\n azuY: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '0',\n blanKedOmond: 'ffebcd',\n Xe: 'ff',\n XeviTet: '8a2be2',\n bPwn: 'a52a2a',\n burlywood: 'deb887',\n caMtXe: '5f9ea0',\n KartYuse: '7fff00',\n KocTate: 'd2691e',\n cSO: 'ff7f50',\n cSnflowerXe: '6495ed',\n cSnsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: 'ffff',\n xXe: '8b',\n xcyan: '8b8b',\n xgTMnPd: 'b8860b',\n xWay: 'a9a9a9',\n xgYF: '6400',\n xgYy: 'a9a9a9',\n xkhaki: 'bdb76b',\n xmagFta: '8b008b',\n xTivegYF: '556b2f',\n xSange: 'ff8c00',\n xScEd: '9932cc',\n xYd: '8b0000',\n xsOmon: 'e9967a',\n xsHgYF: '8fbc8f',\n xUXe: '483d8b',\n xUWay: '2f4f4f',\n xUgYy: '2f4f4f',\n xQe: 'ced1',\n xviTet: '9400d3',\n dAppRk: 'ff1493',\n dApskyXe: 'bfff',\n dimWay: '696969',\n dimgYy: '696969',\n dodgerXe: '1e90ff',\n fiYbrick: 'b22222',\n flSOwEte: 'fffaf0',\n foYstWAn: '228b22',\n fuKsia: 'ff00ff',\n gaRsbSo: 'dcdcdc',\n ghostwEte: 'f8f8ff',\n gTd: 'ffd700',\n gTMnPd: 'daa520',\n Way: '808080',\n gYF: '8000',\n gYFLw: 'adff2f',\n gYy: '808080',\n honeyMw: 'f0fff0',\n hotpRk: 'ff69b4',\n RdianYd: 'cd5c5c',\n Rdigo: '4b0082',\n ivSy: 'fffff0',\n khaki: 'f0e68c',\n lavFMr: 'e6e6fa',\n lavFMrXsh: 'fff0f5',\n lawngYF: '7cfc00',\n NmoncEffon: 'fffacd',\n ZXe: 'add8e6',\n ZcSO: 'f08080',\n Zcyan: 'e0ffff',\n ZgTMnPdLw: 'fafad2',\n ZWay: 'd3d3d3',\n ZgYF: '90ee90',\n ZgYy: 'd3d3d3',\n ZpRk: 'ffb6c1',\n ZsOmon: 'ffa07a',\n ZsHgYF: '20b2aa',\n ZskyXe: '87cefa',\n ZUWay: '778899',\n ZUgYy: '778899',\n ZstAlXe: 'b0c4de',\n ZLw: 'ffffe0',\n lime: 'ff00',\n limegYF: '32cd32',\n lRF: 'faf0e6',\n magFta: 'ff00ff',\n maPon: '800000',\n VaquamarRe: '66cdaa',\n VXe: 'cd',\n VScEd: 'ba55d3',\n VpurpN: '9370db',\n VsHgYF: '3cb371',\n VUXe: '7b68ee',\n VsprRggYF: 'fa9a',\n VQe: '48d1cc',\n VviTetYd: 'c71585',\n midnightXe: '191970',\n mRtcYam: 'f5fffa',\n mistyPse: 'ffe4e1',\n moccasR: 'ffe4b5',\n navajowEte: 'ffdead',\n navy: '80',\n Tdlace: 'fdf5e6',\n Tive: '808000',\n TivedBb: '6b8e23',\n Sange: 'ffa500',\n SangeYd: 'ff4500',\n ScEd: 'da70d6',\n pOegTMnPd: 'eee8aa',\n pOegYF: '98fb98',\n pOeQe: 'afeeee',\n pOeviTetYd: 'db7093',\n papayawEp: 'ffefd5',\n pHKpuff: 'ffdab9',\n peru: 'cd853f',\n pRk: 'ffc0cb',\n plum: 'dda0dd',\n powMrXe: 'b0e0e6',\n purpN: '800080',\n YbeccapurpN: '663399',\n Yd: 'ff0000',\n Psybrown: 'bc8f8f',\n PyOXe: '4169e1',\n saddNbPwn: '8b4513',\n sOmon: 'fa8072',\n sandybPwn: 'f4a460',\n sHgYF: '2e8b57',\n sHshell: 'fff5ee',\n siFna: 'a0522d',\n silver: 'c0c0c0',\n skyXe: '87ceeb',\n UXe: '6a5acd',\n UWay: '708090',\n UgYy: '708090',\n snow: 'fffafa',\n sprRggYF: 'ff7f',\n stAlXe: '4682b4',\n tan: 'd2b48c',\n teO: '8080',\n tEstN: 'd8bfd8',\n tomato: 'ff6347',\n Qe: '40e0d0',\n viTet: 'ee82ee',\n JHt: 'f5deb3',\n wEte: 'ffffff',\n wEtesmoke: 'f5f5f5',\n Lw: 'ffff00',\n LwgYF: '9acd32'\n};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (\n v.a < 255\n ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n : `rgb(${v.r}, ${v.g}, ${v.b})`\n );\n}\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {r: 0, g: 0, b: 0, a: 255};\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {r: input[0], g: input[1], b: input[2], a: 255};\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\nfunction index_esm(input) {\n return new Color(input);\n}\n\nfunction isPatternOrGradient(value) {\n if (value && typeof value === 'object') {\n const type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n return false;\n}\nfunction color(value) {\n return isPatternOrGradient(value) ? value : index_esm(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value)\n ? value\n : index_esm(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\nfunction getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for (let i = 0, n = keys.length; i < n; ++i) {\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\nclass Defaults {\n constructor(_descriptors) {\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context) => context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options) => getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options) => getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options) => getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true,\n includeInvisible: false\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n this.describe(_descriptors);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get() {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set(value) {\n this[privateName] = value;\n }\n }\n });\n }\n}\nvar defaults = new Defaults({\n _scriptable: (name) => !name.startsWith('on'),\n _indexable: (name) => name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false,\n }\n});\n\nfunction toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\nfunction _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n if (thing !== undefined && thing !== null && isArray(thing) !== true) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\nfunction _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\nfunction clearCanvas(canvas, ctx) {\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n drawPointLegend(ctx, options, x, y, null);\n}\nfunction drawPointLegend(ctx, options, x, y, w) {\n let type, xOffset, yOffset, size, cornerRadius, width;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch (style) {\n default:\n if (w) {\n ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n } else {\n ctx.arc(x, y, radius, 0, TAU);\n }\n ctx.closePath();\n break;\n case 'triangle':\n ctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n ctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n width = w ? w / 2 : size;\n ctx.rect(x - width, y - size, 2 * width, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n case 'rectRot':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + yOffset, y - xOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n case 'cross':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'star':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n rad += QUARTER_PI;\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'line':\n xOffset = w ? w / 2 : Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\nfunction _isPointInArea(point, area, margin) {\n margin = margin || 0.5;\n return !area || (point && point.x > area.left - margin && point.x < area.right + margin &&\n\t\tpoint.y > area.top - margin && point.y < area.bottom + margin);\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\nfunction _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\nfunction _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(\n flip ? previous.cp1x : previous.cp2x,\n flip ? previous.cp1y : previous.cp2y,\n flip ? target.cp2x : target.cp1x,\n flip ? target.cp2y : target.cp1y,\n target.x,\n target.y);\n}\nfunction renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [text];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += font.lineHeight;\n }\n ctx.restore();\n}\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\nfunction addRoundedRectPath(ctx, rect) {\n const {x, y, w, h, radius} = rect;\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, -HALF_PI, PI, true);\n ctx.lineTo(x, y + h - radius.bottomLeft);\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n ctx.lineTo(x + w, y + radius.topRight);\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nconst LINE_HEIGHT = new RegExp(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\nconst FONT_STYLE = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);\nfunction toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch (matches[3]) {\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = v => +v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value)\n ? objProps\n ? prop => valueOrDefault(value[prop], value[props[prop]])\n : prop => value[prop]\n : () => value;\n for (const prop of keys) {\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\nfunction toTRBL(value) {\n return _readValueToProps(value, {top: 'y', right: 'x', bottom: 'y', left: 'x'});\n}\nfunction toTRBLCorners(value) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\nfunction toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\nfunction toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = '';\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\nfunction resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\nfunction _addGrace(minmax, grace, beginAtZero) {\n const {min, max} = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value, add) => beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\nfunction _createResolver(scopes, prefixes = [''], rootScopes = scopes, fallback, getTarget = () => scopes[0]) {\n if (!defined(fallback)) {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: rootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope) => _createResolver([scope, ...scopes], prefixes, rootScopes, fallback),\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete target._keys;\n delete scopes[0][prop];\n return true;\n },\n get(target, prop) {\n return _cached(target, prop,\n () => _resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n has(target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n set(target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value;\n delete target._keys;\n return true;\n }\n });\n}\nfunction _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx) => _attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope) => _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete proxy[prop];\n return true;\n },\n get(target, prop, receiver) {\n return _cached(target, prop,\n () => _resolveWithContext(target, prop, receiver));\n },\n getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys\n ? Reflect.has(proxy, prop) ? {enumerable: true, configurable: true} : undefined\n : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n set(target, prop, value) {\n proxy[prop] = value;\n delete target[prop];\n return true;\n }\n });\n}\nfunction _descriptors(proxy, defaults = {scriptable: true, indexable: true}) {\n const {_scriptable = defaults.scriptable, _indexable = defaults.indexable, _allKeys = defaults.allKeys} = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : () => _scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : () => _indexable\n };\n}\nconst readKey = (prefix, name) => prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value) => isObject(value) && prop !== 'adapters' &&\n (Object.getPrototypeOf(value) === null || value.constructor === Object);\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop)) {\n return target[prop];\n }\n const value = resolve();\n target[prop] = value;\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n let value = _proxy[prop];\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, value, target, receiver) {\n const {_proxy, _context, _subProxy, _stack} = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n value = value(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n if (defined(_context.index) && isIndexable(prop)) {\n value = value[_context.index % value.length];\n } else if (isObject(value[0])) {\n const arr = value;\n const scopes = _proxy._scopes.filter(s => s !== arr);\n value = [];\n for (const item of arr) {\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent) => key === true ? parent\n : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n for (const parent of parentScopes) {\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (defined(fallback) && fallback !== key && fallback !== parentFallback) {\n return fallback;\n }\n } else if (scope === false && defined(parentFallback) && key !== parentFallback) {\n return null;\n }\n }\n return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [...parentScopes, ...rootScopes];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (defined(fallback) && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [''], rootScopes, fallback,\n () => subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n return value;\n }\n return target;\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes) {\n value = _resolve(readKey(prefix, prop), scopes);\n if (defined(value)) {\n return needsSubResolver(prop, value)\n ? createSubResolver(scopes, proxy, prop, value)\n : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes) {\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (defined(value)) {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes) {\n for (const key of Object.keys(scope).filter(k => !k.startsWith('_'))) {\n set.add(key);\n }\n }\n return Array.from(set);\n}\nfunction _parseObjectDataRadialScale(meta, data, start, count) {\n const {iScale} = meta;\n const {key = 'r'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n r: iScale.parse(resolveObjectKey(item, key), index)\n };\n }\n return parsed;\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i) => i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis) => indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01;\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\nfunction monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\nfunction splineCurveMonotone(points, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i]\n : !pointAfter ? deltaK[i - 1]\n : (sign(deltaK[i - 1]) !== sign(deltaK[i])) ? 0\n : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\nfunction _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n if (options.spanGaps) {\n points = points.filter((pt) => !pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(\n prev,\n point,\n points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen],\n options.tension\n );\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\nfunction _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\nfunction _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\nfunction parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = (element) => window.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = ['top', 'right', 'bottom', 'left'];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for (let i = 0; i < 4; i++) {\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target) => (x > 0 || y > 0) && (!target || !target.shadowRoot);\nfunction getCanvasPosition(e, canvas) {\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const {offsetX, offsetY} = source;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {x, y, box};\n}\nfunction getRelativePosition(evt, chart) {\n if ('native' in evt) {\n return evt;\n }\n const {canvas, currentDevicePixelRatio} = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const {x, y, box} = getCanvasPosition(evt, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let {width, height} = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect();\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = v => Math.round(v * 10) / 10;\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let {width, height} = containerSize;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n height = round1(width / 2);\n }\n return {\n width,\n height\n };\n}\nfunction retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = Math.floor(chart.height * pixelRatio);\n const deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = deviceHeight / pixelRatio;\n chart.width = deviceWidth / pixelRatio;\n const canvas = chart.canvas;\n if (canvas.style && (forceStyle || (!canvas.style.height && !canvas.style.width))) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio\n || canvas.height !== deviceHeight\n || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\nconst supportsEventListenerOptions = (function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive() {\n passiveSupported = true;\n return false;\n }\n };\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {\n }\n return passiveSupported;\n}());\nfunction readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\nfunction _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\nfunction _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y\n : mode === 'after' ? t < 1 ? p1.y : p2.y\n : t > 0 ? p2.y : p1.y\n };\n}\nfunction _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {x: p1.cp2x, y: p1.cp2y};\n const cp2 = {x: p2.cp1x, y: p2.cp1y};\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n return {\n x(x) {\n return rectX + rectX + width - x;\n },\n setWidth(w) {\n width = w;\n },\n textAlign(align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus(x, value) {\n return x - value;\n },\n leftForLtr(x, itemWidth) {\n return x - itemWidth;\n },\n };\n};\nconst getLeftToRightAdapter = function() {\n return {\n x(x) {\n return x;\n },\n setWidth(w) {\n },\n textAlign(align) {\n return align;\n },\n xPlus(x, value) {\n return x + value;\n },\n leftForLtr(x, _itemWidth) {\n return x;\n },\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction'),\n ];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle,\n };\n }\n return {\n between: _isBetween,\n compare: (a, b) => a - b,\n normalize: x => x\n };\n}\nfunction normalizeSegment({start, end, count, loop, style}) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const {property, start: startBound, end: endBound} = bounds;\n const {between, normalize} = propertyFn(property);\n const count = points.length;\n let {start, end, loop} = segment;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {start, end, loop, style: segment.style};\n}\nfunction _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n const {property, start: startBound, end: endBound} = bounds;\n const count = points.length;\n const {compare, between, normalize} = propertyFn(property);\n const {start, end, loop, style} = getSegment(segment, points, bounds);\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = () => between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = () => compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = () => inside || startIsBefore();\n const shouldStop = () => !inside || endIsBefore();\n for (let i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({start: subStart, end: i, loop, count, style}));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({start: subStart, end, loop, count, style}));\n }\n return result;\n}\nfunction _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for (let i = 0; i < segments.length; i++) {\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n while (start < count && points[start].skip) {\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while (end > start && points[end % count].skip) {\n end--;\n }\n end %= count;\n return {start, end};\n}\nfunction solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for (end = start + 1; end <= max; ++end) {\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({start: start % count, end: (end - 1) % count, loop});\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({start: start % count, end: last % count, loop});\n }\n return result;\n}\nfunction _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const {start, end} = findStartAndEnd(points, count, loop, spanGaps);\n if (spanGaps === true) {\n return splitByStyles(line, [{start, end, loop}], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\nfunction splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\nfunction doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const {_datasetIndex: datasetIndex, options: {spanGaps}} = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n s += count;\n while (points[s % count].skip) {\n s -= dir;\n }\n while (points[e % count].skip) {\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({start: s % count, end: e % count, loop: l, style: st});\n prevStyle = st;\n start = e % count;\n }\n }\n for (const segment of segments) {\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for (i = start + 1; i <= segment.end; i++) {\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n return prevStyle && JSON.stringify(style) !== JSON.stringify(prevStyle);\n}\n\nexport { _isPointInArea as $, _factorize as A, finiteOrDefault as B, callback as C, _addGrace as D, _limitValue as E, toDegrees as F, _measureText as G, HALF_PI as H, _int16Range as I, _alignPixel as J, toPadding as K, clipArea as L, renderText as M, unclipArea as N, toFont as O, PI as P, each as Q, _toLeftRightCenter as R, _alignStartEnd as S, TAU as T, overrides as U, merge as V, _capitalize as W, getRelativePosition as X, _rlookupByKey as Y, _lookupByKey as Z, _arrayUnique as _, resolve as a, toLineHeight as a$, getAngleFromPoint as a0, getMaximumSize as a1, _getParentNode as a2, readUsedSize as a3, throttled as a4, supportsEventListenerOptions as a5, _isDomSupported as a6, descriptors as a7, isFunction as a8, _attachContext as a9, getRtlAdapter as aA, overrideTextDirection as aB, _textX as aC, restoreTextDirection as aD, drawPointLegend as aE, noop as aF, distanceBetweenPoints as aG, _setMinAndMaxByKey as aH, niceNum as aI, almostWhole as aJ, almostEquals as aK, _decimalPlaces as aL, _longestText as aM, _filterBetween as aN, _lookup as aO, isPatternOrGradient as aP, getHoverColor as aQ, clone$1 as aR, _merger as aS, _mergerIf as aT, _deprecated as aU, _splitKey as aV, toFontString as aW, splineCurve as aX, splineCurveMonotone as aY, getStyle as aZ, fontString as a_, _createResolver as aa, _descriptors as ab, mergeIf as ac, uid as ad, debounce as ae, retinaScale as af, clearCanvas as ag, setsEqual as ah, _elementsEqual as ai, _isClickEvent as aj, _isBetween as ak, _readValueToProps as al, _updateBezierControlPoints as am, _computeSegments as an, _boundSegments as ao, _steppedInterpolation as ap, _bezierInterpolation as aq, _pointInLine as ar, _steppedLineTo as as, _bezierCurveTo as at, drawPoint as au, addRoundedRectPath as av, toTRBL as aw, toTRBLCorners as ax, _boundSegment as ay, _normalizeAngle as az, isArray as b, PITAU as b0, INFINITY as b1, RAD_PER_DEG as b2, QUARTER_PI as b3, TWO_THIRDS_PI as b4, _angleDiff as b5, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, createContext as h, isObject as i, defined as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, _getStartAndCountOfVisiblePoints as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _scaleRangesChanged as w, isNumber as x, _parseObjectDataRadialScale as y, log10 as z };\n","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import classNames from 'classnames';\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst propTypes = {\n /**\n * Specify whether the feedback is for valid or invalid fields\n *\n * @type {('valid'|'invalid')}\n */\n type: PropTypes.string,\n /** Display feedback as a tooltip. */\n tooltip: PropTypes.bool,\n as: PropTypes.elementType\n};\nconst Feedback = /*#__PURE__*/React.forwardRef(\n// Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n({\n as: Component = 'div',\n className,\n type = 'valid',\n tooltip = false,\n ...props\n}, ref) => /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref,\n className: classNames(className, `${type}-${tooltip ? 'tooltip' : 'feedback'}`)\n}));\nFeedback.displayName = 'Feedback';\nFeedback.propTypes = propTypes;\nexport default Feedback;","import * as React from 'react';\n\n// TODO\n\nconst FormContext = /*#__PURE__*/React.createContext({});\nexport default FormContext;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormCheckInput = /*#__PURE__*/React.forwardRef(({\n id,\n bsPrefix,\n className,\n type = 'checkbox',\n isValid = false,\n isInvalid = false,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'input',\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-check-input');\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref,\n type: type,\n id: id || controlId,\n className: classNames(className, bsPrefix, isValid && 'is-valid', isInvalid && 'is-invalid')\n });\n});\nFormCheckInput.displayName = 'FormCheckInput';\nexport default FormCheckInput;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormCheckLabel = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n htmlFor,\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-check-label');\n return /*#__PURE__*/_jsx(\"label\", {\n ...props,\n ref: ref,\n htmlFor: htmlFor || controlId,\n className: classNames(className, bsPrefix)\n });\n});\nFormCheckLabel.displayName = 'FormCheckLabel';\nexport default FormCheckLabel;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport Feedback from './Feedback';\nimport FormCheckInput from './FormCheckInput';\nimport FormCheckLabel from './FormCheckLabel';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { hasChildOfType } from './ElementChildren';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst FormCheck = /*#__PURE__*/React.forwardRef(({\n id,\n bsPrefix,\n bsSwitchPrefix,\n inline = false,\n reverse = false,\n disabled = false,\n isValid = false,\n isInvalid = false,\n feedbackTooltip = false,\n feedback,\n feedbackType,\n className,\n style,\n title = '',\n type = 'checkbox',\n label,\n children,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as = 'input',\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-check');\n bsSwitchPrefix = useBootstrapPrefix(bsSwitchPrefix, 'form-switch');\n const {\n controlId\n } = useContext(FormContext);\n const innerFormContext = useMemo(() => ({\n controlId: id || controlId\n }), [controlId, id]);\n const hasLabel = !children && label != null && label !== false || hasChildOfType(children, FormCheckLabel);\n const input = /*#__PURE__*/_jsx(FormCheckInput, {\n ...props,\n type: type === 'switch' ? 'checkbox' : type,\n ref: ref,\n isValid: isValid,\n isInvalid: isInvalid,\n disabled: disabled,\n as: as\n });\n return /*#__PURE__*/_jsx(FormContext.Provider, {\n value: innerFormContext,\n children: /*#__PURE__*/_jsx(\"div\", {\n style: style,\n className: classNames(className, hasLabel && bsPrefix, inline && `${bsPrefix}-inline`, reverse && `${bsPrefix}-reverse`, type === 'switch' && bsSwitchPrefix),\n children: children || /*#__PURE__*/_jsxs(_Fragment, {\n children: [input, hasLabel && /*#__PURE__*/_jsx(FormCheckLabel, {\n title: title,\n children: label\n }), feedback && /*#__PURE__*/_jsx(Feedback, {\n type: feedbackType,\n tooltip: feedbackTooltip,\n children: feedback\n })]\n })\n })\n });\n});\nFormCheck.displayName = 'FormCheck';\nexport default Object.assign(FormCheck, {\n Input: FormCheckInput,\n Label: FormCheckLabel\n});","import * as React from 'react';\n\n/**\n * Iterates through children that are typically specified as `props.children`,\n * but only maps over children that are \"valid elements\".\n *\n * The mapFunction provided index will be normalised to the components mapped,\n * so an invalid component would not increase the index.\n *\n */\nfunction map(children, func) {\n let index = 0;\n return React.Children.map(children, child => /*#__PURE__*/React.isValidElement(child) ? func(child, index++) : child);\n}\n\n/**\n * Iterates through children that are \"valid elements\".\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child with the index reflecting the position relative to \"valid components\".\n */\nfunction forEach(children, func) {\n let index = 0;\n React.Children.forEach(children, child => {\n if ( /*#__PURE__*/React.isValidElement(child)) func(child, index++);\n });\n}\n\n/**\n * Finds whether a component's `children` prop includes a React element of the\n * specified type.\n */\nfunction hasChildOfType(children, type) {\n return React.Children.toArray(children).some(child => /*#__PURE__*/React.isValidElement(child) && child.type === type);\n}\nexport { map, forEach, hasChildOfType };","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport warning from 'warning';\nimport Feedback from './Feedback';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormControl = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n type,\n size,\n htmlSize,\n id,\n className,\n isValid = false,\n isInvalid = false,\n plaintext,\n readOnly,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'input',\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-control');\n let classes;\n if (plaintext) {\n classes = {\n [`${bsPrefix}-plaintext`]: true\n };\n } else {\n classes = {\n [bsPrefix]: true,\n [`${bsPrefix}-${size}`]: size\n };\n }\n process.env.NODE_ENV !== \"production\" ? warning(controlId == null || !id, '`controlId` is ignored on `` when `id` is specified.') : void 0;\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n type: type,\n size: htmlSize,\n ref: ref,\n readOnly: readOnly,\n id: id || controlId,\n className: classNames(className, classes, isValid && `is-valid`, isInvalid && `is-invalid`, type === 'color' && `${bsPrefix}-color`)\n });\n});\nFormControl.displayName = 'FormControl';\nexport default Object.assign(FormControl, {\n Feedback\n});","import createWithBsPrefix from './createWithBsPrefix';\nexport default createWithBsPrefix('form-floating');","import * as React from 'react';\nimport { useMemo } from 'react';\nimport FormContext from './FormContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormGroup = /*#__PURE__*/React.forwardRef(({\n controlId,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const context = useMemo(() => ({\n controlId\n }), [controlId]);\n return /*#__PURE__*/_jsx(FormContext.Provider, {\n value: context,\n children: /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref\n })\n });\n});\nFormGroup.displayName = 'FormGroup';\nexport default FormGroup;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport warning from 'warning';\nimport Col from './Col';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n column: false,\n visuallyHidden: false\n};\nconst FormLabel = /*#__PURE__*/React.forwardRef(({\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'label',\n bsPrefix,\n column,\n visuallyHidden,\n className,\n htmlFor,\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-label');\n let columnClass = 'col-form-label';\n if (typeof column === 'string') columnClass = `${columnClass} ${columnClass}-${column}`;\n const classes = classNames(className, bsPrefix, visuallyHidden && 'visually-hidden', column && columnClass);\n process.env.NODE_ENV !== \"production\" ? warning(controlId == null || !htmlFor, '`controlId` is ignored on `` when `htmlFor` is specified.') : void 0;\n htmlFor = htmlFor || controlId;\n if (column) return /*#__PURE__*/_jsx(Col, {\n ref: ref,\n as: \"label\",\n className: classes,\n htmlFor: htmlFor,\n ...props\n });\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/label-has-for, jsx-a11y/label-has-associated-control\n _jsx(Component, {\n ref: ref,\n className: classes,\n htmlFor: htmlFor,\n ...props\n })\n );\n});\nFormLabel.displayName = 'FormLabel';\nFormLabel.defaultProps = defaultProps;\nexport default FormLabel;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport FormContext from './FormContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormRange = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n id,\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-range');\n return /*#__PURE__*/_jsx(\"input\", {\n ...props,\n type: \"range\",\n ref: ref,\n className: classNames(className, bsPrefix),\n id: id || controlId\n });\n});\nFormRange.displayName = 'FormRange';\nexport default FormRange;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport FormContext from './FormContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormSelect = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n size,\n htmlSize,\n className,\n isValid = false,\n isInvalid = false,\n id,\n ...props\n}, ref) => {\n const {\n controlId\n } = useContext(FormContext);\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-select');\n return /*#__PURE__*/_jsx(\"select\", {\n ...props,\n size: htmlSize,\n ref: ref,\n className: classNames(className, bsPrefix, size && `${bsPrefix}-${size}`, isValid && `is-valid`, isInvalid && `is-invalid`),\n id: id || controlId\n });\n});\nFormSelect.displayName = 'FormSelect';\nexport default FormSelect;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst FormText = /*#__PURE__*/React.forwardRef(\n// Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n({\n bsPrefix,\n className,\n as: Component = 'small',\n muted,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-text');\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref,\n className: classNames(className, bsPrefix, muted && 'text-muted')\n });\n});\nFormText.displayName = 'FormText';\nexport default FormText;","import * as React from 'react';\nimport FormCheck from './FormCheck';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Switch = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/_jsx(FormCheck, {\n ...props,\n ref: ref,\n type: \"switch\"\n}));\nSwitch.displayName = 'Switch';\nexport default Object.assign(Switch, {\n Input: FormCheck.Input,\n Label: FormCheck.Label\n});","import classNames from 'classnames';\nimport * as React from 'react';\nimport FormGroup from './FormGroup';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst FloatingLabel = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n children,\n controlId,\n label,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-floating');\n return /*#__PURE__*/_jsxs(FormGroup, {\n ref: ref,\n className: classNames(className, bsPrefix),\n controlId: controlId,\n ...props,\n children: [children, /*#__PURE__*/_jsx(\"label\", {\n htmlFor: controlId,\n children: label\n })]\n });\n});\nFloatingLabel.displayName = 'FloatingLabel';\nexport default FloatingLabel;","import classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport FormCheck from './FormCheck';\nimport FormControl from './FormControl';\nimport FormFloating from './FormFloating';\nimport FormGroup from './FormGroup';\nimport FormLabel from './FormLabel';\nimport FormRange from './FormRange';\nimport FormSelect from './FormSelect';\nimport FormText from './FormText';\nimport Switch from './Switch';\nimport FloatingLabel from './FloatingLabel';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst propTypes = {\n /**\n * The Form `ref` will be forwarded to the underlying element,\n * which means, unless it's rendered `as` a composite component,\n * it will be a DOM node, when resolved.\n *\n * @type {ReactRef}\n * @alias ref\n */\n _ref: PropTypes.any,\n /**\n * Mark a form as having been validated. Setting it to `true` will\n * toggle any validation styles on the forms elements.\n */\n validated: PropTypes.bool,\n as: PropTypes.elementType\n};\nconst Form = /*#__PURE__*/React.forwardRef(({\n className,\n validated,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'form',\n ...props\n}, ref) => /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref,\n className: classNames(className, validated && 'was-validated')\n}));\nForm.displayName = 'Form';\nForm.propTypes = propTypes;\nexport default Object.assign(Form, {\n Group: FormGroup,\n Control: FormControl,\n Floating: FormFloating,\n Check: FormCheck,\n Switch,\n Label: FormLabel,\n Text: FormText,\n Range: FormRange,\n Select: FormSelect,\n FloatingLabel\n});","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function useCol({\n as,\n bsPrefix,\n className,\n ...props\n}) {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'col');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const spans = [];\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let span;\n let offset;\n let order;\n if (typeof propValue === 'object' && propValue != null) {\n ({\n span,\n offset,\n order\n } = propValue);\n } else {\n span = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (span) spans.push(span === true ? `${bsPrefix}${infix}` : `${bsPrefix}${infix}-${span}`);\n if (order != null) classes.push(`order${infix}-${order}`);\n if (offset != null) classes.push(`offset${infix}-${offset}`);\n });\n return [{\n ...props,\n className: classNames(className, ...spans, ...classes)\n }, {\n as,\n bsPrefix,\n spans\n }];\n}\nconst Col = /*#__PURE__*/React.forwardRef(\n// Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n(props, ref) => {\n const [{\n className,\n ...colProps\n }, {\n as: Component = 'div',\n bsPrefix,\n spans\n }] = useCol(props);\n return /*#__PURE__*/_jsx(Component, {\n ...colProps,\n ref: ref,\n className: classNames(className, !spans.length && bsPrefix)\n });\n});\nCol.displayName = 'Col';\nexport default Col;","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const DEFAULT_BREAKPOINTS = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport const DEFAULT_MIN_BREAKPOINT = 'xs';\nconst ThemeContext = /*#__PURE__*/React.createContext({\n prefixes: {},\n breakpoints: DEFAULT_BREAKPOINTS,\n minBreakpoint: DEFAULT_MIN_BREAKPOINT\n});\nconst {\n Consumer,\n Provider\n} = ThemeContext;\nfunction ThemeProvider({\n prefixes = {},\n breakpoints = DEFAULT_BREAKPOINTS,\n minBreakpoint = DEFAULT_MIN_BREAKPOINT,\n dir,\n children\n}) {\n const contextValue = useMemo(() => ({\n prefixes: {\n ...prefixes\n },\n breakpoints,\n minBreakpoint,\n dir\n }), [prefixes, breakpoints, minBreakpoint, dir]);\n return /*#__PURE__*/_jsx(Provider, {\n value: contextValue,\n children: children\n });\n}\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n const {\n prefixes\n } = useContext(ThemeContext);\n return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\nexport function useBootstrapBreakpoints() {\n const {\n breakpoints\n } = useContext(ThemeContext);\n return breakpoints;\n}\nexport function useBootstrapMinBreakpoint() {\n const {\n minBreakpoint\n } = useContext(ThemeContext);\n return minBreakpoint;\n}\nexport function useIsRTL() {\n const {\n dir\n } = useContext(ThemeContext);\n return dir === 'rtl';\n}\nfunction createBootstrapComponent(Component, opts) {\n if (typeof opts === 'string') opts = {\n prefix: opts\n };\n const isClassy = Component.prototype && Component.prototype.isReactComponent;\n // If it's a functional component make sure we don't break it with a ref\n const {\n prefix,\n forwardRefAs = isClassy ? 'ref' : 'innerRef'\n } = opts;\n const Wrapped = /*#__PURE__*/React.forwardRef(({\n ...props\n }, ref) => {\n props[forwardRefAs] = ref;\n const bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n bsPrefix: bsPrefix\n });\n });\n Wrapped.displayName = `Bootstrap(${Component.displayName || Component.name})`;\n return Wrapped;\n}\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","import React from 'react';\nexport var ReactReduxContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar nullListeners = {\n notify: function notify() {},\n get: function get() {\n return [];\n }\n};\nexport function createSubscription(store, parentSub) {\n var unsubscribe;\n var listeners = nullListeners;\n\n function addNestedSub(listener) {\n trySubscribe();\n return listeners.subscribe(listener);\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return Boolean(unsubscribe);\n }\n\n function trySubscribe() {\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n if (unsubscribe) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n var subscription = {\n addNestedSub: addNestedSub,\n notifyNestedSubs: notifyNestedSubs,\n handleChangeWrapper: handleChangeWrapper,\n isSubscribed: isSubscribed,\n trySubscribe: trySubscribe,\n tryUnsubscribe: tryUnsubscribe,\n getListeners: function getListeners() {\n return listeners;\n }\n };\n return subscription;\n}","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = createSubscription(store);\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useIsomorphicLayoutEffect(function () {\n var subscription = contextValue.subscription;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const { store } = useReduxContext()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n}","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport var useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n *
\r\n * {value}\r\n * \r\n *
\r\n * )\r\n * }\r\n */\n\nexport var useDispatch = /*#__PURE__*/createDispatchHook();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return createSubscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references\n\n if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {\n selectedState = newSelectedState;\n } else {\n selectedState = latestSelectedState.current;\n }\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed\n\n if (newStoreState === latestStoreState.current) {\n return;\n }\n\n var _newSelectedState = latestSelector.current(newStoreState);\n\n if (equalityFn(_newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = _newSelectedState;\n latestStoreState.current = newStoreState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n\n if (typeof selector !== 'function') {\n throw new Error(\"You must pass a function as a selector to useSelector\");\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(\"You must pass a function as an equality function to useSelector\");\n }\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
{counter}
\r\n * }\r\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();","export * from './exports';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch'; // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };","module.exports = require('./lib/axios');","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n fluid: false\n};\nconst Container = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n fluid,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n className,\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'container');\n const suffix = typeof fluid === 'string' ? `-${fluid}` : '-fluid';\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, fluid ? `${prefix}${suffix}` : prefix)\n });\n});\nContainer.displayName = 'Container';\nContainer.defaultProps = defaultProps;\nexport default Container;","/*!\n * Chart.js v3.9.1\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as color, d as defaults, i as isObject, b as isArray, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as createContext, j as defined, s as sign, k as isNullOrUndef, _ as _arrayUnique, t as toRadians, m as toPercentage, n as toDimension, T as TAU, o as formatNumber, p as _angleBetween, H as HALF_PI, P as PI, q as _getStartAndCountOfVisiblePoints, w as _scaleRangesChanged, x as isNumber, y as _parseObjectDataRadialScale, z as log10, A as _factorize, B as finiteOrDefault, C as callback, D as _addGrace, E as _limitValue, F as toDegrees, G as _measureText, I as _int16Range, J as _alignPixel, K as toPadding, L as clipArea, M as renderText, N as unclipArea, O as toFont, Q as each, R as _toLeftRightCenter, S as _alignStartEnd, U as overrides, V as merge, W as _capitalize, X as getRelativePosition, Y as _rlookupByKey, Z as _lookupByKey, $ as _isPointInArea, a0 as getAngleFromPoint, a1 as getMaximumSize, a2 as _getParentNode, a3 as readUsedSize, a4 as throttled, a5 as supportsEventListenerOptions, a6 as _isDomSupported, a7 as descriptors, a8 as isFunction, a9 as _attachContext, aa as _createResolver, ab as _descriptors, ac as mergeIf, ad as uid, ae as debounce, af as retinaScale, ag as clearCanvas, ah as setsEqual, ai as _elementsEqual, aj as _isClickEvent, ak as _isBetween, al as _readValueToProps, am as _updateBezierControlPoints, an as _computeSegments, ao as _boundSegments, ap as _steppedInterpolation, aq as _bezierInterpolation, ar as _pointInLine, as as _steppedLineTo, at as _bezierCurveTo, au as drawPoint, av as addRoundedRectPath, aw as toTRBL, ax as toTRBLCorners, ay as _boundSegment, az as _normalizeAngle, aA as getRtlAdapter, aB as overrideTextDirection, aC as _textX, aD as restoreTextDirection, aE as drawPointLegend, aF as noop, aG as distanceBetweenPoints, aH as _setMinAndMaxByKey, aI as niceNum, aJ as almostWhole, aK as almostEquals, aL as _decimalPlaces, aM as _longestText, aN as _filterBetween, aO as _lookup } from './chunks/helpers.segment.mjs';\nexport { d as defaults } from './chunks/helpers.segment.mjs';\n\nclass Animator {\n constructor() {\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n callbacks.forEach(fn => fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n this._request = requestAnimFrame.call(window, () => {\n this._update();\n this._request = null;\n if (this._running) {\n this._refresh();\n }\n });\n }\n _update(date = Date.now()) {\n let remaining = 0;\n this._charts.forEach((anims, chart) => {\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n for (; i >= 0; --i) {\n item = items[i];\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n remaining += items.length;\n });\n this._lastDate = date;\n if (remaining === 0) {\n this._running = false;\n }\n }\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur) => Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n for (; i >= 0; --i) {\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\nvar animator = new Animator();\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean(from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color(from, to, factor) {\n const c0 = color(from || transparent);\n const c1 = c0.valid && color(to || transparent);\n return c1 && c1.valid\n ? c1.mix(c0, factor).hexString()\n : to;\n },\n number(from, to, factor) {\n return from + (to - from) * factor;\n }\n};\nclass Animation {\n constructor(cfg, target, prop, to) {\n const currentValue = target[prop];\n to = resolve([cfg.to, to, currentValue, cfg.from]);\n const from = resolve([cfg.from, currentValue, to]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n active() {\n return this._active;\n }\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([cfg.to, to, currentValue, cfg.from]);\n this._from = resolve([cfg.from, currentValue, to]);\n }\n }\n cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n this._active = from !== to && (loop || (elapsed < duration));\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n factor = (elapsed / duration) % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n this._target[prop] = this._fn(from, to, factor);\n }\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej) => {\n promises.push({res, rej});\n });\n }\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for (let i = 0; i < promises.length; i++) {\n promises[i][method]();\n }\n }\n}\n\nconst numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nconst colors = ['color', 'borderColor', 'backgroundColor'];\ndefaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined,\n});\nconst animationOptions = Object.keys(defaults.animation);\ndefaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name) => name !== 'onProgress' && name !== 'onComplete' && name !== 'fn',\n});\ndefaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n },\n});\ndefaults.describe('animations', {\n _fallback: 'animation',\n});\ndefaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n },\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: v => v | 0\n },\n }\n }\n});\nclass Animations {\n constructor(chart, config) {\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n const animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach(key => {\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions) {\n resolved[option] = cfg[option];\n }\n (isArray(cfg.properties) && cfg.properties || [key]).forEach((prop) => {\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(() => {\n target.options = newOptions;\n }, () => {\n });\n }\n return animations;\n }\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n for (i = props.length - 1; i >= 0; --i) {\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n const animations = this._createAnimations(target, values);\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for (let i = 0; i < keys.length; i++) {\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {$shared: false, $animations: {}});\n }\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\nfunction toClip(value) {\n let t, r, b, l;\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n keys.push(metasets[i].index);\n }\n return keys;\n}\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n if (value === null) {\n return;\n }\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isNumberFinite(otherValue) && (singleMode || (value === 0 || sign(value) === sign(otherValue)))) {\n value += otherValue;\n }\n }\n return value;\n}\nfunction convertObjectDataToArray(data) {\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n adata[i] = {\n x: key,\n y: data[key]\n };\n }\n return adata;\n}\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || (stacked === undefined && meta.stack !== undefined);\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n const {min, max, minDefined, maxDefined} = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()) {\n const value = stack[meta.index];\n if ((positive && value > 0) || (!positive && value < 0)) {\n return meta.index;\n }\n }\n return null;\n}\nfunction updateStacks(controller, parsed) {\n const {chart, _cachedMeta: meta} = controller;\n const stacks = chart._stacks || (chart._stacks = {});\n const {iScale, vScale, index: datasetIndex} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n for (let i = 0; i < ilen; ++i) {\n const item = parsed[i];\n const {[iAxis]: index, [vAxis]: value} = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n }\n}\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter(key => scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n return createContext(parent,\n {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n }\n );\n}\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\nfunction clearStacks(meta, items) {\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n items = items || meta._parsed;\n for (const parsed of items) {\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n }\n}\nconst isDirectUpdateMode = (mode) => mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared) => shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart) => canStack && !meta.hidden && meta._stacked\n && {keys: getSortedDatasetIndices(chart, true), values: null};\nclass DatasetController {\n constructor(chart, datasetIndex) {\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.supportsDecimation = false;\n this.$context = undefined;\n this._syncList = [];\n this.initialize();\n }\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n }\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n const chooseId = (axis, x, y, r) => axis === 'x' ? x : axis === 'r' ? r : y;\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale\n ? meta.vScale\n : meta.iScale;\n }\n reset() {\n this._update('reset');\n }\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n if (isObject(data)) {\n this._data = convertObjectDataToArray(data);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, this);\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n addElements() {\n const meta = this._cachedMeta;\n this._dataCheck();\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n this._dataCheck();\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n this._resyncElements(resetNewElements);\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n }\n }\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n this._cachedDataOpts = {};\n }\n parse(start, count) {\n const {_cachedMeta: meta, _data: data} = this;\n const {iScale, _stacked} = meta;\n const iAxis = iScale.axis;\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n const isNotInOrderComparedToPrev = () => cur[iAxis] === null || (prev && cur[iAxis] < prev[iAxis]);\n for (i = 0; i < count; ++i) {\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n parsePrimitiveData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]\n };\n return applyStack(stack, value, meta.index, {mode});\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n const {min: otherMin, max: otherMax} = getUserBounds(otherScale);\n let i, parsed;\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n for (i = 0; i < ilen; ++i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n break;\n }\n }\n if (sorted) {\n for (i = ilen - 1; i >= 0; --i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n for (i = 0, ilen = parsed.length; i < ilen; ++i) {\n value = parsed[i][scale.axis];\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n getMaxOverflow() {\n return false;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n _update(mode) {\n const meta = this._cachedMeta;\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n update(mode) {}\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || (elements.length - start);\n const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n let i;\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n for (i = start; i < start + count; ++i) {\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n for (i = 0; i < active.length; ++i) {\n active[i].draw(ctx, area);\n }\n }\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset\n ? this.resolveDatasetElementOptions(mode)\n : this.resolveDataElementOptions(index || 0, mode);\n }\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context ||\n (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context ||\n (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [`${elementType}Hover`, 'hover', elementType, ''] : [elementType, ''];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n const context = () => this.getContext(index, active);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n return values;\n }\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n _getSharedOptions(start, mode) {\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const previouslySharedOptions = this._sharedOptions;\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions) || (sharedOptions !== previouslySharedOptions);\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n return {sharedOptions, includeOptions};\n }\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n options: (!active && this.getSharedOptions(options)) || options\n });\n }\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n for (const [method, arg1, arg2] of this._syncList) {\n this[method](arg1, arg2);\n }\n this._syncList = [];\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n if (count) {\n this.parse(0, count);\n }\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n const move = (arr) => {\n arr.length += count;\n for (i = arr.length - 1; i >= end; i--) {\n arr[i] = arr[i - count];\n }\n };\n move(data);\n for (i = start; i < end; ++i) {\n data[i] = new this.dataElementType();\n }\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n updateElements(element, start, count, mode) {}\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n this.chart._dataChanges.push([this.index, ...args]);\n }\n _onDataPush() {\n const count = arguments.length;\n this._sync(['_insertElements', this.getDataset().data.length - count, count]);\n }\n _onDataPop() {\n this._sync(['_removeElements', this._cachedMeta.data.length - 1, 1]);\n }\n _onDataShift() {\n this._sync(['_removeElements', 0, 1]);\n }\n _onDataSplice(start, count) {\n if (count) {\n this._sync(['_removeElements', start, count]);\n }\n const newCount = arguments.length - 2;\n if (newCount) {\n this._sync(['_insertElements', start, newCount]);\n }\n }\n _onDataUnshift() {\n this._sync(['_insertElements', 0, arguments.length]);\n }\n}\nDatasetController.defaults = {};\nDatasetController.prototype.datasetElementType = null;\nDatasetController.prototype.dataElementType = null;\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n for (let i = 0, ilen = visibleMetas.length; i < ilen; i++) {\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b) => a - b));\n }\n return scale._cache.$bar;\n}\nfunction computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = () => {\n if (curr === 32767 || curr === -32768) {\n return;\n }\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n for (i = 0, ilen = values.length; i < ilen; ++i) {\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n prev = undefined;\n for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) {\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n return min;\n}\nfunction computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - (size / 2)\n };\n}\nfunction computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n if (next === null) {\n next = curr + curr - prev;\n }\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {start, end, reverse, top, bottom};\n}\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n if (edge === true) {\n properties.borderSkipped = {top: true, right: true, bottom: true, left: true};\n return;\n }\n const {start, end, reverse, top, bottom} = borderProps(properties);\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction setInflateAmount(properties, {inflateAmount}, ratio) {\n properties.inflateAmount = inflateAmount === 'auto'\n ? ratio === 1 ? 0.33 : 0\n : inflateAmount;\n}\nclass BarController extends DatasetController {\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseObjectData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n getMaxOverflow() {\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {iScale, vScale} = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom)\n ? '[' + custom.start + ', ' + custom.end + ']'\n : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const {index, _cachedMeta: {vScale}} = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n for (let i = start; i < start + count; i++) {\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {base, head: base} : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || (index === stack._top || index === stack._bottom),\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n _getStacks(last, dataIndex) {\n const {iScale} = this._cachedMeta;\n const metasets = iScale.getMatchingVisibleMetas(this._type)\n .filter(meta => meta.controller.options.grouped);\n const stacked = iScale.options.stacked;\n const stacks = [];\n const skipNull = (meta) => {\n const parsed = meta.controller.getParsed(dataIndex);\n const val = parsed && parsed[meta.vScale.axis];\n if (isNullOrUndef(val) || isNaN(val)) {\n return true;\n }\n };\n for (const meta of metasets) {\n if (dataIndex !== undefined && skipNull(meta)) {\n continue;\n }\n if (stacked === false || stacks.indexOf(meta.stack) === -1 ||\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\n stacks.push(meta.stack);\n }\n if (meta.index === last) {\n break;\n }\n }\n if (!stacks.length) {\n stacks.push(undefined);\n }\n return stacks;\n }\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = (name !== undefined)\n ? stacks.indexOf(name)\n : -1;\n return (index === -1)\n ? stacks.length - 1\n : index;\n }\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n for (i = 0, ilen = meta.data.length; i < ilen; ++i) {\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n _calculateBarValuePixels(index) {\n const {_cachedMeta: {vScale, _stacked}, options: {base: baseValue, minBarLength}} = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n if (length !== value) {\n start = length - value;\n length = value;\n }\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n size = head - base;\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n const startPixel = vScale.getPixelForDecimal(0);\n const endPixel = vScale.getPixelForDecimal(1);\n const min = Math.min(startPixel, endPixel);\n const max = Math.max(startPixel, endPixel);\n base = Math.max(Math.min(base, max), min);\n head = base + size;\n }\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex'\n ? computeFlexCategoryTraits(index, ruler, options, stackCount)\n : computeFitCategoryTraits(index, ruler, options, stackCount);\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined);\n center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n for (; i < ilen; ++i) {\n if (this.getParsed(i)[vScale.axis] !== null) {\n rects[i].draw(this._ctx);\n }\n }\n }\n}\nBarController.id = 'bar';\nBarController.defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'base', 'width', 'height']\n }\n }\n};\nBarController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true,\n }\n }\n};\n\nclass BubbleController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {xScale, yScale} = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n return {\n label: meta.label,\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n update(mode) {\n const points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale} = this._cachedMeta;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n if (reset) {\n properties.options.radius = 0;\n }\n }\n this.updateElement(point, i, properties, mode);\n }\n }\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n if (values.$shared) {\n values = Object.assign({}, values, {$shared: false});\n }\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n}\nBubbleController.id = 'bubble';\nBubbleController.defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'borderWidth', 'radius']\n }\n }\n};\nBubbleController.overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n }\n }\n }\n }\n};\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {ratioX, ratioY, offsetX, offsetY};\n}\nclass DoughnutController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n linkScales() {}\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = (i) => +data[i];\n if (isObject(data[start])) {\n const {key = 'value'} = this._parsing;\n getter = (i) => +resolveObjectKey(data[i], key);\n }\n let i, ilen;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n meta._parsed[i] = getter(i);\n }\n }\n }\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n for (let i = 0; i < this.chart.data.datasets.length; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n return {\n rotation: min,\n circumference: max - min,\n };\n }\n update(mode) {\n const chart = this.chart;\n const {chartArea} = chart;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n const {circumference, rotation} = this._getRotationExtents();\n const {ratioX, ratioY, offsetX, offsetY} = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n meta.total = this.calculateTotal();\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if ((reset && opts.animation.animateRotate) || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n let startAngle = this._getRotation();\n let i;\n for (i = 0; i < start; ++i) {\n startAngle += this._circumference(i, reset);\n }\n for (i = start; i < start + count; ++i) {\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n }\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n for (i = 0; i < metaData.length; i++) {\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n return total;\n }\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n if (!arcs) {\n for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n break;\n }\n }\n }\n if (!arcs) {\n return 0;\n }\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n getMaxOffset(arcs) {\n let max = 0;\n for (let i = 0, ilen = arcs.length; i < ilen; ++i) {\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n for (let i = 0; i < datasetIndex; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n return ringWeightOffset;\n }\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\nDoughnutController.id = 'doughnut';\nDoughnutController.defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['circumference', 'endAngle', 'innerRadius', 'outerRadius', 'startAngle', 'x', 'y', 'offset', 'borderWidth', 'spacing']\n },\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r',\n};\nDoughnutController.descriptors = {\n _scriptable: (name) => name !== 'spacing',\n _indexable: (name) => name !== 'spacing',\n};\nDoughnutController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(tooltipItem) {\n let dataLabel = tooltipItem.label;\n const value = ': ' + tooltipItem.formattedValue;\n if (isArray(dataLabel)) {\n dataLabel = dataLabel.slice();\n dataLabel[0] += value;\n } else {\n dataLabel += value;\n }\n return dataLabel;\n }\n }\n }\n }\n};\n\nclass LineController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n this.supportsDecimation = true;\n super.initialize();\n }\n update(mode) {\n const meta = this._cachedMeta;\n const {dataset: line, data: points = [], _dataset} = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let {start, count} = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const {spanGaps, segment} = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for (let i = start; i < start + count; ++i) {\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (Math.abs(parsed[iAxis] - prevParsed[iAxis])) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\nLineController.id = 'line';\nLineController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false,\n};\nLineController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n },\n _value_: {\n type: 'linear',\n },\n }\n};\n\nclass PolarAreaController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const arcs = this._cachedMeta.data;\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n getMinMax() {\n const meta = this._cachedMeta;\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n meta.data.forEach((element, index) => {\n const parsed = this.getParsed(index).r;\n if (!isNaN(parsed) && this.chart.getDataVisibility(index)) {\n if (parsed < range.min) {\n range.min = parsed;\n }\n if (parsed > range.max) {\n range.max = parsed;\n }\n }\n });\n return range;\n }\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? (outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - (radiusLength * this.index);\n this.innerRadius = this.outerRadius - radiusLength;\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n const defaultAngle = 360 / this.countVisibleElements();\n for (i = 0; i < start; ++i) {\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for (i = start; i < start + count; i++) {\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(this.getParsed(i).r) : 0;\n angle = endAngle;\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n countVisibleElements() {\n const meta = this._cachedMeta;\n let count = 0;\n meta.data.forEach((element, index) => {\n if (!isNaN(this.getParsed(index).r) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index)\n ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle)\n : 0;\n }\n}\nPolarAreaController.id = 'polarArea';\nPolarAreaController.defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius']\n },\n },\n indexAxis: 'r',\n startAngle: 0,\n};\nPolarAreaController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(context) {\n return context.chart.data.labels[context.dataIndex] + ': ' + context.formattedValue;\n }\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n};\n\nclass PieController extends DoughnutController {\n}\nPieController.id = 'pie';\nPieController.defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n};\n\nclass RadarController extends DatasetController {\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n line.points = points;\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, this.getParsed(i).r);\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n}\nRadarController.id = 'radar';\nRadarController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n },\n};\nRadarController.overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear',\n }\n }\n};\n\nclass Element {\n constructor() {\n this.x = undefined;\n this.y = undefined;\n this.active = false;\n this.options = undefined;\n this.$animations = undefined;\n }\n tooltipPosition(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n getProps(props, final) {\n const anims = this.$animations;\n if (!final || !anims) {\n return this;\n }\n const ret = {};\n props.forEach(prop => {\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop];\n });\n return ret;\n }\n}\nElement.defaults = {};\nElement.defaultRoutes = undefined;\n\nconst formatters = {\n values(value) {\n return isArray(value) ? value : '' + value;\n },\n numeric(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue;\n if (ticks.length > 1) {\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n delta = calculateDelta(tickValue, ticks);\n }\n const logDelta = log10(Math.abs(delta));\n const numDecimal = Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n const options = {notation, minimumFractionDigits: numDecimal, maximumFractionDigits: numDecimal};\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = tickValue / (Math.pow(10, Math.floor(log10(tickValue))));\n if (remain === 1 || remain === 2 || remain === 5) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n};\nfunction calculateDelta(tickValue, ticks) {\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\nvar Ticks = {formatters};\n\ndefaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawBorder: true,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options) => options.lineWidth,\n tickColor: (_ctx, options) => options.color,\n offset: false,\n borderDash: [],\n borderDashOffset: 0.0,\n borderWidth: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2,\n }\n});\ndefaults.route('scale.ticks', 'color', '', 'color');\ndefaults.route('scale.grid', 'color', '', 'borderColor');\ndefaults.route('scale.grid', 'borderColor', '', 'borderColor');\ndefaults.route('scale.title', 'color', '', 'color');\ndefaults.describe('scale', {\n _fallback: false,\n _scriptable: (name) => !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name) => name !== 'borderDash' && name !== 'tickBorderDash',\n});\ndefaults.describe('scales', {\n _fallback: 'scale',\n});\ndefaults.describe('scale.ticks', {\n _scriptable: (name) => name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name) => name !== 'backdropPadding',\n});\n\nfunction autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const ticksLimit = tickOpts.maxTicksLimit || determineMaxTicks(scale);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\nfunction calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n const factors = _factorize(evenMajorSpacing);\n for (let i = 0, ilen = factors.length - 1; i < ilen; i++) {\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\nfunction getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\nfunction skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n spacing = Math.ceil(spacing);\n for (i = 0; i < ticks.length; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\nfunction skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n next = start;\n while (next < 0) {\n count++;\n next = Math.round(start + count * spacing);\n }\n for (i = Math.max(start, 0); i < end; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\nfunction getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n if (len < 2) {\n return false;\n }\n for (diff = arr[0], i = 1; i < len; ++i) {\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n\nconst reverseAlign = (align) => align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset) => edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nfunction sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n for (; i < len; i += increment) {\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6;\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\nfunction garbageCollect(caches, length) {\n each(caches, (cache) => {\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for (i = 0; i < gcLen; ++i) {\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\nfunction getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\nfunction getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n return (lines * font.lineHeight) + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\nfunction titleAlign(align, position, reverse) {\n let ret = _toLeftRightCenter(align);\n if ((reverse && position !== 'right') || (!reverse && position === 'right')) {\n ret = reverseAlign(ret);\n }\n return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n const {top, left, bottom, right, chart} = scale;\n const {chartArea, scales} = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {titleX, titleY, maxWidth, rotation};\n}\nclass Scale extends Element {\n constructor(cfg) {\n super();\n this.id = cfg.id;\n this.type = cfg.type;\n this.options = undefined;\n this.ctx = cfg.ctx;\n this.chart = cfg.chart;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n this.maxWidth = undefined;\n this.maxHeight = undefined;\n this.paddingTop = undefined;\n this.paddingBottom = undefined;\n this.paddingLeft = undefined;\n this.paddingRight = undefined;\n this.axis = undefined;\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n this.ticks = [];\n this._gridLineItems = null;\n this._labelItems = null;\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n this._startPixel = undefined;\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n init(options) {\n this.options = options.setContext(this.getContext());\n this.axis = options.axis;\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n parse(raw, index) {\n return raw;\n }\n getUserBounds() {\n let {_userMin, _userMax, _suggestedMin, _suggestedMax} = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n getMinMax(canStack) {\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n let range;\n if (minDefined && maxDefined) {\n return {min, max};\n }\n const metas = this.getMatchingVisibleMetas();\n for (let i = 0, ilen = metas.length; i < ilen; ++i) {\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n getTicks() {\n return this.ticks;\n }\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n beforeUpdate() {\n callback(this.options.beforeUpdate, [this]);\n }\n update(maxWidth, maxHeight, margins) {\n const {beginAtZero, grace, ticks: tickOpts} = this.options;\n const sampleSize = tickOpts.sampleSize;\n this.beforeUpdate();\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n this._maxLength = this.isHorizontal()\n ? this.width + margins.left + margins.right\n : this.height + margins.top + margins.bottom;\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n this.afterAutoSkip();\n }\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n afterUpdate() {\n callback(this.options.afterUpdate, [this]);\n }\n beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [this]);\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = 0;\n this.bottom = this.height;\n }\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n callback(this.options.afterSetDimensions, [this]);\n }\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n callback(this.options[name], [this]);\n }\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [this]);\n }\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [tick.value, i, ticks], this);\n }\n }\n afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [this]);\n }\n beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [this]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = this.ticks.length;\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid)\n\t\t\t\t- tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(\n Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)),\n Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))\n ));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [this]);\n }\n afterAutoSkip() {}\n beforeFit() {\n callback(this.options.beforeFit, [this]);\n }\n fit() {\n const minSize = {\n width: 0,\n height: 0\n };\n const {chart, options: {ticks: tickOpts, title: titleOpts, grid: gridOpts}} = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n if (tickOpts.display && this.ticks.length) {\n const {first, last, widest, highest} = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n if (isHorizontal) {\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n this._handleMargins();\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n _calculatePadding(first, last, sin, cos) {\n const {ticks: {align, padding}, position} = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else if (align !== 'inner') {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n afterFit() {\n callback(this.options.afterFit, [this]);\n }\n isHorizontal() {\n const {axis, position} = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n isFullSize() {\n return this.options.fullSize;\n }\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n this.afterTickToLabelConversion();\n }\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length);\n }\n return labelSizes;\n }\n _computeLabelSizes(ticks, length) {\n const {ctx, _longestTextCache: caches} = this;\n const widths = [];\n const heights = [];\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n for (i = 0; i < length; ++i) {\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {data: {}, gc: []};\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for (j = 0, jlen = label.length; j < jlen; ++j) {\n nestedLabel = label[j];\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n const valueAt = (idx) => ({width: widths[idx] || 0, height: heights[idx] || 0});\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights,\n };\n }\n getLabelForValue(value) {\n return value;\n }\n getPixelForValue(value, index) {\n return NaN;\n }\n getValueForPixel(pixel) {}\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n getBaseValue() {\n const {min, max} = this;\n return min < 0 && max < 0 ? max :\n min > 0 && max > 0 ? min :\n 0;\n }\n getContext(index) {\n const ticks = this.ticks || [];\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context ||\n\t\t\t\t(tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context ||\n\t\t\t(this.$context = createScaleContext(this.chart.getContext(), this));\n }\n _tickSize() {\n const optionTicks = this.options.ticks;\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal()\n ? h * cos > w * sin ? w / cos : h / sin\n : h * sin < w * cos ? h / cos : w / sin;\n }\n _isVisible() {\n const display = this.options.display;\n if (display !== 'auto') {\n return !!display;\n }\n return this.getMatchingVisibleMetas().length > 0;\n }\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const {grid, position} = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = borderOpts.drawBorder ? borderOpts.borderWidth : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for (i = 0; i < ticksLength; i += step) {\n const optsAtIndex = grid.setContext(this.getContext(i));\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = optsAtIndex.borderDash || [];\n const borderDashOffset = optsAtIndex.borderDashOffset;\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n if (lineValue === undefined) {\n continue;\n }\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset,\n });\n }\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const {position, ticks: optionTicks} = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const {align, crossAlign, padding, mirror} = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = ((chartArea.top + chartArea.bottom) / 2) + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = ((chartArea.left + chartArea.right) / 2) - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n const labelSizes = this._getLabelSizes();\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n label = tick.label;\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n let tickTextAlign = textAlign;\n if (isHorizontal) {\n x = pixel;\n if (textAlign === 'inner') {\n if (i === ilen - 1) {\n tickTextAlign = !this.options.reverse ? 'right' : 'left';\n } else if (i === 0) {\n tickTextAlign = !this.options.reverse ? 'left' : 'right';\n } else {\n tickTextAlign = 'center';\n }\n }\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n let backdrop;\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n let top = y + textOffset - labelPadding.top;\n let left = x - labelPadding.left;\n switch (textBaseline) {\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n }\n switch (textAlign) {\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n }\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor,\n };\n }\n items.push({\n rotation,\n label,\n font,\n color,\n strokeColor,\n strokeWidth,\n textOffset,\n textAlign: tickTextAlign,\n textBaseline,\n translation: [x, y],\n backdrop,\n });\n }\n return items;\n }\n _getXAxisLabelAlignment() {\n const {position, ticks} = this.options;\n const rotation = -toRadians(this.labelRotation);\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n let align = 'center';\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n } else if (ticks.align === 'inner') {\n align = 'inner';\n }\n return align;\n }\n _getYAxisLabelAlignment(tl) {\n const {position, ticks: {crossAlign, mirror, padding}} = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n let textAlign;\n let x;\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += (widest / 2);\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n return {textAlign, x};\n }\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n const chart = this.chart;\n const position = this.options.position;\n if (position === 'left' || position === 'right') {\n return {top: 0, left: this.left, bottom: chart.height, right: this.right};\n } if (position === 'top' || position === 'bottom') {\n return {top: this.top, left: 0, bottom: this.bottom, right: chart.width};\n }\n }\n drawBackground() {\n const {ctx, options: {backgroundColor}, left, top, width, height} = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex(t => t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n const drawLine = (p1, p2, style) => {\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n if (grid.display) {\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n if (grid.drawOnChartArea) {\n drawLine(\n {x: item.x1, y: item.y1},\n {x: item.x2, y: item.y2},\n item\n );\n }\n if (grid.drawTicks) {\n drawLine(\n {x: item.tx1, y: item.ty1},\n {x: item.tx2, y: item.ty2},\n {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n }\n );\n }\n }\n }\n }\n drawBorder() {\n const {chart, ctx, options: {grid}} = this;\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = grid.drawBorder ? borderOpts.borderWidth : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.borderWidth;\n ctx.strokeStyle = borderOpts.borderColor;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n if (!optionTicks.display) {\n return;\n }\n const ctx = this.ctx;\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n const tickFont = item.font;\n const label = item.label;\n if (item.backdrop) {\n ctx.fillStyle = item.backdrop.color;\n ctx.fillRect(item.backdrop.left, item.backdrop.top, item.backdrop.width, item.backdrop.height);\n }\n let y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, item);\n }\n if (area) {\n unclipArea(ctx);\n }\n }\n drawTitle() {\n const {ctx, options: {position, title, reverse}} = this;\n if (!title.display) {\n return;\n }\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n const {titleX, titleY, maxWidth, rotation} = titleArgs(this, offset, position, align);\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [{\n z: tz,\n draw: (chartArea) => {\n this.draw(chartArea);\n }\n }];\n }\n return [{\n z: gz,\n draw: (chartArea) => {\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n }, {\n z: gz + 1,\n draw: () => {\n this.drawBorder();\n }\n }, {\n z: tz,\n draw: (chartArea) => {\n this.drawLabels(chartArea);\n }\n }];\n }\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n\nclass TypedRegistry {\n constructor(type, scope, override) {\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n if (id in items) {\n return scope;\n }\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n return scope;\n }\n get(id) {\n return this.items[id];\n }\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n if (id in items) {\n delete items[id];\n }\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\nfunction registerDefaults(item, scope, parentScope) {\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n defaults.set(scope, itemDefaults);\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach(property => {\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [scope].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nclass Registry {\n constructor() {\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [this.controllers, this.scales, this.elements];\n }\n add(...args) {\n this._each('register', args);\n }\n remove(...args) {\n this._each('unregister', args);\n }\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n _each(method, args, typedRegistry) {\n [...args].forEach(arg => {\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || (reg === this.plugins && arg.id)) {\n this._exec(method, reg, arg);\n } else {\n each(arg, item => {\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n _getRegistryForType(type) {\n for (let i = 0; i < this._typedRegistries.length; i++) {\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n return this.plugins;\n }\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n}\nvar registry = new Registry();\n\nclass ScatterController extends DatasetController {\n update(mode) {\n const meta = this._cachedMeta;\n const {data: points = []} = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let {start, count} = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n if (this.options.showLine) {\n const {dataset: line, _dataset} = meta;\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n }\n this.updateElements(points, start, count, mode);\n }\n addElements() {\n const {showLine} = this.options;\n if (!this.datasetElementType && showLine) {\n this.datasetElementType = registry.getElement('line');\n }\n super.addElements();\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const {spanGaps, segment} = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for (let i = start; i < start + count; ++i) {\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (Math.abs(parsed[iAxis] - prevParsed[iAxis])) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const data = meta.data || [];\n if (!this.options.showLine) {\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n}\nScatterController.id = 'scatter';\nScatterController.defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n showLine: false,\n fill: false\n};\nScatterController.overrides = {\n interaction: {\n mode: 'point'\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(item) {\n return '(' + item.label + ', ' + item.formattedValue + ')';\n }\n }\n }\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n};\n\nvar controllers = /*#__PURE__*/Object.freeze({\n__proto__: null,\nBarController: BarController,\nBubbleController: BubbleController,\nDoughnutController: DoughnutController,\nLineController: LineController,\nPolarAreaController: PolarAreaController,\nPieController: PieController,\nRadarController: RadarController,\nScatterController: ScatterController\n});\n\nfunction abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\nclass DateAdapter {\n constructor(options) {\n this.options = options || {};\n }\n init(chartOptions) {}\n formats() {\n return abstract();\n }\n parse(value, format) {\n return abstract();\n }\n format(timestamp, format) {\n return abstract();\n }\n add(timestamp, amount, unit) {\n return abstract();\n }\n diff(a, b, unit) {\n return abstract();\n }\n startOf(timestamp, unit, weekday) {\n return abstract();\n }\n endOf(timestamp, unit) {\n return abstract();\n }\n}\nDateAdapter.override = function(members) {\n Object.assign(DateAdapter.prototype, members);\n};\nvar adapters = {\n _date: DateAdapter\n};\n\nfunction binarySearch(metaset, axis, value, intersect) {\n const {controller, data, _sorted} = metaset;\n const iScale = controller._cachedMeta.iScale;\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n return lookupMethod(data, axis, value);\n } else if (controller._sharedOptions) {\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {lo: start.lo, hi: end.hi};\n }\n }\n }\n return {lo: 0, hi: data.length - 1};\n}\nfunction evaluateInteractionItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n const {index, data} = metasets[i];\n const {lo, hi} = binarySearch(metasets[i], axis, value, intersect);\n for (let j = lo; j <= hi; ++j) {\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\nfunction getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\nfunction getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n const items = [];\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (!includeInvisible && !_isPointInArea(element, chart.chartArea, 0)) {\n return;\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n };\n evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\nfunction getNearestRadialItems(chart, position, axis, useFinalPosition) {\n let items = [];\n function evaluationFunc(element, datasetIndex, index) {\n const {startAngle, endAngle} = element.getProps(['startAngle', 'endAngle'], useFinalPosition);\n const {angle} = getAngleFromPoint(element, {x: position.x, y: position.y});\n if (_angleBetween(angle, startAngle, endAngle)) {\n items.push({element, datasetIndex, index});\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n let items = [];\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n function evaluationFunc(element, datasetIndex, index) {\n const inRange = element.inRange(position.x, position.y, useFinalPosition);\n if (intersect && !inRange) {\n return;\n }\n const center = element.getCenterPoint(useFinalPosition);\n const pointInArea = !!includeInvisible || chart.isPointInArea(center);\n if (!pointInArea && !inRange) {\n return;\n }\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [{element, datasetIndex, index}];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({element, datasetIndex, index});\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return [];\n }\n return axis === 'r' && !intersect\n ? getNearestRadialItems(chart, position, axis, useFinalPosition)\n : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\nfunction getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n const items = [];\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n evaluateInteractionItems(chart, axis, position, (element, datasetIndex, index) => {\n if (element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({element, datasetIndex, index});\n intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n }\n });\n if (intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\nvar Interaction = {\n evaluateInteractionItems,\n modes: {\n index(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'x';\n const includeInvisible = options.includeInvisible || false;\n const items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible)\n : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n const elements = [];\n if (!items.length) {\n return [];\n }\n chart.getSortedVisibleDatasetMetas().forEach((meta) => {\n const index = items[0].index;\n const element = meta.data[index];\n if (element && !element.skip) {\n elements.push({element, datasetIndex: meta.index, index});\n }\n });\n return elements;\n },\n dataset(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n let items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) :\n getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for (let i = 0; i < data.length; ++i) {\n items.push({element: data[i], datasetIndex, index: i});\n }\n }\n return items;\n },\n point(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n },\n nearest(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n },\n x(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n },\n y(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n }\n }\n};\n\nconst STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];\nfunction filterByPosition(array, position) {\n return array.filter(v => v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter(v => STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b) => {\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ?\n v0.index - v1.index :\n v0.weight - v1.weight;\n });\n}\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n box = boxes[i];\n ({position: pos, options: {stack, stackWeight = 1}} = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && (pos + stack),\n stackWeight\n });\n }\n return layoutBoxes;\n}\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts) {\n const {stack, pos, stackWeight} = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {count: 0, placed: 0, weight: 0, size: 0});\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\nfunction setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const {vBoxMaxWidth, hBoxMaxHeight} = params;\n let i, ilen, layout;\n for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n layout = layouts[i];\n const {fullSize} = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter(wrap => wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout, stacks) {\n const {pos, box} = layout;\n const maxPadding = chartArea.maxPadding;\n if (!isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {size: 0, count: 1};\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal\n ? {same: widthChanged, other: heightChanged}\n : {same: heightChanged, other: widthChanged};\n}\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n function marginForPositions(positions) {\n const margin = {left: 0, top: 0, right: 0, bottom: 0};\n positions.forEach((pos) => {\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n return horizontal\n ? marginForPositions(['left', 'right'])\n : marginForPositions(['top', 'bottom']);\n}\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n for (i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n box.update(\n layout.width || chartArea.w,\n layout.height || chartArea.h,\n getMargins(layout.horizontal, chartArea)\n );\n const {same, other} = updateDims(chartArea, params, layout, stacks);\n refit |= same && refitBoxes.length;\n changed = changed || other;\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let {x, y} = chartArea;\n for (const layout of boxes) {\n const box = layout.box;\n const stack = stacks[layout.stack] || {count: 1, placed: 0, weight: 1};\n const weight = (layout.stackWeight / stack.weight) || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n chartArea.x = x;\n chartArea.y = y;\n}\ndefaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n});\nvar layouts = {\n addBox(chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n item._layers = item._layers || function() {\n return [{\n z: 0,\n draw(chartArea) {\n item.draw(chartArea);\n }\n }];\n };\n chart.boxes.push(item);\n },\n removeBox(chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure(chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update(chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n each(chart.boxes, box => {\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap) =>\n wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w,\n };\n each(boxes.chartArea, (layout) => {\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {left: 0, top: 0, right: 0, bottom: 0});\n });\n }\n};\n\nclass BasePlatform {\n acquireContext(canvas, aspectRatio) {}\n releaseContext(context) {\n return false;\n }\n addEventListener(chart, type, listener) {}\n removeEventListener(chart, type, listener) {}\n getDevicePixelRatio() {\n return 1;\n }\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n isAttached(canvas) {\n return true;\n }\n updateConfig(config) {\n }\n}\n\nclass BasicPlatform extends BasePlatform {\n acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n\nconst EXPANDO_KEY = '$chartjs';\nconst EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\nconst isNullOrEmpty = value => value === null || value === '';\nfunction initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n return canvas;\n}\nconst eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\nfunction addListener(node, type, listener) {\n node.addEventListener(type, listener, eventListenerOptions);\n}\nfunction removeListener(chart, type, listener) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n}\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const {x, y} = getRelativePosition(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null,\n };\n}\nfunction nodeListContains(nodeList, canvas) {\n for (const node of nodeList) {\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n}\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart) => {\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height) => {\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n const observer = new ResizeObserver(entries => {\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event) => {\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart, (args) => {\n const event = args[0];\n return [event, event.offsetX, event.offsetY];\n });\n addListener(canvas, type, proxy);\n return proxy;\n}\nclass DomPlatform extends BasePlatform {\n acquireContext(canvas, aspectRatio) {\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n return null;\n }\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n const initial = canvas[EXPANDO_KEY].initial;\n ['height', 'width'].forEach((prop) => {\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n const style = initial.style || {};\n Object.keys(style).forEach((key) => {\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n if (!proxy) {\n return;\n }\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n isAttached(canvas) {\n const container = _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n\nfunction _detectPlatform(canvas) {\n if (!_isDomSupported() || (typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas)) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nclass PluginService {\n constructor() {\n this._init = [];\n }\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n }\n return result;\n }\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors) {\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [chart, args, descriptor.options];\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n return true;\n }\n invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n const descriptors = this._cache = this._createDescriptors(chart);\n this._notifyStateChanges(chart);\n return descriptors;\n }\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b) => a.filter(x => !b.some(y => x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\nfunction allPlugins(config) {\n const localIds = {};\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for (let i = 0; i < keys.length; i++) {\n plugins.push(registry.getPlugin(keys[i]));\n }\n const local = config.plugins || [];\n for (let i = 0; i < local.length; i++) {\n const plugin = local[i];\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n localIds[plugin.id] = true;\n }\n }\n return {plugins, localIds};\n}\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\nfunction createDescriptors(chart, {plugins, localIds}, options, all) {\n const result = [];\n const context = chart.getContext();\n for (const plugin of plugins) {\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, {plugin, local: localIds[id]}, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, {plugin, local}, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n if (local && plugin.defaults) {\n scopes.push(plugin.defaults);\n }\n return config.createResolver(scopes, context, [''], {\n scriptable: false,\n indexable: false,\n allKeys: true\n });\n}\n\nfunction getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\nfunction determineAxis(id, scaleOptions) {\n if (id === 'x' || id === 'y') {\n return id;\n }\n return scaleOptions.axis || axisFromPosition(scaleOptions.position) || id.charAt(0).toLowerCase();\n}\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {scales: {}};\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const firstIDs = Object.create(null);\n const scales = Object.create(null);\n Object.keys(configScales).forEach(id => {\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n firstIDs[axis] = firstIDs[axis] || id;\n scales[id] = mergeIf(Object.create(null), [{axis}, scaleConf, defaultScaleOptions[axis], defaultScaleOptions[defaultId]]);\n });\n config.data.datasets.forEach(dataset => {\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach(defaultID => {\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || firstIDs[axis] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [{axis}, configScales[id], defaultScaleOptions[defaultID]]);\n });\n });\n Object.keys(scales).forEach(key => {\n const scale = scales[key];\n mergeIf(scale, [defaults.scales[scale.type], defaults.scale]);\n });\n return scales;\n}\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\nconst addIfFound = (set, obj, key) => {\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\nclass Config {\n constructor(config) {\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n get platform() {\n return this._config.platform;\n }\n get type() {\n return this._config.type;\n }\n set type(type) {\n this._config.type = type;\n }\n get data() {\n return this._config.data;\n }\n set data(data) {\n this._config.data = initData(data);\n }\n get options() {\n return this._config.options;\n }\n set options(options) {\n this._config.options = options;\n }\n get plugins() {\n return this._config.plugins;\n }\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType,\n () => [[\n `datasets.${datasetType}`,\n ''\n ]]);\n }\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`,\n () => [\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`,\n ],\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`,\n () => [[\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]]);\n }\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`,\n () => [[\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || [],\n ]]);\n }\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n getOptionScopes(mainScope, keyLists, resetCache) {\n const {options, type} = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n const scopes = new Set();\n keyLists.forEach(keys => {\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach(key => addIfFound(scopes, mainScope, key));\n }\n keys.forEach(key => addIfFound(scopes, options, key));\n keys.forEach(key => addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach(key => addIfFound(scopes, defaults, key));\n keys.forEach(key => addIfFound(scopes, descriptors, key));\n });\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n chartOptionScopes() {\n const {options, type} = this;\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {},\n {type},\n defaults,\n descriptors\n ];\n }\n resolveNamedOptions(scopes, names, context, prefixes = ['']) {\n const result = {$shared: true};\n const {resolver, subPrefixes} = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n for (const prop of names) {\n result[prop] = options[prop];\n }\n return result;\n }\n createResolver(scopes, context, prefixes = [''], descriptorDefaults) {\n const {resolver} = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context)\n ? _attachContext(resolver, context, undefined, descriptorDefaults)\n : resolver;\n }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter(p => !p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\nconst hasFunction = value => isObject(value)\n && Object.getOwnPropertyNames(value).reduce((acc, key) => acc || isFunction(value[key]), false);\nfunction needContext(proxy, names) {\n const {isScriptable, isIndexable} = _descriptors(proxy);\n for (const prop of names) {\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if ((scriptable && (isFunction(value) || hasFunction(value)))\n || (indexable && isArray(value))) {\n return true;\n }\n }\n return false;\n}\n\nvar version = \"3.9.1\";\n\nconst KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || (KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x');\n}\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1]\n ? a[l2] - b[l2]\n : a[l1] - b[l1];\n };\n}\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [context], chart);\n}\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [context], chart);\n}\nfunction getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n if (item && item.canvas) {\n item = item.canvas;\n }\n return item;\n}\nconst instances = {};\nconst getChart = (key) => {\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c) => c.canvas === canvas).pop();\n};\nfunction moveNumericKeys(obj, start, move) {\n const keys = Object.keys(obj);\n for (const key of keys) {\n const intKey = +key;\n if (intKey >= start) {\n const value = obj[key];\n delete obj[key];\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\nfunction determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n if (isClick) {\n return lastEvent;\n }\n return e;\n}\nclass Chart {\n constructor(item, userConfig) {\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error(\n 'Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' +\n\t\t\t\t' must be destroyed before the canvas with ID \\'' + existingChart.canvas.id + '\\' can be reused.'\n );\n }\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce(mode => this.update(mode), options.resizeDelay || 0);\n this._dataChanges = [];\n instances[this.id] = this;\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n get aspectRatio() {\n const {options: {aspectRatio, maintainAspectRatio}, width, height, _aspectRatio} = this;\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n return height ? width / height : null;\n }\n get data() {\n return this.config.data;\n }\n set data(data) {\n this.config.data = data;\n }\n get options() {\n return this._options;\n }\n set options(options) {\n this.config.options = options;\n }\n _initialize() {\n this.notifyPlugins('beforeInit');\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n stop() {\n animator.stop(this);\n return this;\n }\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {width, height};\n }\n }\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n this.notifyPlugins('resize', {size: newSize});\n callback(options.onResize, [this, newSize], this);\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n each(scalesOptions, (axisOptions, axisID) => {\n axisOptions.id = axisID;\n });\n }\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id) => {\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n if (scaleOpts) {\n items = items.concat(\n Object.keys(scaleOpts).map((id) => {\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n })\n );\n }\n each(items, (item) => {\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n scale.init(scaleOptions, options);\n });\n each(updated, (hasUpdated, id) => {\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, (scale) => {\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n metasets.sort((a, b) => a.index - b.index);\n if (numMeta > numData) {\n for (let i = numData; i < numMeta; ++i) {\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n _removeUnreferencedMetasets() {\n const {_metasets: metasets, data: {datasets}} = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index) => {\n if (datasets.filter(x => x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n this._removeUnreferencedMetasets();\n for (i = 0, ilen = datasets.length; i < ilen; i++) {\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const {datasetElementType, dataElementType} = defaults.datasets[type];\n Object.assign(ControllerClass.prototype, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n this._updateMetasets();\n return newControllers;\n }\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex) => {\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n update(mode) {\n const config = this.config;\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n const animsDisabled = this._animationsDisabled = !options.animation;\n this._updateScales();\n this._checkEventBindings();\n this._updateHiddenIndices();\n this._plugins.invalidate();\n if (this.notifyPlugins('beforeUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n const newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n let minPadding = 0;\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; i++) {\n const {controller} = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n if (!animsDisabled) {\n each(newControllers, (controller) => {\n controller.reset();\n });\n }\n this._updateDatasets(mode);\n this.notifyPlugins('afterUpdate', {mode});\n this._layers.sort(compare2Level('z', '_idx'));\n const {_active, _lastEvent} = this;\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n this.render();\n }\n _updateScales() {\n each(this.scales, (scale) => {\n layouts.removeBox(this, scale);\n });\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n _checkEventBindings() {\n const options = this.options;\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n }\n _updateHiddenIndices() {\n const {_hiddenIndices} = this;\n const changes = this._getUniformDataChanges() || [];\n for (const {method, start, count} of changes) {\n const move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n }\n _getUniformDataChanges() {\n const _dataChanges = this._dataChanges;\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n this._dataChanges = [];\n const datasetCount = this.data.datasets.length;\n const makeSet = (idx) => new Set(\n _dataChanges\n .filter(c => c[0] === idx)\n .map((c, i) => i + ',' + c.splice(1).join(','))\n );\n const changeSet = makeSet(0);\n for (let i = 1; i < datasetCount; i++) {\n if (!setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n return Array.from(changeSet)\n .map(c => c.split(','))\n .map(a => ({method: a[1], start: +a[2], count: +a[3]}));\n }\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {cancelable: true}) === false) {\n return;\n }\n layouts.update(this, this.width, this.height, minPadding);\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n each(this.boxes, (box) => {\n if (noArea && box.position === 'chartArea') {\n return;\n }\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n this._layers.forEach((item, index) => {\n item._idx = index;\n });\n this.notifyPlugins('afterLayout');\n }\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this.getDatasetMeta(i).controller.configure();\n }\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._updateDataset(i, isFunction(mode) ? mode({datasetIndex: i}) : mode);\n }\n this.notifyPlugins('afterDatasetsUpdate', {mode});\n }\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {meta, index, mode, cancelable: true};\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n meta.controller._update(mode);\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n render() {\n if (this.notifyPlugins('beforeRender', {cancelable: true}) === false) {\n return;\n }\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({chart: this});\n }\n }\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const {width, height} = this._resizeBeforeDraw;\n this._resize(width, height);\n this._resizeBeforeDraw = null;\n }\n this.clear();\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n if (this.notifyPlugins('beforeDraw', {cancelable: true}) === false) {\n return;\n }\n const layers = this._layers;\n for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n layers[i].draw(this.chartArea);\n }\n this._drawDatasets();\n for (; i < layers.length; ++i) {\n layers[i].draw(this.chartArea);\n }\n this.notifyPlugins('afterDraw');\n }\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n return result;\n }\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {cancelable: true}) === false) {\n return;\n }\n const metasets = this.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n this._drawDataset(metasets[i]);\n }\n this.notifyPlugins('afterDatasetsDraw');\n }\n _drawDataset(meta) {\n const ctx = this.ctx;\n const clip = meta._clip;\n const useClip = !clip.disabled;\n const area = this.chartArea;\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n if (useClip) {\n clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? this.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? this.height : area.bottom + clip.bottom\n });\n }\n meta.controller.draw();\n if (useClip) {\n unclipArea(ctx);\n }\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n isPointInArea(point) {\n return _isPointInArea(point, this.chartArea, this._minPadding);\n }\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n return [];\n }\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter(x => x && x._dataset === dataset).pop();\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n return meta;\n }\n getContext() {\n return this.$context || (this.$context = createContext(null, {chart: this, type: 'chart'}));\n }\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n const meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {visible});\n this.update((ctx) => ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n for (i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._destroyDatasetMeta(i);\n }\n }\n destroy() {\n this.notifyPlugins('beforeDestroy');\n const {canvas, ctx} = this;\n this._stop();\n this.config.clearCache();\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n this.notifyPlugins('destroy');\n delete instances[this.id];\n this.notifyPlugins('afterDestroy');\n }\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const listener = (e, x, y) => {\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n each(this.options.events, (type) => _add(type, listener));\n }\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener) => {\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n const listener = (width, height) => {\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n let detached;\n const attached = () => {\n _remove('attach', attached);\n this.attached = true;\n this.resize();\n _add('resize', listener);\n _add('detach', detached);\n };\n detached = () => {\n this.attached = false;\n _remove('resize', listener);\n this._stop();\n this._resize(0, 0);\n _add('attach', attached);\n };\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n unbindEvents() {\n each(this._listeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n each(this._responsiveListeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n if (changed) {\n this._active = active;\n this._lastEvent = null;\n this._updateHoverStyles(active, lastActive);\n }\n }\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b) => a.filter(x => !b.some(y => x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n _eventHandler(e, replay) {\n const args = {\n event: e,\n replay,\n cancelable: true,\n inChartArea: this.isPointInArea(e)\n };\n const eventFilter = (plugin) => (plugin.options.events || this.options.events).includes(e.native.type);\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n const changed = this._handleEvent(e, replay, args.inChartArea);\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n if (changed || args.changed) {\n this.render();\n }\n return this;\n }\n _handleEvent(e, replay, inChartArea) {\n const {_active: lastActive = [], options} = this;\n const useFinalPosition = replay;\n const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n const isClick = _isClickEvent(e);\n const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n if (inChartArea) {\n this._lastEvent = null;\n callback(options.onHover, [e, active, this], this);\n if (isClick) {\n callback(options.onClick, [e, active, this], this);\n }\n }\n const changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n this._lastEvent = lastEvent;\n return changed;\n }\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n}\nconst invalidatePlugins = () => each(Chart.instances, (chart) => chart._plugins.invalidate());\nconst enumerable = true;\nObject.defineProperties(Chart, {\n defaults: {\n enumerable,\n value: defaults\n },\n instances: {\n enumerable,\n value: instances\n },\n overrides: {\n enumerable,\n value: overrides\n },\n registry: {\n enumerable,\n value: registry\n },\n version: {\n enumerable,\n value: version\n },\n getChart: {\n enumerable,\n value: getChart\n },\n register: {\n enumerable,\n value: (...items) => {\n registry.add(...items);\n invalidatePlugins();\n }\n },\n unregister: {\n enumerable,\n value: (...items) => {\n registry.remove(...items);\n invalidatePlugins();\n }\n }\n});\n\nfunction clipArc(ctx, element, endAngle) {\n const {startAngle, pixelMargin, x, y, outerRadius, innerRadius} = element;\n let angleMargin = pixelMargin / outerRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);\n}\nfunction parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n const computeOuterLimit = (val) => {\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit),\n };\n}\nfunction rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta),\n };\n}\nfunction pathArc(ctx, element, offset, spacing, end, circular) {\n const {x, y, startAngle: start, pixelMargin, innerRadius: innerR} = element;\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n let spacingOffset = 0;\n const alpha = end - start;\n if (spacing) {\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? (alpha * avNogSpacingRadius) / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const {outerStart, outerEnd, innerStart, innerEnd} = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle);\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n if (circular) {\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerEndAdjustedAngle);\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n ctx.arc(x, y, innerRadius, endAngle - (innerEnd / innerRadius), startAngle + (innerStart / innerRadius), true);\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n } else {\n ctx.moveTo(x, y);\n const outerStartX = Math.cos(outerStartAdjustedAngle) * outerRadius + x;\n const outerStartY = Math.sin(outerStartAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerStartX, outerStartY);\n const outerEndX = Math.cos(outerEndAdjustedAngle) * outerRadius + x;\n const outerEndY = Math.sin(outerEndAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerEndX, outerEndY);\n }\n ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing, circular) {\n const {fullCircles, startAngle, circumference} = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, startAngle + TAU, circular);\n for (let i = 0; i < fullCircles; ++i) {\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + circumference % TAU;\n if (circumference % TAU === 0) {\n endAngle += TAU;\n }\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.fill();\n return endAngle;\n}\nfunction drawFullCircleBorders(ctx, element, inner) {\n const {x, y, startAngle, pixelMargin, fullCircles} = element;\n const outerRadius = Math.max(element.outerRadius - pixelMargin, 0);\n const innerRadius = element.innerRadius + pixelMargin;\n let i;\n if (inner) {\n clipArc(ctx, element, startAngle + TAU);\n }\n ctx.beginPath();\n ctx.arc(x, y, innerRadius, startAngle + TAU, startAngle, true);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle, startAngle + TAU);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n}\nfunction drawBorder(ctx, element, offset, spacing, endAngle, circular) {\n const {options} = element;\n const {borderWidth, borderJoinStyle} = options;\n const inner = options.borderAlign === 'inner';\n if (!borderWidth) {\n return;\n }\n if (inner) {\n ctx.lineWidth = borderWidth * 2;\n ctx.lineJoin = borderJoinStyle || 'round';\n } else {\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = borderJoinStyle || 'bevel';\n }\n if (element.fullCircles) {\n drawFullCircleBorders(ctx, element, inner);\n }\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.stroke();\n}\nclass ArcElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(chartX, chartY, useFinalPosition) {\n const point = this.getProps(['x', 'y'], useFinalPosition);\n const {angle, distance} = getAngleFromPoint(point, {x: chartX, y: chartY});\n const {startAngle, endAngle, innerRadius, outerRadius, circumference} = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = this.options.spacing / 2;\n const _circumference = valueOrDefault(circumference, endAngle - startAngle);\n const betweenAngles = _circumference >= TAU || _angleBetween(angle, startAngle, endAngle);\n const withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n return (betweenAngles && withinRadius);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, startAngle, endAngle, innerRadius, outerRadius} = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference',\n ], useFinalPosition);\n const {offset, spacing} = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n draw(ctx) {\n const {options, circumference} = this;\n const offset = (options.offset || 0) / 2;\n const spacing = (options.spacing || 0) / 2;\n const circular = options.circular;\n this.pixelMargin = (options.borderAlign === 'inner') ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n ctx.save();\n let radiusOffset = 0;\n if (offset) {\n radiusOffset = offset / 2;\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * radiusOffset, Math.sin(halfAngle) * radiusOffset);\n if (this.circumference >= PI) {\n radiusOffset = offset;\n }\n }\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n const endAngle = drawArc(ctx, this, radiusOffset, spacing, circular);\n drawBorder(ctx, this, radiusOffset, spacing, endAngle, circular);\n ctx.restore();\n }\n}\nArcElement.id = 'arc';\nArcElement.defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderJoinStyle: undefined,\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n circular: true,\n};\nArcElement.defaultRoutes = {\n backgroundColor: 'backgroundColor'\n};\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\nfunction getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n return lineTo;\n}\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const {start: paramsStart = 0, end: paramsEnd = count - 1} = params;\n const {start: segmentStart, end: segmentEnd} = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\nfunction pathSegment(ctx, line, segment, params) {\n const {points, options} = line;\n const {count, start, loop, ilen} = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n let {move = true, reverse} = params || {};\n let i, point, prev;\n for (i = 0; i <= ilen; ++i) {\n point = points[(start + (reverse ? ilen - i : i)) % count];\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n prev = point;\n }\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n return !!loop;\n}\nfunction fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const {count, start, ilen} = pathVars(points, segment, params);\n const {move = true, reverse} = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n const pointIndex = (index) => (start + (reverse ? ilen - index : index)) % count;\n const drawX = () => {\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n for (i = 0; i <= ilen; ++i) {\n point = points[pointIndex(i)];\n if (point.skip) {\n continue;\n }\n const x = point.x;\n const y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n lastY = y;\n }\n drawX();\n}\nfunction _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\nfunction _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n return _pointInLine;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n const {segments, options} = line;\n const segmentMethod = _getSegmentMethod(line);\n for (const segment of segments) {\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {start, end: start + count - 1})) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\nclass LineElement extends Element {\n constructor(cfg) {\n super();\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n get points() {\n return this._points;\n }\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {property, start: value, end: value});\n if (!segments.length) {\n return;\n }\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for (i = 0, ilen = segments.length; i < ilen; ++i) {\n const {start, end} = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n start = start || 0;\n count = count || (this.points.length - start);\n for (const segment of segments) {\n loop &= segmentMethod(ctx, this, segment, {start, end: start + count - 1});\n }\n return !!loop;\n }\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n if (points.length && options.borderWidth) {\n ctx.save();\n draw(ctx, this, start, count);\n ctx.restore();\n }\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\nLineElement.id = 'line';\nLineElement.defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0,\n};\nLineElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\nLineElement.descriptors = {\n _scriptable: true,\n _indexable: (name) => name !== 'borderDash' && name !== 'fill',\n};\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n const options = el.options;\n const {[axis]: value} = el.getProps([axis], useFinalPosition);\n return (Math.abs(pos - value) < options.radius + options.hitRadius);\n}\nclass PointElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n const options = this.options;\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return ((Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2)) < Math.pow(options.hitRadius + options.radius, 2));\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n size(options) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n draw(ctx, area) {\n const options = this.options;\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n getRange() {\n const options = this.options || {};\n return options.radius + options.hitRadius;\n }\n}\nPointElement.id = 'point';\nPointElement.defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n};\nPointElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nfunction getBarBounds(bar, useFinalPosition) {\n const {x, y, base, width, height} = bar.getProps(['x', 'y', 'base', 'width', 'height'], useFinalPosition);\n let left, right, top, bottom, half;\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n return {left, top, right, bottom};\n}\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n const {enableBorderRadius} = bar.getProps(['enableBorderRadius']);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n const enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r)),\n }\n }\n };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds\n\t\t&& (skipX || _isBetween(x, bounds.left, bounds.right))\n\t\t&& (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\nfunction addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\nclass BarElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n draw(ctx) {\n const {inflateAmount, options: {borderColor, backgroundColor}} = this;\n const {inner, outer} = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, base, horizontal} = this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition);\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\nBarElement.id = 'bar';\nBarElement.defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n};\nBarElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nvar elements = /*#__PURE__*/Object.freeze({\n__proto__: null,\nArcElement: ArcElement,\nLineElement: LineElement,\nPointElement: PointElement,\nBarElement: BarElement\n});\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n const samples = options.samples || availableWidth;\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n const decimated = [];\n const bucketWidth = (count - 2) / (samples - 2);\n let sampledIndex = 0;\n const endIndex = start + count - 1;\n let a = start;\n let i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n for (i = 0; i < samples - 2; i++) {\n let avgX = 0;\n let avgY = 0;\n let j;\n const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n for (j = avgRangeStart; j < avgRangeEnd; j++) {\n avgX += data[j].x;\n avgY += data[j].y;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n const {x: pointAx, y: pointAy} = data[a];\n maxArea = area = -1;\n for (j = rangeOffs; j < rangeTo; j++) {\n area = 0.5 * Math.abs(\n (pointAx - avgX) * (data[j].y - pointAy) -\n (pointAx - data[j].x) * (avgY - pointAy)\n );\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n let avgX = 0;\n let countX = 0;\n let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n const decimated = [];\n const endIndex = start + count - 1;\n const xMin = data[start].x;\n const xMax = data[endIndex].x;\n const dx = xMax - xMin;\n for (i = start; i < start + count; ++i) {\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n const lastIndex = i - 1;\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n const intermediateIndex1 = Math.min(minIndex, maxIndex);\n const intermediateIndex2 = Math.max(minIndex, maxIndex);\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex1],\n x: avgX,\n });\n }\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex2],\n x: avgX\n });\n }\n }\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n const data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {value: data});\n }\n}\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach((dataset) => {\n cleanDecimatedDataset(dataset);\n });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n const pointCount = points.length;\n let start = 0;\n let count;\n const {iScale} = meta;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n return {start, count};\n}\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false,\n },\n beforeElementsUpdate: (chart, args, options) => {\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n const availableWidth = chart.width;\n chart.data.datasets.forEach((dataset, datasetIndex) => {\n const {_data, indexAxis} = dataset;\n const meta = chart.getDatasetMeta(datasetIndex);\n const data = _data || dataset.data;\n if (resolve([indexAxis, chart.options.indexAxis]) === 'y') {\n return;\n }\n if (!meta.controller.supportsDecimation) {\n return;\n }\n const xAxis = chart.scales[meta.xAxisID];\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n if (chart.options.parsing) {\n return;\n }\n let {start, count} = getStartAndCountOfVisiblePointsSimplified(meta, data);\n const threshold = options.threshold || 4 * availableWidth;\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this._decimated;\n },\n set: function(d) {\n this._data = d;\n }\n });\n }\n let decimated;\n switch (options.algorithm) {\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n }\n dataset._decimated = decimated;\n });\n },\n destroy(chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction _segments(line, target, property) {\n const segments = line.segments;\n const points = line.points;\n const tpoints = target.points;\n const parts = [];\n for (const segment of segments) {\n let {start, end} = segment;\n end = _findSegmentEnd(start, end, points);\n const bounds = _getBounds(property, points[start], points[end], segment.loop);\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n const targetSegments = _boundSegments(target, bounds);\n for (const tgt of targetSegments) {\n const subBounds = _getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n const fillSources = _boundSegment(segment, points, subBounds);\n for (const fillSource of fillSources) {\n parts.push({\n source: fillSource,\n target: tgt,\n start: {\n [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n },\n end: {\n [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n }\n });\n }\n }\n }\n return parts;\n}\nfunction _getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n let start = first[property];\n let end = last[property];\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n return {property, start, end};\n}\nfunction _pointsFromSegments(boundary, line) {\n const {x = null, y = null} = boundary || {};\n const linePoints = line.points;\n const points = [];\n line.segments.forEach(({start, end}) => {\n end = _findSegmentEnd(start, end, linePoints);\n const first = linePoints[start];\n const last = linePoints[end];\n if (y !== null) {\n points.push({x: first.x, y});\n points.push({x: last.x, y});\n } else if (x !== null) {\n points.push({x, y: first.y});\n points.push({x, y: last.y});\n }\n });\n return points;\n}\nfunction _findSegmentEnd(start, end, points) {\n for (;end > start; end--) {\n const point = points[end];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n return end;\n}\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n return a ? a[prop] : b ? b[prop] : 0;\n}\n\nfunction _createBoundaryLine(boundary, line) {\n let points = [];\n let _loop = false;\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = _pointsFromSegments(boundary, line);\n }\n return points.length ? new LineElement({\n points,\n options: {tension: 0},\n _loop,\n _fullLoop: _loop\n }) : null;\n}\nfunction _shouldApplyFill(source) {\n return source && source.fill !== false;\n}\n\nfunction _resolveTarget(sources, index, propagate) {\n const source = sources[index];\n let fill = source.fill;\n const visited = [index];\n let target;\n if (!propagate) {\n return fill;\n }\n while (fill !== false && visited.indexOf(fill) === -1) {\n if (!isNumberFinite(fill)) {\n return fill;\n }\n target = sources[fill];\n if (!target) {\n return false;\n }\n if (target.visible) {\n return fill;\n }\n visited.push(fill);\n fill = target.fill;\n }\n return false;\n}\nfunction _decodeFill(line, index, count) {\n const fill = parseFillOption(line);\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n let target = parseFloat(fill);\n if (isNumberFinite(target) && Math.floor(target) === target) {\n return decodeTargetIndex(fill[0], index, target, count);\n }\n return ['origin', 'start', 'end', 'stack', 'shape'].indexOf(fill) >= 0 && fill;\n}\nfunction decodeTargetIndex(firstCh, index, target, count) {\n if (firstCh === '-' || firstCh === '+') {\n target = index + target;\n }\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n return target;\n}\nfunction _getTargetPixel(fill, scale) {\n let pixel = null;\n if (fill === 'start') {\n pixel = scale.bottom;\n } else if (fill === 'end') {\n pixel = scale.top;\n } else if (isObject(fill)) {\n pixel = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n pixel = scale.getBasePixel();\n }\n return pixel;\n}\nfunction _getTargetValue(fill, scale, startValue) {\n let value;\n if (fill === 'start') {\n value = startValue;\n } else if (fill === 'end') {\n value = scale.options.reverse ? scale.min : scale.max;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n return value;\n}\nfunction parseFillOption(line) {\n const options = line.options;\n const fillOption = options.fill;\n let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n if (fill === false || fill === null) {\n return false;\n }\n if (fill === true) {\n return 'origin';\n }\n return fill;\n}\n\nfunction _buildStackLine(source) {\n const {scale, index, line} = source;\n const points = [];\n const segments = line.segments;\n const sourcePoints = line.points;\n const linesBelow = getLinesBelow(scale, index);\n linesBelow.push(_createBoundaryLine({x: null, y: scale.bottom}, line));\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n for (let j = segment.start; j <= segment.end; j++) {\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n return new LineElement({points, options: {}});\n}\nfunction getLinesBelow(scale, index) {\n const below = [];\n const metas = scale.getMatchingVisibleMetas('line');\n for (let i = 0; i < metas.length; i++) {\n const meta = metas[i];\n if (meta.index === index) {\n break;\n }\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n return below;\n}\nfunction addPointsBelow(points, sourcePoint, linesBelow) {\n const postponed = [];\n for (let j = 0; j < linesBelow.length; j++) {\n const line = linesBelow[j];\n const {first, last, point} = findPoint(line, sourcePoint, 'x');\n if (!point || (first && last)) {\n continue;\n }\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n if (!last) {\n break;\n }\n }\n }\n points.push(...postponed);\n}\nfunction findPoint(line, sourcePoint, property) {\n const point = line.interpolate(sourcePoint, property);\n if (!point) {\n return {};\n }\n const pointValue = point[property];\n const segments = line.segments;\n const linePoints = line.points;\n let first = false;\n let last = false;\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n const firstValue = linePoints[segment.start][property];\n const lastValue = linePoints[segment.end][property];\n if (_isBetween(pointValue, firstValue, lastValue)) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n return {first, last, point};\n}\n\nclass simpleArc {\n constructor(opts) {\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n pathSegment(ctx, bounds, opts) {\n const {x, y, radius} = this;\n bounds = bounds || {start: 0, end: TAU};\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n interpolate(point) {\n const {x, y, radius} = this;\n const angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle\n };\n }\n}\n\nfunction _getTarget(source) {\n const {chart, fill, line} = source;\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n if (fill === 'stack') {\n return _buildStackLine(source);\n }\n if (fill === 'shape') {\n return true;\n }\n const boundary = computeBoundary(source);\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n return _createBoundaryLine(boundary, line);\n}\nfunction getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\n}\nfunction computeLinearBoundary(source) {\n const {scale = {}, fill} = source;\n const pixel = _getTargetPixel(fill, scale);\n if (isNumberFinite(pixel)) {\n const horizontal = scale.isHorizontal();\n return {\n x: horizontal ? pixel : null,\n y: horizontal ? null : pixel\n };\n }\n return null;\n}\nfunction computeCircularBoundary(source) {\n const {scale, fill} = source;\n const options = scale.options;\n const length = scale.getLabels().length;\n const start = options.reverse ? scale.max : scale.min;\n const value = _getTargetValue(fill, scale, start);\n const target = [];\n if (options.grid.circular) {\n const center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n for (let i = 0; i < length; ++i) {\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\n\nfunction _drawfill(ctx, source, area) {\n const target = _getTarget(source);\n const {line, scale, axis} = source;\n const lineOpts = line.options;\n const fillOption = lineOpts.fill;\n const color = lineOpts.backgroundColor;\n const {above = color, below = color} = fillOption || {};\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {line, target, above, below, area, scale, axis});\n unclipArea(ctx);\n }\n}\nfunction doFill(ctx, cfg) {\n const {line, target, above, below, area, scale} = cfg;\n const property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n if (property === 'x' && below !== above) {\n clipVertical(ctx, target, area.top);\n fill(ctx, {line, target, color: above, scale, property});\n ctx.restore();\n ctx.save();\n clipVertical(ctx, target, area.bottom);\n }\n fill(ctx, {line, target, color: below, scale, property});\n ctx.restore();\n}\nfunction clipVertical(ctx, target, clipY) {\n const {segments, points} = target;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments) {\n const {start, end} = segment;\n const firstPoint = points[start];\n const lastPoint = points[_findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(firstPoint.x, clipY);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {move: lineLoop});\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(lastPoint.x, clipY);\n }\n }\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\nfunction fill(ctx, cfg) {\n const {line, target, property, color, scale} = cfg;\n const segments = _segments(line, target, property);\n for (const {source: src, target: tgt, start, end} of segments) {\n const {style: {backgroundColor = color} = {}} = src;\n const notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, notShape && _getBounds(property, start, end));\n ctx.beginPath();\n const lineLoop = !!line.pathSegment(ctx, src);\n let loop;\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n const targetLoop = !!target.pathSegment(ctx, tgt, {move: lineLoop, reverse: true});\n loop = lineLoop && targetLoop;\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n}\nfunction clipBounds(ctx, scale, bounds) {\n const {top, bottom} = scale.chart.chartArea;\n const {property, start, end} = bounds || {};\n if (property === 'x') {\n ctx.beginPath();\n ctx.rect(start, top, end - start, bottom - top);\n ctx.clip();\n }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n const interpolatedPoint = target.interpolate(point, property);\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\n\nvar index = {\n id: 'filler',\n afterDatasetsUpdate(chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n for (i = 0; i < count; ++i) {\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: _decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line,\n };\n }\n meta.$filler = source;\n sources.push(source);\n }\n for (i = 0; i < count; ++i) {\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n source.fill = _resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw(chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n source.line.updateControlPoints(area, source.axis);\n if (draw && source.fill) {\n _drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw(chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n const metasets = chart.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (_shouldApplyFill(source)) {\n _drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw(chart, args, options) {\n const source = args.meta.$filler;\n if (!_shouldApplyFill(source) || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n _drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nconst getBoxSize = (labelOpts, fontSize) => {\n let {boxHeight = fontSize, boxWidth = fontSize} = labelOpts;\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = labelOpts.pointStyleWidth || Math.min(boxWidth, fontSize);\n }\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\nconst itemsEqual = (a, b) => a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n constructor(config) {\n super();\n this._added = false;\n this.legendHitBoxes = [];\n this._hoveredItem = null;\n this.doughnutMode = false;\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = callback(labelOpts.generateLabels, [this.chart], this) || [];\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item) => labelOpts.filter(item, this.chart.data));\n }\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b) => labelOpts.sort(a, b, this.chart.data));\n }\n if (this.options.reverse) {\n legendItems.reverse();\n }\n this.legendItems = legendItems;\n }\n fit() {\n const {options, ctx} = this;\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const {boxWidth, itemHeight} = getBoxSize(labelOpts, fontSize);\n let width, height;\n ctx.font = labelFont.string;\n if (this.isHorizontal()) {\n width = this.maxWidth;\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight;\n width = this._fitCols(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n }\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxWidth, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const lineWidths = this.lineWidths = [0];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n hitboxes[i] = {left: 0, top, row, width: itemWidth, height: itemHeight};\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n _fitCols(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxHeight, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n let left = 0;\n let col = 0;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n hitboxes[i] = {left, top: currentColHeight, col, width: itemWidth, height: itemHeight};\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n return totalWidth;\n }\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const {legendHitBoxes: hitboxes, options: {align, labels: {padding}, rtl}} = this;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes) {\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes) {\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n this._draw();\n unclipArea(ctx);\n }\n }\n _draw() {\n const {options: opts, columnSizes, lineWidths, ctx} = this;\n const {align, labels: labelOpts} = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const {color: fontColor, padding} = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n this.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n const {boxWidth, boxHeight, itemHeight} = getBoxSize(labelOpts, fontSize);\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n ctx.save();\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n if (labelOpts.usePointStyle) {\n const drawOptions = {\n radius: boxHeight * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n drawPointLegend(ctx, drawOptions, centerX, centerY, labelOpts.pointStyleWidth && boxWidth);\n } else {\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n if (Object.values(borderRadius).some(v => v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + (itemHeight / 2), labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n overrideTextDirection(this.ctx, opts.textDirection);\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i) => {\n ctx.strokeStyle = legendItem.fontColor || fontColor;\n ctx.fillStyle = legendItem.fontColor || fontColor;\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n rtlHelper.setWidth(this.width);\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n const realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n if (isHorizontal) {\n cursor.x += width + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n if (!titleOpts.display) {\n return;\n }\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n let left = this.left;\n let maxWidth = this.width;\n if (this.isHorizontal()) {\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n const maxHeight = this.columnSizes.reduce((acc, size) => Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n const x = _alignStartEnd(position, left, left + maxWidth);\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n if (_isBetween(x, this.left, this.right)\n && _isBetween(y, this.top, this.bottom)) {\n lh = this.legendHitBoxes;\n for (i = 0; i < lh.length; ++i) {\n hitBox = lh[i];\n if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width)\n && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n return this.legendItems[i];\n }\n }\n }\n return null;\n }\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n callback(opts.onLeave, [e, previous, this], this);\n }\n this._hoveredItem = hoveredItem;\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [e, hoveredItem, this], this);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [e, hoveredItem, this], this);\n }\n }\n}\nfunction isListened(type, opts) {\n if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start(chart, _args, options) {\n const legend = chart.legend = new Legend({ctx: chart.ctx, options, chart});\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop(chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate(chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate(chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent(chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick(e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: (ctx) => ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n generateLabels(chart) {\n const datasets = chart.data.datasets;\n const {labels: {usePointStyle, pointStyle, textAlign, color}} = chart.legend.options;\n return chart._getSortedDatasetMetas().map((meta) => {\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: 0,\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: (ctx) => ctx.chart.options.color,\n display: false,\n position: 'center',\n text: '',\n }\n },\n descriptors: {\n _scriptable: (name) => !name.startsWith('on'),\n labels: {\n _scriptable: (name) => !['generateLabels', 'filter', 'sort'].includes(name),\n }\n },\n};\n\nclass Title extends Element {\n constructor(config) {\n super();\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight) {\n const opts = this.options;\n this.left = 0;\n this.top = 0;\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n _drawArgs(offset) {\n const {top, left, bottom, right, options} = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {titleX, titleY, maxWidth, rotation};\n }\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n if (!opts.display) {\n return;\n }\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const {titleX, titleY, maxWidth, rotation} = this._drawArgs(offset);\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n}\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start(chart, _args, options) {\n createTitle(chart, options);\n },\n stop(chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate(chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold',\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start(chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop(chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate(chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal',\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst positioners = {\n average(items) {\n if (!items.length) {\n return false;\n }\n let i, len;\n let x = 0;\n let y = 0;\n let count = 0;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n x += pos.x;\n y += pos.y;\n ++count;\n }\n }\n return {\n x: x / count,\n y: y / count\n };\n },\n nearest(items, eventPosition) {\n if (!items.length) {\n return false;\n }\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n return {\n x,\n y\n };\n }\n};\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n return base;\n}\nfunction splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\nfunction createTooltipItem(chart, item) {\n const {element, datasetIndex, index} = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const {label, value} = controller.getLabelAndValue(index);\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\nfunction getTooltipSize(tooltip, options) {\n const ctx = tooltip.chart.ctx;\n const {body, footer, title} = tooltip;\n const {boxWidth, boxHeight} = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n let combinedBodyLength = body.reduce((count, bodyItem) => count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight\n\t\t\t+ (titleLineCount - 1) * options.titleSpacing\n\t\t\t+ options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight\n\t\t\t+ (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight\n\t\t\t+ (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop\n\t\t\t+ footerLineCount * footerFont.lineHeight\n\t\t\t+ (footerLineCount - 1) * options.footerSpacing;\n }\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? (boxWidth + 2 + options.boxPadding) : 0;\n each(body, (bodyItem) => {\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {width, height};\n}\nfunction determineYAlign(chart, size) {\n const {y, height} = size;\n if (y < height / 2) {\n return 'top';\n } else if (y > (chart.height - height / 2)) {\n return 'bottom';\n }\n return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const {x, width} = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n const {x, width} = size;\n const {width: chartWidth, chartArea: {left, right}} = chart;\n let xAlign = 'center';\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n return xAlign;\n}\nfunction determineAlignment(chart, options, size) {\n const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\nfunction alignX(size, xAlign) {\n let {x, width} = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= (width / 2);\n }\n return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n let {y, height} = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= (height / 2);\n }\n return y;\n}\nfunction getBackgroundPoint(options, size, alignment, chart) {\n const {caretSize, caretPadding, cornerRadius} = options;\n const {xAlign, yAlign} = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretSize;\n }\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n return align === 'center'\n ? tooltip.x + tooltip.width / 2\n : align === 'right'\n ? tooltip.x + tooltip.width - padding.right\n : tooltip.x + padding.left;\n}\nfunction getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\nclass Tooltip extends Element {\n constructor(config) {\n super();\n this.opacity = 0;\n this._active = [];\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.chart = config.chart || config._chart;\n this._chart = this.chart;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n if (cached) {\n return cached;\n }\n const chart = this.chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this.chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n return animations;\n }\n getContext() {\n return this.$context ||\n\t\t\t(this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n getTitle(context, options) {\n const {callbacks} = options;\n const beforeTitle = callbacks.beforeTitle.apply(this, [context]);\n const title = callbacks.title.apply(this, [context]);\n const afterTitle = callbacks.afterTitle.apply(this, [context]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.beforeBody.apply(this, [tooltipItems]));\n }\n getBody(tooltipItems, options) {\n const {callbacks} = options;\n const bodyItems = [];\n each(tooltipItems, (context) => {\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(scoped.beforeLabel.call(this, context)));\n pushOrConcat(bodyItem.lines, scoped.label.call(this, context));\n pushOrConcat(bodyItem.after, splitNewlines(scoped.afterLabel.call(this, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.afterBody.apply(this, [tooltipItems]));\n }\n getFooter(tooltipItems, options) {\n const {callbacks} = options;\n const beforeFooter = callbacks.beforeFooter.apply(this, [tooltipItems]);\n const footer = callbacks.footer.apply(this, [tooltipItems]);\n const afterFooter = callbacks.afterFooter.apply(this, [tooltipItems]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n _createItems(options) {\n const active = this._active;\n const data = this.chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n for (i = 0, len = active.length; i < len; ++i) {\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array) => options.filter(element, index, array, data));\n }\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b) => options.itemSort(a, b, data));\n }\n each(tooltipItems, (context) => {\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(scoped.labelColor.call(this, context));\n labelPointStyles.push(scoped.labelPointStyle.call(this, context));\n labelTextColors.push(scoped.labelTextColor.call(this, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this.chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n if (changed && options.external) {\n options.external.call(this, {chart: this.chart, tooltip: this, replay});\n }\n }\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n getCaretPosition(tooltipPoint, size, options) {\n const {xAlign, yAlign} = this;\n const {caretSize, cornerRadius} = options;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n const {x: ptX, y: ptY} = tooltipPoint;\n const {width, height} = size;\n let x1, x2, x3, y1, y2, y3;\n if (yAlign === 'center') {\n y2 = ptY + (height / 2);\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + (caretSize);\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {x1, x2, x3, y1, y2, y3};\n }\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColors = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const {boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColors.borderColor;\n ctx.fillStyle = labelColors.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = isObject(labelColors.borderWidth) ? Math.max(...Object.values(labelColors.borderWidth)) : (labelColors.borderWidth || 1);\n ctx.strokeStyle = labelColors.borderColor;\n ctx.setLineDash(labelColors.borderDash || []);\n ctx.lineDashOffset = labelColors.borderDashOffset || 0;\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth - boxPadding);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - boxPadding - 2);\n const borderRadius = toTRBLCorners(labelColors.borderRadius);\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n ctx.fillStyle = this.labelTextColors[i];\n }\n drawBody(pt, ctx, options) {\n const {body} = this;\n const {bodySpacing, bodyAlign, displayColors, boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right'\n ? bodyAlign === 'center' ? (boxWidth / 2 + boxPadding) : (boxWidth + 2 + boxPadding)\n : 0;\n for (i = 0, ilen = body.length; i < ilen; ++i) {\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n for (j = 0, jlen = lines.length; j < jlen; ++j) {\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n each(bodyItem.after, fillLineOfText);\n }\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n drawBackground(pt, ctx, tooltipSize, options) {\n const {xAlign, yAlign} = this;\n const {x, y} = pt;\n const {width, height} = tooltipSize;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(options.cornerRadius);\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n _updateAnimationTarget(options) {\n const chart = this.chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n _willRender() {\n return !!this.opacity;\n }\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n if (!opacity) {\n return;\n }\n this._updateAnimationTarget(options);\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n const padding = toPadding(options.padding);\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n this.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n this.drawTitle(pt, ctx, options);\n this.drawBody(pt, ctx, options);\n this.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.chart.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n handleEvent(e, replay, inChartArea = true) {\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n this._ignoreReplayEvents = false;\n const options = this.options;\n const lastActive = this._active || [];\n const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n const positionChanged = this._positionChanged(active, e);\n const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n if (changed) {\n this._active = active;\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n this.update(true, replay);\n }\n }\n return changed;\n }\n _getActiveElements(e, lastActive, replay, inChartArea) {\n const options = this.options;\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n if (options.reverse) {\n active.reverse();\n }\n return active;\n }\n _positionChanged(active, e) {\n const {caretX, caretY, options} = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\nTooltip.positioners = positioners;\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n afterInit(chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({chart, options});\n }\n },\n beforeUpdate(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw(chart) {\n const tooltip = chart.tooltip;\n if (tooltip && tooltip._willRender()) {\n const args = {\n tooltip\n };\n if (chart.notifyPlugins('beforeTooltipDraw', args) === false) {\n return;\n }\n tooltip.draw(chart.ctx);\n chart.notifyPlugins('afterTooltipDraw', args);\n }\n },\n afterEvent(chart, args) {\n if (chart.tooltip) {\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold',\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {\n },\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold',\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts) => opts.bodyFont.size,\n boxWidth: (ctx, opts) => opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart',\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'width', 'height', 'caretX', 'caretY'],\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: {\n beforeTitle: noop,\n title(tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label(tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n let label = tooltipItem.dataset.label || '';\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0,\n };\n },\n labelTextColor() {\n return this.options.bodyColor;\n },\n labelPointStyle(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation,\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n }\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: (name) => name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false,\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: ['interaction']\n};\n\nvar plugins = /*#__PURE__*/Object.freeze({\n__proto__: null,\nDecimation: plugin_decimation,\nFiller: index,\nLegend: plugin_legend,\nSubTitle: plugin_subtitle,\nTitle: plugin_title,\nTooltip: plugin_tooltip\n});\n\nconst addIfString = (labels, raw, index, addedLabels) => {\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({index, label: raw});\n } else if (isNaN(raw)) {\n index = null;\n }\n return index;\n};\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\nconst validIndex = (index, max) => index === null ? null : _limitValue(Math.round(index), 0, max);\nclass CategoryScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this._startValue = undefined;\n this._valueRange = 0;\n this._addedLabels = [];\n }\n init(scaleOptions) {\n const added = this._addedLabels;\n if (added.length) {\n const labels = this.getLabels();\n for (const {index, label} of added) {\n if (labels[index] === label) {\n labels.splice(index, 1);\n }\n }\n this._addedLabels = [];\n }\n super.init(scaleOptions);\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index\n : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n determineDataLimits() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this.getMinMax(true);\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n labels = (min === 0 && max === labels.length - 1) ? labels : labels.slice(min, max + 1);\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n for (let value = min; value <= max; value++) {\n ticks.push({value});\n }\n return ticks;\n }\n getLabelForValue(value) {\n const labels = this.getLabels();\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n }\n configure() {\n super.configure();\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n getBasePixel() {\n return this.bottom;\n }\n}\nCategoryScale.id = 'category';\nCategoryScale.defaults = {\n ticks: {\n callback: CategoryScale.prototype.getLabelForValue\n }\n};\n\nfunction generateTicks$1(generationOptions, dataRange) {\n const ticks = [];\n const MIN_SPACING = 1e-14;\n const {bounds, step, min, max, precision, count, maxTicks, maxDigits, includeBounds} = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const {min: rmin, max: rmax} = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [{value: rmin}, {value: rmax}];\n }\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n const decimalPlaces = Math.max(\n _decimalPlaces(spacing),\n _decimalPlaces(niceMin)\n );\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({value: min});\n if (niceMin < min) {\n j++;\n }\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n for (; j < numSpaces; ++j) {\n ticks.push({value: Math.round((niceMin + j * spacing) * factor) / factor});\n }\n if (maxDefined && includeBounds && niceMax !== max) {\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({value: max});\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({value: niceMax});\n }\n return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, {horizontal, minRotation}) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._endValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n return +raw;\n }\n handleTickRangeOptions() {\n const {beginAtZero} = this.options;\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n if (min === max) {\n let offset = 1;\n if (max >= Number.MAX_SAFE_INTEGER || min <= Number.MIN_SAFE_INTEGER) {\n offset = Math.abs(max * 0.05);\n }\n setMax(max + offset);\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n getTickLimit() {\n const tickOpts = this.options.ticks;\n let {maxTicksLimit, stepSize} = tickOpts;\n let maxTicks;\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n return maxTicks;\n }\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n super.configure();\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n}\n\nclass LinearScale extends LinearScaleBase {\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? min : 0;\n this.max = isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\nLinearScale.id = 'linear';\nLinearScale.defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n};\n\nfunction isMajor(tickVal) {\n const remain = tickVal / (Math.pow(10, Math.floor(log10(tickVal))));\n return remain === 1;\n}\nfunction generateTicks(generationOptions, dataRange) {\n const endExp = Math.floor(log10(dataRange.max));\n const endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\n const ticks = [];\n let tickVal = finiteOrDefault(generationOptions.min, Math.pow(10, Math.floor(log10(dataRange.min))));\n let exp = Math.floor(log10(tickVal));\n let significand = Math.floor(tickVal / Math.pow(10, exp));\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n do {\n ticks.push({value: tickVal, major: isMajor(tickVal)});\n ++significand;\n if (significand === 10) {\n significand = 1;\n ++exp;\n precision = exp >= 0 ? 1 : precision;\n }\n tickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\n } while (exp < endExp || (exp === endExp && significand < endSignificand));\n const lastTick = finiteOrDefault(generationOptions.max, tickVal);\n ticks.push({value: lastTick, major: isMajor(tickVal)});\n return ticks;\n}\nclass LogarithmicScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n this.handleTickRangeOptions();\n }\n handleTickRangeOptions() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n const exp = (v, m) => Math.pow(10, Math.floor(log10(v)) + m);\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(exp(min, -1));\n setMax(exp(max, +1));\n }\n }\n if (min <= 0) {\n setMin(exp(max, -1));\n }\n if (max <= 0) {\n setMax(exp(min, +1));\n }\n if (this._zero && this.min !== this._suggestedMin && min === exp(this.min, 0)) {\n setMin(exp(min, -1));\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const opts = this.options;\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n getLabelForValue(value) {\n return value === undefined\n ? '0'\n : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n configure() {\n const start = this.min;\n super.configure();\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min\n ? 0\n : (log10(value) - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\nLogarithmicScale.id = 'logarithmic';\nLogarithmicScale.defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n};\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [label];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - (size / 2),\n end: pos + (size / 2)\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n return {\n start: pos,\n end: pos + size\n };\n}\nfunction fitWithPointLabels(scale) {\n const orig = {\n l: scale.left + scale._padding.left,\n r: scale.right - scale._padding.right,\n t: scale.top + scale._padding.top,\n b: scale.bottom - scale._padding.bottom\n };\n const limits = Object.assign({}, orig);\n const labelSizes = [];\n const padding = [];\n const valueCount = scale._pointLabels.length;\n const pointLabelOpts = scale.options.pointLabels;\n const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n for (let i = 0; i < valueCount; i++) {\n const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n const angle = Math.round(toDegrees(angleRadians));\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n scale.setCenterPoint(\n orig.l - limits.l,\n limits.r - orig.r,\n orig.t - limits.t,\n limits.b - orig.b\n );\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n const sin = Math.abs(Math.sin(angle));\n const cos = Math.abs(Math.cos(angle));\n let x = 0;\n let y = 0;\n if (hLimits.start < orig.l) {\n x = (orig.l - hLimits.start) / sin;\n limits.l = Math.min(limits.l, orig.l - x);\n } else if (hLimits.end > orig.r) {\n x = (hLimits.end - orig.r) / sin;\n limits.r = Math.max(limits.r, orig.r + x);\n }\n if (vLimits.start < orig.t) {\n y = (orig.t - vLimits.start) / cos;\n limits.t = Math.min(limits.t, orig.t - y);\n } else if (vLimits.end > orig.b) {\n y = (vLimits.end - orig.b) / cos;\n limits.b = Math.max(limits.b, orig.b + y);\n }\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale._pointLabels.length;\n const opts = scale.options;\n const extra = getTickBackdropHeight(opts) / 2;\n const outerDistance = scale.drawingArea;\n const additionalAngle = opts.pointLabels.centerPointLabels ? PI / valueCount : 0;\n for (let i = 0; i < valueCount; i++) {\n const pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + padding[i], additionalAngle);\n const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n const size = labelSizes[i];\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n items.push({\n x: pointLabelPosition.x,\n y,\n textAlign,\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n });\n }\n return items;\n}\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= (w / 2);\n }\n return x;\n}\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= (h / 2);\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\nfunction drawPointLabels(scale, labelCount) {\n const {ctx, options: {pointLabels}} = scale;\n for (let i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n const plFont = toFont(optsAtIndex.font);\n const {x, y, textAlign, left, top, right, bottom} = scale._pointLabelItems[i];\n const {backdropColor} = optsAtIndex;\n if (!isNullOrUndef(backdropColor)) {\n const borderRadius = toTRBLCorners(optsAtIndex.borderRadius);\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillStyle = backdropColor;\n const backdropLeft = left - padding.left;\n const backdropTop = top - padding.top;\n const backdropWidth = right - left + padding.width;\n const backdropHeight = bottom - top + padding.height;\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: backdropLeft,\n y: backdropTop,\n w: backdropWidth,\n h: backdropHeight,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight);\n }\n }\n renderText(\n ctx,\n scale._pointLabels[i],\n x,\n y + (plFont.lineHeight / 2),\n plFont,\n {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n }\n );\n }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const {ctx} = scale;\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n for (let i = 1; i < labelCount; i++) {\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n const {color, lineWidth} = gridLineOpts;\n if ((!circular && !labelCount) || !color || !lineWidth || radius < 0) {\n return;\n }\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(gridLineOpts.borderDash);\n ctx.lineDashOffset = gridLineOpts.borderDashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\nclass RadialLinearScale extends LinearScaleBase {\n constructor(cfg) {\n super(cfg);\n this.xCenter = undefined;\n this.yCenter = undefined;\n this.drawingArea = undefined;\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n setDimensions() {\n const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n const w = this.width = this.maxWidth - padding.width;\n const h = this.height = this.maxHeight - padding.height;\n this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n this.drawingArea = Math.floor(Math.min(w, h) / 2);\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(false);\n this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels()\n .map((value, index) => {\n const label = callback(this.options.pointLabels.callback, [value, index], this);\n return label || label === 0 ? label : '';\n })\n .filter((v, i) => this.chart.getDataVisibility(i));\n }\n fit() {\n const opts = this.options;\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n }\n getIndexAngle(index) {\n const angleMultiplier = TAU / (this._pointLabels.length || 1);\n const startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n getPointLabelPosition(index) {\n const {left, top, right, bottom} = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom,\n };\n }\n drawBackground() {\n const {backgroundColor, grid: {circular}} = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const {angleLines, grid} = opts;\n const labelCount = this._pointLabels.length;\n let i, offset, position;\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n if (grid.display) {\n this.ticks.forEach((tick, index) => {\n if (index !== 0) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const optsAtIndex = grid.setContext(this.getContext(index - 1));\n drawRadiusLine(this, optsAtIndex, offset, labelCount);\n }\n });\n }\n if (angleLines.display) {\n ctx.save();\n for (i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const {color, lineWidth} = optsAtIndex;\n if (!lineWidth || !color) {\n continue;\n }\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = this.getDistanceFromCenterForValue(opts.ticks.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n ctx.restore();\n }\n }\n drawBorder() {}\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n if (!tickOpts.display) {\n return;\n }\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n this.ticks.forEach((tick, index) => {\n if (index === 0 && !opts.reverse) {\n return;\n }\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(\n -width / 2 - padding.left,\n -offset - tickFont.size / 2 - padding.top,\n width + padding.width,\n tickFont.size + padding.height\n );\n }\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n });\n });\n ctx.restore();\n }\n drawTitle() {}\n}\nRadialLinearScale.id = 'radialLinear';\nRadialLinearScale.defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback(label) {\n return label;\n },\n padding: 5,\n centerPointLabels: false\n }\n};\nRadialLinearScale.defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n};\nRadialLinearScale.descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n};\n\nconst INTERVALS = {\n millisecond: {common: true, size: 1, steps: 1000},\n second: {common: true, size: 1000, steps: 60},\n minute: {common: true, size: 60000, steps: 60},\n hour: {common: true, size: 3600000, steps: 24},\n day: {common: true, size: 86400000, steps: 30},\n week: {common: false, size: 604800000, steps: 4},\n month: {common: true, size: 2.628e9, steps: 12},\n quarter: {common: false, size: 7.884e9, steps: 4},\n year: {common: true, size: 3.154e10}\n};\nconst UNITS = (Object.keys(INTERVALS));\nfunction sorter(a, b) {\n return a - b;\n}\nfunction parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n const adapter = scale._adapter;\n const {parser, round, isoWeekday} = scale._parseOpts;\n let value = input;\n if (typeof parser === 'function') {\n value = parser(value);\n }\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string'\n ? adapter.parse(value, parser)\n : adapter.parse(value);\n }\n if (value === null) {\n return null;\n }\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true)\n ? adapter.startOf(value, 'isoWeek', isoWeekday)\n : adapter.startOf(value, round);\n }\n return +value;\n}\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n for (let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n return UNITS[ilen - 1];\n}\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for (let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\nfunction determineMajorUnit(unit) {\n for (let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\nfunction addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const {lo, hi} = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n for (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n const map = {};\n const ilen = values.length;\n let i, value;\n for (i = 0; i < ilen; ++i) {\n value = values[i];\n map[value] = i;\n ticks.push({\n value,\n major: false\n });\n }\n return (ilen === 0 || !majorUnit) ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n constructor(props) {\n super(props);\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n this._unit = 'day';\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n init(scaleOpts, opts) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n adapter.init(opts);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n super.init(scaleOpts);\n this._normalized = opts.normalized;\n }\n parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {min, max};\n }\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n const min = this.min;\n const max = this.max;\n const ticks = _filterBetween(timestamps, min, max);\n this._unit = timeOpts.unit || (tickOpts.autoSkip\n ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min))\n : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined\n : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n if (options.reverse) {\n ticks.reverse();\n }\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n afterAutoSkip() {\n if (this.options.offsetAfterAutoskip) {\n this.initOffsets(this.ticks.map(tick => +tick.value));\n }\n }\n initOffsets(timestamps) {\n let start = 0;\n let end = 0;\n let first, last;\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n this._offsets = {start, end, factor: 1 / (start + 1 + end)};\n }\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(timeOpts.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {\n addTick(ticks, time, timestamps);\n }\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n return Object.keys(ticks).sort((a, b) => a - b).map(x => +x);\n }\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n const label = this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n const formatter = options.ticks.callback;\n return formatter ? callback(formatter, [label, index, ticks], this) : label;\n }\n generateTickLabels(ticks) {\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n return {\n w: (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation),\n h: (tickLabelWidth * sinRotation) + (tickFontSize * cosRotation)\n };\n }\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [exampleTime], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const metas = this.getMatchingVisibleMetas();\n if (this._normalized && metas.length) {\n return (this._cache.data = metas[0].controller.getAllParsedValues(this));\n }\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n return (this._cache.data = this.normalize(timestamps));\n }\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const labels = this.getLabels();\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n timestamps.push(parse(this, labels[i]));\n }\n return (this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps));\n }\n normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n}\nTimeScale.id = 'time';\nTimeScale.defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n major: {\n enabled: false\n }\n }\n};\n\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({lo, hi} = _lookupByKey(table, 'pos', val));\n }\n ({pos: prevSource, time: prevTarget} = table[lo]);\n ({pos: nextSource, time: nextTarget} = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({lo, hi} = _lookupByKey(table, 'time', val));\n }\n ({time: prevSource, pos: prevTarget} = table[lo]);\n ({time: nextSource, pos: nextTarget} = table[hi]);\n }\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n constructor(props) {\n super(props);\n this._table = [];\n this._minPos = undefined;\n this._tableRange = undefined;\n }\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n buildLookupTable(timestamps) {\n const {min, max} = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n if (items.length < 2) {\n return [\n {time: min, pos: 0},\n {time: max, pos: 1}\n ];\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({time: curr, pos: i / (ilen - 1)});\n }\n }\n return table;\n }\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n if (timestamps.length) {\n return timestamps;\n }\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\nTimeSeriesScale.id = 'timeseries';\nTimeSeriesScale.defaults = TimeScale.defaults;\n\nvar scales = /*#__PURE__*/Object.freeze({\n__proto__: null,\nCategoryScale: CategoryScale,\nLinearScale: LinearScale,\nLogarithmicScale: LogarithmicScale,\nRadialLinearScale: RadialLinearScale,\nTimeScale: TimeScale,\nTimeSeriesScale: TimeSeriesScale\n});\n\nconst registerables = [\n controllers,\n elements,\n plugins,\n scales,\n];\n\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, index as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, _detectPlatform, animator, controllers, elements, layouts, plugins, registerables, registry, scales };\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _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, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\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 return obj;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Table = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n striped,\n bordered,\n borderless,\n hover,\n size,\n variant,\n responsive,\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'table');\n const classes = classNames(className, decoratedBsPrefix, variant && `${decoratedBsPrefix}-${variant}`, size && `${decoratedBsPrefix}-${size}`, striped && `${decoratedBsPrefix}-${typeof striped === 'string' ? `striped-${striped}` : 'striped'}`, bordered && `${decoratedBsPrefix}-bordered`, borderless && `${decoratedBsPrefix}-borderless`, hover && `${decoratedBsPrefix}-hover`);\n const table = /*#__PURE__*/_jsx(\"table\", {\n ...props,\n className: classes,\n ref: ref\n });\n if (responsive) {\n let responsiveClass = `${decoratedBsPrefix}-responsive`;\n if (typeof responsive === 'string') {\n responsiveClass = `${responsiveClass}-${responsive}`;\n }\n return /*#__PURE__*/_jsx(\"div\", {\n className: responsiveClass,\n children: table\n });\n }\n return table;\n});\nexport default Table;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useButtonProps } from '@restart/ui/Button';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n variant: 'primary',\n active: false,\n disabled: false\n};\nconst Button = /*#__PURE__*/React.forwardRef(({\n as,\n bsPrefix,\n variant,\n size,\n active,\n className,\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'btn');\n const [buttonProps, {\n tagName\n }] = useButtonProps({\n tagName: as,\n ...props\n });\n const Component = tagName;\n return /*#__PURE__*/_jsx(Component, {\n ...buttonProps,\n ...props,\n ref: ref,\n className: classNames(className, prefix, active && 'active', variant && `${prefix}-${variant}`, size && `${prefix}-${size}`, props.href && props.disabled && 'disabled')\n });\n});\nButton.displayName = 'Button';\nButton.defaultProps = defaultProps;\nexport default Button;","const _excluded = [\"eventKey\", \"disabled\", \"onClick\", \"active\", \"as\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport SelectableContext, { makeEventKey } from './SelectableContext';\nimport NavContext from './NavContext';\nimport Button from './Button';\nimport { dataAttr } from './DataKey';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Create a dropdown item. Returns a set of props for the dropdown item component\n * including an `onClick` handler that prevents selection when the item is disabled\n */\nexport function useDropdownItem({\n key,\n href,\n active,\n disabled,\n onClick\n}) {\n const onSelectCtx = useContext(SelectableContext);\n const navContext = useContext(NavContext);\n const {\n activeKey\n } = navContext || {};\n const eventKey = makeEventKey(key, href);\n const isActive = active == null && key != null ? makeEventKey(activeKey) === eventKey : active;\n const handleClick = useEventCallback(event => {\n if (disabled) return;\n onClick == null ? void 0 : onClick(event);\n if (onSelectCtx && !event.isPropagationStopped()) {\n onSelectCtx(eventKey, event);\n }\n });\n return [{\n onClick: handleClick,\n 'aria-disabled': disabled || undefined,\n 'aria-selected': isActive,\n [dataAttr('dropdown-item')]: ''\n }, {\n isActive\n }];\n}\nconst DropdownItem = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n eventKey,\n disabled,\n onClick,\n active,\n as: Component = Button\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n const [dropdownItemProps] = useDropdownItem({\n key: eventKey,\n href: props.href,\n disabled,\n onClick,\n active\n });\n return /*#__PURE__*/_jsx(Component, Object.assign({}, props, {\n ref: ref\n }, dropdownItemProps));\n});\nDropdownItem.displayName = 'DropdownItem';\nexport default DropdownItem;","import qsa from 'dom-helpers/querySelectorAll';\nimport addEventListener from 'dom-helpers/addEventListener';\nimport { useCallback, useRef, useEffect, useMemo, useContext } from 'react';\nimport * as React from 'react';\nimport { useUncontrolledProp } from 'uncontrollable';\nimport usePrevious from '@restart/hooks/usePrevious';\nimport useForceUpdate from '@restart/hooks/useForceUpdate';\nimport useEventListener from '@restart/hooks/useEventListener';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport DropdownContext from './DropdownContext';\nimport DropdownMenu from './DropdownMenu';\nimport DropdownToggle, { isRoleMenu } from './DropdownToggle';\nimport DropdownItem from './DropdownItem';\nimport SelectableContext from './SelectableContext';\nimport { dataAttr } from './DataKey';\nimport useWindow from './useWindow';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction useRefWithUpdate() {\n const forceUpdate = useForceUpdate();\n const ref = useRef(null);\n const attachRef = useCallback(element => {\n ref.current = element;\n // ensure that a menu set triggers an update for consumers\n forceUpdate();\n }, [forceUpdate]);\n return [ref, attachRef];\n}\n\n/**\n * @displayName Dropdown\n * @public\n */\nfunction Dropdown({\n defaultShow,\n show: rawShow,\n onSelect,\n onToggle: rawOnToggle,\n itemSelector = `* [${dataAttr('dropdown-item')}]`,\n focusFirstItemOnShow,\n placement = 'bottom-start',\n children\n}) {\n const window = useWindow();\n const [show, onToggle] = useUncontrolledProp(rawShow, defaultShow, rawOnToggle);\n\n // We use normal refs instead of useCallbackRef in order to populate the\n // the value as quickly as possible, otherwise the effect to focus the element\n // may run before the state value is set\n const [menuRef, setMenu] = useRefWithUpdate();\n const menuElement = menuRef.current;\n const [toggleRef, setToggle] = useRefWithUpdate();\n const toggleElement = toggleRef.current;\n const lastShow = usePrevious(show);\n const lastSourceEvent = useRef(null);\n const focusInDropdown = useRef(false);\n const onSelectCtx = useContext(SelectableContext);\n const toggle = useCallback((nextShow, event, source = event == null ? void 0 : event.type) => {\n onToggle(nextShow, {\n originalEvent: event,\n source\n });\n }, [onToggle]);\n const handleSelect = useEventCallback((key, event) => {\n onSelect == null ? void 0 : onSelect(key, event);\n toggle(false, event, 'select');\n if (!event.isPropagationStopped()) {\n onSelectCtx == null ? void 0 : onSelectCtx(key, event);\n }\n });\n const context = useMemo(() => ({\n toggle,\n placement,\n show,\n menuElement,\n toggleElement,\n setMenu,\n setToggle\n }), [toggle, placement, show, menuElement, toggleElement, setMenu, setToggle]);\n if (menuElement && lastShow && !show) {\n focusInDropdown.current = menuElement.contains(menuElement.ownerDocument.activeElement);\n }\n const focusToggle = useEventCallback(() => {\n if (toggleElement && toggleElement.focus) {\n toggleElement.focus();\n }\n });\n const maybeFocusFirst = useEventCallback(() => {\n const type = lastSourceEvent.current;\n let focusType = focusFirstItemOnShow;\n if (focusType == null) {\n focusType = menuRef.current && isRoleMenu(menuRef.current) ? 'keyboard' : false;\n }\n if (focusType === false || focusType === 'keyboard' && !/^key.+$/.test(type)) {\n return;\n }\n const first = qsa(menuRef.current, itemSelector)[0];\n if (first && first.focus) first.focus();\n });\n useEffect(() => {\n if (show) maybeFocusFirst();else if (focusInDropdown.current) {\n focusInDropdown.current = false;\n focusToggle();\n }\n // only `show` should be changing\n }, [show, focusInDropdown, focusToggle, maybeFocusFirst]);\n useEffect(() => {\n lastSourceEvent.current = null;\n });\n const getNextFocusedChild = (current, offset) => {\n if (!menuRef.current) return null;\n const items = qsa(menuRef.current, itemSelector);\n let index = items.indexOf(current) + offset;\n index = Math.max(0, Math.min(index, items.length));\n return items[index];\n };\n useEventListener(useCallback(() => window.document, [window]), 'keydown', event => {\n var _menuRef$current, _toggleRef$current;\n const {\n key\n } = event;\n const target = event.target;\n const fromMenu = (_menuRef$current = menuRef.current) == null ? void 0 : _menuRef$current.contains(target);\n const fromToggle = (_toggleRef$current = toggleRef.current) == null ? void 0 : _toggleRef$current.contains(target);\n\n // Second only to https://github.com/twbs/bootstrap/blob/8cfbf6933b8a0146ac3fbc369f19e520bd1ebdac/js/src/dropdown.js#L400\n // in inscrutability\n const isInput = /input|textarea/i.test(target.tagName);\n if (isInput && (key === ' ' || key !== 'Escape' && fromMenu || key === 'Escape' && target.type === 'search')) {\n return;\n }\n if (!fromMenu && !fromToggle) {\n return;\n }\n if (key === 'Tab' && (!menuRef.current || !show)) {\n return;\n }\n lastSourceEvent.current = event.type;\n const meta = {\n originalEvent: event,\n source: event.type\n };\n switch (key) {\n case 'ArrowUp':\n {\n const next = getNextFocusedChild(target, -1);\n if (next && next.focus) next.focus();\n event.preventDefault();\n return;\n }\n case 'ArrowDown':\n event.preventDefault();\n if (!show) {\n onToggle(true, meta);\n } else {\n const next = getNextFocusedChild(target, 1);\n if (next && next.focus) next.focus();\n }\n return;\n case 'Tab':\n // on keydown the target is the element being tabbed FROM, we need that\n // to know if this event is relevant to this dropdown (e.g. in this menu).\n // On `keyup` the target is the element being tagged TO which we use to check\n // if focus has left the menu\n addEventListener(target.ownerDocument, 'keyup', e => {\n var _menuRef$current2;\n if (e.key === 'Tab' && !e.target || !((_menuRef$current2 = menuRef.current) != null && _menuRef$current2.contains(e.target))) {\n onToggle(false, meta);\n }\n }, {\n once: true\n });\n break;\n case 'Escape':\n if (key === 'Escape') {\n event.preventDefault();\n event.stopPropagation();\n }\n onToggle(false, meta);\n break;\n default:\n }\n });\n return /*#__PURE__*/_jsx(SelectableContext.Provider, {\n value: handleSelect,\n children: /*#__PURE__*/_jsx(DropdownContext.Provider, {\n value: context,\n children: children\n })\n });\n}\nDropdown.displayName = 'Dropdown';\nDropdown.Menu = DropdownMenu;\nDropdown.Toggle = DropdownToggle;\nDropdown.Item = DropdownItem;\nexport default Dropdown;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useDropdownItem } from '@restart/ui/DropdownItem';\nimport Anchor from '@restart/ui/Anchor';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DropdownItem = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n eventKey,\n disabled = false,\n onClick,\n active,\n as: Component = Anchor,\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'dropdown-item');\n const [dropdownItemProps, meta] = useDropdownItem({\n key: eventKey,\n href: props.href,\n disabled,\n onClick,\n active\n });\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n ...dropdownItemProps,\n ref: ref,\n className: classNames(className, prefix, meta.isActive && 'active', disabled && 'disabled')\n });\n});\nDropdownItem.displayName = 'DropdownItem';\nexport default DropdownItem;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport BaseDropdown from '@restart/ui/Dropdown';\nimport { useUncontrolled } from 'uncontrollable';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport DropdownContext from './DropdownContext';\nimport DropdownItem from './DropdownItem';\nimport DropdownMenu, { getDropdownMenuPlacement } from './DropdownMenu';\nimport DropdownToggle from './DropdownToggle';\nimport InputGroupContext from './InputGroupContext';\nimport { useBootstrapPrefix, useIsRTL } from './ThemeProvider';\nimport createWithBsPrefix from './createWithBsPrefix';\nimport { alignPropType } from './types';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DropdownHeader = createWithBsPrefix('dropdown-header', {\n defaultProps: {\n role: 'heading'\n }\n});\nconst DropdownDivider = createWithBsPrefix('dropdown-divider', {\n Component: 'hr',\n defaultProps: {\n role: 'separator'\n }\n});\nconst DropdownItemText = createWithBsPrefix('dropdown-item-text', {\n Component: 'span'\n});\nconst defaultProps = {\n navbar: false,\n align: 'start',\n autoClose: true,\n drop: 'down'\n};\nconst Dropdown = /*#__PURE__*/React.forwardRef((pProps, ref) => {\n const {\n bsPrefix,\n drop,\n show,\n className,\n align,\n onSelect,\n onToggle,\n focusFirstItemOnShow,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n navbar: _4,\n autoClose,\n ...props\n } = useUncontrolled(pProps, {\n show: 'onToggle'\n });\n const isInputGroup = useContext(InputGroupContext);\n const prefix = useBootstrapPrefix(bsPrefix, 'dropdown');\n const isRTL = useIsRTL();\n const isClosingPermitted = source => {\n // autoClose=false only permits close on button click\n if (autoClose === false) return source === 'click';\n\n // autoClose=inside doesn't permit close on rootClose\n if (autoClose === 'inside') return source !== 'rootClose';\n\n // autoClose=outside doesn't permit close on select\n if (autoClose === 'outside') return source !== 'select';\n return true;\n };\n const handleToggle = useEventCallback((nextShow, meta) => {\n if (meta.originalEvent.currentTarget === document && (meta.source !== 'keydown' || meta.originalEvent.key === 'Escape')) meta.source = 'rootClose';\n if (isClosingPermitted(meta.source)) onToggle == null ? void 0 : onToggle(nextShow, meta);\n });\n const alignEnd = align === 'end';\n const placement = getDropdownMenuPlacement(alignEnd, drop, isRTL);\n const contextValue = useMemo(() => ({\n align,\n drop,\n isRTL\n }), [align, drop, isRTL]);\n const directionClasses = {\n down: prefix,\n 'down-centered': `${prefix}-center`,\n up: 'dropup',\n 'up-centered': 'dropup-center dropup',\n end: 'dropend',\n start: 'dropstart'\n };\n return /*#__PURE__*/_jsx(DropdownContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(BaseDropdown, {\n placement: placement,\n show: show,\n onSelect: onSelect,\n onToggle: handleToggle,\n focusFirstItemOnShow: focusFirstItemOnShow,\n itemSelector: `.${prefix}-item:not(.disabled):not(:disabled)`,\n children: isInputGroup ? props.children : /*#__PURE__*/_jsx(Component, {\n ...props,\n ref: ref,\n className: classNames(className, show && 'show', directionClasses[drop])\n })\n })\n });\n});\nDropdown.displayName = 'Dropdown';\nDropdown.defaultProps = defaultProps;\nexport default Object.assign(Dropdown, {\n Toggle: DropdownToggle,\n Menu: DropdownMenu,\n Item: DropdownItem,\n ItemText: DropdownItemText,\n Divider: DropdownDivider,\n Header: DropdownHeader\n});","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import { useCallback } from 'react';\nimport useCommittedRef from './useCommittedRef';\nexport default function useEventCallback(fn) {\n var ref = useCommittedRef(fn);\n return useCallback(function () {\n return ref.current && ref.current.apply(ref, arguments);\n }, [ref]);\n}","import canUseDOM from './canUseDOM';\nvar size;\nexport default function scrollbarSize(recalc) {\n if (!size && size !== 0 || recalc) {\n if (canUseDOM) {\n var scrollDiv = document.createElement('div');\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n size = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n }\n }\n\n return size;\n}","import createWithBsPrefix from './createWithBsPrefix';\nexport default createWithBsPrefix('modal-body');","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ModalDialog = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n contentClassName,\n centered,\n size,\n fullscreen,\n children,\n scrollable,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'modal');\n const dialogClass = `${bsPrefix}-dialog`;\n const fullScreenClass = typeof fullscreen === 'string' ? `${bsPrefix}-fullscreen-${fullscreen}` : `${bsPrefix}-fullscreen`;\n return /*#__PURE__*/_jsx(\"div\", {\n ...props,\n ref: ref,\n className: classNames(dialogClass, className, size && `${bsPrefix}-${size}`, centered && `${dialogClass}-centered`, scrollable && `${dialogClass}-scrollable`, fullscreen && fullScreenClass),\n children: /*#__PURE__*/_jsx(\"div\", {\n className: classNames(`${bsPrefix}-content`, contentClassName),\n children: children\n })\n });\n});\nModalDialog.displayName = 'ModalDialog';\nexport default ModalDialog;","import createWithBsPrefix from './createWithBsPrefix';\nexport default createWithBsPrefix('modal-footer');","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport AbstractModalHeader from './AbstractModalHeader';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n closeLabel: 'Close',\n closeButton: false\n};\nconst ModalHeader = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'modal-header');\n return /*#__PURE__*/_jsx(AbstractModalHeader, {\n ref: ref,\n ...props,\n className: classNames(className, bsPrefix)\n });\n});\nModalHeader.displayName = 'ModalHeader';\nModalHeader.defaultProps = defaultProps;\nexport default ModalHeader;","import createWithBsPrefix from './createWithBsPrefix';\nimport divWithClassName from './divWithClassName';\nconst DivStyledAsH4 = divWithClassName('h4');\nexport default createWithBsPrefix('modal-title', {\n Component: DivStyledAsH4\n});","import classNames from 'classnames';\nimport addEventListener from 'dom-helpers/addEventListener';\nimport canUseDOM from 'dom-helpers/canUseDOM';\nimport ownerDocument from 'dom-helpers/ownerDocument';\nimport removeEventListener from 'dom-helpers/removeEventListener';\nimport getScrollbarSize from 'dom-helpers/scrollbarSize';\nimport useCallbackRef from '@restart/hooks/useCallbackRef';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport useWillUnmount from '@restart/hooks/useWillUnmount';\nimport transitionEnd from 'dom-helpers/transitionEnd';\nimport * as React from 'react';\nimport { useCallback, useMemo, useRef, useState } from 'react';\nimport BaseModal from '@restart/ui/Modal';\nimport { getSharedManager } from './BootstrapModalManager';\nimport Fade from './Fade';\nimport ModalBody from './ModalBody';\nimport ModalContext from './ModalContext';\nimport ModalDialog from './ModalDialog';\nimport ModalFooter from './ModalFooter';\nimport ModalHeader from './ModalHeader';\nimport ModalTitle from './ModalTitle';\nimport { useBootstrapPrefix, useIsRTL } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n show: false,\n backdrop: true,\n keyboard: true,\n autoFocus: true,\n enforceFocus: true,\n restoreFocus: true,\n animation: true,\n dialogAs: ModalDialog\n};\n\n/* eslint-disable no-use-before-define, react/no-multi-comp */\nfunction DialogTransition(props) {\n return /*#__PURE__*/_jsx(Fade, {\n ...props,\n timeout: null\n });\n}\nfunction BackdropTransition(props) {\n return /*#__PURE__*/_jsx(Fade, {\n ...props,\n timeout: null\n });\n}\n\n/* eslint-enable no-use-before-define */\nconst Modal = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n style,\n dialogClassName,\n contentClassName,\n children,\n dialogAs: Dialog,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n /* BaseModal props */\n\n show,\n animation,\n backdrop,\n keyboard,\n onEscapeKeyDown,\n onShow,\n onHide,\n container,\n autoFocus,\n enforceFocus,\n restoreFocus,\n restoreFocusOptions,\n onEntered,\n onExit,\n onExiting,\n onEnter,\n onEntering,\n onExited,\n backdropClassName,\n manager: propsManager,\n ...props\n}, ref) => {\n const [modalStyle, setStyle] = useState({});\n const [animateStaticModal, setAnimateStaticModal] = useState(false);\n const waitingForMouseUpRef = useRef(false);\n const ignoreBackdropClickRef = useRef(false);\n const removeStaticModalAnimationRef = useRef(null);\n const [modal, setModalRef] = useCallbackRef();\n const mergedRef = useMergedRefs(ref, setModalRef);\n const handleHide = useEventCallback(onHide);\n const isRTL = useIsRTL();\n bsPrefix = useBootstrapPrefix(bsPrefix, 'modal');\n const modalContext = useMemo(() => ({\n onHide: handleHide\n }), [handleHide]);\n function getModalManager() {\n if (propsManager) return propsManager;\n return getSharedManager({\n isRTL\n });\n }\n function updateDialogStyle(node) {\n if (!canUseDOM) return;\n const containerIsOverflowing = getModalManager().getScrollbarWidth() > 0;\n const modalIsOverflowing = node.scrollHeight > ownerDocument(node).documentElement.clientHeight;\n setStyle({\n paddingRight: containerIsOverflowing && !modalIsOverflowing ? getScrollbarSize() : undefined,\n paddingLeft: !containerIsOverflowing && modalIsOverflowing ? getScrollbarSize() : undefined\n });\n }\n const handleWindowResize = useEventCallback(() => {\n if (modal) {\n updateDialogStyle(modal.dialog);\n }\n });\n useWillUnmount(() => {\n removeEventListener(window, 'resize', handleWindowResize);\n removeStaticModalAnimationRef.current == null ? void 0 : removeStaticModalAnimationRef.current();\n });\n\n // We prevent the modal from closing during a drag by detecting where the\n // the click originates from. If it starts in the modal and then ends outside\n // don't close.\n const handleDialogMouseDown = () => {\n waitingForMouseUpRef.current = true;\n };\n const handleMouseUp = e => {\n if (waitingForMouseUpRef.current && modal && e.target === modal.dialog) {\n ignoreBackdropClickRef.current = true;\n }\n waitingForMouseUpRef.current = false;\n };\n const handleStaticModalAnimation = () => {\n setAnimateStaticModal(true);\n removeStaticModalAnimationRef.current = transitionEnd(modal.dialog, () => {\n setAnimateStaticModal(false);\n });\n };\n const handleStaticBackdropClick = e => {\n if (e.target !== e.currentTarget) {\n return;\n }\n handleStaticModalAnimation();\n };\n const handleClick = e => {\n if (backdrop === 'static') {\n handleStaticBackdropClick(e);\n return;\n }\n if (ignoreBackdropClickRef.current || e.target !== e.currentTarget) {\n ignoreBackdropClickRef.current = false;\n return;\n }\n onHide == null ? void 0 : onHide();\n };\n const handleEscapeKeyDown = e => {\n if (keyboard) {\n onEscapeKeyDown == null ? void 0 : onEscapeKeyDown(e);\n } else {\n // Call preventDefault to stop modal from closing in @restart/ui.\n e.preventDefault();\n if (backdrop === 'static') {\n // Play static modal animation.\n handleStaticModalAnimation();\n }\n }\n };\n const handleEnter = (node, isAppearing) => {\n if (node) {\n updateDialogStyle(node);\n }\n onEnter == null ? void 0 : onEnter(node, isAppearing);\n };\n const handleExit = node => {\n removeStaticModalAnimationRef.current == null ? void 0 : removeStaticModalAnimationRef.current();\n onExit == null ? void 0 : onExit(node);\n };\n const handleEntering = (node, isAppearing) => {\n onEntering == null ? void 0 : onEntering(node, isAppearing);\n\n // FIXME: This should work even when animation is disabled.\n addEventListener(window, 'resize', handleWindowResize);\n };\n const handleExited = node => {\n if (node) node.style.display = ''; // RHL removes it sometimes\n onExited == null ? void 0 : onExited(node);\n\n // FIXME: This should work even when animation is disabled.\n removeEventListener(window, 'resize', handleWindowResize);\n };\n const renderBackdrop = useCallback(backdropProps => /*#__PURE__*/_jsx(\"div\", {\n ...backdropProps,\n className: classNames(`${bsPrefix}-backdrop`, backdropClassName, !animation && 'show')\n }), [animation, backdropClassName, bsPrefix]);\n const baseModalStyle = {\n ...style,\n ...modalStyle\n };\n\n // If `display` is not set to block, autoFocus inside the modal fails\n // https://github.com/react-bootstrap/react-bootstrap/issues/5102\n baseModalStyle.display = 'block';\n const renderDialog = dialogProps => /*#__PURE__*/_jsx(\"div\", {\n role: \"dialog\",\n ...dialogProps,\n style: baseModalStyle,\n className: classNames(className, bsPrefix, animateStaticModal && `${bsPrefix}-static`, !animation && 'show'),\n onClick: backdrop ? handleClick : undefined,\n onMouseUp: handleMouseUp,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby,\n \"aria-describedby\": ariaDescribedby,\n children: /*#__PURE__*/_jsx(Dialog, {\n ...props,\n onMouseDown: handleDialogMouseDown,\n className: dialogClassName,\n contentClassName: contentClassName,\n children: children\n })\n });\n return /*#__PURE__*/_jsx(ModalContext.Provider, {\n value: modalContext,\n children: /*#__PURE__*/_jsx(BaseModal, {\n show: show,\n ref: mergedRef,\n backdrop: backdrop,\n container: container,\n keyboard: true // Always set true - see handleEscapeKeyDown\n ,\n autoFocus: autoFocus,\n enforceFocus: enforceFocus,\n restoreFocus: restoreFocus,\n restoreFocusOptions: restoreFocusOptions,\n onEscapeKeyDown: handleEscapeKeyDown,\n onShow: onShow,\n onHide: onHide,\n onEnter: handleEnter,\n onEntering: handleEntering,\n onEntered: onEntered,\n onExit: handleExit,\n onExiting: onExiting,\n onExited: handleExited,\n manager: getModalManager(),\n transition: animation ? DialogTransition : undefined,\n backdropTransition: animation ? BackdropTransition : undefined,\n renderBackdrop: renderBackdrop,\n renderDialog: renderDialog\n })\n });\n});\nModal.displayName = 'Modal';\nModal.defaultProps = defaultProps;\nexport default Object.assign(Modal, {\n Body: ModalBody,\n Header: ModalHeader,\n Title: ModalTitle,\n Footer: ModalFooter,\n Dialog: ModalDialog,\n TRANSITION_DURATION: 300,\n BACKDROP_TRANSITION_DURATION: 150\n});","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import * as React from 'react';\nconst SelectableContext = /*#__PURE__*/React.createContext(null);\nexport const makeEventKey = (eventKey, href = null) => {\n if (eventKey != null) return String(eventKey);\n return href || null;\n};\nexport default SelectableContext;","var rHyphen = /-(.)/g;\nexport default function camelize(string) {\n return string.replace(rHyphen, function (_, chr) {\n return chr.toUpperCase();\n });\n}","import classNames from 'classnames';\nimport camelize from 'dom-helpers/camelize';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst pascalCase = str => str[0].toUpperCase() + camelize(str).slice(1);\n// TODO: emstricten & fix the typing here! `createWithBsPrefix...`\nexport default function createWithBsPrefix(prefix, {\n displayName = pascalCase(prefix),\n Component,\n defaultProps\n} = {}) {\n const BsComponent = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Tag = Component || 'div',\n ...props\n }, ref) => {\n const resolvedPrefix = useBootstrapPrefix(bsPrefix, prefix);\n return /*#__PURE__*/_jsx(Tag, {\n ref: ref,\n className: classNames(className, resolvedPrefix),\n ...props\n });\n });\n BsComponent.defaultProps = defaultProps;\n BsComponent.displayName = displayName;\n return BsComponent;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n };\n }\n return _get.apply(this, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n 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 return target;\n}","// MIT License\n// Copyright (c) 2019-present StringEpsilon \n// Copyright (c) 2017-2019 James Kyle \n// https://github.com/StringEpsilon/mini-create-react-context\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nconst MAX_SIGNED_31_BIT_INT = 1073741823;\n\nconst commonjsGlobal =\n typeof globalThis !== \"undefined\" // 'global proper'\n ? // eslint-disable-next-line no-undef\n globalThis\n : typeof window !== \"undefined\"\n ? window // Browser\n : typeof global !== \"undefined\"\n ? global // node.js\n : {};\n\nfunction getUniqueId() {\n let key = \"__global_unique_id__\";\n return (commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1);\n}\n\n// Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n let handlers = [];\n return {\n on(handler) {\n handlers.push(handler);\n },\n\n off(handler) {\n handlers = handlers.filter(h => h !== handler);\n },\n\n get() {\n return value;\n },\n\n set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(handler => handler(value, changedBits));\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nexport default function createReactContext(defaultValue, calculateChangedBits) {\n const contextProp = \"__create-react-context-\" + getUniqueId() + \"__\";\n\n class Provider extends React.Component {\n emitter = createEventEmitter(this.props.value);\n\n static childContextTypes = {\n [contextProp]: PropTypes.object.isRequired\n };\n\n getChildContext() {\n return {\n [contextProp]: this.emitter\n };\n }\n\n componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n let oldValue = this.props.value;\n let newValue = nextProps.value;\n let changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits =\n typeof calculateChangedBits === \"function\"\n ? calculateChangedBits(oldValue, newValue)\n : MAX_SIGNED_31_BIT_INT;\n if (process.env.NODE_ENV !== \"production\") {\n warning(\n (changedBits & MAX_SIGNED_31_BIT_INT) === changedBits,\n \"calculateChangedBits: Expected the return value to be a \" +\n \"31-bit integer. Instead received: \" +\n changedBits\n );\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n }\n\n render() {\n return this.props.children;\n }\n }\n\n class Consumer extends React.Component {\n static contextTypes = {\n [contextProp]: PropTypes.object\n };\n\n observedBits;\n\n state = {\n value: this.getValue()\n };\n\n componentWillReceiveProps(nextProps) {\n let { observedBits } = nextProps;\n this.observedBits =\n observedBits === undefined || observedBits === null\n ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n }\n\n componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n let { observedBits } = this.props;\n this.observedBits =\n observedBits === undefined || observedBits === null\n ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n }\n\n componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n }\n\n getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n }\n\n onUpdate = (newValue, changedBits) => {\n const observedBits = this.observedBits | 0;\n if ((observedBits & changedBits) !== 0) {\n this.setState({ value: this.getValue() });\n }\n };\n\n render() {\n return onlyChild(this.props.children)(this.state.value);\n }\n }\n\n return {\n Provider,\n Consumer\n };\n}\n","// MIT License\n// Copyright (c) 2019-present StringEpsilon \n// Copyright (c) 2017-2019 James Kyle \n// https://github.com/StringEpsilon/mini-create-react-context\nimport React from \"react\";\nimport createReactContext from \"./miniCreateReactContext\";\n\nexport default React.createContext || createReactContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"./createContext\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n this._pendingLocation = location;\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this.unlisten) {\n // Any pre-mount location changes have been captured at\n // this point, so unregister the listener.\n this.unlisten();\n }\n if (!this.props.staticContext) {\n this.unlisten = this.props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n }\n });\n }\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","const errors = {\n\t0: \"Illegal state\",\n\t1: \"Immer drafts cannot have computed properties\",\n\t2: \"This object has been frozen and should not be mutated\",\n\t3(data: any) {\n\t\treturn (\n\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\tdata\n\t\t)\n\t},\n\t4: \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t5: \"Immer forbids circular references\",\n\t6: \"The first or second argument to `produce` must be a function\",\n\t7: \"The third argument to `produce` must be a function or undefined\",\n\t8: \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t9: \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t10: \"The given draft is already finalized\",\n\t11: \"Object.defineProperty() cannot be used on an Immer draft\",\n\t12: \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t13: \"Immer only supports deleting array indices\",\n\t14: \"Immer only supports setting array indices and the 'length' property\",\n\t15(path: string) {\n\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t},\n\t16: 'Sets cannot have \"replace\" patches.',\n\t17(op: string) {\n\t\treturn \"Unsupported patch operation: \" + op\n\t},\n\t18(plugin: string) {\n\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t},\n\t20: \"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\",\n\t21(thing: string) {\n\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t},\n\t22(thing: string) {\n\t\treturn `'current' expects a draft, got: ${thing}`\n\t},\n\t23(thing: string) {\n\t\treturn `'original' expects a draft, got: ${thing}`\n\t},\n\t24: \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n} as const\n\nexport function die(error: keyof typeof errors, ...args: any[]): never {\n\tif (__DEV__) {\n\t\tconst e = errors[error]\n\t\tconst msg = !e\n\t\t\t? \"unknown error nr: \" + error\n\t\t\t: typeof e === \"function\"\n\t\t\t? e.apply(null, args as any)\n\t\t\t: e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}${\n\t\t\targs.length ? \" \" + args.map(s => `'${s}'`).join(\",\") : \"\"\n\t\t}. Find the full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\thasSet,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\thasMap,\n\tArchtype,\n\tdie\n} from \"../internal\"\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\tif (proto === null) {\n\t\treturn true\n\t}\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\n\tif (Ctor === Object) return true\n\n\treturn (\n\t\ttypeof Ctor == \"function\" &&\n\t\tFunction.toString.call(Ctor) === objectCtorString\n\t)\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original(value: T): T | undefined\nexport function original(value: Drafted): any {\n\tif (!isDraft(value)) die(23, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/*#__PURE__*/\nexport const ownKeys: (target: AnyObject) => PropertyKey[] =\n\ttypeof Reflect !== \"undefined\" && Reflect.ownKeys\n\t\t? Reflect.ownKeys\n\t\t: typeof Object.getOwnPropertySymbols !== \"undefined\"\n\t\t? obj =>\n\t\t\t\tObject.getOwnPropertyNames(obj).concat(\n\t\t\t\t\tObject.getOwnPropertySymbols(obj) as any\n\t\t\t\t)\n\t\t: /* istanbul ignore next */ Object.getOwnPropertyNames\n\nexport const getOwnPropertyDescriptors =\n\tObject.getOwnPropertyDescriptors ||\n\tfunction getOwnPropertyDescriptors(target: any) {\n\t\t// Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n\t\tconst res: any = {}\n\t\townKeys(target).forEach(key => {\n\t\t\tres[key] = Object.getOwnPropertyDescriptor(target, key)\n\t\t})\n\t\treturn res\n\t}\n\nexport function each(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tenumerableOnly?: boolean\n): void\nexport function each(obj: any, iter: any, enumerableOnly = false) {\n\tif (getArchtype(obj) === Archtype.Object) {\n\t\t;(enumerableOnly ? Object.keys : ownKeys)(obj).forEach(key => {\n\t\t\tif (!enumerableOnly || typeof key !== \"symbol\") iter(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): Archtype {\n\t/* istanbul ignore next */\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_ > 3\n\t\t\t? state.type_ - 4 // cause Object and Array map back from 4 and 5\n\t\t\t: (state.type_ as any) // others are the same\n\t\t: Array.isArray(thing)\n\t\t? Archtype.Array\n\t\t: isMap(thing)\n\t\t? Archtype.Map\n\t\t: isSet(thing)\n\t\t? Archtype.Set\n\t\t: Archtype.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === Archtype.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === Archtype.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === Archtype.Map) thing.set(propOrOldValue, value)\n\telse if (t === Archtype.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn hasMap && target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn hasSet && target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any) {\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\tconst descriptors = getOwnPropertyDescriptors(base)\n\tdelete descriptors[DRAFT_STATE as any]\n\tlet keys = ownKeys(descriptors)\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst key: any = keys[i]\n\t\tconst desc = descriptors[key]\n\t\tif (desc.writable === false) {\n\t\t\tdesc.writable = true\n\t\t\tdesc.configurable = true\n\t\t}\n\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t// with libraries that trap values, like mobx or vue\n\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\tif (desc.get || desc.set)\n\t\t\tdescriptors[key] = {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\tvalue: base[key]\n\t\t\t}\n\t}\n\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze(obj: T, deep?: boolean): T\nexport function freeze(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tobj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections as any\n\t}\n\tObject.freeze(obj)\n\tif (deep) each(obj, (key, value) => freeze(value, true), true)\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nexport function isFrozen(obj: any): boolean {\n\tif (obj == null || typeof obj !== \"object\") return true\n\t// See #600, IE dies on non-objects in Object.isFrozen\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tImmerScope,\n\tDrafted,\n\tAnyObject,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tProxyType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\tbase: any,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_(draft: T, patches: Patch[]): T\n\t}\n\tES5?: {\n\t\twillFinalizeES5_(scope: ImmerScope, result: any, isReplaced: boolean): void\n\t\tcreateES5Proxy_(\n\t\t\tbase: T,\n\t\t\tparent?: ImmerState\n\t\t): Drafted\n\t\thasChanges_(state: ES5ArrayState | ES5ObjectState): boolean\n\t}\n\tMapSet?: {\n\t\tproxyMap_(target: T, parent?: ImmerState): T\n\t\tproxySet_(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin(\n\tpluginKey: K\n): Exclude {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(18, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n\n/** ES5 Plugin */\n\ninterface ES5BaseState extends ImmerBaseState {\n\tassigned_: {[key: string]: any}\n\tparent_?: ImmerState\n\trevoked_: boolean\n}\n\nexport interface ES5ObjectState extends ES5BaseState {\n\ttype_: ProxyType.ES5Object\n\tdraft_: Drafted\n\tbase_: AnyObject\n\tcopy_: AnyObject | null\n}\n\nexport interface ES5ArrayState extends ES5BaseState {\n\ttype_: ProxyType.ES5Array\n\tdraft_: Drafted\n\tbase_: any\n\tcopy_: any\n}\n\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ProxyType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ProxyType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tProxyType,\n\tgetPlugin\n} from \"../internal\"\nimport {die} from \"../utils/errors\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\tif (__DEV__ && !currentScope) die(0)\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (\n\t\tstate.type_ === ProxyType.ProxyObject ||\n\t\tstate.type_ === ProxyType.ProxyArray\n\t)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tProxyType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tshallowCopy\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (!scope.immer_.useProxies_)\n\t\tgetPlugin(\"ES5\").willFinalizeES5_(scope, result, isReplaced)\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\ttrue // See #590, don't recurse into non-enumerable of non drafted objects\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result =\n\t\t\t// For ES5, create a good copy from the draft first, with added keys and without deleted keys.\n\t\t\tstate.type_ === ProxyType.ES5Object || state.type_ === ProxyType.ES5Array\n\t\t\t\t? (state.copy_ = shallowCopy(state.draft_))\n\t\t\t\t: state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\t// And we let finalizeProperty know it needs to re-add non-draft children back to the target\n\t\tlet resultEach = result\n\t\tlet isSet = false\n\t\tif (state.type_ === ProxyType.Set) {\n\t\t\tresultEach = new Set(result)\n\t\t\tresult.clear()\n\t\t\tisSet = true\n\t\t}\n\t\teach(resultEach, (key, childValue) =>\n\t\t\tfinalizeProperty(rootScope, state, result, key, childValue, path, isSet)\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath,\n\ttargetIsSet?: boolean\n) {\n\tif (__DEV__ && childValue === targetObject) die(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ProxyType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t} else if (targetIsSet) {\n\t\ttargetObject.add(childValue)\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !isFrozen(childValue)) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\tif (!parentState || !parentState.scope_.parent_)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tProxyType\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyObject\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyArray\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ProxyType.ProxyArray : (ProxyType.ProxyObject as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(\n\t\t\t\tstate.scope_.immer_,\n\t\t\t\tvalue,\n\t\t\t\tstate\n\t\t\t))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\t// @ts-ignore\n\t\tif (state.copy_) delete state.copy_[prop]\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ProxyType.ProxyArray || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn Object.getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (__DEV__ && isNaN(parseInt(prop as any))) die(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (__DEV__ && prop !== \"length\" && isNaN(parseInt(prop as any))) die(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t // prototype, we should invoke it with the draft as context!\n\t\t\t desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = Object.getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = Object.getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {base_: any; copy_: any}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(state.base_)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\thasProxies,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport class Immer implements ProducersFns {\n\tuseProxies_: boolean = hasProxies\n\n\tautoFreeze_: boolean = true\n\n\tconstructor(config?: {useProxies?: boolean; autoFreeze?: boolean}) {\n\t\tif (typeof config?.useProxies === \"boolean\")\n\t\t\tthis.setUseProxies(config!.useProxies)\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(this, base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\t\treturn result.then(\n\t\t\t\t\tresult => {\n\t\t\t\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\t\t\t\treturn processResult(result, scope)\n\t\t\t\t\t},\n\t\t\t\t\terror => {\n\t\t\t\t\t\trevokeScope(scope)\n\t\t\t\t\t\tthrow error\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip)\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(21, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\n\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\treturn result.then(nextState => [nextState, patches!, inversePatches!])\n\t\t}\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft(base: T): Draft {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(this, base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (__DEV__) {\n\t\t\tif (!state || !state.isManual_) die(9)\n\t\t\tif (state.finalized_) die(10)\n\t\t}\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n\t * always faster than using ES5 proxies.\n\t *\n\t * By default, feature detection is used, so calling this is rarely necessary.\n\t */\n\tsetUseProxies(value: boolean) {\n\t\tif (value && !hasProxies) {\n\t\t\tdie(20)\n\t\t}\n\t\tthis.useProxies_ = value\n\t}\n\n\tapplyPatches(base: T, patches: Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy(\n\timmer: Immer,\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: immer.useProxies_\n\t\t? createProxyProxy(value, parent)\n\t\t: getPlugin(\"ES5\").createES5Proxy_(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tget,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tArchtype,\n\tgetArchtype,\n\tgetPlugin\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(22, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tconst archType = getArchtype(value)\n\tif (state) {\n\t\tif (\n\t\t\t!state.modified_ &&\n\t\t\t(state.type_ < 4 || !getPlugin(\"ES5\").hasChanges_(state as any))\n\t\t)\n\t\t\treturn state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = copyHelper(value, archType)\n\t\tstate.finalized_ = false\n\t} else {\n\t\tcopy = copyHelper(value, archType)\n\t}\n\n\teach(copy, (key, childValue) => {\n\t\tif (state && get(state.base_, key) === childValue) return // no need to copy or search in something that didn't change\n\t\tset(copy, key, currentImpl(childValue))\n\t})\n\t// In the future, we might consider freezing here, based on the current settings\n\treturn archType === Archtype.Set ? new Set(copy) : copy\n}\n\nfunction copyHelper(value: any, archType: number): any {\n\t// creates a shallow copy, even if it is a map or set\n\tswitch (archType) {\n\t\tcase Archtype.Map:\n\t\t\treturn new Map(value)\n\t\tcase Archtype.Set:\n\t\t\t// Set will be cloned as array temporarily, so that we can replace individual items\n\t\t\treturn Array.from(value)\n\t}\n\treturn shallowCopy(value)\n}\n","import {\n\tImmerState,\n\tDrafted,\n\tES5ArrayState,\n\tES5ObjectState,\n\teach,\n\thas,\n\tisDraft,\n\tlatest,\n\tDRAFT_STATE,\n\tis,\n\tloadPlugin,\n\tImmerScope,\n\tProxyType,\n\tgetCurrentScope,\n\tdie,\n\tmarkChanged,\n\tobjectTraps,\n\townKeys,\n\tgetOwnPropertyDescriptors\n} from \"../internal\"\n\ntype ES5State = ES5ArrayState | ES5ObjectState\n\nexport function enableES5() {\n\tfunction willFinalizeES5_(\n\t\tscope: ImmerScope,\n\t\tresult: any,\n\t\tisReplaced: boolean\n\t) {\n\t\tif (!isReplaced) {\n\t\t\tif (scope.patches_) {\n\t\t\t\tmarkChangesRecursively(scope.drafts_![0])\n\t\t\t}\n\t\t\t// This is faster when we don't care about which attributes changed.\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t\t// When a child draft is returned, look for changes.\n\t\telse if (\n\t\t\tisDraft(result) &&\n\t\t\t(result[DRAFT_STATE] as ES5State).scope_ === scope\n\t\t) {\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t}\n\n\tfunction createES5Draft(isArray: boolean, base: any) {\n\t\tif (isArray) {\n\t\t\tconst draft = new Array(base.length)\n\t\t\tfor (let i = 0; i < base.length; i++)\n\t\t\t\tObject.defineProperty(draft, \"\" + i, proxyProperty(i, true))\n\t\t\treturn draft\n\t\t} else {\n\t\t\tconst descriptors = getOwnPropertyDescriptors(base)\n\t\t\tdelete descriptors[DRAFT_STATE as any]\n\t\t\tconst keys = ownKeys(descriptors)\n\t\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\t\tconst key: any = keys[i]\n\t\t\t\tdescriptors[key] = proxyProperty(\n\t\t\t\t\tkey,\n\t\t\t\t\tisArray || !!descriptors[key].enumerable\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n\t\t}\n\t}\n\n\tfunction createES5Proxy_(\n\t\tbase: T,\n\t\tparent?: ImmerState\n\t): Drafted {\n\t\tconst isArray = Array.isArray(base)\n\t\tconst draft = createES5Draft(isArray, base)\n\n\t\tconst state: ES5ObjectState | ES5ArrayState = {\n\t\t\ttype_: isArray ? ProxyType.ES5Array : (ProxyType.ES5Object as any),\n\t\t\tscope_: parent ? parent.scope_ : getCurrentScope(),\n\t\t\tmodified_: false,\n\t\t\tfinalized_: false,\n\t\t\tassigned_: {},\n\t\t\tparent_: parent,\n\t\t\t// base is the object we are drafting\n\t\t\tbase_: base,\n\t\t\t// draft is the draft object itself, that traps all reads and reads from either the base (if unmodified) or copy (if modified)\n\t\t\tdraft_: draft,\n\t\t\tcopy_: null,\n\t\t\trevoked_: false,\n\t\t\tisManual_: false\n\t\t}\n\n\t\tObject.defineProperty(draft, DRAFT_STATE, {\n\t\t\tvalue: state,\n\t\t\t// enumerable: false <- the default\n\t\t\twritable: true\n\t\t})\n\t\treturn draft\n\t}\n\n\t// property descriptors are recycled to make sure we don't create a get and set closure per property,\n\t// but share them all instead\n\tconst descriptors: {[prop: string]: PropertyDescriptor} = {}\n\n\tfunction proxyProperty(\n\t\tprop: string | number,\n\t\tenumerable: boolean\n\t): PropertyDescriptor {\n\t\tlet desc = descriptors[prop]\n\t\tif (desc) {\n\t\t\tdesc.enumerable = enumerable\n\t\t} else {\n\t\t\tdescriptors[prop] = desc = {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable,\n\t\t\t\tget(this: any) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn objectTraps.get(state, prop)\n\t\t\t\t},\n\t\t\t\tset(this: any, value) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tobjectTraps.set(state, prop, value)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn desc\n\t}\n\n\t// This looks expensive, but only proxies are visited, and only objects without known changes are scanned.\n\tfunction markChangesSweep(drafts: Drafted[]) {\n\t\t// The natural order of drafts in the `scope` array is based on when they\n\t\t// were accessed. By processing drafts in reverse natural order, we have a\n\t\t// better chance of processing leaf nodes first. When a leaf node is known to\n\t\t// have changed, we can avoid any traversal of its ancestor nodes.\n\t\tfor (let i = drafts.length - 1; i >= 0; i--) {\n\t\t\tconst state: ES5State = drafts[i][DRAFT_STATE]\n\t\t\tif (!state.modified_) {\n\t\t\t\tswitch (state.type_) {\n\t\t\t\t\tcase ProxyType.ES5Array:\n\t\t\t\t\t\tif (hasArrayChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase ProxyType.ES5Object:\n\t\t\t\t\t\tif (hasObjectChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction markChangesRecursively(object: any) {\n\t\tif (!object || typeof object !== \"object\") return\n\t\tconst state: ES5State | undefined = object[DRAFT_STATE]\n\t\tif (!state) return\n\t\tconst {base_, draft_, assigned_, type_} = state\n\t\tif (type_ === ProxyType.ES5Object) {\n\t\t\t// Look for added keys.\n\t\t\t// probably there is a faster way to detect changes, as sweep + recurse seems to do some\n\t\t\t// unnecessary work.\n\t\t\t// also: probably we can store the information we detect here, to speed up tree finalization!\n\t\t\teach(draft_, key => {\n\t\t\t\tif ((key as any) === DRAFT_STATE) return\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif ((base_ as any)[key] === undefined && !has(base_, key)) {\n\t\t\t\t\tassigned_[key] = true\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t} else if (!assigned_[key]) {\n\t\t\t\t\t// Only untouched properties trigger recursion.\n\t\t\t\t\tmarkChangesRecursively(draft_[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\t// Look for removed keys.\n\t\t\teach(base_, key => {\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif (draft_[key] === undefined && !has(draft_, key)) {\n\t\t\t\t\tassigned_[key] = false\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t}\n\t\t\t})\n\t\t} else if (type_ === ProxyType.ES5Array) {\n\t\t\tif (hasArrayChanges(state as ES5ArrayState)) {\n\t\t\t\tmarkChanged(state)\n\t\t\t\tassigned_.length = true\n\t\t\t}\n\n\t\t\tif (draft_.length < base_.length) {\n\t\t\t\tfor (let i = draft_.length; i < base_.length; i++) assigned_[i] = false\n\t\t\t} else {\n\t\t\t\tfor (let i = base_.length; i < draft_.length; i++) assigned_[i] = true\n\t\t\t}\n\n\t\t\t// Minimum count is enough, the other parts has been processed.\n\t\t\tconst min = Math.min(draft_.length, base_.length)\n\n\t\t\tfor (let i = 0; i < min; i++) {\n\t\t\t\t// Only untouched indices trigger recursion.\n\t\t\t\tif (!draft_.hasOwnProperty(i)) {\n\t\t\t\t\tassigned_[i] = true\n\t\t\t\t}\n\t\t\t\tif (assigned_[i] === undefined) markChangesRecursively(draft_[i])\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction hasObjectChanges(state: ES5ObjectState) {\n\t\tconst {base_, draft_} = state\n\n\t\t// Search for added keys and changed keys. Start at the back, because\n\t\t// non-numeric keys are ordered by time of definition on the object.\n\t\tconst keys = ownKeys(draft_)\n\t\tfor (let i = keys.length - 1; i >= 0; i--) {\n\t\t\tconst key: any = keys[i]\n\t\t\tif (key === DRAFT_STATE) continue\n\t\t\tconst baseValue = base_[key]\n\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\tif (baseValue === undefined && !has(base_, key)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// Once a base key is deleted, future changes go undetected, because its\n\t\t\t// descriptor is erased. This branch detects any missed changes.\n\t\t\telse {\n\t\t\t\tconst value = draft_[key]\n\t\t\t\tconst state: ImmerState = value && value[DRAFT_STATE]\n\t\t\t\tif (state ? state.base_ !== baseValue : !is(value, baseValue)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// At this point, no keys were added or changed.\n\t\t// Compare key count to determine if keys were deleted.\n\t\tconst baseIsDraft = !!base_[DRAFT_STATE as any]\n\t\treturn keys.length !== ownKeys(base_).length + (baseIsDraft ? 0 : 1) // + 1 to correct for DRAFT_STATE\n\t}\n\n\tfunction hasArrayChanges(state: ES5ArrayState) {\n\t\tconst {draft_} = state\n\t\tif (draft_.length !== state.base_.length) return true\n\t\t// See #116\n\t\t// If we first shorten the length, our array interceptors will be removed.\n\t\t// If after that new items are added, result in the same original length,\n\t\t// those last items will have no intercepting property.\n\t\t// So if there is no own descriptor on the last position, we know that items were removed and added\n\t\t// N.B.: splice, unshift, etc only shift values around, but not prop descriptors, so we only have to check\n\t\t// the last one\n\t\t// last descriptor can be not a trap, if the array was extended\n\t\tconst descriptor = Object.getOwnPropertyDescriptor(\n\t\t\tdraft_,\n\t\t\tdraft_.length - 1\n\t\t)\n\t\t// descriptor can be null, but only for newly created sparse arrays, eg. new Array(10)\n\t\tif (descriptor && !descriptor.get) return true\n\t\t// if we miss a property, it has been deleted, so array probobaly changed\n\t\tfor (let i = 0; i < draft_.length; i++) {\n\t\t\tif (!draft_.hasOwnProperty(i)) return true\n\t\t}\n\t\t// For all other cases, we don't have to compare, as they would have been picked up by the index setters\n\t\treturn false\n\t}\n\n\tfunction hasChanges_(state: ES5State) {\n\t\treturn state.type_ === ProxyType.ES5Object\n\t\t\t? hasObjectChanges(state)\n\t\t\t: hasArrayChanges(state)\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"ES5\", {\n\t\tcreateES5Proxy_,\n\t\twillFinalizeES5_,\n\t\thasChanges_\n\t})\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = immer.produce\nexport default produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n * always faster than using ES5 proxies.\n *\n * By default, feature detection is used, so calling this is rarely necessary.\n */\nexport const setUseProxies = immer.setUseProxies.bind(immer)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft(value: T): Draft {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable(value: T): Immutable {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enableES5} from \"./plugins/es5\"\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\nexport {enableAllPlugins} from \"./plugins/all\"\n","// Should be no imports here!\n\n// Some things that should be evaluated before all else...\n\n// We only want to know if non-polyfilled symbols are available\nconst hasSymbol =\n\ttypeof Symbol !== \"undefined\" && typeof Symbol(\"x\") === \"symbol\"\nexport const hasMap = typeof Map !== \"undefined\"\nexport const hasSet = typeof Set !== \"undefined\"\nexport const hasProxies =\n\ttypeof Proxy !== \"undefined\" &&\n\ttypeof Proxy.revocable !== \"undefined\" &&\n\ttypeof Reflect !== \"undefined\"\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: Nothing = hasSymbol\n\t? Symbol.for(\"immer-nothing\")\n\t: ({[\"immer-nothing\"]: true} as any)\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-draftable\")\n\t: (\"__$immer_draftable\" as any)\n\nexport const DRAFT_STATE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-state\")\n\t: (\"__$immer_state\" as any)\n\n// Even a polyfilled Symbol might provide Symbol.iterator\nexport const iteratorSymbol: typeof Symbol.iterator =\n\t(typeof Symbol != \"undefined\" && Symbol.iterator) || (\"@@iterator\" as any)\n\n/** Use a class type for `nothing` so its type is unique */\nexport class Nothing {\n\t// This lets us do `Exclude`\n\t// @ts-ignore\n\tprivate _!: unique symbol\n}\n","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\n","const _excluded = [\"as\", \"onSelect\", \"activeKey\", \"role\", \"onKeyDown\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport qsa from 'dom-helpers/querySelectorAll';\nimport * as React from 'react';\nimport { useContext, useEffect, useRef } from 'react';\nimport useForceUpdate from '@restart/hooks/useForceUpdate';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport NavContext from './NavContext';\nimport SelectableContext, { makeEventKey } from './SelectableContext';\nimport TabContext from './TabContext';\nimport { dataAttr, dataProp } from './DataKey';\nimport NavItem from './NavItem';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = () => {};\nconst EVENT_KEY_ATTR = dataAttr('event-key');\nconst Nav = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n onSelect,\n activeKey,\n role,\n onKeyDown\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n // A ref and forceUpdate for refocus, b/c we only want to trigger when needed\n // and don't want to reset the set in the effect\n const forceUpdate = useForceUpdate();\n const needsRefocusRef = useRef(false);\n const parentOnSelect = useContext(SelectableContext);\n const tabContext = useContext(TabContext);\n let getControlledId, getControllerId;\n if (tabContext) {\n role = role || 'tablist';\n activeKey = tabContext.activeKey;\n // TODO: do we need to duplicate these?\n getControlledId = tabContext.getControlledId;\n getControllerId = tabContext.getControllerId;\n }\n const listNode = useRef(null);\n const getNextActiveTab = offset => {\n const currentListNode = listNode.current;\n if (!currentListNode) return null;\n const items = qsa(currentListNode, `[${EVENT_KEY_ATTR}]:not([aria-disabled=true])`);\n const activeChild = currentListNode.querySelector('[aria-selected=true]');\n if (!activeChild || activeChild !== document.activeElement) return null;\n const index = items.indexOf(activeChild);\n if (index === -1) return null;\n let nextIndex = index + offset;\n if (nextIndex >= items.length) nextIndex = 0;\n if (nextIndex < 0) nextIndex = items.length - 1;\n return items[nextIndex];\n };\n const handleSelect = (key, event) => {\n if (key == null) return;\n onSelect == null ? void 0 : onSelect(key, event);\n parentOnSelect == null ? void 0 : parentOnSelect(key, event);\n };\n const handleKeyDown = event => {\n onKeyDown == null ? void 0 : onKeyDown(event);\n if (!tabContext) {\n return;\n }\n let nextActiveChild;\n switch (event.key) {\n case 'ArrowLeft':\n case 'ArrowUp':\n nextActiveChild = getNextActiveTab(-1);\n break;\n case 'ArrowRight':\n case 'ArrowDown':\n nextActiveChild = getNextActiveTab(1);\n break;\n default:\n return;\n }\n if (!nextActiveChild) return;\n event.preventDefault();\n handleSelect(nextActiveChild.dataset[dataProp('EventKey')] || null, event);\n needsRefocusRef.current = true;\n forceUpdate();\n };\n useEffect(() => {\n if (listNode.current && needsRefocusRef.current) {\n const activeChild = listNode.current.querySelector(`[${EVENT_KEY_ATTR}][aria-selected=true]`);\n activeChild == null ? void 0 : activeChild.focus();\n }\n needsRefocusRef.current = false;\n });\n const mergedRef = useMergedRefs(ref, listNode);\n return /*#__PURE__*/_jsx(SelectableContext.Provider, {\n value: handleSelect,\n children: /*#__PURE__*/_jsx(NavContext.Provider, {\n value: {\n role,\n // used by NavLink to determine it's role\n activeKey: makeEventKey(activeKey),\n getControlledId: getControlledId || noop,\n getControllerId: getControllerId || noop\n },\n children: /*#__PURE__*/_jsx(Component, Object.assign({}, props, {\n onKeyDown: handleKeyDown,\n ref: mergedRef,\n role: role\n }))\n })\n });\n});\nNav.displayName = 'Nav';\nexport default Object.assign(Nav, {\n Item: NavItem\n});","import * as React from 'react';\nconst context = /*#__PURE__*/React.createContext(null);\ncontext.displayName = 'CardHeaderContext';\nexport default context;","import createWithBsPrefix from './createWithBsPrefix';\nexport default createWithBsPrefix('nav-item');","import classNames from 'classnames';\nimport all from 'prop-types-extra/lib/all';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { useUncontrolled } from 'uncontrollable';\nimport BaseNav from '@restart/ui/Nav';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport NavbarContext from './NavbarContext';\nimport CardHeaderContext from './CardHeaderContext';\nimport NavItem from './NavItem';\nimport NavLink from './NavLink';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n justify: false,\n fill: false\n};\nconst Nav = /*#__PURE__*/React.forwardRef((uncontrolledProps, ref) => {\n const {\n as = 'div',\n bsPrefix: initialBsPrefix,\n variant,\n fill,\n justify,\n navbar,\n navbarScroll,\n className,\n activeKey,\n ...props\n } = useUncontrolled(uncontrolledProps, {\n activeKey: 'onSelect'\n });\n const bsPrefix = useBootstrapPrefix(initialBsPrefix, 'nav');\n let navbarBsPrefix;\n let cardHeaderBsPrefix;\n let isNavbar = false;\n const navbarContext = useContext(NavbarContext);\n const cardHeaderContext = useContext(CardHeaderContext);\n if (navbarContext) {\n navbarBsPrefix = navbarContext.bsPrefix;\n isNavbar = navbar == null ? true : navbar;\n } else if (cardHeaderContext) {\n ({\n cardHeaderBsPrefix\n } = cardHeaderContext);\n }\n return /*#__PURE__*/_jsx(BaseNav, {\n as: as,\n ref: ref,\n activeKey: activeKey,\n className: classNames(className, {\n [bsPrefix]: !isNavbar,\n [`${navbarBsPrefix}-nav`]: isNavbar,\n [`${navbarBsPrefix}-nav-scroll`]: isNavbar && navbarScroll,\n [`${cardHeaderBsPrefix}-${variant}`]: !!cardHeaderBsPrefix,\n [`${bsPrefix}-${variant}`]: !!variant,\n [`${bsPrefix}-fill`]: fill,\n [`${bsPrefix}-justified`]: justify\n }),\n ...props\n });\n});\nNav.displayName = 'Nav';\nNav.defaultProps = defaultProps;\nexport default Object.assign(Nav, {\n Item: NavItem,\n Link: NavLink\n});","import { useMemo } from 'react';\n\nvar toFnRef = function toFnRef(ref) {\n return !ref || typeof ref === 'function' ? ref : function (value) {\n ref.current = value;\n };\n};\n\nexport function mergeRefs(refA, refB) {\n var a = toFnRef(refA);\n var b = toFnRef(refB);\n return function (value) {\n if (a) a(value);\n if (b) b(value);\n };\n}\n/**\n * Create and returns a single callback ref composed from two other Refs.\n *\n * ```tsx\n * const Button = React.forwardRef((props, ref) => {\n * const [element, attachRef] = useCallbackRef();\n * const mergedRef = useMergedRefs(ref, attachRef);\n *\n * return \n * ```\n */\n\nexport default function useForceUpdate() {\n // The toggling state value is designed to defeat React optimizations for skipping\n // updates when they are stricting equal to the last state value\n var _useReducer = useReducer(function (state) {\n return !state;\n }, false),\n dispatch = _useReducer[1];\n\n return dispatch;\n}","const _excluded = [\"as\", \"active\", \"eventKey\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport NavContext from './NavContext';\nimport SelectableContext, { makeEventKey } from './SelectableContext';\nimport Button from './Button';\nimport { dataAttr } from './DataKey';\nimport TabContext from './TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function useNavItem({\n key,\n onClick,\n active,\n id,\n role,\n disabled\n}) {\n const parentOnSelect = useContext(SelectableContext);\n const navContext = useContext(NavContext);\n const tabContext = useContext(TabContext);\n let isActive = active;\n const props = {\n role\n };\n if (navContext) {\n if (!role && navContext.role === 'tablist') props.role = 'tab';\n const contextControllerId = navContext.getControllerId(key != null ? key : null);\n const contextControlledId = navContext.getControlledId(key != null ? key : null);\n\n // @ts-ignore\n props[dataAttr('event-key')] = key;\n props.id = contextControllerId || id;\n isActive = active == null && key != null ? navContext.activeKey === key : active;\n\n /**\n * Simplified scenario for `mountOnEnter`.\n *\n * While it would make sense to keep 'aria-controls' for tabs that have been mounted at least\n * once, it would also complicate the code quite a bit, for very little gain.\n * The following implementation is probably good enough.\n *\n * @see https://github.com/react-restart/ui/pull/40#issuecomment-1009971561\n */\n if (isActive || !(tabContext != null && tabContext.unmountOnExit) && !(tabContext != null && tabContext.mountOnEnter)) props['aria-controls'] = contextControlledId;\n }\n if (props.role === 'tab') {\n props['aria-selected'] = isActive;\n if (!isActive) {\n props.tabIndex = -1;\n }\n if (disabled) {\n props.tabIndex = -1;\n props['aria-disabled'] = true;\n }\n }\n props.onClick = useEventCallback(e => {\n if (disabled) return;\n onClick == null ? void 0 : onClick(e);\n if (key == null) {\n return;\n }\n if (parentOnSelect && !e.isPropagationStopped()) {\n parentOnSelect(key, e);\n }\n });\n return [props, {\n isActive\n }];\n}\nconst NavItem = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n as: Component = Button,\n active,\n eventKey\n } = _ref,\n options = _objectWithoutPropertiesLoose(_ref, _excluded);\n const [props, meta] = useNavItem(Object.assign({\n key: makeEventKey(eventKey, options.href),\n active\n }, options));\n\n // @ts-ignore\n props[dataAttr('active')] = meta.isActive;\n return /*#__PURE__*/_jsx(Component, Object.assign({}, options, props, {\n ref: ref\n }));\n});\nNavItem.displayName = 'NavItem';\nexport default NavItem;","import classNames from 'classnames';\nimport * as React from 'react';\nimport Anchor from '@restart/ui/Anchor';\nimport { useNavItem } from '@restart/ui/NavItem';\nimport { makeEventKey } from '@restart/ui/SelectableContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n disabled: false\n};\nconst NavLink = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n as: Component = Anchor,\n active,\n eventKey,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'nav-link');\n const [navItemProps, meta] = useNavItem({\n key: makeEventKey(eventKey, props.href),\n active,\n ...props\n });\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n ...navItemProps,\n ref: ref,\n className: classNames(className, bsPrefix, props.disabled && 'disabled', meta.isActive && 'active')\n });\n});\nNavLink.displayName = 'NavLink';\nNavLink.defaultProps = defaultProps;\nexport default NavLink;","import * as React from 'react';\nconst context = /*#__PURE__*/React.createContext(null);\ncontext.displayName = 'InputGroupContext';\nexport default context;","import * as React from 'react';\nconst DropdownContext = /*#__PURE__*/React.createContext({});\nDropdownContext.displayName = 'DropdownContext';\nexport default DropdownContext;","import invariant from 'invariant';\nimport { useCallback } from 'react';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nexport default function useWrappedRefWithWarning(ref, componentName) {\n // @ts-ignore\n if (!(process.env.NODE_ENV !== \"production\")) return ref;\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const warningRef = useCallback(refValue => {\n !(refValue == null || !refValue.isReactComponent) ? process.env.NODE_ENV !== \"production\" ? invariant(false, `${componentName} injected a ref to a provided \\`as\\` component that resolved to a component instance instead of a DOM element. ` + 'Use `React.forwardRef` to provide the injected ref to the class component as a prop in order to pass it directly to a DOM element') : invariant(false) : void 0;\n }, [componentName]);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useMergedRefs(warningRef, ref);\n}","import useMergedRefs from '@restart/hooks/useMergedRefs';\nimport DropdownContext from '@restart/ui/DropdownContext';\nimport { useDropdownToggle } from '@restart/ui/DropdownToggle';\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport Button from './Button';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport useWrappedRefWithWarning from './useWrappedRefWithWarning';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DropdownToggle = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n split,\n className,\n childBsPrefix,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = Button,\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'dropdown-toggle');\n const dropdownContext = useContext(DropdownContext);\n if (childBsPrefix !== undefined) {\n props.bsPrefix = childBsPrefix;\n }\n const [toggleProps] = useDropdownToggle();\n toggleProps.ref = useMergedRefs(toggleProps.ref, useWrappedRefWithWarning(ref, 'DropdownToggle'));\n\n // This intentionally forwards size and variant (if set) to the\n // underlying component, to allow it to render size and style variants.\n return /*#__PURE__*/_jsx(Component, {\n className: classNames(className, prefix, split && `${prefix}-split`, (dropdownContext == null ? void 0 : dropdownContext.show) && 'show'),\n ...toggleProps,\n ...props\n });\n});\nDropdownToggle.displayName = 'DropdownToggle';\nexport default DropdownToggle;","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","var has = Object.prototype.hasOwnProperty;\n\nfunction find(iter, tar, key) {\n\tfor (key of iter.keys()) {\n\t\tif (dequal(key, tar)) return key;\n\t}\n}\n\nexport function dequal(foo, bar) {\n\tvar ctor, len, tmp;\n\tif (foo === bar) return true;\n\n\tif (foo && bar && (ctor=foo.constructor) === bar.constructor) {\n\t\tif (ctor === Date) return foo.getTime() === bar.getTime();\n\t\tif (ctor === RegExp) return foo.toString() === bar.toString();\n\n\t\tif (ctor === Array) {\n\t\t\tif ((len=foo.length) === bar.length) {\n\t\t\t\twhile (len-- && dequal(foo[len], bar[len]));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (ctor === Set) {\n\t\t\tif (foo.size !== bar.size) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (len of foo) {\n\t\t\t\ttmp = len;\n\t\t\t\tif (tmp && typeof tmp === 'object') {\n\t\t\t\t\ttmp = find(bar, tmp);\n\t\t\t\t\tif (!tmp) return false;\n\t\t\t\t}\n\t\t\t\tif (!bar.has(tmp)) return false;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (ctor === Map) {\n\t\t\tif (foo.size !== bar.size) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (len of foo) {\n\t\t\t\ttmp = len[0];\n\t\t\t\tif (tmp && typeof tmp === 'object') {\n\t\t\t\t\ttmp = find(bar, tmp);\n\t\t\t\t\tif (!tmp) return false;\n\t\t\t\t}\n\t\t\t\tif (!dequal(len[1], bar.get(tmp))) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (ctor === ArrayBuffer) {\n\t\t\tfoo = new Uint8Array(foo);\n\t\t\tbar = new Uint8Array(bar);\n\t\t} else if (ctor === DataView) {\n\t\t\tif ((len=foo.byteLength) === bar.byteLength) {\n\t\t\t\twhile (len-- && foo.getInt8(len) === bar.getInt8(len));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (ArrayBuffer.isView(foo)) {\n\t\t\tif ((len=foo.byteLength) === bar.byteLength) {\n\t\t\t\twhile (len-- && foo[len] === bar[len]);\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (!ctor || typeof foo === 'object') {\n\t\t\tlen = 0;\n\t\t\tfor (ctor in foo) {\n\t\t\t\tif (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n\t\t\t\tif (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n\t\t\t}\n\t\t\treturn Object.keys(bar).length === len;\n\t\t}\n\t}\n\n\treturn foo !== foo && bar !== bar;\n}\n","import { useCallback } from 'react';\nimport useMounted from './useMounted';\n\nfunction useSafeState(state) {\n var isMounted = useMounted();\n return [state[0], useCallback(function (nextState) {\n if (!isMounted()) return;\n return state[1](nextState);\n }, [isMounted, state[1]])];\n}\n\nexport default useSafeState;","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import arrow from '@popperjs/core/lib/modifiers/arrow';\nimport computeStyles from '@popperjs/core/lib/modifiers/computeStyles';\nimport eventListeners from '@popperjs/core/lib/modifiers/eventListeners';\nimport flip from '@popperjs/core/lib/modifiers/flip';\nimport hide from '@popperjs/core/lib/modifiers/hide';\nimport offset from '@popperjs/core/lib/modifiers/offset';\nimport popperOffsets from '@popperjs/core/lib/modifiers/popperOffsets';\nimport preventOverflow from '@popperjs/core/lib/modifiers/preventOverflow';\nimport { placements } from '@popperjs/core/lib/enums';\nimport { popperGenerator } from '@popperjs/core/lib/popper-base';\n\n// For the common JS build we will turn this file into a bundle with no imports.\n// This is b/c the Popper lib is all esm files, and would break in a common js only environment\nexport const createPopper = popperGenerator({\n defaultModifiers: [hide, popperOffsets, computeStyles, eventListeners, offset, flip, preventOverflow, arrow]\n});\nexport { placements };","const _excluded = [\"enabled\", \"placement\", \"strategy\", \"modifiers\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { dequal } from 'dequal';\nimport useSafeState from '@restart/hooks/useSafeState';\nimport { createPopper } from './popper';\nconst disabledApplyStylesModifier = {\n name: 'applyStyles',\n enabled: false,\n phase: 'afterWrite',\n fn: () => undefined\n};\n\n// until docjs supports type exports...\n\nconst ariaDescribedByModifier = {\n name: 'ariaDescribedBy',\n enabled: true,\n phase: 'afterWrite',\n effect: ({\n state\n }) => () => {\n const {\n reference,\n popper\n } = state.elements;\n if ('removeAttribute' in reference) {\n const ids = (reference.getAttribute('aria-describedby') || '').split(',').filter(id => id.trim() !== popper.id);\n if (!ids.length) reference.removeAttribute('aria-describedby');else reference.setAttribute('aria-describedby', ids.join(','));\n }\n },\n fn: ({\n state\n }) => {\n var _popper$getAttribute;\n const {\n popper,\n reference\n } = state.elements;\n const role = (_popper$getAttribute = popper.getAttribute('role')) == null ? void 0 : _popper$getAttribute.toLowerCase();\n if (popper.id && role === 'tooltip' && 'setAttribute' in reference) {\n const ids = reference.getAttribute('aria-describedby');\n if (ids && ids.split(',').indexOf(popper.id) !== -1) {\n return;\n }\n reference.setAttribute('aria-describedby', ids ? `${ids},${popper.id}` : popper.id);\n }\n }\n};\nconst EMPTY_MODIFIERS = [];\n/**\n * Position an element relative some reference element using Popper.js\n *\n * @param referenceElement\n * @param popperElement\n * @param {object} options\n * @param {object=} options.modifiers Popper.js modifiers\n * @param {boolean=} options.enabled toggle the popper functionality on/off\n * @param {string=} options.placement The popper element placement relative to the reference element\n * @param {string=} options.strategy the positioning strategy\n * @param {function=} options.onCreate called when the popper is created\n * @param {function=} options.onUpdate called when the popper is updated\n *\n * @returns {UsePopperState} The popper state\n */\nfunction usePopper(referenceElement, popperElement, _ref = {}) {\n let {\n enabled = true,\n placement = 'bottom',\n strategy = 'absolute',\n modifiers = EMPTY_MODIFIERS\n } = _ref,\n config = _objectWithoutPropertiesLoose(_ref, _excluded);\n const prevModifiers = useRef(modifiers);\n const popperInstanceRef = useRef();\n const update = useCallback(() => {\n var _popperInstanceRef$cu;\n (_popperInstanceRef$cu = popperInstanceRef.current) == null ? void 0 : _popperInstanceRef$cu.update();\n }, []);\n const forceUpdate = useCallback(() => {\n var _popperInstanceRef$cu2;\n (_popperInstanceRef$cu2 = popperInstanceRef.current) == null ? void 0 : _popperInstanceRef$cu2.forceUpdate();\n }, []);\n const [popperState, setState] = useSafeState(useState({\n placement,\n update,\n forceUpdate,\n attributes: {},\n styles: {\n popper: {},\n arrow: {}\n }\n }));\n const updateModifier = useMemo(() => ({\n name: 'updateStateModifier',\n enabled: true,\n phase: 'write',\n requires: ['computeStyles'],\n fn: ({\n state\n }) => {\n const styles = {};\n const attributes = {};\n Object.keys(state.elements).forEach(element => {\n styles[element] = state.styles[element];\n attributes[element] = state.attributes[element];\n });\n setState({\n state,\n styles,\n attributes,\n update,\n forceUpdate,\n placement: state.placement\n });\n }\n }), [update, forceUpdate, setState]);\n const nextModifiers = useMemo(() => {\n if (!dequal(prevModifiers.current, modifiers)) {\n prevModifiers.current = modifiers;\n }\n return prevModifiers.current;\n }, [modifiers]);\n useEffect(() => {\n if (!popperInstanceRef.current || !enabled) return;\n popperInstanceRef.current.setOptions({\n placement,\n strategy,\n modifiers: [...nextModifiers, updateModifier, disabledApplyStylesModifier]\n });\n }, [strategy, placement, updateModifier, enabled, nextModifiers]);\n useEffect(() => {\n if (!enabled || referenceElement == null || popperElement == null) {\n return undefined;\n }\n popperInstanceRef.current = createPopper(referenceElement, popperElement, Object.assign({}, config, {\n placement,\n strategy,\n modifiers: [...nextModifiers, ariaDescribedByModifier, updateModifier]\n }));\n return () => {\n if (popperInstanceRef.current != null) {\n popperInstanceRef.current.destroy();\n popperInstanceRef.current = undefined;\n setState(s => Object.assign({}, s, {\n attributes: {},\n styles: {\n popper: {}\n }\n }));\n }\n };\n // This is only run once to _create_ the popper\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [enabled, referenceElement, popperElement]);\n return popperState;\n}\nexport default usePopper;","import contains from 'dom-helpers/contains';\nimport listen from 'dom-helpers/listen';\nimport ownerDocument from 'dom-helpers/ownerDocument';\nimport { useCallback, useEffect, useRef } from 'react';\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport warning from 'warning';\nconst noop = () => {};\nfunction isLeftClickEvent(event) {\n return event.button === 0;\n}\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\nexport const getRefTarget = ref => ref && ('current' in ref ? ref.current : ref);\nconst InitialTriggerEvents = {\n click: 'mousedown',\n mouseup: 'mousedown',\n pointerup: 'pointerdown'\n};\n\n/**\n * The `useClickOutside` hook registers your callback on the document that fires\n * when a pointer event is registered outside of the provided ref or element.\n *\n * @param {Ref| HTMLElement} ref The element boundary\n * @param {function} onClickOutside\n * @param {object=} options\n * @param {boolean=} options.disabled\n * @param {string=} options.clickTrigger The DOM event name (click, mousedown, etc) to attach listeners on\n */\nfunction useClickOutside(ref, onClickOutside = noop, {\n disabled,\n clickTrigger = 'click'\n} = {}) {\n const preventMouseClickOutsideRef = useRef(false);\n const waitingForTrigger = useRef(false);\n const handleMouseCapture = useCallback(e => {\n const currentTarget = getRefTarget(ref);\n warning(!!currentTarget, 'ClickOutside captured a close event but does not have a ref to compare it to. ' + 'useClickOutside(), should be passed a ref that resolves to a DOM node');\n preventMouseClickOutsideRef.current = !currentTarget || isModifiedEvent(e) || !isLeftClickEvent(e) || !!contains(currentTarget, e.target) || waitingForTrigger.current;\n waitingForTrigger.current = false;\n }, [ref]);\n const handleInitialMouse = useEventCallback(e => {\n const currentTarget = getRefTarget(ref);\n if (currentTarget && contains(currentTarget, e.target)) {\n waitingForTrigger.current = true;\n }\n });\n const handleMouse = useEventCallback(e => {\n if (!preventMouseClickOutsideRef.current) {\n onClickOutside(e);\n }\n });\n useEffect(() => {\n if (disabled || ref == null) return undefined;\n const doc = ownerDocument(getRefTarget(ref));\n\n // Store the current event to avoid triggering handlers immediately\n // https://github.com/facebook/react/issues/20074\n let currentEvent = (doc.defaultView || window).event;\n let removeInitialTriggerListener = null;\n if (InitialTriggerEvents[clickTrigger]) {\n removeInitialTriggerListener = listen(doc, InitialTriggerEvents[clickTrigger], handleInitialMouse, true);\n }\n\n // Use capture for this listener so it fires before React's listener, to\n // avoid false positives in the contains() check below if the target DOM\n // element is removed in the React mouse callback.\n const removeMouseCaptureListener = listen(doc, clickTrigger, handleMouseCapture, true);\n const removeMouseListener = listen(doc, clickTrigger, e => {\n // skip if this event is the same as the one running when we added the handlers\n if (e === currentEvent) {\n currentEvent = undefined;\n return;\n }\n handleMouse(e);\n });\n let mobileSafariHackListeners = [];\n if ('ontouchstart' in doc.documentElement) {\n mobileSafariHackListeners = [].slice.call(doc.body.children).map(el => listen(el, 'mousemove', noop));\n }\n return () => {\n removeInitialTriggerListener == null ? void 0 : removeInitialTriggerListener();\n removeMouseCaptureListener();\n removeMouseListener();\n mobileSafariHackListeners.forEach(remove => remove());\n };\n }, [ref, disabled, clickTrigger, handleMouseCapture, handleInitialMouse, handleMouse]);\n}\nexport default useClickOutside;","export function toModifierMap(modifiers) {\n const result = {};\n if (!Array.isArray(modifiers)) {\n return modifiers || result;\n }\n\n // eslint-disable-next-line no-unused-expressions\n modifiers == null ? void 0 : modifiers.forEach(m => {\n result[m.name] = m;\n });\n return result;\n}\nexport function toModifierArray(map = {}) {\n if (Array.isArray(map)) return map;\n return Object.keys(map).map(k => {\n map[k].name = k;\n return map[k];\n });\n}\nexport default function mergeOptionsWithPopperConfig({\n enabled,\n enableEvents,\n placement,\n flip,\n offset,\n fixed,\n containerPadding,\n arrowElement,\n popperConfig = {}\n}) {\n var _modifiers$eventListe, _modifiers$preventOve, _modifiers$preventOve2, _modifiers$offset, _modifiers$arrow;\n const modifiers = toModifierMap(popperConfig.modifiers);\n return Object.assign({}, popperConfig, {\n placement,\n enabled,\n strategy: fixed ? 'fixed' : popperConfig.strategy,\n modifiers: toModifierArray(Object.assign({}, modifiers, {\n eventListeners: {\n enabled: enableEvents,\n options: (_modifiers$eventListe = modifiers.eventListeners) == null ? void 0 : _modifiers$eventListe.options\n },\n preventOverflow: Object.assign({}, modifiers.preventOverflow, {\n options: containerPadding ? Object.assign({\n padding: containerPadding\n }, (_modifiers$preventOve = modifiers.preventOverflow) == null ? void 0 : _modifiers$preventOve.options) : (_modifiers$preventOve2 = modifiers.preventOverflow) == null ? void 0 : _modifiers$preventOve2.options\n }),\n offset: {\n options: Object.assign({\n offset\n }, (_modifiers$offset = modifiers.offset) == null ? void 0 : _modifiers$offset.options)\n },\n arrow: Object.assign({}, modifiers.arrow, {\n enabled: !!arrowElement,\n options: Object.assign({}, (_modifiers$arrow = modifiers.arrow) == null ? void 0 : _modifiers$arrow.options, {\n element: arrowElement\n })\n }),\n flip: Object.assign({\n enabled: !!flip\n }, modifiers.flip)\n }))\n });\n}","const _excluded = [\"children\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { useContext, useRef } from 'react';\nimport * as React from 'react';\nimport useCallbackRef from '@restart/hooks/useCallbackRef';\nimport DropdownContext from './DropdownContext';\nimport usePopper from './usePopper';\nimport useClickOutside from './useClickOutside';\nimport mergeOptionsWithPopperConfig from './mergeOptionsWithPopperConfig';\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst noop = () => {};\n\n/**\n * @memberOf Dropdown\n * @param {object} options\n * @param {boolean} options.flip Automatically adjust the menu `drop` position based on viewport edge detection\n * @param {[number, number]} options.offset Define an offset distance between the Menu and the Toggle\n * @param {boolean} options.show Display the menu manually, ignored in the context of a `Dropdown`\n * @param {boolean} options.usePopper opt in/out of using PopperJS to position menus. When disabled you must position it yourself.\n * @param {string} options.rootCloseEvent The pointer event to listen for when determining \"clicks outside\" the menu for triggering a close.\n * @param {object} options.popperConfig Options passed to the [`usePopper`](/api/usePopper) hook.\n */\nexport function useDropdownMenu(options = {}) {\n const context = useContext(DropdownContext);\n const [arrowElement, attachArrowRef] = useCallbackRef();\n const hasShownRef = useRef(false);\n const {\n flip,\n offset,\n rootCloseEvent,\n fixed = false,\n placement: placementOverride,\n popperConfig = {},\n enableEventListeners = true,\n usePopper: shouldUsePopper = !!context\n } = options;\n const show = (context == null ? void 0 : context.show) == null ? !!options.show : context.show;\n if (show && !hasShownRef.current) {\n hasShownRef.current = true;\n }\n const handleClose = e => {\n context == null ? void 0 : context.toggle(false, e);\n };\n const {\n placement,\n setMenu,\n menuElement,\n toggleElement\n } = context || {};\n const popper = usePopper(toggleElement, menuElement, mergeOptionsWithPopperConfig({\n placement: placementOverride || placement || 'bottom-start',\n enabled: shouldUsePopper,\n enableEvents: enableEventListeners == null ? show : enableEventListeners,\n offset,\n flip,\n fixed,\n arrowElement,\n popperConfig\n }));\n const menuProps = Object.assign({\n ref: setMenu || noop,\n 'aria-labelledby': toggleElement == null ? void 0 : toggleElement.id\n }, popper.attributes.popper, {\n style: popper.styles.popper\n });\n const metadata = {\n show,\n placement,\n hasShown: hasShownRef.current,\n toggle: context == null ? void 0 : context.toggle,\n popper: shouldUsePopper ? popper : null,\n arrowProps: shouldUsePopper ? Object.assign({\n ref: attachArrowRef\n }, popper.attributes.arrow, {\n style: popper.styles.arrow\n }) : {}\n };\n useClickOutside(menuElement, handleClose, {\n clickTrigger: rootCloseEvent,\n disabled: !show\n });\n return [menuProps, metadata];\n}\nconst defaultProps = {\n usePopper: true\n};\n/**\n * Also exported as `` from `Dropdown`.\n *\n * @displayName DropdownMenu\n * @memberOf Dropdown\n */\nfunction DropdownMenu(_ref) {\n let {\n children\n } = _ref,\n options = _objectWithoutPropertiesLoose(_ref, _excluded);\n const [props, meta] = useDropdownMenu(options);\n return /*#__PURE__*/_jsx(_Fragment, {\n children: children(props, meta)\n });\n}\nDropdownMenu.displayName = 'DropdownMenu';\nDropdownMenu.defaultProps = defaultProps;\n\n/** @component */\nexport default DropdownMenu;","import { useState } from 'react';\nimport useEffect from './useIsomorphicEffect';\nvar targetMap = new WeakMap();\nvar resizeObserver;\n\nfunction getResizeObserver() {\n // eslint-disable-next-line no-return-assign\n return resizeObserver = resizeObserver || new window.ResizeObserver(function (entries) {\n entries.forEach(function (entry) {\n var handler = targetMap.get(entry.target);\n if (handler) handler(entry.contentRect);\n });\n });\n}\n/**\n * Efficiently observe size changes on an element. Depends on the `ResizeObserver` api,\n * and polyfills are needed in older browsers.\n *\n * ```ts\n * const [ref, attachRef] = useCallbackRef(null);\n *\n * const rect = useResizeObserver(ref);\n *\n * return (\n *
\n * {JSON.stringify(rect)}\n *
\n * )\n * ```\n *\n * @param element The DOM element to observe\n */\n\n\nexport default function useResizeObserver(element) {\n var _useState = useState(null),\n rect = _useState[0],\n setRect = _useState[1];\n\n useEffect(function () {\n if (!element) return;\n getResizeObserver().observe(element);\n setRect(element.getBoundingClientRect());\n targetMap.set(element, function (rect) {\n setRect(rect);\n });\n return function () {\n targetMap.delete(element);\n };\n }, [element]);\n return rect;\n}","const _excluded = [\"onKeyDown\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/anchor-has-content */\n\nimport * as React from 'react';\nimport { useEventCallback } from '@restart/hooks';\nimport { useButtonProps } from './Button';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function isTrivialHref(href) {\n return !href || href.trim() === '#';\n}\n/**\n * An generic `
` component that covers a few A11y cases, ensuring that\n * cases where the `href` is missing or trivial like \"#\" are treated like buttons.\n */\nconst Anchor = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n onKeyDown\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n const [buttonProps] = useButtonProps(Object.assign({\n tagName: 'a'\n }, props));\n const handleKeyDown = useEventCallback(e => {\n buttonProps.onKeyDown(e);\n onKeyDown == null ? void 0 : onKeyDown(e);\n });\n if (isTrivialHref(props.href) || props.role === 'button') {\n return /*#__PURE__*/_jsx(\"a\", Object.assign({\n ref: ref\n }, props, buttonProps, {\n onKeyDown: handleKeyDown\n }));\n }\n return /*#__PURE__*/_jsx(\"a\", Object.assign({\n ref: ref\n }, props, {\n onKeyDown: onKeyDown\n }));\n});\nAnchor.displayName = 'Anchor';\nexport default Anchor;","import ownerDocument from './ownerDocument';\n/**\n * Returns the actively focused element safely.\n *\n * @param doc the document to check\n */\n\nexport default function activeElement(doc) {\n if (doc === void 0) {\n doc = ownerDocument();\n }\n\n // Support: IE 9 only\n // IE9 throws an \"Unspecified error\" accessing document.activeElement from an