{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/react-icons/lib/iconsManifest.mjs","webpack:///./node_modules/react-icons/lib/iconContext.mjs","webpack:///./node_modules/react-icons/lib/iconBase.mjs","webpack:///./node_modules/react/index.js","webpack:///./node_modules/@fullcalendar/common/vdom.js","webpack:///./node_modules/@fullcalendar/common/main.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/jquery/src/core.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/chart.js/dist/chunks/helpers.segment.mjs","webpack:///./node_modules/chart.js/dist/chart.mjs","webpack:///./node_modules/dayjs/dayjs.min.js","webpack:///./node_modules/jquery/src/var/isFunction.js","webpack:///./node_modules/jquery/src/var/document.js","webpack:///./node_modules/jquery/src/selector.js","webpack:///./node_modules/jquery/src/core/init.js","webpack:///./node_modules/jquery/src/data/var/dataPriv.js","webpack:///./node_modules/axios/lib/core/AxiosError.js","webpack:///./node_modules/jquery/src/core/nodeName.js","webpack:///./node_modules/jquery/src/var/rnothtmlwhite.js","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/jquery/src/var/support.js","webpack:///./node_modules/jquery/src/core/access.js","webpack:///./node_modules/jquery/src/ajax.js","webpack:///./node_modules/jquery/src/core/toType.js","webpack:///./node_modules/jquery/src/traversing.js","webpack:///./node_modules/jquery/src/deferred.js","webpack:///./node_modules/jquery/src/event.js","webpack:///./node_modules/react-chartjs-2/dist/index.js","webpack:///./node_modules/jquery/src/var/arr.js","webpack:///./node_modules/jquery/src/var/isWindow.js","webpack:///./node_modules/jquery/src/core/camelCase.js","webpack:///./node_modules/jquery/src/css.js","webpack:///./node_modules/dayjs/plugin/timezone.js","webpack:///./node_modules/dayjs/plugin/utc.js","webpack:///./node_modules/react-modal/lib/index.js","webpack:///./node_modules/jquery/src/var/slice.js","webpack:///./node_modules/jquery/src/var/class2type.js","webpack:///./node_modules/jquery/src/data/var/acceptData.js","webpack:///./node_modules/jquery/src/core/isAttached.js","webpack:///./node_modules/jquery/src/var/documentElement.js","webpack:///./node_modules/jquery/src/manipulation.js","webpack:///./node_modules/jquery/src/var/indexOf.js","webpack:///./node_modules/jquery/src/var/hasOwn.js","webpack:///./node_modules/jquery/src/callbacks.js","webpack:///./node_modules/jquery/src/queue.js","webpack:///./node_modules/jquery/src/effects.js","webpack:///./node_modules/jquery/src/var/rcssNum.js","webpack:///./node_modules/jquery/src/css/var/cssExpand.js","webpack:///./node_modules/jquery/src/var/rcheckableType.js","webpack:///./node_modules/jquery/src/css/var/rnumnonpx.js","webpack:///./node_modules/jquery/src/css/support.js","webpack:///./node_modules/jquery/src/attributes/support.js","webpack:///./node_modules/jquery/src/core/stripAndCollapse.js","webpack:///./node_modules/jquery/src/event/trigger.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/jquery/src/jquery.js","webpack:///./node_modules/jquery/src/var/getProto.js","webpack:///./node_modules/jquery/src/var/flat.js","webpack:///./node_modules/jquery/src/var/push.js","webpack:///./node_modules/jquery/src/var/toString.js","webpack:///./node_modules/jquery/src/var/fnToString.js","webpack:///./node_modules/jquery/src/core/DOMEval.js","webpack:///./node_modules/jquery/src/traversing/var/rneedsContext.js","webpack:///./node_modules/jquery/src/core/var/rsingleTag.js","webpack:///./node_modules/jquery/src/traversing/findFilter.js","webpack:///./node_modules/jquery/src/core/ready.js","webpack:///./node_modules/jquery/src/data/Data.js","webpack:///./node_modules/jquery/src/data/var/dataUser.js","webpack:///./node_modules/jquery/src/var/pnum.js","webpack:///./node_modules/jquery/src/css/var/isHiddenWithinTree.js","webpack:///./node_modules/jquery/src/css/adjustCSS.js","webpack:///./node_modules/jquery/src/manipulation/var/rtagName.js","webpack:///./node_modules/jquery/src/manipulation/var/rscriptType.js","webpack:///./node_modules/jquery/src/manipulation/wrapMap.js","webpack:///./node_modules/jquery/src/manipulation/support.js","webpack:///./node_modules/jquery/src/manipulation/getAll.js","webpack:///./node_modules/jquery/src/manipulation/setGlobalEval.js","webpack:///./node_modules/jquery/src/manipulation/buildFragment.js","webpack:///./node_modules/jquery/src/css/var/rcustomProp.js","webpack:///./node_modules/jquery/src/css/var/getStyles.js","webpack:///./node_modules/jquery/src/css/curCSS.js","webpack:///./node_modules/jquery/src/css/addGetHookIf.js","webpack:///./node_modules/jquery/src/css/finalPropName.js","webpack:///./node_modules/jquery/src/attributes/prop.js","webpack:///./node_modules/jquery/src/ajax/var/nonce.js","webpack:///./node_modules/jquery/src/ajax/var/rquery.js","webpack:///./node_modules/jquery/src/core/parseXML.js","webpack:///./node_modules/jquery/src/serialize.js","webpack:///./node_modules/jquery/src/core/parseHTML.js","webpack:///./app/javascript/components/Calendar.js","webpack:///./node_modules/@stripe/react-stripe-js/dist/react-stripe.umd.js","webpack:///./node_modules/dayjs/plugin/isBetween.js","webpack:///./node_modules/jquery/src/var/ObjectFunctionString.js","webpack:///./node_modules/jquery/src/selector-sizzle.js","webpack:///./node_modules/jquery/external/sizzle/dist/sizzle.js","webpack:///./node_modules/jquery/src/traversing/var/dir.js","webpack:///./node_modules/jquery/src/traversing/var/siblings.js","webpack:///./node_modules/jquery/src/deferred/exceptionHook.js","webpack:///./node_modules/jquery/src/core/readyException.js","webpack:///./node_modules/jquery/src/data.js","webpack:///./node_modules/jquery/src/queue/delay.js","webpack:///./node_modules/jquery/src/css/showHide.js","webpack:///./node_modules/jquery/src/css/var/swap.js","webpack:///./node_modules/jquery/src/css/var/rboxStyle.js","webpack:///./node_modules/jquery/src/var/rtrimCSS.js","webpack:///./node_modules/jquery/src/var/whitespace.js","webpack:///./node_modules/jquery/src/effects/Tween.js","webpack:///./node_modules/jquery/src/attributes.js","webpack:///./node_modules/jquery/src/attributes/attr.js","webpack:///./node_modules/jquery/src/attributes/classes.js","webpack:///./node_modules/jquery/src/attributes/val.js","webpack:///./node_modules/jquery/src/event/focusin.js","webpack:///./node_modules/jquery/src/event/support.js","webpack:///./node_modules/jquery/src/manipulation/_evalUrl.js","webpack:///./node_modules/jquery/src/ajax/var/location.js","webpack:///./node_modules/jquery/src/wrap.js","webpack:///./node_modules/jquery/src/css/hiddenVisibleSelectors.js","webpack:///./node_modules/jquery/src/ajax/xhr.js","webpack:///./node_modules/jquery/src/ajax/script.js","webpack:///./node_modules/jquery/src/ajax/jsonp.js","webpack:///./node_modules/jquery/src/ajax/load.js","webpack:///./node_modules/jquery/src/core/support.js","webpack:///./node_modules/jquery/src/effects/animatedSelector.js","webpack:///./node_modules/jquery/src/offset.js","webpack:///./node_modules/jquery/src/dimensions.js","webpack:///./node_modules/jquery/src/deprecated.js","webpack:///./node_modules/jquery/src/deprecated/ajax-event-alias.js","webpack:///./node_modules/jquery/src/deprecated/event.js","webpack:///./node_modules/jquery/src/exports/amd.js","webpack:///./node_modules/jquery/src/exports/global.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/axios/lib/helpers/toFormData.js","webpack:///./node_modules/react-dom/index.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./app/javascript/components/ReserveEvents.js","webpack:///./node_modules/@fullcalendar/daygrid/main.js","webpack:///./node_modules/react-icons/ai/index.mjs","webpack:///./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/axios/lib/platform/common/utils.js","webpack:///./node_modules/axios/lib/defaults/transitional.js","webpack:///./node_modules/axios/lib/platform/browser/index.js","webpack:///./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack:///./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack:///./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack:///./node_modules/axios/lib/platform/index.js","webpack:///./node_modules/axios/lib/helpers/formDataToJSON.js","webpack:///./node_modules/axios/lib/defaults/index.js","webpack:///./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/core/AxiosHeaders.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/cancel/CanceledError.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/axios/lib/helpers/speedometer.js","webpack:///./node_modules/axios/lib/helpers/throttle.js","webpack:///./node_modules/axios/lib/helpers/progressEventReducer.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/axios/lib/helpers/resolveConfig.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/axios/lib/helpers/parseProtocol.js","webpack:///./node_modules/axios/lib/helpers/composeSignals.js","webpack:///./node_modules/axios/lib/helpers/trackStream.js","webpack:///./node_modules/axios/lib/adapters/fetch.js","webpack:///./node_modules/axios/lib/adapters/adapters.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/env/data.js","webpack:///./node_modules/axios/lib/helpers/validator.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/lodash/_ListCache.js","webpack:///./node_modules/lodash/_assocIndexOf.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_nativeCreate.js","webpack:///./node_modules/lodash/_getMapData.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./app/javascript/components/ChatCalendar.js","webpack:///./app/javascript/components/SimpleCalendar.js","webpack:///./app/javascript/components/SimpleReserveEvents.js","webpack:///./app/javascript/components/ReserveForm.jsx","webpack:///./app/javascript/components/UpdateForm.jsx","webpack:///./node_modules/@fullcalendar/timegrid/main.js","webpack:///./node_modules/@fullcalendar/list/main.js","webpack:///./node_modules/@fullcalendar/core/locales/ja.js","webpack:///./node_modules/@fullcalendar/interaction/main.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/axios/lib/helpers/null.js","webpack:///./node_modules/@stripe/stripe-js/dist/stripe.esm.js","webpack:///./node_modules/@fullcalendar/react/dist/vdom.js","webpack:///./node_modules/@fullcalendar/react/dist/main.js","webpack:///./node_modules/chartkick/dist/chartkick.js","webpack:///./node_modules/object-assign/index.js","webpack:///./node_modules/react-modal/lib/helpers/safeHTMLElement.js","webpack:///./node_modules/lodash/_Map.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack:///./app/javascript/components/AdvisorCalendar.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/react-modal/lib/helpers/tabbable.js","webpack:///./node_modules/react-modal/lib/helpers/ariaAppHider.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/react-modal/lib/helpers/portalOpenInstances.js","webpack:///./app/javascript/components/AdvisorReserveUpdateCalendar.js","webpack:///./app/javascript/components/AgreementPopup.jsx","webpack:///./node_modules/buffer/index.js","webpack:///./app/javascript/components/CompanyClientReserveForm.jsx","webpack:///./app/javascript/components/CompanyStressCheckAroundBarChart.jsx","webpack:///./app/javascript/components/CompanyStressCheckJobChart.jsx","webpack:///./app/javascript/components/CompanyStressCheckStateBarChart.jsx","webpack:///./app/javascript/components/CompanyStressCheckWorkBarChart.jsx","webpack:///./app/javascript/components/CompanyStressCheckWorkChart.jsx","webpack:///./app/javascript/components/CompanyStressScatterChart.jsx","webpack:///./app/javascript/components/ConditionsLineChart.jsx","webpack:///./app/javascript/components/ConditionsPhqPieChart.jsx","webpack:///./app/javascript/components/ConditionsPresentismLineChart.jsx","webpack:///./app/javascript/components/ConversationReserve.jsx","webpack:///./app/javascript/components/CounselingCouponForm.jsx","webpack:///./app/javascript/components/CounselingUpdateCalendar.js","webpack:///./app/javascript/components/CounselorCalendar.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/_MapCache.js","webpack:///./node_modules/lodash/_equalArrays.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./app/javascript/components/CounselorReserveEvents.js","webpack:///./app/javascript/components/FormButton.jsx","webpack:///./app/javascript/components/ImageCrop.js","webpack:///./app/javascript/components/LoadingSubmitButton.jsx","webpack:///./app/javascript/components/MatchingForm.js","webpack:///./app/javascript/components/NextReserveCalendar.js","webpack:///./app/javascript/components/NextReserveMailCalendar.jsx","webpack:///./app/javascript/components/OrganizationCounselingReserveBarChart.jsx","webpack:///./app/javascript/components/ReserveCategoryPieChart.jsx","webpack:///./app/javascript/components/StressAroundChart.jsx","webpack:///./app/javascript/components/StressCheckAnswerForm.jsx","webpack:///./app/javascript/components/StressStateChart.jsx","webpack:///./app/javascript/components/StressWorkChart.jsx","webpack:///./app/javascript/components/StripeReserveForm.jsx","webpack:///./app/javascript/components/StripeUpdateForm.jsx","webpack:///./node_modules/react_ujs/react_ujs/src/getConstructor/fromGlobal.js","webpack:///./node_modules/react-split-pane/dist/index.esm.js","webpack:///./node_modules/react-icons/sl/index.mjs","webpack:///./node_modules/react-icons/lu/index.mjs","webpack:///./node_modules/react-icons/fa/index.mjs","webpack:///./node_modules/react-icons/fa6/index.mjs","webpack:///./node_modules/react-icons/io5/index.mjs","webpack:///./node_modules/react-icons/hi/index.mjs","webpack:///./node_modules/react-icons/tb/index.mjs","webpack:///./node_modules/react-icons/pi/index.mjs","webpack:///./node_modules/react-icons/md/index.mjs","webpack:///./node_modules/react-icons/io/index.mjs","webpack:///./node_modules/react-icons/ri/index.mjs","webpack:///./app/javascript/components/CounselorKarute.js","webpack:///./node_modules/react-image-crop/dist/ReactCrop.min.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/packs/application.js","webpack:///./app/javascript/components sync ^\\.\\/.*$","webpack:///./node_modules/react/cjs/react.production.min.js","webpack:///./node_modules/react-dom/cjs/react-dom.production.min.js","webpack:///./node_modules/scheduler/index.js","webpack:///./node_modules/scheduler/cjs/scheduler.production.min.js","webpack:///./node_modules/react-modal/lib/components/Modal.js","webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/react-modal/lib/components/ModalPortal.js","webpack:///./node_modules/react-modal/lib/helpers/focusManager.js","webpack:///./node_modules/react-modal/lib/helpers/scopeTab.js","webpack:///./node_modules/warning/warning.js","webpack:///./node_modules/exenv/index.js","webpack:///./node_modules/react-modal/lib/helpers/classList.js","webpack:///./node_modules/react-modal/lib/helpers/bodyTrap.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/react-style-proptype/src/index.js","webpack:///./node_modules/react-style-proptype/src/css-properties.js","webpack:///./node_modules/react-style-proptype/node_modules/prop-types/index.js","webpack:///./node_modules/react-style-proptype/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/react-style-proptype/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/react-quill/lib/index.js","webpack:///./node_modules/lodash/isEqual.js","webpack:///./node_modules/lodash/_baseIsEqual.js","webpack:///./node_modules/lodash/_baseIsEqualDeep.js","webpack:///./node_modules/lodash/_Stack.js","webpack:///./node_modules/lodash/_listCacheClear.js","webpack:///./node_modules/lodash/_listCacheDelete.js","webpack:///./node_modules/lodash/_listCacheGet.js","webpack:///./node_modules/lodash/_listCacheHas.js","webpack:///./node_modules/lodash/_listCacheSet.js","webpack:///./node_modules/lodash/_stackClear.js","webpack:///./node_modules/lodash/_stackDelete.js","webpack:///./node_modules/lodash/_stackGet.js","webpack:///./node_modules/lodash/_stackHas.js","webpack:///./node_modules/lodash/_stackSet.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_mapCacheClear.js","webpack:///./node_modules/lodash/_Hash.js","webpack:///./node_modules/lodash/_hashClear.js","webpack:///./node_modules/lodash/_hashDelete.js","webpack:///./node_modules/lodash/_hashGet.js","webpack:///./node_modules/lodash/_hashHas.js","webpack:///./node_modules/lodash/_hashSet.js","webpack:///./node_modules/lodash/_mapCacheDelete.js","webpack:///./node_modules/lodash/_isKeyable.js","webpack:///./node_modules/lodash/_mapCacheGet.js","webpack:///./node_modules/lodash/_mapCacheHas.js","webpack:///./node_modules/lodash/_mapCacheSet.js","webpack:///./node_modules/lodash/_SetCache.js","webpack:///./node_modules/lodash/_setCacheAdd.js","webpack:///./node_modules/lodash/_setCacheHas.js","webpack:///./node_modules/lodash/_arraySome.js","webpack:///./node_modules/lodash/_cacheHas.js","webpack:///./node_modules/lodash/_equalByTag.js","webpack:///./node_modules/lodash/_Uint8Array.js","webpack:///./node_modules/lodash/_mapToArray.js","webpack:///./node_modules/lodash/_setToArray.js","webpack:///./node_modules/lodash/_equalObjects.js","webpack:///./node_modules/lodash/_getAllKeys.js","webpack:///./node_modules/lodash/_baseGetAllKeys.js","webpack:///./node_modules/lodash/_arrayPush.js","webpack:///./node_modules/lodash/_getSymbols.js","webpack:///./node_modules/lodash/_arrayFilter.js","webpack:///./node_modules/lodash/stubArray.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/lodash/_getTag.js","webpack:///./node_modules/lodash/_DataView.js","webpack:///./node_modules/lodash/_Promise.js","webpack:///./node_modules/lodash/_Set.js","webpack:///./node_modules/lodash/_WeakMap.js","webpack:///./node_modules/quill/dist/quill.js","webpack:///./node_modules/react_ujs/react_ujs/index.js","webpack:///./node_modules/react-dom/server.browser.js","webpack:///./node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/detect.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/native.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/pjax.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/turbolinks.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/turbolinksClassicDeprecated.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/turbolinksClassic.js","webpack:///./node_modules/react_ujs/react_ujs/src/getConstructor/fromRequireContextWithGlobalFallback.js","webpack:///./node_modules/react_ujs/react_ujs/src/getConstructor/fromRequireContext.js","webpack:///./node_modules/trix/dist/trix.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/attachment_upload.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","DefaultContext","color","undefined","size","className","style","attr","IconContext","createContext","_typeof","obj","iterator","constructor","_excluded","_objectWithoutProperties","source","excluded","target","sourceKeys","keys","length","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","_extends","assign","arguments","apply","this","ownKeys","e","filter","getOwnPropertyDescriptor","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","arg","input","hint","prim","toPrimitive","res","TypeError","String","Number","_toPrimitive","_toPropertyKey","configurable","writable","Tree2Element","tree","map","node","createElement","tag","child","GenIcon","data","props","IconBase","elem","conf","title","svgProps","computedSize","stroke","fill","strokeWidth","height","width","xmlns","children","Consumer","FullCalendarVDom","Error","Component","createRef","render","Fragment","createPortal","flushSync","unmountComponentAtNode","EventSourceApi","context","internalEventSource","remove","dispatch","type","sourceId","refetch","sourceIds","isRefetch","publicId","meta","url","format","removeElement","el","parentNode","removeChild","elementClosest","selector","closest","document","documentElement","contains","elementMatches","parentElement","nodeType","matches","matchesSelector","msMatchesSelector","PIXEL_PROP_RE","applyStyle","propName","applyStyleProp","val","test","getEventTargetViaRoot","ev","_a","_b","composedPath","getElRoot","getRootNode","guid$1","getUniqueDomId","preventDefault","listenBySelector","container","eventType","handler","attachedHandler","matchedChild","buildDelegationHandler","addEventListener","removeEventListener","transitionEventNames","whenTransitionDone","callback","realCallback","eventName","createAriaClickAttrs","onClick","createAriaKeyboardAttrs","tabIndex","onKeyDown","guidNumber","guid","disableCursor","body","classList","add","enableCursor","preventSelection","allowSelection","preventContextMenu","allowContextMenu","compareByFieldSpec","obj0","obj1","fieldSpec","func","a","b","localeCompare","flexibleCompare","field","order","padStart","len","substr","formatWithOrdinals","formatter","args","fallbackText","reduce","str","index","replace","compareNumbers","isInt","computeSmallestCellWidth","cellEl","allWidthEl","querySelector","contentWidthEl","getBoundingClientRect","DAY_IDS","addWeeks","dateToUtcArray","arrayToUtcDate","addDays","addMs","diffWeeks","m0","m1","diffDays","valueOf","diffWholeDays","timeAsMs","Math","round","startOfDay","getUTCFullYear","getUTCMonth","getUTCDate","weekOfGivenYear","marker","year","dow","doy","firstWeekStart","firstWeekOffset","dayStart","days","floor","fwd","getUTCDay","dateToLocalArray","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","arrayToLocalDate","Date","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","concat","UTC","isValidDate","isNaN","createEventInstance","defId","range","forcedStartTzo","forcedEndTzo","instanceId","mergeProps","propObjs","complexPropsMap","dest","name_1","complexObjs","unshift","name_2","filterHash","hash","filtered","mapHash","newHash","arrayToHash","_i","a_1","hashValuesToArray","isPropsEqual","getUnequalProps","compareObjs","oldProps","newProps","equalityFuncs","isObjValsEqual","val0","val1","comparator","expandRecurring","eventStore","framingRange","dateEnv","pluginHooks","options","defs","instances","instance","recurringDef","def","duration","allDay","defaultAllDayEventDuration","defaultTimedEventDuration","starts_1","expandRecurringRanges","recurringTypes","start","end","eventDef","markers","typeId","expand","typeData","subtract","INTERNAL_UNITS","PARSE_RE","createDuration","unit","exec","sign","years","months","parseInt","milliseconds","parseString","parseObject","month","day","hours","hour","minutes","minute","seconds","second","millisecond","ms","weeks","week","specifiedWeeks","addDurations","d0","d1","multiplyDuration","asRoughDays","dur","asRoughMs","wholeDivideDurations","numerator","denominator","localRes","greatestDurationDenominator","buildIsoString","timeZoneOffset","stripZeroTime","toISOString","formatTimeZoneOffset","formatDayString","formatIsoTimeString","doIso","abs","mins","isArraysEqual","a0","a1","equalityFunc","memoize","workerFunc","resEquality","teardownFunc","currentArgs","currentRes","newArgs","memoizeObjArg","currentArg","_this","newArg","EXTENDED_SETTINGS_AND_SEVERITIES","separator","omitZeroMinute","meridiem","omitCommas","STANDARD_DATE_PROP_SEVERITIES","timeZoneName","era","weekday","MERIDIEM_RE","COMMA_RE","MULTI_SPACE_RE","LTR_RE","UTC_RE","NativeFormatter","formatSettings","standardDateProps","extendedSettings","severity","max","buildFormattingFunc","formatRange","betterDefaultSeparator","diffSeverity","ca","getMarkerYear","getMarkerMonth","getMarkerDay","computeMarkerDiffSeverity","calendarSystem","biggestUnitForPartial","full0","full1","partialFormattingFunc","biggestUnit","partialOptions","computePartialFormattingOptions","partial0","partial1","insertion","i0","found0","before0","after0","i1","found1","before1","after1","before","after","findCommonInsertion","defaultSeparator","getLargestUnit","standardDatePropCnt","num","weekText","weekTextLong","locale","display","parts","simpleNumberFormat","direction","reverse","join","formatWeekNumber","computeWeekNumber","sanitizeSettings","timeZone","zeroFormat","normalFormat","Intl","DateTimeFormat","codes","zeroProps","tzoStr","replaced","injectTzoStr","trim","toLocaleLowerCase","postProcess","buildNativeFormattingFunc","expandZonedMarker","dateInfo","markerToArray","array","createVerboseFormattingArg","startInfo","localeCodes","CmdFormatter","cmdStr","cmdFormatter","FuncFormatter","createFormatter","BASE_OPTION_REFINERS","navLinkDayClick","identity","navLinkWeekClick","bootstrapFontAwesome","buttonIcons","customButtons","nextDayThreshold","scrollTime","scrollTimeReset","Boolean","slotMinTime","slotMaxTime","dayPopoverFormat","slotDuration","snapDuration","headerToolbar","footerToolbar","defaultRangeSeparator","titleRangeSeparator","forceEventDuration","dayHeaders","dayHeaderFormat","dayHeaderClassNames","dayHeaderContent","dayHeaderDidMount","dayHeaderWillUnmount","dayCellClassNames","dayCellContent","dayCellDidMount","dayCellWillUnmount","initialView","aspectRatio","weekends","weekNumberCalculation","weekNumbers","weekNumberClassNames","weekNumberContent","weekNumberDidMount","weekNumberWillUnmount","editable","viewClassNames","viewDidMount","viewWillUnmount","nowIndicator","nowIndicatorClassNames","nowIndicatorContent","nowIndicatorDidMount","nowIndicatorWillUnmount","showNonCurrentDates","lazyFetching","startParam","endParam","timeZoneParam","locales","themeSystem","dragRevertDuration","dragScroll","allDayMaintainDuration","unselectAuto","dropAccept","eventOrder","token","specs","tokens","split","Array","isArray","charAt","substring","eventOrderStrict","handleWindowResize","windowResizeDelay","longPressDelay","eventDragMinDistance","expandRows","contentHeight","weekNumberFormat","eventResizableFromStart","displayEventTime","displayEventEnd","progressiveEventRendering","businessHours","initialDate","now","eventDataTransform","stickyHeaderDates","stickyFooterScrollbar","viewHeight","defaultAllDay","eventSourceFailure","eventSourceSuccess","eventDisplay","eventStartEditable","eventDurationEditable","eventOverlap","eventConstraint","eventAllow","eventBackgroundColor","eventBorderColor","eventTextColor","eventColor","eventClassNames","eventContent","eventDidMount","eventWillUnmount","selectConstraint","selectOverlap","selectAllow","droppable","unselectCancel","slotLabelFormat","slotLaneClassNames","slotLaneContent","slotLaneDidMount","slotLaneWillUnmount","slotLabelClassNames","slotLabelContent","slotLabelDidMount","slotLabelWillUnmount","dayMaxEvents","dayMaxEventRows","dayMinWidth","slotLabelInterval","allDayText","allDayClassNames","allDayContent","allDayDidMount","allDayWillUnmount","slotMinWidth","navLinks","eventTimeFormat","rerenderDelay","moreLinkText","moreLinkHint","selectMinDistance","selectable","selectLongPressDelay","eventLongPressDelay","selectMirror","eventMaxStack","eventMinHeight","eventMinWidth","eventShortHeight","slotEventOverlap","plugins","firstDay","dayCount","dateAlignment","dateIncrement","hiddenDays","monthMode","fixedWeekCount","validRange","visibleRange","titleFormat","eventInteractive","noEventsText","viewHint","navLinkHint","closeHint","timeHint","eventHint","moreLinkClick","moreLinkClassNames","moreLinkContent","moreLinkDidMount","moreLinkWillUnmount","BASE_OPTION_DEFAULTS","center","CALENDAR_LISTENER_REFINERS","datesSet","eventsSet","eventAdd","eventChange","eventRemove","windowResize","eventClick","eventMouseEnter","eventMouseLeave","select","unselect","loading","_unmount","_beforeprint","_afterprint","_noEventDrop","_noEventResize","_resize","_scrollRequest","CALENDAR_OPTION_REFINERS","buttonText","buttonHints","views","initialEvents","events","eventSources","COMPLEX_OPTION_COMPARATORS","isMaybeObjectsEqual","VIEW_OPTION_REFINERS","component","buttonTextKey","dateProfileGeneratorClass","usesMinMaxTime","classNames","content","didMount","willUnmount","mergeRawOptions","optionSets","refineProps","refiners","refined","extra","raw","parseEvents","rawEvents","eventSource","allowOpenRange","eventRefiners","buildEventRefiners","rawEvents_1","tuple","parseEvent","eventTupleToStore","getRelevantEvents","def_1","newStore","filterEventStoreDefs","lookDef","def0","def1","groupId","createEmptyEventStore","mergeEventStores","store0","store1","filterFunc","parseClassNames","EVENT_UI_REFINERS","startEditable","durationEditable","constraint","overlap","allow","backgroundColor","borderColor","textColor","EMPTY_EVENT_UI","constraints","allows","createEventUi","normalizeConstraint","combineEventUis","uis","combineTwoEventUis","item0","item1","EVENT_NON_DATE_REFINERS","id","interactive","EVENT_DATE_REFINERS","EVENT_REFINERS","extendedProps","refineEventDef","computeIsDefaultAllDay","recurringRes","parsed","parse","allDayGuess","parseRecurring","parseEventDef","singleRes","startMeta","endMeta","startMarker","hasEnd","endMarker","startInput","createMarkerMeta","isTimeUnspecified","forcedTzo","parseSingle","ui","eventDefMemberAdders","memberAdder","freeze","computeAlignedDayRange","timedRange","dayCnt","computeVisibleDayRange","startDay","endDay","endTimeMS","isMultiDayRange","diffDates","date0","date1","largeUnit","diffWholeYears","diffWholeMonths","m0day","m1day","invertRanges","ranges","constraintRange","dateRange","invertedRanges","sort","compareRanges","range0","range1","intersectRanges","newRange","min","rangesIntersect","rangeContainsRange","outerRange","innerRange","rangeContainsMarker","sliceEventStore","eventUiBases","inverseBgByGroupId","inverseBgByDefId","defByGroupId","bgRanges","fgRanges","eventUis","compileEventUis","origRange","normalRange","slicedRange","isStart","isEnd","invertedRanges_1","invertedRange","invertedRanges_2","bg","fg","hasBgRendering","setElSeg","seg","fcSeg","getElSeg","eventDefs","compileEventUi","sortEventSegs","segs","eventOrderSpecs","objs","buildSegCompareObj","fieldSpecs","cmp","compareByFieldSpecs","_seg","eventRange","computeSegDraggable","transformers","isDraggableTransformers","transformers_1","transformer","computeSegStartResizable","computeSegEndResizable","buildSegTimeText","timeFormat","defaultDisplayEventTime","defaultDisplayEventEnd","startOverride","endOverride","eventInstance","wholeEventStart","wholeEventEnd","segStart","segEnd","isStartDay","isEndDay","getSegMeta","todayRange","nowDate","segRange","isPast","isFuture","isToday","buildEventRangeKey","getSegAnchorAttrs","href","emitter","hasHandlers","trigger","event","jsEvent","view","viewApi","STANDARD_PROPS","parseDateSpan","defaultDuration","span","standardProps","parseOpenDateSpan","isDateSpansEqual","span0","span1","isSpanPropsEqual","buildRangeApiWithTimeZone","omitTime","buildRangeApi","toDate","startStr","formatIso","endStr","fabricateEventRange","dateSpan","triggerDateSelect","selection","pev","buildDateSpanApiWithContext","origEvent","calendarApi","dateSpanTransforms","transform","getDefaultEventEnd","applyMutationToEventStore","eventConfigBase","mutation","eventConfigs","applyMutationToEventDef","applyMutationToEventInstance","eventConfig","startDelta","endDelta","copy","eventDefMutationAppliers","applier","forceAllDay","clearEnd","datesDelta","ViewApi","getCurrentData","viewTitle","dateProfile","activeRange","currentRange","getOption","EVENT_SOURCE_REFINERS","success","failure","parseEventSource","rawObj","buildEventSourceRefiners","metaRes","eventSourceDefs","parseMeta","sourceDefId","buildEventSourceMeta","_raw","isFetching","latestFetchId","fetchRange","eventSourceRefiners","getNow","nowInput","createNowMarker","createMarker","CalendarApi","currentDataManager","action","batchRendering","updateSize","setOption","optionName","rawOptionValue","currentCalendarOptionsInput","getAvailableLocaleCodes","availableRawLocales","on","handlerName","currentCalendarOptionsRefiners","console","warn","off","changeView","viewType","dateOrRange","dateMarker","zoomTo","spec","viewSpecs","getUnitViewSpec","toolbarConfig","viewTypes","header","viewsWithButtons","footer","singleUnit","prev","next","prevYear","state","addYears","currentDate","nextYear","today","calendarOptions","gotoDate","zonedDateInput","incrementDate","deltaInput","delta","formatDate","settings","dateOrObj","endDate","selectionInput","dateSelection","triggerDateUnselect","addEvent","eventInput","sourceInput","_def","_instance","triggerEventAdd","sourceApi","getEventSourceById","newEventApi","eventApi","relatedEvents","revert","eventApiToStore","getEventById","getEvents","currentData","buildEventApis","removeAllEvents","getEventSources","sourceHash","sourceApis","internalId","addEventSource","sources","removeAllEventSources","refetchEvents","scrollToTime","timeInput","time","EventApi","_context","setProp","mutate","setExtendedProp","setStart","granularity","maintainDuration","setEnd","endInput","setDates","instanceRange","moveStart","moveEnd","moveDates","setAllDay","formatInput","context_1","eventStore_1","relevantEvents","oldEvent","asStore","toPlainObject","collapseColor","collapseExtendedProps","toJSON","excludeInstance","eventApis","excludeInstanceId","calendarSystemClassMap","theClass","GregorianCalendarSystem","arrayToMarker","arr","ISO_RE","DateEnv","isNamedTimeZone","namedTimeZoneImpl","canComputeOffset","createCalendarSystem","weekDow","weekDoy","weekNumberFunc","timestampToMarker","getYear","addMonths","greatestWholeUnit","diffWholeWeeks","diffHours","diffMinutes","diffSeconds","countDurationsBetween","diff","asRoughMonths","startOf","startOfYear","startOfMonth","startOfWeek","startOfHour","startOfMinute","startOfSecond","y","w","nextW","weekOfYear","dateOptions","offsetForMarker","isEndExclusive","extraOptions","omitTimeZoneOffset","timestampToArray","getTimezoneOffset","offsetForArray","globalLocales","MINIMAL_RAW_EN_LOCALE","code","list","RAW_EN_LOCALE","eventCnt","organizeRawLocales","explicitRawLocales","defaultCode","allRawLocales","rawLocaleMap","en","allRawLocales_1","rawLocale","buildLocale","inputSingular","available","codeArg","j","simpleId","slice","queryRawLocale","parseLocale","queryLocale","merged","NumberFormat","canVGrowWithinCell","DEF_DEFAULTS","startTime","endTime","daysOfWeek","parseBusinessHours","rawDefs","rawDef","refineInputs","pointInsideRect","point","rect","left","right","top","bottom","intersectRects","rect1","rect2","constrainPoint","getRectCenter","diffPoints","point1","point2","getCanVGrowWithinCell","position","innerHTML","appendChild","possible","offsetHeight","computeCanVGrowWithinCell","EMPTY_EVENT_STORE","Splitter","getKeysForEventDefs","_getKeysForEventDefs","splitDateSelection","_splitDateSpan","splitEventStore","_splitEventStore","splitIndividualUi","_splitIndividualUi","splitEventDrag","_splitInteraction","splitEventResize","eventUiBuilders","splitProps","keyInfos","getKeyInfo","defKeys","dateSelections","individualUi","eventStores","eventDrags","eventDrag","eventResizes","eventResize","info","buildEventUiForKey","keyInfo","buildEventUi","eventSelection","dateSpans","keys_1","getKeysForDateSpan","getKeysForEventDef","splitStores","_c","splitHashes","interaction","splitStates","affectedStores_1","affectedEvents","mutatedKeysByDefId","mutatedEvents","mutatedStores_1","populate","isEvent","allUi","eventUiForKey","baseParts","stuff","getDateMeta","isDisabled","isOther","getDayClassNames","theme","getClass","DAY_FORMAT","WEEK_FORMAT","buildNavLinkAttrs","isTabbable","dateStr","zonedDate","handleInteraction","customAction","_scrollbarWidths","_isRtlScrollbarOnLeft","getIsRtlScrollbarOnLeft","outerEl","border","padding","overflow","firstChild","computeIsRtlScrollbarOnLeft","getScrollbarWidths","computeScrollbarWidthsForEl","computeScrollbarWidths","x","clientHeight","offsetWidth","clientWidth","computeInnerRect","goWithinPadding","doFromWindowViewport","outerRect","computeRect","edges","getPadding","computedStyle","window","getComputedStyle","borderLeft","borderLeftWidth","borderRight","borderRightWidth","borderTop","borderTopWidth","borderBottom","borderBottomWidth","badScrollbarWidths","scrollbarLeftRight","scrollbarBottom","scrollbarLeft","scrollbarRight","paddingLeft","paddingRight","paddingTop","paddingBottom","computeEdges","pageXOffset","pageYOffset","getClippingParents","parents","HTMLElement","overflowY","overflowX","Emitter","handlers","thisContext","setThisContext","setOptions","addToHash","removeFromHash","attachedHandlers","optionHandler","handlers_1","PositionCache","originEl","els","isHorizontal","isVertical","originClientRect","buildElHorizontals","buildElVerticals","originClientLeft","lefts","rights","originClientTop","tops","bottoms","leftToIndex","leftPosition","topToIndex","topPosition","getWidth","leftIndex","getHeight","topIndex","ScrollController","getMaxScrollTop","getScrollHeight","getClientHeight","getMaxScrollLeft","getScrollWidth","getClientWidth","canScrollVertically","canScrollHorizontally","canScrollUp","getScrollTop","canScrollDown","canScrollLeft","getScrollLeft","canScrollRight","_super","ElementScrollController","scrollTop","scrollLeft","setScrollTop","setScrollLeft","scrollWidth","scrollHeight","WindowScrollController","scroll","Theme","iconOverrideOption","setIconOverride","iconOverrideHash","iconClassesCopy","buttonName","iconClasses","applyIconOverridePrefix","prefix","iconOverridePrefix","classes","getIconClass","isRtl","rtlIconClasses","baseIconClass","getCustomButtonIconClass","customButtonProps","iconOverrideCustomButtonOption","ScrollResponder","execFunc","handleScrollRequest","request","queuedRequest","drain","fireInitialScroll","detach","update","isDatesNew","ViewContextType","buildViewContext","viewSpec","viewOptions","dateProfileGenerator","registerInteractiveComponent","unregisterInteractiveComponent","addResizeHandler","removeResizeHandler","createScrollResponder","PureComponent","shouldComponentUpdate","nextProps","nextState","debug","log","propEquality","stateEquality","safeSetState","newState","setState","addPropsEquality","addStateEquality","contextType","BaseComponent","setRef","ref","current","DateComponent","uid","prepareHits","queryHit","positionLeft","positionTop","elWidth","elHeight","isValidSegDownEl","isValidDateDownEl","createPlugin","deps","reducers","isLoadingFuncs","contextInit","eventDragMutationMassagers","dateSelectionTransformers","datePointTransforms","viewPropsTransformers","isPropsValid","externalDefTransforms","viewContainerAppends","eventDropTransformers","componentInteractions","calendarInteractions","themeClasses","namedTimeZonedImpl","elementDraggingImpl","optionChangeHandlers","scrollGridImpl","contentTypeHandlers","listenerRefiners","optionRefiners","propSetHandlers","buildBuildPluginHooks","currentHooks","currentOverrideDefs","currentGlobalDefs","overrideDefs","globalDefs","pluginDefs","isAdded","hooks","addDefs","defs_1","hooks1","hooks0","buildPluginHooks","StandardTheme","ensureViewDef","defaultConfigs","overrideConfigs","viewDef","defaultConfig","overrideConfig","queryProp","theComponent","superType","superDef","defaults","rawOptions","overrides","buildViewDef","root","tableCellShaded","buttonGroup","button","buttonActive","close","RenderHook","rootElRef","handleRootEl","elRef","hookProps","ContentHook","defaultContent","backupElRef","innerElRef","innerContent","normalizeClassNames","CustomContentRenderContext","renderId","ContentHookInner","renderInnerContent","componentDidMount","updateCustomContent","componentDidUpdate","componentWillUnmount","customContentInfo","destroy","getInnerContent","getContentMeta","contentKey","contentVal","buildLifecycleFuncs","normalizeContent","searchKey","MountHook","rootEl","buildClassNameNormalizer","currentGenerator","currentHookProps","currentClassNames","generator","ViewRoot","customClassNames","parseViewConfigs","inputs","parseViewConfig","viewProps","viewElRef","buildViewSpecs","defaultInputs","optionOverrides","dynamicOptionOverrides","localeDefaults","viewDefs","compileViewDefs","durationInput","durationUnit","singleUnitOverrides","json","JSON","stringify","durationInputMap","createDurationCached","denom","queryButtonText","optionsSubset","buttonTextMap","queryButtonTitle","buttonKey","optionDefaults","buttonTextOverride","buttonTextDefault","buttonTitleOverride","buttonHint","buttonTitleDefault","buildViewSpec","DateProfileGenerator","initHiddenDays","buildPrev","currentDateProfile","forceToValid","prevDate","currentRangeUnit","build","buildNext","nextDate","currentInfo","isRangeAllDay","renderRange","isValid","buildValidRange","trimHiddenDays","buildCurrentRangeInfo","buildRenderRange","adjustActiveRange","buildDateIncrement","validRangeInput","simpleInput","refineRange","buildRangeFromDuration","buildRangeFromDayCount","buildCustomVisibleRange","getFallbackDuration","computeRes","isHiddenDay","skipHiddenDays","runningCount","visibleRangeInput","fallback","customAlignment","rangeInput","isHiddenDayHash","inc","isExclusive","initEventSources","addSources","rawSources","rawSources_1","parseInitialSources","reduceEventSources","eventSourceHash","fetchDirtySources","fetchSourcesByIds","excludeStaticSources","fetchId","receiveResponse","computeEventSourcesLoading","sources_1","doesSourceNeedRange","isSourceDirty","prevSources","sourceIdHash","nextSources","fetchSource","sourceDef","fetch","xhr","error","message","ignoreRange","reduceEventStore","subset","calEachTransform","sourceEachTransform","transformEachRawEvent","transformRawEvents","excludeEventsBySourceId","receiveRawEvents","expandRange","master","sub","filteredDefs","filteredInstances","excludeSubEventStore","refinedEvents","rawEvent","refinedEvent","reduceDateSelection","currentSelection","reduceSelectedEvent","currentInstanceId","eventInstanceId","reduceEventDrag","currentDrag","newDrag","reduceEventResize","currentResize","newResize","parseToolbars","calendarOptionOverrides","parseToolbar","sectionStrHash","sectionWidgets","hasTitle","sectionName","sectionRes","parseSection","widgets","sectionStr","calendarCustomButtons","calendarButtonTextOverrides","calendarButtonText","calendarButtonHintOverrides","calendarButtonHints","sectionSubstrs","buttonGroupStr","buttonClick","buttonIcon","click","text","textFallback","prevOrNext","navUnit","eventSourceDef$1","isResolved","wrappedSuccess","wrappedFailure","then","unpromisify","requestJson","method","params","successCallback","failureCallback","toUpperCase","encodeParams","injectQueryStringParams","XMLHttpRequest","open","setRequestHeader","onload","status","responseText","err","onerror","send","encodeURIComponent","handleEventSources","unfoundSources","newInputs","inputs_1","inputFound","splice","unfoundSources_1","unfoundSource","newInputs_1","newInput","globalPlugins","extraParams","requestParams","customRequestParams","buildRequestParams","errorMessage","startRecur","endRecur","recurringData","clippedFramingRange","dowHash","dayMarker","instanceStarts","instanceStart","expandRanges","_events","html","currentEl","currentHtml","domNodes","currentDomNodes","newDomNodes","newDomNodes_1","newNode","DelayedRunner","drainedOption","isRunning","isDirty","pauseDepths","timeoutId","delay","isPaused","clearTimeout","tryDrain","setTimeout","pause","scope","resume","force","drained","clear","TaskRunner","runTaskOption","queue","delayedRunner","task","completedTasks","shift","runTask","buildTitle","buildTitleFormat","CalendarDataManager","computeOptionsData","_computeOptionsData","computeCurrentViewData","_computeCurrentViewData","buildDateEnv","buildTheme","buildDateProfileGenerator","buildViewApi","buildViewUiProps","buildEventUiBySource","buildEventUiBases","parseContextBusinessHours","actionRunner","_handleAction","updateData","currentCalendarOptionsRefined","currentViewOptionsInput","currentViewOptionsRefined","optionsData","currentViewType","currentViewData","initialDateInput","calendarContext","initialState","renderableEventStore","selectionConfig","contextAndState","reducer","computeIsLoading","resetOptions","append","reduceDynamicOptionOverrides","reduceViewType","reduceCurrentDate","dp","reduceDateProfile","eventUiSingleBase","eventUiBySource","wasLoading","isLoading","onAction","oldDateEnv","newDateEnv","oldData","changeHandlers","oldCalendarOptions","newCalendarOptions","onData","processRawCalendarOptions","refinedOptions","availableLocaleData","warnUnknownOptions","currentRaw","currentRefined","anyChanges","processRawViewOptions","explicitLocale","isLoadingFunc","viewName","CalendarDataProvider","handleData","dataManager","prevProps","newOptionOverrides","SegHierarchy","strictOrder","allowReslicing","maxCoord","maxStackCnt","levelCoords","entriesByLevel","stackCnts","addSegs","hiddenEntries","insertEntry","entry","findInsertion","isInsertionValid","insertEntryAt","handleInvalidInsertion","levelCoord","thickness","stackCnt","touchingEntry","splitEntry","barrier","partCnt","splitHiddenEntries","entrySpan","barrierSpan","intersectSpans","lateral","insertAt","level","buildEntryKey","newEntry","levelCnt","candidateCoord","touchingLevel","touchingLateral","trackingLevel","trackingCoord","trackingEntries","trackingEntry","searchRes","binarySearch","getEntrySpanEnd","lateralIndex","trackingEntryBottom","destLevel","destLateral","toRects","rects","entries","entries_1","groupIntersectingEntries","merges","entries_2","filteredMerges","hungryMerge","merges_1","merge","item","searchVal","getItemVal","startIndex","endIndex","middleIndex","middleVal","Interaction","isHitComboAllowed","parseInteractionSettings","useEventCenter","interactionSettingsToStore","interactionSettingsStore","ElementDragging","setMirrorIsVisible","bool","setMirrorNeedsRevert","setAutoScrollEnabled","config","DRAG_META_REFINERS","parseDragMeta","leftoverProps","ToolbarSection","widgetGroups","widgetGroup","renderWidgetGroup","isOnlyButtons","widgetGroup_1","widget","titleId","isPressed","activeButton","isTodayEnabled","isPrevEnabled","isNextEnabled","buttonClasses","disabled","groupClassName","Toolbar","startContent","endContent","model","extraClassName","forceLtr","centerContent","renderSection","ViewContainer","availableWidth","handleEl","updateAvailableWidth","handleResize","liquid","labeledById","EventClicking","handleSegClick","segEl","hasUrlContainer","defaultPrevented","location","EventHovering","onMouseEnter","onMouseLeave","currentMatchedChild","handleEventElRemove","currentSegEl","handleSegLeave","handleSegEnter","triggerEvent","removeHoverListeners","mouseOverEv","realOnMouseLeave_1","mouseLeaveEv","publicEvName","CalendarContent","buildViewPropTransformers","buildToolbarProps","headerRef","footerRef","interactionsStore","viewLabelId","settingsInput","interactions","TheInteractionClass","listeners","listeners_1","resizeRunner","viewAspectRatio","toolbarProps","viewVGrow","isHeightAuto","forPrint","viewContext","Provider","renderView","buildAppendContent","CalendarInteractionClass","ViewComponent","todayInfo","prevInfo","nextInfo","theClasses","TheClass","CalendarRoot","handleBeforePrint","handleAfterPrint","CLASS_NAME","renderInner$1","TableDateCell","dayMeta","navLinkAttrs","colCnt","extraHookProps","role","colSpan","extraDataAttrs","isSticky","WEEKDAY_FORMAT","TableDowCell","dateMeta","extraClassNames","NowTimer","initialNowDate","initialNowQueriedMs","computeTiming","currentState","unroundedNow","currentUnitStart","nextUnitStart","waitMs","buildDayRange","DayHeader","createDayHeaderFormatter","dates","datesRepDistinctDays","renderIntro","explicitFormat","dateCnt","computeFallbackHeaderFormat","DaySeriesModel","indices","dayIndex","cnt","sliceRange","firstIndex","getDateDayIndex","lastIndex","clippedFirstIndex","clippedLastIndex","ceil","dayOffset","DayTableModel","daySeries","breakOnWeeks","daysPerRow","rowCnt","cells","buildCells","headerDates","buildHeaderDates","rows","row","col","buildCell","seriesSeg","nextIndex","firstCol","lastCol","Slicer","sliceBusinessHours","_sliceBusinessHours","sliceDateSelection","_sliceDateSpan","_sliceEventStore","sliceEventDrag","_sliceInteraction","sliceEventResize","forceDayIfListItem","sliceProps","extraArgs","eventSegs","dateSelectionSegs","businessHourSegs","fgEventSegs","bgEventSegs","sliceNowDate","computeActiveRange","rangeRes","sliceEventRanges","affectedInstances","segs_1","eventRanges","eventRanges_1","sliceEventRange","segs_2","isComponentAllDay","isInteractionValid","isNewPropsValid","isDateSelectionValid","calendarState","dateSpanMeta","filterConfig","subjectEventStore","subjectDefs","subjectInstances","subjectConfigs","otherEventStore","removals","otherDefs","otherInstances","otherConfigs","subjectInstanceId","subjectInstance","subjectRange","subjectConfig","subjectDef","allConstraintsPass","eventOverlapFunc","otherInstanceId","otherInstance","calendarEventStore","subjectAllow","subjectDateSpan","origDef","origInstance","isInteractionPropsValid","relevantEventStore","relevantDefs","relevantInstances","selectionRange","selectOverlapFunc","relevantInstanceId","relevantInstance","selectionAllow","isDateSelectionPropsValid","businessHoursUnexpanded","constraints_1","anyRangesContainRange","constraintToRanges","eventStoreToRanges","outerRanges","outerRanges_1","VISIBLE_HIDDEN_RE","Scroller","liquidIsAbsolute","isAbsolute","overcomeLeft","overcomeRight","overcomeBottom","marginLeft","marginRight","marginBottom","maxHeight","needsXScrolling","realClientWidth","getYScrollbarWidth","needsYScrolling","realClientHeight","getXScrollbarWidth","RefMap","masterCallback","currentMap","depths","callbackMap","handleValue","removed","added","refCallback","collect","step","collectFromHash","getAll","computeShrinkWidth","chunkEls","largestWidth","shrinkCells_1","containers","allMatches","querySelectorAll","findElements","shrinkCell","getSectionHasLiquidHeight","sectionConfig","isColPropsEqual","cols0","cols1","renderMicroColGroup","cols","shrinkWidth","colNodes","cols_1","colProps","sanitizeShrinkWidth","minWidth","getSectionClassNames","wholeTableVGrow","renderScrollShim","tableMinWidth","getStickyHeaderDates","getStickyFooterScrollbar","SimpleScrollGrid","processCols","scrollerRefs","scrollerElRefs","_handleScrollerEl","forceYScrollbars","scrollerClientWidths","scrollerClientHeights","handleSizing","computeScrollerDims","sectionConfigs","sections","microColGroupNode","getScrollGridClassNames","collapsibleWidth","currentConfig","configCnt","configI","headSectionNodes","bodySectionNodes","footSectionNodes","isBuggy","roleAttrs","isHeader","outerContent","renderChunkTd","chunk","chunkConfig","getAllowYScrolling","isLiquid","sectionKey","tableClassName","syncRowHeights","tableColGroupNode","rowContent","renderChunkContent","rowSyncHeights","reportRowHeightChange","scrollerEl","section","sections_1","getSectionByKey","scrollerElRef","cols_2","hasShrinkWidth","scrollbarWidth","scroller","harnessEl","EventRoot","timeText","isDraggable","disableDragging","isStartResizable","disableResizing","isEndResizable","isMirror","isDragging","isResizing","isDateSelecting","isSelected","standardClassNames","getEventClassNames","StandardEvent","defaultTimeFormat","renderInnerContent$1","innerProps","isAxis","DAY_NUM_FORMAT","DayCellContent","refineDayCellHookProps","showDayNumber","extraProps","dayNumberText","DayCellRoot","refineHookProps","dataAttrs","renderFill","fillType","defaultFormat","renderInner","Popover","handleDocumentMouseDown","handleCloseClick","handleDocumentKeyDown","onClose","extraAttrs","parentEl","alignmentEl","alignGridTop","alignmentRect","clippingParents","clippingParents_1","intersection","computeClippedClientRect","popoverDims","popoverTop","popoverLeft","origin_1","offsetParent","MorePopover","startDate","dayClassNames","extraDateSpan","dayEl","layer","MoreLinkRoot","linkElRef","isPopoverOpen","popoverId","handleClick","computeRange","buildPublicSeg","allDayDate","allSegs","hiddenSegs","handlePopoverClose","moreCnt","shortText","renderMoreLinkInner","alignmentElRef","popoverContent","updateParentEl","computeEarliestSegStart","pickLatestEnd","pickEarliestStart","seg0","seg1","_extendStatics","setPrototypeOf","__proto__","__extends","__","_assign","__spreadArray","to","from","pack","ar","getProto","_slice","flat","class2type","toString","hasOwn","fnToString","ObjectFunctionString","support","isFunction","isWindow","DOMEval","toType","version","jQuery","fn","init","isArrayLike","jquery","toArray","pushStack","elems","ret","prevObject","each","first","eq","last","even","grep","_elem","odd","extend","src","copyIsArray","clone","deep","isPlainObject","expando","random","isReady","msg","noop","proto","Ctor","isEmptyObject","globalEval","doc","nonce","makeArray","results","inArray","invert","callbackExpect","toLowerCase","_arrayLikeToArray","arr2","cache","getPrototypeOf","kindOf","thing","kindOfTest","typeOfTest","isUndefined","isArrayBuffer","isString","isNumber","isObject","isDate","isFile","isBlob","isFileList","isURLSearchParams","_map","_map2","_arrayWithHoles","_s","_e","_arr","_n","_d","done","_iterableToArrayLimit","minLen","_unsupportedIterableToArray","_nonIterableRest","isReadableStream","isRequest","isResponse","isHeaders","_ref","_ref$allOwnKeys","allOwnKeys","getOwnPropertyNames","findKey","_key","_global","globalThis","self","global","isContextDefined","TypedArray","isTypedArray","Uint8Array","isHTMLForm","_ref4","prop","isRegExp","reduceDescriptors","descriptors","reducedDescriptors","descriptor","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","isAsyncFn","isBuffer","isFormData","kind","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isBoolean","isStream","pipe","_ref2","caseless","result","assignValue","targetKey","thisArg","_ref3","stripBOM","charCodeAt","inherits","superConstructor","toFlatObject","sourceObj","destObj","propFilter","endsWith","searchString","forEachEntry","pair","matchAll","regExp","hasOwnProp","freezeMethods","set","toObjectSet","arrayOrString","delimiter","define","toCamelCase","p1","p2","toFiniteNumber","defaultValue","isFinite","generateString","alphabet","isSpecCompliantForm","toJSONObject","stack","visit","reducedValue","isThenable","_classCallCheck","Constructor","_defineProperties","_createClass","protoProps","staticProps","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","_createForOfIteratorHelper","allowArrayLike","it","F","f","normalCompletion","didErr","_e2","isNullOrUndef","isNumberFinite","finiteOrDefault","valueOrDefault","toDimension","dimension","parseFloat","loopable","_elementsEqual","ilen","v0","v1","datasetIndex","clone$1","klen","k","isValidKey","_merger","tval","sval","merger","mergeIf","_mergerIf","keyResolvers","v","resolveObjectKey","resolver","_step2","tmp","_iterator2","_splitKey","_step","_iterator","_getKeyResolver","_capitalize","defined","setsEqual","_step3","_iterator3","has","PI","TAU","PITAU","INFINITY","POSITIVE_INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","niceNum","roundedRange","almostEquals","niceRange","pow","fraction","epsilon","_setMinAndMaxByKey","toRadians","degrees","toDegrees","radians","_decimalPlaces","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","sqrt","angle","atan2","distance","distanceBetweenPoints","pt1","pt2","_angleDiff","_normalizeAngle","_angleBetween","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","_isBetween","_lookup","table","mid","hi","lo","_lookupByKey","_rlookupByKey","arrayEvents","unlistenArrayEvents","listener","stub","_chartjs","_arrayUnique","items","Set","requestAnimFrame","requestAnimationFrame","throttled","updateFn","updateArgs","ticking","_len2","rest","_key2","_toLeftRightCenter","align","_alignStartEnd","_getStartAndCountOfVisiblePoints","points","animationsDisabled","pointCount","count","_sorted","iScale","_parsed","axis","_iScale$getUserBounds","getUserBounds","minDefined","maxDefined","getPixelForValue","_scaleRangesChanged","xScale","yScale","_scaleRanges","newRanges","xmin","xmax","ymin","ymax","changed","atEdge","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","easeInOutBounce","lim","h","p2b","n2b","b2n","n2p","map$1","A","B","C","D","E","hex","h1","h2","_hexString","g","isShort","HUE_RE","hsl2rgbn","hsv2rgbn","hwb2rgbn","rgb","rgb2hsl","hueValue","calln","hsl2rgb","hue","hueParse","hwb2rgb","hsv2rgb","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","ok","nk","unpacked","tkeys","unpack","transparent","RGB_RE","modHSL","ratio","fromObject","functionParse","rgbParse","Color","_rgb","_valid","_hslString","weight","w2","c1","c2","w1","rgb1","rgb2","deg","_rotate","index_esm","isPatternOrGradient","getHoverColor","saturate","darken","hexString","getScope$1","_set","values","Defaults","_descriptors","animation","datasets","devicePixelRatio","chart","platform","getDevicePixelRatio","elements","font","family","lineHeight","hover","hoverBackgroundColor","ctx","hoverBorderColor","hoverColor","indexAxis","intersect","includeInvisible","maintainAspectRatio","onHover","parsing","responsive","scale","scales","showLine","drawActiveElementsOnTop","describe","targetScope","targetName","_Object$definePropert","scopeObject","targetScopeObject","privateName","local","_scriptable","startsWith","_indexable","_fallback","_measureText","gc","longest","string","textWidth","measureText","_longestText","arrayOfThings","garbageCollect","save","jlen","nestedThing","restore","gcLen","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","clearCanvas","canvas","getContext","resetTransform","clearRect","drawPoint","drawPointLegend","xOffset","yOffset","cornerRadius","pointStyle","rotation","radius","rad","translate","rotate","drawImage","beginPath","ellipse","arc","closePath","moveTo","lineTo","SQRT1_2","borderWidth","_isPointInArea","area","margin","clipArea","clip","unclipArea","_steppedLineTo","previous","flip","midpoint","_bezierCurveTo","bezierCurveTo","cp1x","cp2x","cp1y","cp2y","renderText","line","opts","lines","strokeColor","setRenderOpts","strokeStyle","lineWidth","strokeText","maxWidth","fillText","decorateText","translation","fillStyle","textAlign","textBaseline","strikethrough","underline","metrics","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","yDecoration","decorationWidth","addRoundedRectPath","topLeft","bottomLeft","bottomRight","topRight","LINE_HEIGHT","RegExp","FONT_STYLE","toLineHeight","match","_readValueToProps","_step4","objProps","read","_iterator4","toTRBL","toTRBLCorners","toPadding","toFont","toFontString","resolve","cacheable","parentContext","_createResolver","scopes","_cache","prefixes","rootScopes","getTarget","_resolve","Proxy","deleteProperty","_keys","_cached","_resolveWithPrefixes","Reflect","_scopes","getKeysFromAllScopes","includes","storage","_storage","_attachContext","proxy","subProxy","descriptorDefaults","_cacheable","_proxy","_subProxy","_stack","setContext","override","receiver","isScriptable","needsSubResolver","createSubResolver","_resolveScriptable","isIndexable","_step5","_iterator5","_resolveArray","_resolveWithContext","allKeys","scriptable","indexable","_proxy$_scriptable","_proxy$_indexable","_proxy$_allKeys","_allKeys","readKey","resolveFallback","getScope","parent","addScopes","parentScopes","parentFallback","_step6","_iterator6","_rootScopes","allScopes","addScopesFromKey","_getTarget","subGetTarget","_step7","_iterator7","_step8","_iterator8","_step9","_iterator9","_step10","_iterator10","resolveKeysFromAllScopes","_parseObjectDataRadialScale","_this$_parsing$key","_parsing","EPSILON","getPoint","skip","getValueAxis","monotoneAdjust","deltaK","mK","alphaK","betaK","tauK","squaredMagnitude","pointCurrent","pointsLen","pointAfter","monotoneCompute","pointBefore","valueAxis","iPixel","vPixel","capControlPoint","pt","_updateBezierControlPoints","loop","controlPoints","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","spanGaps","cubicInterpolationMode","slopeDelta","splineCurveMonotone","tension","capBezierPoints","inArea","inAreaPrev","inAreaNext","_isDomSupported","_getParentNode","domNode","host","parseMaxStyle","styleValue","parentProperty","valueInPixels","element","positions","getPositionedStyle","styles","suffix","pos","getRelativePosition","evt","borderBox","boxSizing","paddings","borders","_getCanvasPosition","touches","offsetX","offsetY","box","shadowRoot","useOffsetPos","clientX","clientY","getCanvasPosition","round1","bbWidth","bbHeight","margins","containerSize","containerStyle","containerBorder","containerPadding","getContainerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","setTransform","supportsEventListenerOptions","passiveSupported","passive","readUsedSize","getPropertyValue","getStyle","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","intlCache","Map","formatNumber","cacheKey","getNumberFormat","getRtlAdapter","rtl","rectX","_x","setWidth","xPlus","leftForLtr","itemWidth","getRightToLeftAdapter","_x2","_itemWidth","overrideTextDirection","original","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","propertyFn","between","compare","normalize","normalizeSegment","_boundSegment","segment","bounds","prevValue","startBound","endBound","_propertyFn2","_getSegment","_propertyFn","getSegment","inside","subStart","shouldStart","shouldStop","_boundSegments","segments","splitByStyles","segmentOptions","chartContext","_chart","baseStyle","readStyle","_datasetIndex","prevStyle","addStyle","st","dir","_step11","_iterator11","styleChanged","p0","p0DataIndex","p1DataIndex","doSplitByStyles","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","enumerableOnly","symbols","sym","_get","base","_superPropBase","desc","_getPrototypeOf","_inherits","subClass","superClass","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","construct","sham","_isNativeReflectConstruct","Super","NewTarget","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","_slicedToArray","_e3","Animator","_request","_charts","_running","_lastDate","anims","callbacks","numSteps","initial","currentStep","_update","_refresh","_this2","remaining","running","draw","_active","_total","tick","pop","_notify","charts","complete","progress","cb","_getAnims","_this$_getAnims$items","acc","cur","_duration","cancel","animator","interpolators","factor","c0","valid","mix","number","Animation","cfg","currentValue","_fn","_easing","easing","_start","_loop","_target","_prop","_from","_to","_promises","elapsed","remain","promises","Promise","rej","resolved","colors","properties","numbers","active","resize","show","animations","visible","hide","Animations","_properties","configure","animatedProps","option","newOptions","$shared","$animations","resolveTargetOptions","_createAnimations","anim","wait","all","awaitAll","_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","_index","_top","_bottom","getFirstScaleId","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","_len","_dataCheck","datasetElementType","resetNewElements","stackChanged","oldStacked","_resyncElements","scopeKeys","datasetScopeKeys","getOptionScopes","createResolver","sorted","parseArrayData","parseObjectData","parsePrimitiveData","labels","getLabels","singleScale","_parsed$i","_this$_parsing","_this$_parsing$xAxisK","xAxisKey","_this$_parsing$yAxisK","yAxisKey","parsedValue","NaN","canStack","otherScale","_getOtherScale","hidden","createStack","NEGATIVE_INFINITY","_getUserBounds","_scale$getUserBounds","otherMin","otherMax","_skip","updateRangeFromParsed","getParsed","label","getLabelForValue","_clip","defaultClip","getMaxOverflow","chartArea","resolveDatasetElementOptions","resolveDataElementOptions","dataIndex","createDataContext","createDatasetContext","_resolveElementOptions","dataElementType","elementType","_this3","sharing","datasetElementScopeKeys","names","resolveNamedOptions","transition","datasetAnimationScopeKeys","sharedOptions","_animationsDisabled","firstOpts","previouslySharedOptions","getSharedOptions","includeOptions","updateSharedOptions","_resolveAnimations","_setStyle","arg1","arg2","numMeta","numData","_insertElements","_removeElements","move","updateElements","_args2","_dataChanges","_sync","newCount","computeMinSampleSize","curr","$bar","visibleMetas","getAllParsedValues","getAllScaleValues","_length","updateMinAndPrev","ticks","getPixelForTick","parseValue","startValue","endValue","barStart","barEnd","_custom","parseFloatBar","parseArrayOrPrimitive","isFloatBar","custom","setBorderSkipped","edge","borderSkipped","_borderProps","horizontal","borderProps","enableBorderRadius","parseEdge","orig","v2","startEnd","setInflateAmount","inflateAmount","_DatasetController","BarController","_this$_parsing2","_this$_parsing2$xAxis","_this$_parsing2$yAxis","iAxisKey","vAxisKey","bars","reset","getBasePixel","ruler","_getRuler","_this$_getSharedOptio","_getSharedOptions","vpixels","head","_calculateBarValuePixels","ipixels","_calculateBarIndexPixels","updateElement","grouped","skipNull","_getStacks","pixels","barThickness","_startPixel","_endPixel","stackCount","_getStackCount","categoryPercentage","barPercentage","_this$_cachedMeta","_this$options","baseValue","minBarLength","actualBase","floating","applyStack","getDataVisibility","barSign","startPixel","getPixelForDecimal","endPixel","halfGrid","getLineWidthForValue","maxBarThickness","Infinity","percent","computeFlexCategoryTraits","computeFitCategoryTraits","stackIndex","_getStackIndex","_index_","offset","grid","_value_","beginAtZero","_DatasetController2","BubbleController","_super2","_this$_cachedMeta2","_this$_getSharedOptio2","tooltip","_DatasetController3","DoughnutController","_super3","_this4","innerRadius","outerRadius","circumference","isDatasetVisible","_getRotation","_getCircumference","arcs","spacing","getMaxBorderWidth","getMaxOffset","maxSize","cutout","chartWeight","_getRingWeight","_this$_getRotationExt","_getRotationExtents","_getRatioAndOffset","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","_this$_getSharedOptio3","_circumference","metaData","borderAlign","hoverBorderWidth","hoverOffset","ringWeightOffset","legend","generateLabels","legendItem","toggleDataVisibility","tooltipItem","dataLabel","formattedValue","_DatasetController4","LineController","_super4","_meta$data","_dataset","_getStartAndCountOfVi","_decimated","animated","_this$_cachedMeta3","_this$_getSharedOptio4","_this$options2","maxGapLength","directUpdate","prevParsed","nullData","stop","lastPoint","updateControlPoints","_DatasetController5","PolarAreaController","_super5","_this5","_updateRadius","_this6","minSize","cutoutPercentage","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getIndexAngle","defaultAngle","countVisibleElements","_computeAngle","getDistanceFromCenterForValue","_this7","angleLines","circular","pointLabels","PieController","_DoughnutController","_super6","_DatasetController6","RadarController","_super7","_fullLoop","pointPosition","getPointPositionForValue","Element","useFinalPosition","_this$getProps","getProps","_final","_this8","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","skipMajors","evenMajorSpacing","getEvenSpacing","factors","_factorize","calculateSpacing","avgMajorSpacing","majorStart","majorEnd","grace","drawBorder","drawOnChartArea","drawTicks","tickWidth","tickColor","minRotation","maxRotation","mirror","textStrokeWidth","textStrokeColor","autoSkipPadding","labelOffset","minor","crossAlign","showLabelBackdrop","backdropColor","backdropPadding","route","offsetFromEdge","sample","numItems","increment","getPixelForGridLine","offsetGridLines","validIndex","lineValue","getTickMarkLength","getTitleHeight","titleAlign","reverseAlign","_Element","Scale","_super8","_this9","_margins","labelRotation","_range","_gridLineItems","_labelItems","_labelSizes","_longestTextCache","_reversePixels","_userMax","_userMin","_suggestedMax","_suggestedMin","_ticksLength","_borderValue","_dataLimitsCached","suggestedMin","suggestedMax","_this$getUserBounds","metas","getMinMax","xLabels","yLabels","beforeUpdate","_this$options3","sampleSize","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","minmax","change","keepZero","_addGrace","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","_this$options4","titleOpts","gridOpts","titleHeight","_this$_getLabelSizes","tickPadding","angleRadians","labelHeight","labelWidth","_calculatePadding","_handleMargins","_this$options5","_this$options5$ticks","isRotated","labelsBelowTicks","offsetLeft","offsetRight","_this$options6","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","_positionAxisID2","_value2","limit","optsAtIndex","lineColor","tickBorderDash","tickBorderDashOffset","lineCount","textOffset","tickAndPadding","hTickAndPadding","_getXAxisLabelAlignment","_getYAxisLabelAlignment","_ret","_positionAxisID3","_value3","halfCount","tickTextAlign","backdrop","labelPadding","_this$options7","_this$options8","_this$options8$ticks","fillRect","findIndex","_computeGridLineItems","drawLine","setLineDash","lineDashOffset","lastLineWidth","_computeLabelArea","_computeLabelItems","_this$options9","_titleArgs","titleX","titleY","_positionAxisID","_value","titleArgs","drawBackground","drawGrid","drawTitle","drawLabels","_this10","tz","z","gz","getSortedVisibleDatasetMetas","axisID","fontSize","TypedRegistry","isPrototypeOf","parentScope","isIChartComponent","register","itemDefaults","routes","propertyParts","sourceName","sourceScope","routeDefaults","registerDefaults","Registry","controllers","_typedRegistries","_each","_len3","_key3","_len4","_key4","_len5","_key5","_len6","_key6","_len7","_key7","_len8","_key8","_len9","_key9","_len10","_key10","typedRegistry","_this11","reg","_getRegistryForType","isForType","_exec","itemReg","registry","camelMethod","_DatasetController7","ScatterController","_super9","_meta$data2","_getStartAndCountOfVi2","getElement","_this$_cachedMeta4","_this$options10","_abstract","DateAdapter","chartOptions","timestamp","_format","amount","members","adapters","_date","metaset","lookupMethod","getRange","evaluateInteractionItems","_metasets$i","_index2","_binarySearch","getIntersectItems","isPointInArea","inRange","getNearestCartesianItems","distanceMetric","useX","useY","deltaX","deltaY","getDistanceMetricForAxis","minDistance","getCenterPoint","getNearestItems","_element$getProps","getNearestRadialItems","getAxisItems","rangeMethod","intersectsItem","modes","nearest","STATIC_POSITIONS","filterByPosition","filterDynamicPositionByAxis","sortByWeight","setLayoutDims","layouts","layout","wrap","stackWeight","placed","buildStacks","vBoxMaxWidth","hBoxMaxHeight","availableHeight","getCombinedMax","maxPadding","updateMaxPadding","boxPadding","updateDims","newWidth","outerWidth","newHeight","outerHeight","widthChanged","heightChanged","same","other","getMargins","marginForPositions","fitBoxes","boxes","refit","refitBoxes","_updateDims","setBoxDims","placeBoxes","userPadding","_height","_width","autoPadding","addBox","_layers","removeBox","layoutItem","minPadding","layoutBoxes","_box","_box$options","_box$options$stackWei","wrapBoxes","centerHorizontal","centerVertical","leftAndTop","rightAndBottom","vertical","buildLayoutBoxes","verticalBoxes","horizontalBoxes","beforeLayout","visibleVerticalBoxCount","updatePos","handleMaxPadding","BasePlatform","BasicPlatform","_BasePlatform","_super10","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","isNullOrEmpty","eventListenerOptions","removeListener","nodeListContains","nodeList","createAttachObserver","observer","MutationObserver","addedNodes","removedNodes","observe","childList","subtree","createDetachObserver","drpListeningCharts","oldDevicePixelRatio","onWindowResize","dpr","createResizeObserver","ResizeObserver","contentRect","listenDevicePixelRatioChanges","releaseObserver","disconnect","unlistenDevicePixelRatioChanges","createProxyAndListen","_getRelativePosition","fromNativeEvent","addListener","_BasePlatform2","DomPlatform","_super11","renderHeight","getAttribute","renderWidth","displayWidth","displayHeight","initCanvas","removeAttribute","setAttribute","proxies","$proxies","attach","isConnected","_detectPlatform","OffscreenCanvas","PluginService","_init","hook","_createDescriptors","plugin","cancelable","_oldCache","_notifyStateChanges","localIds","getPlugin","_i2","allPlugins","_ref5","_step12","_iterator12","getOpts","pluginOpts","createDescriptors","previousDescriptors","some","_ref6","pluginScopeKeys","getIndexAxis","datasetDefaults","determineAxis","scaleOptions","initOptions","chartDefaults","configScales","chartIndexAxis","firstIDs","scaleConf","defaultId","getDefaultScaleIDFromAxis","defaultScaleOptions","defaultID","getAxisFromDefaultScaleID","mergeScaleConfig","initData","keyCache","keysCached","cachedKeys","generate","Config","_config","initConfig","_scopeCache","_resolverCache","clearCache","datasetType","additionalOptionScopes","mainScope","resetCache","keyLists","_cachedScopes","_getResolver","getResolver","subPrefixes","needContext","subResolver","_step13","_iterator13","_getResolver2","resolverCache","_step14","_descriptors2","_iterator14","KNOWN_POSITIONS","positionIsHorizontal","compare2Level","l1","l2","onAnimationsComplete","animationOptions","onComplete","onAnimationProgress","onProgress","getCanvas","getElementById","getChart","moveNumericKeys","_i3","intKey","Chart","userConfig","_this12","initialCanvas","existingChart","chartOptionScopes","updateConfig","timeout","acquireContext","_options","_aspectRatio","_metasets","_lastEvent","_listeners","_responsiveListeners","_sortedMetasets","_plugins","_hiddenIndices","attached","_doResize","resizeDelay","listen","_initialize","_this$options11","bindEvents","_resizeBeforeDraw","newSize","getMaximumSize","newRatio","onResize","axisOptions","_this13","scaleOpts","updated","isRadial","dposition","dtype","scaleType","getScale","hasUpdated","_destroyDatasetMeta","_this14","newControllers","_removeUnreferencedMetasets","updateIndex","ControllerClass","getController","_defaults$datasets$ty","_updateMetasets","_this15","_resetElements","animsDisabled","_updateScales","_checkEventBindings","_updateHiddenIndices","invalidate","buildOrUpdateControllers","buildOrUpdateElements","_minPadding","_updateLayout","_updateDatasets","_eventHandler","_updateHoverStyles","_this16","ensureScalesHaveIDs","buildOrUpdateScales","existingEvents","newEvents","unbindEvents","_step15","_iterator15","_getUniformDataChanges","_ref8","datasetCount","makeSet","changeSet","_this17","noArea","_this17$_layers","_idx","_i4","_ilen","_updateDataset","_this$_resizeBeforeDr","layers","_drawDatasets","_drawDataset","useClip","setDatasetVisibility","_updateVisibility","_destroy","_stop","releaseContext","_this$canvas","toDataURL","bindUserEvents","bindResponsiveEvents","_this18","_add","_this19","detached","_remove","isAttached","_this20","activeElements","_this21","lastActive","_ref9","notify","replay","hoverOptions","deactivated","activated","updateHoverStyle","_this22","inChartArea","eventFilter","_handleEvent","_this$_active","_getActiveElements","isClick","_isClickEvent","lastEvent","determineLastEvent","getElementsAtEventForMode","clipArc","pixelMargin","angleMargin","parseBorderRadius$1","angleDelta","borderRadius","halfThickness","innerLimit","computeOuterLimit","outerArcLimit","outerStart","outerEnd","innerStart","innerEnd","rThetaToXY","theta","pathArc","innerR","spacingOffset","alpha","avNogSpacingRadius","angleOffset","_parseBorderRadius$","outerStartAdjustedRadius","outerEndAdjustedRadius","outerStartAdjustedAngle","outerEndAdjustedAngle","innerStartAdjustedRadius","innerEndAdjustedRadius","innerStartAdjustedAngle","innerEndAdjustedAngle","pCenter","p4","_pCenter","_pCenter2","p8","_pCenter3","outerStartX","outerStartY","outerEndX","outerEndY","inner","lineJoin","fullCircles","drawFullCircleBorders","unregister","_Element2","ArcElement","_super12","_this23","chartX","chartY","_getAngleFromPoint2","_this$getProps2","rAdjust","betweenAngles","withinRadius","_this$getProps3","_this$options12","halfAngle","halfRadius","radiusOffset","drawArc","setStyle","lineCap","pathVars","_params$start","paramsStart","_params$end","paramsEnd","segmentStart","segmentEnd","outside","_pathVars","lineMethod","stepped","getLineMethod","_ref10","_ref10$move","fastPathSegment","prevX","lastY","_pathVars2","_ref11","_ref11$move","avgX","countX","pointIndex","drawX","truncX","_getSegmentMethod","usePath2D","Path2D","path","_path","strokePathWithCache","_step16","segmentMethod","_iterator16","strokePathDirect","_Element3","LineElement","_super13","_this24","_points","_segments","_pointsUpdated","_findStartAndEnd","findStartAndEnd","solidSegments","_computeSegments","_interpolate","_getInterpolationMethod","_segments$i","interpolated","_step17","_iterator17","inRange$1","hitRadius","_Element4","PointElement","_super14","_this25","mouseX","mouseY","_this$getProps4","_this$getProps5","hoverRadius","getBarBounds","bar","half","_bar$getProps","skipOrLimit","boundingRects","maxW","maxH","parseBorderWidth","maxR","enableBorder","parseBorderRadius","outer","_inRange","skipX","skipY","addNormalRectPath","inflateRect","refRect","_Element5","BarElement","_super15","_this26","_this$options13","_boundingRects","addRectPath","_this$getProps6","cleanDecimatedDataset","cleanDecimatedData","plugin_decimation","algorithm","beforeElementsUpdate","xAxis","_getStartAndCountOfVi3","getStartAndCountOfVisiblePointsSimplified","threshold","decimated","samples","maxAreaPoint","maxArea","nextA","bucketWidth","sampledIndex","avgY","avgRangeStart","avgRangeEnd","avgRangeLength","rangeOffs","rangeTo","_data$a","pointAx","pointAy","lttbDecimation","minIndex","maxIndex","xMin","dx","intermediateIndex1","intermediateIndex2","minMaxDecimation","_getBounds","_findSegmentEnd","_getEdge","_createBoundaryLine","boundary","_ref12","_ref12$x","_ref12$y","linePoints","_ref13","_pointsFromSegments","_shouldApplyFill","_resolveTarget","propagate","visited","_decodeFill","fillOption","parseFillOption","firstCh","decodeTargetIndex","addPointsBelow","sourcePoint","linesBelow","postponed","_findPoint","findPoint","interpolate","pointValue","firstValue","lastValue","simpleArc","getLineByIndex","sourcePoints","below","getLinesBelow","_buildStackLine","_getTargetValue","computeCircularBoundary","_source$scale","_getTargetPixel","computeLinearBoundary","computeBoundary","_drawfill","lineOpts","_ref14","_ref14$above","above","_ref14$below","clipVertical","doFill","clipY","lineLoop","_step21","_iterator21","pathSegment","_step22","_step18","tpoints","_iterator18","_step19","_iterator19","_step20","tgt","subBounds","_iterator20","fillSource","_iterator22","_ref16","_src$style","_src$style$background","notShape","clipBounds","interpolatedLineTo","targetLoop","_scale$chart$chartAre","_ref17","interpolatedPoint","afterDatasetsUpdate","_args","$filler","beforeDraw","drawTime","beforeDatasetsDraw","beforeDatasetDraw","getBoxSize","labelOpts","_labelOpts$boxHeight","boxHeight","_labelOpts$boxWidth","boxWidth","usePointStyle","pointStyleWidth","itemHeight","_Element6","Legend","_super16","_this27","_added","legendHitBoxes","_hoveredItem","doughnutMode","legendItems","columnSizes","lineWidths","buildLabels","_this28","labelFont","_computeTitleHeight","_getBoxSize","_fitRows","_fitCols","hitboxes","totalHeight","heightLimit","totalWidth","currentColWidth","currentColHeight","_this$options14","rtlHelper","_step23","_iterator23","hitbox","_step24","_iterator24","_hitbox","_draw","cursor","_this29","defaultColor","fontColor","halfFontSize","_getBoxSize2","textDirection","lineDash","drawOptions","SQRT2","yBoxTop","xBoxLeft","drawLegendBox","_textX","titleFont","titlePadding","topPaddingPlusHalfFontSize","hitBox","lh","onLeave","isListened","hoveredItem","_getLegendItemAt","sameItem","plugin_legend","_element","adjustHitBoxes","afterEvent","handleEvent","ci","_chart$legend$options","_Element7","Title","_super17","_this30","_padding","textSize","fontOpts","_this$_drawArgs","_drawArgs","plugin_title","titleBlock","createTitle","WeakMap","plugin_subtitle","positioners","average","hasValue","tooltipPosition","eventPosition","nearestElement","tp","pushOrConcat","toPush","splitNewlines","getTooltipSize","bodyFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","beforeBody","afterBody","titleSpacing","titleMarginBottom","displayColors","bodySpacing","footerMarginTop","footerSpacing","widthPadding","maxLineWidth","determineXAlign","yAlign","chartWidth","_chart$chartArea","xAlign","caret","caretSize","caretPadding","doesNotFitWithAlign","determineAlignment","determineYAlign","getBackgroundPoint","alignment","paddingAndSize","_toTRBLCorners","alignX","alignY","getAlignedX","getBeforeAfterBodyLines","overrideCallbacks","_Element8","Tooltip","_super18","_this31","opacity","_eventPosition","_size","_cachedAnimations","_tooltipItems","dataPoints","caretX","caretY","labelColors","labelPointStyles","labelTextColors","tooltipItems","beforeTitle","afterTitle","_this32","bodyItems","scoped","beforeLabel","afterLabel","beforeFooter","afterFooter","_controller$getLabelA","_this33","getLabelAndValue","itemSort","labelColor","labelPointStyle","labelTextColor","_createItems","getTitle","getBeforeBody","getBody","getAfterBody","getFooter","positionAndSize","backgroundPoint","external","tooltipPoint","caretPosition","getCaretPosition","x3","y3","_toTRBLCorners2","ptX","ptY","titleColor","colorX","rtlColorX","yOffSet","colorY","multiKeyBackground","outerX","innerX","strokeRect","bodyAlign","bodyLineHeight","xLinePadding","fillLineOfText","bodyAlignForCalculation","bodyColor","_drawColorBox","footerAlign","footerColor","tooltipSize","_toTRBLCorners3","drawCaret","quadraticCurveTo","animX","animY","_updateAnimationTarget","hasTooltipContent","globalAlpha","drawBody","drawFooter","_this34","_ref18","positionChanged","_positionChanged","_ignoreReplayEvents","plugin_tooltip","afterInit","afterDraw","_willRender","labelCount","Decimation","Filler","SubTitle","findOrAddLabel","addedLabels","addIfString","lastIndexOf","_Scale","CategoryScale","_super19","_this35","_startValue","_valueRange","_addedLabels","_step25","_iterator25","_ref20","_index3","_this$getUserBounds2","_this$getMinMax","getDecimalForPixel","generateTicks$1","generationOptions","dataRange","niceMin","niceMax","numSpaces","rounded","precision","maxTicks","maxDigits","includeBounds","maxSpaces","rmin","rmax","countDefined","minSpacing","decimalPlaces","relativeLabelSize","_ref21","_Scale2","LinearScaleBase","_super20","_this36","_endValue","_this$getUserBounds3","setMin","setMax","minSign","maxSign","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","stepSize","computeTickLimit","getTickLimit","_maxDigits","_LinearScaleBase","LinearScale","_super21","_this$getMinMax2","handleTickRangeOptions","isMajor","tickVal","_Scale3","LogarithmicScale","_super22","_this37","_zero","_this$getMinMax3","_this$getUserBounds4","exp","endExp","endSignificand","significand","lastTick","generateTicks","getTickBackdropHeight","determineLimits","fitWithPointLabels","limits","valueCount","_pointLabels","pointLabelOpts","additionalAngle","centerPointLabels","getPointLabelContext","getPointPosition","drawingArea","plFont","updateLimits","setCenterPoint","_pointLabelItems","outerDistance","pointLabelPosition","yForAngle","getTextAlignForAngle","leftForTextAlign","buildPointLabelItems","hLimits","vLimits","pathRadiusLine","_LinearScaleBase2","RadialLinearScale","_super23","_this38","_this$getMinMax4","_this39","leftMovement","rightMovement","topMovement","bottomMovement","scalingFactor","scaledDistance","pointLabel","createPointLabelContext","distanceFromCenter","_this$_pointLabelItem","_this$options15","_this40","_scale$_pointLabelIte","backdropLeft","backdropTop","backdropWidth","backdropHeight","drawPointLabels","gridLineOpts","drawRadiusLine","_this41","animate","INTERVALS","common","steps","quarter","UNITS","sorter","_parse","adapter","_adapter","_scale$_parseOpts","_parseOpts","parser","isoWeekday","determineUnitForAutoTicks","minUnit","capacity","interval","addTick","timestamps","_lookup2","ticksFromTimestamps","majorUnit","setMajorTicks","_Scale4","TimeScale","_super24","_this42","_unit","_majorUnit","_offsets","_normalized","displayFormats","formats","normalized","_this$getUserBounds5","_applyBounds","_getLabelBounds","endOf","getLabelTimestamps","timeOpts","_generate","_filterBetween","_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","_lookupByKey2","_table$lo","_table$hi","_lookupByKey3","_table$lo2","_table$hi2","TimeSeriesScale","_TimeScale","_super25","_this43","_table","_minPos","_tableRange","_getTimestampsForTable","buildLookupTable","registerables","u","$","weekdays","utcOffset","_","$L","utc","$u","$x","$offset","$d","$y","$M","$D","$W","getDay","$H","$m","$s","$ms","$utils","isSame","isAfter","isBefore","$g","unix","getTime","$locale","weekStart","$set","daysInMonth","invalidDate","YY","YYYY","MM","MMM","monthsShort","MMMM","DD","dd","weekdaysMin","ddd","weekdaysShort","dddd","HH","hh","mm","ss","SSS","toUTCString","$i","isDayjs","Ls","rsingleTag","rootjQuery","rquickExpr","find","parseHTML","ownerDocument","ready","Data","AxiosError","response","captureStackTrace","description","fileName","lineNumber","columnNumber","customProps","axiosError","cause","nodeName","access","chainable","emptyGet","bulk","rnothtmlwhite","rquery","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","prefilters","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","originalOptions","jqXHR","inspected","seekingTransport","inspect","selected","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","lastModified","etag","isLocal","protocol","processData","async","contentType","accepts","xml","contents","responseFields","converters","parseXML","ajaxSetup","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","completed","fireGlobals","uncached","callbackContext","globalEventContext","deferred","Deferred","completeDeferred","Callbacks","_statusCode","statusCode","requestHeaders","requestHeadersNames","strAbort","readyState","getResponseHeader","getAllResponseHeaders","overrideMimeType","mimeType","always","abort","statusText","finalText","promise","crossDomain","param","traditional","hasContent","ifModified","headers","beforeSend","fail","nativeStatusText","responses","isSuccess","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","conv","dataFilter","ajaxConvert","resolveWith","rejectWith","fireWith","getJSON","getScript","_siblings","rneedsContext","rparentsprev","guaranteedUnique","sibling","targets","selectors","matched","uniqueSort","prevAll","addBack","parentsUntil","until","nextAll","nextUntil","prevUntil","siblings","contentDocument","childNodes","Identity","Thrower","ex","adoptValue","reject","noValue","tuples","_state","_promise","fns","newDefer","returned","onFulfilled","onRejected","maxDepth","depth","special","that","mightThrow","notifyWith","process","exceptionHook","stackTrace","getStackHook","stateString","disable","lock","fire","when","singleValue","resolveContexts","resolveValues","primary","updateFunc","rcheckableType","acceptData","dataPriv","rtypenamespace","returnTrue","returnFalse","expectSync","activeElement","safeActiveElement","_on","types","one","origFn","leverageNative","namespace","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","Event","handleObjIn","eventHandle","handleObj","namespaces","origType","elemData","handle","triggered","bindType","needsContext","expr","delegateCount","setup","mappedTypes","origCount","hasData","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","_handlers","sel","matchedHandlers","matchedSelectors","addProp","originalEvent","load","noBubble","_default","beforeunload","returnValue","isDefaultPrevented","relatedTarget","timeStamp","isSimulated","altKey","bubbles","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","charCode","keyCode","buttons","pointerId","pointerType","screenX","screenY","targetTouches","toElement","which","focus","blur","mouseenter","mouseleave","related","defaultDatasetIdKey","reforwardRef","setLabels","nextLabels","setDatasets","nextDatasets","datasetIdKey","addedDatasets","nextDataset","currentDataset","cloneData","nextData","ChartComponent","_props$height","_props$width","_props$redraw","redraw","_props$plugins","fallbackContent","updateMode","canvasProps","canvasRef","chartRef","renderChart","destroyChart","nextOptions","createTypedChart","Line","Bar","Radar","Pie","Scatter","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","rcssNum","rnumnonpx","rcustomProp","cssExpand","getStyles","swap","curCSS","adjustCSS","addGetHookIf","finalPropName","rdisplayswap","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","boxModelAdjustment","isBorderBox","computedVal","css","getWidthOrHeight","boxSizingReliable","valueIsBorderBox","offsetProp","reliableTrDimensions","getClientRects","cssHooks","computed","cssNumber","cssProps","origName","isCustomProp","clearCloneStyle","scrollboxSizeBuggy","scrollboxSize","reliableMarginLeft","expanded","hour12","formatToParts","toLocaleString","$timezone","offsetName","guess","resolvedOptions","setDefault","$localOffset","isUTC","_Modal","_Modal2","owner","composed","rtagName","rscriptType","wrapMap","setGlobalEval","buildFragment","dataUser","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","udataOld","udataCur","fixInput","checked","domManip","collection","ignored","fragment","scripts","hasScripts","iNoClone","valueIsFunction","checkClone","_evalUrl","noModule","textContent","keepData","nodes","cleanData","htmlPrefilter","dataAndEvents","deepDataAndEvents","srcElements","destElements","cloneNode","inPage","noCloneChecked","isXMLDoc","empty","prepend","insertBefore","nextSibling","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","insert","flag","createOptions","firing","memory","_fired","_locked","firingIndex","once","stopOnFalse","unique","locked","fired","dequeue","startLength","_queueHooks","setter","clearQueue","defer","isHiddenWithinTree","showHide","fxNow","inProgress","rfxtypes","rrun","schedule","fx","createFxNow","genFx","includeWidth","attrs","createTween","tween","tweeners","stopped","currentTime","tweens","run","specialEasing","originalProperties","Tween","gotoEnd","timer","tweener","toggle","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","prefilter","speed","opt","speeds","old","fadeTo","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","pnum","computeStyleTests","div","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","measure","reliableTrDimensionsVal","backgroundClip","pixelBoxStyles","pixelPosition","tr","trChild","trStyle","checkOn","optSelected","radioValue","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","defaultView","parentWindow","simulate","triggerHandler","webpackPolyfill","deprecate","paths","preservedScriptAttributes","script","winnow","qualifier","not","is","readyList","readyException","readyWait","doScroll","valueParts","adjusted","maxIterations","initialInUnit","thead","td","tbody","tfoot","colgroup","caption","th","optgroup","createDocumentFragment","lastChild","getElementsByTagName","refElements","rhtml","createTextNode","opener","rboxStyle","rtrimCSS","conditionFn","hookFn","cssPrefixes","emptyStyle","vendorProps","capName","vendorPropName","rfocusable","rclickable","removeProp","propFix","nType","propHooks","tabindex","selectedIndex","parserErrorElem","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","valueOrFunction","serialize","serializeArray","keepScripts","createHTMLDocument","implementation","dayjs","isBetween","timezone","Calendar","handleEventClick","useState","selectDayEvents","setSelectDayEvents","calendarEvents","start_at","end_at","counselorId","counselor_id","advisorId","advisor_id","viewEvents","three_month_later","getDateEvent","eventStartDate","eventEndDate","dayGridPlugin","timeGridPlugin","listPlugin","interactionPlugin","jaLocale","dateClick","dayGridMonth","eventLength","eventCounts","markText","markColor","fontStyle","factory","_typeof2","React","emptyFunction","emptyFunctionWithReset","resetWarningCache","propTypes","createCommonjsModule","shim","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","symbol","any","arrayOf","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","factoryWithThrowingShims","_objectSpread2","usePrevious","useRef","useEffect","isUnknownObject","PLAIN_OBJECT_STR","isEqual","leftArray","leftPlainObject","leftKeys","rightKeys","keySet","every","extractAllowedOptionsUpdates","prevOptions","immutableKeys","isUpdated","validateStripe","maybeStripe","createToken","createPaymentMethod","confirmCardPayment","parseStripeProp","isPromise","stripePromise","stripe","ElementsContext","displayName","useElementsContextWithUseCase","useCaseMessage","useCase","parseElementsContext","useContext","ElementsConsumer","useCallbackReference","createElementComponent","isServer","_ref$options","_ref$onBlur","onBlur","_ref$onFocus","onFocus","_ref$onReady","onReady","_ref$onChange","onChange","_ref$onEscape","onEscape","_ref$onClick","_ref$onLoadError","onLoadError","_ref$onLoaderStart","onLoaderStart","_ref$onNetworksChange","onNetworksChange","elementRef","callOnReady","callOnBlur","callOnFocus","callOnClick","callOnChange","callOnEscape","callOnLoadError","callOnLoaderStart","callOnNetworksChange","useLayoutEffect","mount","updates","__elementType","AuBankAccountElement","CardElement","CardNumberElement","CardExpiryElement","CardCvcElement","FpxBankElement","IbanElement","IdealBankElement","P24BankElement","EpsBankElement","PaymentElement","PaymentRequestButtonElement","LinkAuthenticationElement","AddressElement","ShippingAddressElement","PaymentMethodMessagingElement","AffirmMessageElement","AfterpayClearpayMessageElement","Elements","rawStripeProp","useMemo","_React$useState2","isMounted","safeSetContext","prevStripe","anyStripe","_registerWrapper","registerAppInfo","useElements","useStripe","Sizzle","pseudos","getText","isXML","escapeSelector","escape","Expr","tokenize","compile","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pushNative","booleans","whitespace","identifier","attributes","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rinputs","rheader","rnative","rsibling","runescape","funescape","nonHex","high","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","unloadHandler","inDisabledFieldset","addCombinator","seed","nid","groups","newSelector","newContext","getElementsByClassName","qsa","testContext","toSelector","cssSupportsSelector","CSS","supports","qsaError","cacheLength","markFunction","assert","addHandle","attrHandle","siblingCheck","sourceIndex","createInputPseudo","createButtonPseudo","createDisabledPseudo","createPositionalPseudo","argument","matchIndexes","namespaceURI","hasCompare","subWindow","attachEvent","createComment","getById","getElementsByName","attrId","getAttributeNode","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","sortDetached","aup","ap","bp","specified","duplicates","detectDuplicates","sortStable","nodeValue","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","what","_argument","simple","forward","ofType","uniqueCache","outerCache","nodeIndex","useCache","uniqueID","pseudo","setFilters","matcher","unmatched","lang","elemLang","hasFocus","_matchIndexes","radio","checkbox","file","password","image","submit","combinator","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","compiled","_name","_sizzle","noConflict","truncate","rerrorNames","rbrace","rmultiDash","dataAttr","getData","removeData","_removeData","defaultDisplayMap","getDefaultDisplay","eased","swing","boolHook","removeAttr","attrHooks","attrNames","lowercaseName","stripAndCollapse","classesToArray","addClass","curValue","finalValue","removeClass","toggleClass","stateVal","isValidValue","hasClass","rreturn","valHooks","optionSet","focusin","attaches","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","xhrSuccessStatus","xhrSupported","cors","_callback","errorCallback","username","xhrFields","onabort","ontimeout","onreadystatechange","responseType","binary","scriptAttrs","charset","scriptCharset","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","win","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","holdReady","hold","parseJSON","isNumeric","unbind","delegate","undelegate","fnOver","fnOut","_jQuery","_$","noGlobal","freeGlobal","freeSelf","Function","isVisitable","removeBrackets","renderKey","dots","predicates","formData","metaTokens","indexes","visitor","defaultVisitor","useBlob","Blob","convertValue","Buffer","isFlatArray","exposedHelpers","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","baseIsNative","getValue","ReserveEvents","TableView","headerElRef","renderSimpleLayout","headerRowContent","bodyContent","renderHScrollLayout","ScrollGrid","chunks","colGroups","splitSegsByRow","byRow","splitSegsByFirstCol","byCol","splitInteractionByRow","TableCellTop","renderTopInner","forceDayTop","dayNumberId","DEFAULT_TABLE_EVENT_TIME_FORMAT","hasListItemDisplay","TableBlockEvent","TableListItemEvent","TableCellMoreLink","compileSegs","singlePlacements","invisibleSegs","isForcedInvisible","isExpanded","singlePlacements_1","placement","isVisible","DEFAULT_WEEK_NUM_FORMAT","TableCell","dayElRef","rootDataAttrs","showWeekNumber","weekElRef","weekClassNames","fgContentElRef","fgContent","marginTop","moreMarginTop","bgContent","computeFgSegPlacement","eventInstanceHeights","maxContentHeight","hierarchy","DayGridSegHierarchy","hiddenConsumes","segInputs","unknownHeightSegs","eventHeight","allRects","rectsByEachCol","rects_3","groupRectsByEachCol","singleColPlacements","multiColPlacements","leftoverMargins","currentHeight","currentMarginTop","rects_1","resliceSeg","absoluteTop","multiPlacements","rects_2","isFirstCol","placeRects","moreCnts","moreMarginTops","unknownHeightSegs_1","hiddenEntries_1","hiddenEntry","hiddenSpan","spanStart","spanEnd","forceHidden","excludeHidden","touchingEntryId","placeholderEntry","TableRow","cellElRefs","frameElRefs","fgElRefs","segHarnessRefs","framePositions","businessHoursByCol","bgEventSegsByCol","highlightSegsByCol","getHighlightSegs","mirrorSegsByCol","getMirrorSegs","cell","normalFgNodes","renderFgSegs","mirrorFgNodes","mirrorSegs","colPlacements","topsByInstanceId","colPlacements_1","placements_1","buildAbsoluteTopHash","buildMirrorPlacements","showDayNumbers","showWeekNumbers","renderFillSegs","updateSizing","prevState","currentProps","segPlacements","segPlacements_1","leftRightCss","isExternalSizingChange","frameEls","oldInstanceHeights","newInstanceHeights","queryEventInstanceHeights","limitByContentHeight","computeMaxContentHeight","segElMap","firstKey","fcContainerEl","getCellEls","elMap","Table","splitBusinessHourSegs","splitBgEventSegs","splitFgEventSegs","splitDateSelectionSegs","rowRefs","businessHourSegsByRow","bgEventSegsByRow","fgEventSegsByRow","dateSelectionSegsByRow","eventDragByRow","eventResizeByRow","limitViaBalanced","colGroupNode","renderRowIntro","isSegAllDay","rowPositions","rowObj","colPositions","getCellRange","getCellEl","DayTableSlicer","dayTableModel","DayTable","slicer","tableRef","headerAlignElRef","DayTableView","buildDayTableModel","headerContent","contentArg","TableDateProfileGenerator","endOfWeek","main","dayGrid","dayGridDay","dayGridWeek","AiOutlineLoading3Quarters","charMap","AxiosURLSearchParams","_pairs","toFormData","encoder","_encode","buildURL","serializedParams","encode","serializeFn","utils","hashmarkIndex","product","InterceptorManager","fulfilled","rejected","synchronous","runWhen","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","isBrowser","URLSearchParams","protocols","hasBrowserEnv","hasStandardBrowserEnv","navigator","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","transitional","transformRequest","getContentType","hasJSONContentType","isObjectPayload","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","stringifySafely","transformResponse","JSONRequested","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","ignoreDuplicateOf","$internals","normalizeHeader","normalizeValue","matchHeaderValue","isHeaderNameFilter","_Symbol$iterator","_Symbol$toStringTag","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","rawHeaders","parseHeaders","tokensRE","parseTokens","deleted","deleteHeader","_char","formatHeader","_this$constructor","asStrings","accessors","defineAccessor","accessorName","methodName","arg3","buildAccessors","accessor","headerValue","transformData","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","ERR_BAD_REQUEST","samplesCount","firstSampleTS","bytes","tail","chunkLength","startedAt","bytesCount","passed","freq","_arguments","bytesNotified","_speedometer","loaded","lengthComputable","progressBytes","rate","estimated","isDownloadStream","originURL","msie","userAgent","urlParsingNode","resolveURL","search","hostname","port","pathname","requestURL","write","expires","domain","secure","cookie","toGMTString","decodeURIComponent","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","_toArray","newConfig","auth","btoa","unescape","xsrfValue","cookies","onCanceled","resolveConfig","requestData","unsubscribe","signal","onloadend","responseURL","ECONNABORTED","ERR_NETWORK","timeoutErrorMessage","ETIMEDOUT","progressEventReducer","upload","subscribe","aborted","signals","AbortController","reason","asyncGeneratorStep","gen","_next","_throw","_AsyncGenerator","front","back","wrappedAwait","_AwaitValue","wrapped","_invoke","_awaitAsyncGenerator","_asyncGeneratorDelegate","awaitWrap","waiting","pump","_asyncIterator","iterable","sync","retry","asyncIterator","AsyncFromSyncIterator","AsyncFromSyncIteratorContinuation","thr","streamChunk","mark","_callee","chunkSize","byteLength","abrupt","readBytes","_callee2","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_context2","sent","t0","t1","t2","t3","t4","t5","t6","t7","t8","delegateYield","t10","_x3","stream","onFinish","ReadableStream","pull","_callee3","_yield$iterator$next","_context3","enqueue","highWaterMark","duplexAccessed","hasContentType","fetchProgressDecorator","isFetchSupported","Request","Response","isReadableStreamSupported","encodeText","TextEncoder","arrayBuffer","supportsRequestStream","duplex","supportsResponseStream","resolvers","ERR_NOT_SUPPORT","getBodyLength","resolveBodyLength","getContentLength","_x4","_callee4","_resolveConfig","_resolveConfig$withCr","fetchOptions","composedSignal","stopTimeout","finished","requestContentLength","contentTypeHeader","isStreamResponse","responseContentLength","responseData","_context4","_x5","knownAdapters","http","renderReason","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","validator","formatMessage","ERR_DEPRECATED","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","_request2","configOrUrl","dummy","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","onfulfilled","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","Cancel","spread","isAxiosError","payload","formToJSON","getAdapter","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","_Symbol","getRawTag","objectToString","symToStringTag","nativeCreate","getNative","isKeyable","__data__","ChatCalendar","reserves","activeDate","setActiveDate","clickedDate","setMinutes","behavior","SimpleReserveEvents","ReserveForm","modalIsOpen","setModalIsOpen","modalText","setErrorMessage","buttonDisabled","setButtonDisabled","handleSubmit","form","hiddenInput","overlay","justifyContent","alignItems","zIndex","inset","background","WebkitOverflowScrolling","outline","isOpen","onSubmit","hidePostalCode","required","htmlFor","UpdateForm","AllDaySplitter","timed","DEFAULT_SLAT_LABEL_FORMAT","TimeColsAxisCell","isLabeled","isoTimeStr","labelFormat","TimeBodyAxis","slatMetas","slatMeta","TimeColsView","allDaySplitter","slatCoords","handleScrollTopRequest","renderHeadAxis","rowKey","frameHeight","renderTableRowAxis","rowHeight","renderAllDayInner","handleSlatCoords","timeContent","isNowIndicator","nowIndicatorTop","safeComputeTop","getAllDayMaxEventProps","TimeColsSlatsCoords","startOfDayDate","timeMs","computeTimeTop","computeDateTop","slatIndex","slatRemainder","slatCoverage","TimeColsSlatsBody","slatElRefs","TimeColsSlats","minHeight","onCoords","splitSegsByCol","segsByCol","splitInteractionByCol","TimeColMoreLink","renderPlainFgSegs","buildPositioning","topLevelNodes","totalThickness","stretchNode","hiddenGroups","web","buildNode","siblingRange","subjectLevel","subjectLateral","subjectEntry","afterSubject","searchIndex","lateralStart","lateralEnd","findNextLevelSegs","nextLevelRes","buildNodes","nextLevelNodes","buildWeb","startCoord","prevThickness","endCoord","allThickness","thicknessFraction","newChildren","nextLevelNodes_1","childNode","newThickness","segRects","processNode","stackDepth","stackForward","processNodes","nodes_1","webToRects","pairs","cmpDescPressures","extractNode","keyFunc","workFunc","computeSegVCoords","colDate","vcoords","DEFAULT_TIME_FORMAT","TimeColEvent","TimeColMisc","TimeCol","isSelectMirror","interactionAffectedInstances","sortedFgSegs","renderNowIndicator","nowIndicatorSegs","segIsInvisible","renderPositionedFgSegs","segVCoords","dumbSegs","segRects_1","segRect","dumbSegs_1","dumbSeg","computeFgSegPlacements","renderHiddenGroups","segPlacement","vStyle","computeSegVStyle","hStyle","computeSegHStyle","isInset","hiddenGroup","segEntries","positionCss","segEntry","segHCoords","shouldOverlap","nearCoord","farCoord","hiddenInstances","TimeColsContent","splitNowIndicatorSegs","nowIndicatorSegsByRow","updateCoords","onColCoords","TimeCols","processSlotOptions","onScrollTopRequest","top_1","handleColCoords","colCoords","onSlatCoords","scrollResponder","snapsPerSlot","colIndex","slatTop","slatHeight","partial","snapIndex","dayDate","snapDurationOverride","DayTimeColsSlicer","dayRanges","DayTimeCols","buildDayRanges","timeColsRef","STOCK_SUB_DURATIONS","buildSlatMetas","explicitLabelInterval","slatTime","slatIterator","labelInterval","slotsPerLabel","computeLabelInterval","DayTimeColsView","buildTimeColsModel","hasAttachedAxis","hasDetachedAxis","allDaySlot","timeGridContent","OPTION_REFINERS","timeGrid","timeGridDay","timeGridWeek","ListViewHeaderRow","textId","cellId","listDayFormat","sideText","listDaySideFormat","sideNavLinkAttrs","ListViewEventRow","timeHeaderId","eventHeaderId","dateHeaderId","interactiveAttrs","renderEventInnerContent","doAllDay","buildTimeContent","ListView","computeDateVars","eventStoreToSegs","_eventStoreToSegs","dateHeaderIdRoot","setRootEl","dayDates","renderSegList","renderEmptyMessage","noEventsClassNames","noEventsContent","renderNoEventsInner","noEventsDidMount","noEventsWillUnmount","segsByDay","groupSegsByDay","innerNodes","daySegs","dayStr","daySegs_1","eventRangesToSegs","eventRangeToSegs","viewEnd","createFalsableFormatter","listDay","listWeek","listMonth","listYear","touchMouseIgnoreWait","ignoreMouseDepth","listenerCnt","isWindowTouchMoveCancelled","PointerDragging","containerEl","subjectEl","handleSelector","shouldIgnoreMove","shouldWatchScroll","isTouchDragging","wasTouchScroll","handleMouseDown","shouldIgnoreMouse","isPrimaryMouseButton","tryStart","createEventFromMouse","initScrollWatch","handleMouseMove","handleMouseUp","recordCoords","cleanup","handleTouchStart","createEventFromTouch","targetEl","handleTouchMove","handleTouchEnd","handleTouchScroll","handleScroll","prevScrollX","prevPageX","prevScrollY","prevPageY","isTouch","origPageX","origPageY","onWindowTouchMove","querySubjectEl","downEl","destroyScrollWatch","cancelTouchScroll","isFirst","ElementMirror","sourceEl","mirrorEl","sourceElRect","revertDuration","origScreenX","origScreenY","updateElPosition","handleMove","setIsVisible","needsRevertAnimation","doRevertAnimation","finalSourceElRect","getMirrorEl","ScrollGeomCache","scrollController","doesListening","handleScrollChange","origScrollTop","origScrollLeft","clientRect","computeClientRect","getEventTarget","ElementScrollGeomCache","WindowScrollGeomCache","performance","AutoScroller","isEnabled","scrollQuery","edgeThreshold","maxVelocity","pointerScreenX","pointerScreenY","isAnimating","scrollCaches","everMovedUp","everMovedDown","everMovedLeft","everMovedRight","computeBestEdge","handleSide","msSinceRequest","requestAnimation","scrollStartEl","buildCaches","yDelta","xDelta","scrollCache","invDistance","velocity","bestSide","scrollCaches_1","leftDist","rightDist","topDist","bottomDist","queryScrollEls","query","FeaturefulElementDragging","touchScrollAllowed","mirrorNeedsRevert","isInteracting","isDelayEnded","isDistanceSurpassed","delayTimeoutId","onPointerDown","pointer","startDelay","handleDistanceSurpassed","onPointerMove","autoScroller","onPointerUp","tryStopDrag","handleDelayEnd","tryStartDrag","stopDrag","setIgnoreMove","OffsetTracker","origRect","scrollEl","computeLeft","computeTop","isWithinClipping","tagName","HitDragging","dragging","droppableStore","useSubjectCenter","requireInitial","initialHit","movingHit","finalHit","handlePointerDown","processFirstCoord","handleDragStart","handleDragMove","handlePointerUp","releaseHits","handleDragEnd","subjectRect","origPoint","adjustedPoint","queryHitForOffset","slicedSubjectRect","coordAdjust","forceHandle","hit","isHitsEqual","offsetTrackers","interactionSettings","offsetTop","bestHit","offsetTracker","originLeft","originTop","componentId","hit0","hit1","buildDatePointApiWithContext","DateClicking","hitDragging","DateSelecting","dragSelection","canSelect","getComponentTouchDelay$1","handleHitUpdate","isFinal","isInvalid","dateSpan0","dateSpan1","dateSelectionTransformers_1","joinHitsIntoSelection","EventDragging","subjectSeg","receivingContext","validMutation","mutatedRelevantEvents","origTarget","initialContext","getComponentTouchDelay","fixedMirrorParent","receivingOptions","massagers","massagers_1","massager","computeEventMutation","displayDrag","initialContext_1","receivingContext_1","relevantEvents_1","mutatedRelevantEvents_1","clearDrag","updatedEventApi","eventChangeArg","transformed","eventRemoveArg","draggedEl","addedEventDef","addedEventInstance","addedEventApi","eventAddArg","SELECTOR","nextContext","prevContext","initialCalendar","EventResizing","draggingSegEl","draggingSeg","querySegEl","isFromStart","computeMutation","UnselectAuto","isRecentPointerDateSelect","matchesCancel","matchesEvent","onSelect","selectInfo","onDocumentPointerDown","onDocumentPointerUp","documentPointer","LISTENER_REFINERS","eventDragStart","eventDragStop","eventDrop","eventResizeStart","eventResizeStop","drop","eventReceive","eventLeave","ExternalElementDragging","suppliedDragMeta","droppableEvent","dragMeta","buildDragMeta","canDropElOnCalendar","defProps","computeEventForDateSpan","finalView","addingEvents_1","dataAttrPrefix","prefixedName","getEmbeddedElData","ExternalDraggable","itemSelector","eventData","InferredElementDragging","mirrorSelector","currentMirrorEl","handlePointerMove","ThirdPartyDraggable","containerOrSettings","V3_URL","V3_URL_REGEX","EXISTING_SCRIPT_MESSAGE","loadScript","Stripe","findScript","queryString","advancedFraudSignals","headOrBody","injectScript","initStripe","registerWrapper","stripePromise$1","loadCalled","loadStripe","react","FullCalendar","_calendarApi","getApi","variable","obj2","DATE_PATTERN","toStr","toFloat","toArr","jsOptionsFunc","defaultOptions","hideLegend","setTitle","setStacked","setXtitle","setYtitle","series","singleSeriesFormat","negativeValues","xtitle","ytitle","library","sortByTime","sortByNumberSeries","sortByNumber","isMinute","isHour","isDay","isWeek","dayOfWeek","isMonth","isYear","byteSuffixes","formatValue","pre","byteScale","suffixIdx","toPrecision","zeros","toFixed","thousands","seriesOption","baseOptions","defaultOptions$2","defaultColors","hideLegend$2","setTitle$2","setBarMin$1","setBarMax$1","setStacked$2","setXtitle$2","setYtitle$2","addOpacity","notnull","setFormatOptions$1","chartType","formatOptions","dataPoint","valueLabel","jsOptions$2","createDataTable","i$1","s$1","j$1","rows2","xtype","sortedLabels","i$2","s$2","d$1","j$2","j$3","pointChart","pointBackgroundColor","pointHoverBackgroundColor","pointHitRadius","pointHoverBorderWidth","pointRadius","pointHoverRadius","minTime","maxTime","value$1","timeDiff","unitStepSize","defaultExport$2","renderLineChart","allZeros","drawChart","renderPieChart","donut","renderColumnChart","barOptions","maxLabelSize","setLabelSize","renderAreaChart","renderBarChart","renderScatterChart","renderBubbleChart","destroyed","defaultOptions$1","yAxis","credits","plotOptions","areaspline","useUTC","hideLegend$1","verticalAlign","setTitle$1","jsOptions$1","stackedValue","stacking","setFormatOptions","pointFormatter","pointFormat","defaultExport$1","curve","pie","innerSize","categories","d2","newSeries","renderTo","fontName","pointSize","textStyle","curveType","hAxis","titleTextStyle","gridlines","baselineColor","viewWindow","_hideLegend","setBarMin","setBarMax","italic","jsOptions","defaultExport","formatSeriesData","keyType","detectXTypeWithFunction","processSeries","noDatetime","rawData","copySeries","discrete","dataEmpty","detectXType","processSimple","perfectData","fn2","detachEvent","childOf","this$1$1","waitForLoaded","pieHole","visualization","DataTable","addColumn","addRows","areaOpacity","renderGeoChart","colorAxis","renderTimeline","clearChart","runCallbacks","loadOptions","packages","__config","language","mapsApiKey","LineChart","Timeline","GeoChart","columnType","pendingRequests","runningRequests","runNext","Zepto","requestComplete","ajaxCall","textStatus","errorThrown","setText","innerText","chartError","noPrefix","errorCatcher","__render","fetchDataSource","dataSource","showLoading","addAdapter","adapterType","getAdapterType","messages","fnName","adapterName","Highcharts","google","__adapterObject","callAdapter","download","__downloadAttached","link","filename","alt","__enterEvent","toImage","__leaveEvent","addDownloadButton","elementId","Chartkick","refresh","startRefresh","getDataSource","getOptions","getChartObject","__updateOptions","refreshData","sep","intervalId","setInterval","stopRefresh","clearInterval","tmpCanvas","tmpCtx","toBase64Image","updateRefresh","__processData","__chartName","PieChart","ColumnChart","BarChart","AreaChart","ScatterChart","BubbleChart","setDefaultOptions","eachChart","chartId","destroyAll","use","autoDestroy","dispatchEvent","propIsEnumerable","toObject","test1","test2","test3","shouldUseNative","canUseDOM","SafeNodeList","SafeHTMLCollection","_exenv","EE","SafeHTMLElement","HTMLCollection","NodeList","componentWillMount","getDerivedStateFromProps","componentWillReceiveProps","componentWillUpdate","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","polyfill","isReactComponent","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","newApiName","maybeSnapshot","snapshot","__suppressDeprecationWarning","AdvisorCalendar","findTabbableDescendants","descendants","tabbable","tabbableNode","hidesContents","zeroSize","exception","focusable","isTabIndexNotNaN","rootNode","isTabIndexNaN","resetState","globalElement","assertNodeList","setElement","useElement","_safeHTMLElement","validateElement","appElement","_iteratorNormalCompletion","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","documentNotReadyOrSSRTesting","_warning","_warning2","__webpack_amd_options__","portalOpenInstances","openInstances","PortalOpenInstances","openInstance","emit","deregister","subscribers","subscriber","modalStyle","AdvisorReserveUpdateCalendar","advisorReserveId","selectEvent","setSelectEvent","updateReservePath","csrfToken","isSubmitted","setIsSubmitted","submitText","ariaHideApp","onRequestClose","AgreementPopup","privacyPolicy","termsOfService","privacyPolicyId","termsOfServiceId","setLoading","setError","agreementPopupElement","setAgreementPopupElement","agreementCategories","onScroll","post","user_agreement","privacy_policy_id","terms_of_service_id","authenticity_token","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","RangeError","encodingOrOffset","allocUnsafe","byteOffset","fromArrayLike","fromArrayBuffer","encoding","isEncoding","actual","fromString","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","buf","readUInt16BE","foundIndex","found","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","equals","thisStart","thisEnd","thisCopy","targetCopy","out","toHex","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","dst","CompanyClientReserveForm","affiliationCompany","ChartJS","CompanyStressCheckAroundBarChart","stressCheckEvent","lastStressCheckEvent","deviationColor","deviation","lastStressCheckEventName","around1PointDeviation","around2PointDeviation","around3PointDeviation","satisfaction1PointDeviation","bg_image","Image","CompanyStressCheckJobChart","avgWorkControlScore","avgWorkAmountScore","imageLoaded","setImageLoaded","quadrants","dataObj","CompanyStressCheckStateBarChart","state1PointDeviation","state2PointDeviation","state3PointDeviation","state4PointDeviation","state5PointDeviation","state6PointDeviation","CompanyStressCheckWorkBarChart","work1PointDeviation","work2PointDeviation","work3PointDeviation","work4PointDeviation","work5PointDeviation","work6PointDeviation","work7PointDeviation","work8PointDeviation","work9PointDeviation","CompanyStressCheckWorkChart","avgBossSupportScore","avgCoworkerSupportScore","CompanyStressScatterChart","midX","high_top","high_height","low_top","low_height","left2","right2","group","groupName","scores","supportScore","stressScore","ConditionsLineChart","weekData","monthData","yearData","tab","setTab","handleTabChange","newTab","formatChartData","condition","ConditionsPhqPieChart","phqCounts","notAtAll","severalDays","moreThanHalfTheDays","nearlyEveryDay","ConditionsPresentismLineChart","monthPresentism","yearPresentism","reserveActionLabels","history","pushState","currentMessageNumber","gtag","transport_type","ConversationReserve","isAffiliationCompany","lastTimeCounselor","lastTimeCounselingMonth","emptyReserves","setEmptyReserves","currentMessage","setCurrentMessage","sendMessageText","setSendMessageText","responseMessage","setResponseMessage","setShowLoading","selectedEventStartAt","setSelectedEventStartAt","selectedEventJapaneseStartAt","setSelectedEventJapaneseStartAt","counselors","setCounselors","reserveCounselorName","setReserveCounselorName","reserveZoomUrl","setReserveZoomUrl","reserveStartAt","setReserveStartAt","repeatCounselor","setRepeatCounselor","errorRef","sendMessage","fetchResponseMessage","postReserveGA4Event","eventLabel","startAt","handleRepeatCounselor","empty_reserves","handleReserveCounseling","counselor","empty_reserve_start_at","user_comment","counselor_name","zoom_url","userComment","counseling_reserve_id","reply_message","postSaveMessage","nextMessage","currentNumber","placeholder","maxLength","profile_image_url","profile_text","currentMessageComponent","CounselingCouponForm","hasError","couponCode","handleCouponSubmit","CounselingUpdateCalendar","counselingReserveId","destinationCounselorId","CounselorCalendar","choiceGenderId","reserveUrl","experience","URL","searchParams","baseGetTag","funcToString","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","SetCache","arraySome","cacheHas","bitmask","customizer","equalFunc","isPartial","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","stubFalse","freeExports","freeModule","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","CounselorReserveEvents","userId","originReserveUrl","FormButton","formId","reportValidity","checkValidity","ImageCrop","crop","setCrop","LoadingSubmitButton","MatchingForm","category","inputType","answers","questions","setQuestions","currentQuestionNumber","setCurrentQuestionNumber","answer","onChangeAnswer","newQuestions","question","newQuestion","handleSubmitAnswers","matchingForm","class","currentQuestionElement","NextReserveCalendar","nextReservePath","NextReserveMailCalendar","OrganizationCounselingReserveBarChart","reports","activeUsersCount","ReserveCategoryPieChart","categoryPoints","jobPoint","privatePoint","healthPoint","StressAroundChart","around1Point","around2Point","around3Point","satisfaction1Point","lastAround1Point","lastAround2Point","lastAround3Point","lastSatisfaction1Point","StressCheckAnswerForm","stressCheckQuestions","stressCheckEventId","setIsCompleted","groupedQuestions","stress_check_question_category","subQuestion","stress_check_sub_question","SubQuestions","sortGroupedQuestions","categoryQuestions","answerNumber","categoryID","subQuestionID","work","colorName","around","satisfaction","categoryAnswers","questionNumber","scrollIntoView","block","FontSize","categoryIndex","currentCategoryID","subIndex","currentSubQuestionID","answerIndex","stress_check_answer","eventId","csrfInput","StressStateChart","state1Point","state2Point","state3Point","state4Point","state5Point","state6Point","lastState1Point","lastState2Point","lastState3Point","lastState4Point","lastState5Point","lastState6Point","StressWorkChart","work1Point","work2Point","work3Point","work4Point","work5Point","work6Point","work7Point","work8Point","work9Point","lastWork1Point","lastWork2Point","lastWork3Point","lastWork4Point","lastWork5Point","lastWork6Point","lastWork7Point","lastWork8Point","lastWork9Point","StripeReserveForm","stripePublicKey","appearance","StripeUpdateForm","topLevel","eval","_React$PureComponent","Pane","_this$props","styleProps","eleRef","flex","defaultProps","RESIZER_DEFAULT_CLASSNAME","_React$Component","Resizer","_onClick","_onDoubleClick","onDoubleClick","_onMouseDown","onMouseDown","_onTouchEnd","onTouchEnd","_onTouchStart","onTouchStart","resizerClassName","unFocus","getSelection","removeAllRanges","getDefaultSize","defaultSize","draggedSize","SplitPane","onMouseMove","onTouchMove","onMouseUp","initialSize","resized","pane1Size","pane2Size","instanceProps","getSizeUpdate","eventWithTouches","allowResize","onDragStarted","_this$props2","_this$state","isPrimaryFirst","pane1","pane2","ref2","node2","positionDelta","sizeDelta","newMaxSize","splitPane","newPosition","_this$props3","onDragFinished","_this$state2","_this$props4","onResizerClick","onResizerDoubleClick","paneClassName","pane1ClassName","pane2ClassName","paneStyle","pane1StyleProps","pane1Style","pane2StyleProps","pane2Style","resizerStyle","_this$state3","disabledClass","resizerClassNamesIncludingDefault","notNullChildren","Children","removeNullChildren","MozUserSelect","WebkitUserSelect","msUserSelect","userSelect","flexDirection","pane1Classes","pane2Classes","isPanel1Primary","SlCalender","LuClipboardEdit","FaCheckCircle","FaPencilAlt","FaPlusCircle","FaUser","FaUserDoctor","IoCloudUploadSharp","IoMail","HiOutlineSave","TbChartInfographic","TbExternalLink","TbReportAnalytics","PiClipboardFill","MdOutlineSentimentVerySatisfied","IoMdAlert","RiMentalHealthFill","linkifyText","resultText","dangerouslySetInnerHTML","__html","CounselorKarute","counselingReserveJson","pastCounselingReservesJson","userJson","counselingReserve","pastCounselingReserves","user","karute_text","editorValue","setEditorValue","toggles","setToggles","is_karute_completed","isKaruteCompleted","setIsKaruteCompleted","documents","files","setFiles","fileFields","setFileFields","job_point","setJobPoint","private_point","setPrivatePoint","health_point","setHealthPoint","satisfaction_level","satisfactionLevel","setSatisfactionLevel","importance_level","importanceLevel","setImportanceLevel","remind_days","remindDays","setRemindDays","remindDate","setRemindDate","saveRef","saveErrorRef","fileGetErrorRef","completeRef","fileUploadCompleteRef","fileDeleteCompleteRef","copyRef","loadingRef","categoryErrorRef","newToggles","reserve","counselorName","isOn","hideLoading","initFileFields","handleCopy","clipboard","writeText","isCategoryTotalTen","past_karute_text","patch","confirm","manual_edit_flg","onHandleKaruteComplete","documentId","newFileFields","handleAddFile","accept","newId","furigana","gender_name","age","matter_text","company_name","company_prefecture_name","company_memo","areCropsEqual","centerCrop","clamp","containCrop","convertToPercentCrop","convertToPixelCrop","defaultCrop","makeAspectCrop","nudgeCrop","capture","_e$PureComponent","docMoveBound","mouseDownOnCrop","dragStarted","evData","startClientX","startClientY","startCropX","startCropY","isResize","componentRef","mediaRef","initChangeCalled","cropIsActive","newCropIsBeingDrawn","onCropPointerDown","getBox","bindDocMove","preventScroll","ord","_t","_l","onComponentPointerDown","keepSelection","onDocPointerMove","onDragStart","resizeCrop","dragCrop","onComponentKeyDown","makePixelCrop","nudgeStepLarge","nudgeStepMedium","nudgeStep","_t2","_n2","onHandlerKeyDown","_this$props5","_this$props5$aspect","aspect","_this$props5$minWidth","_this$props5$minHeigh","_e4","onDocPointerDone","_this$props6","onDragEnd","unbindDocMove","onDragFocus","_e$getBoundingClientR","_this$props7","_this$getBox","_e5","_o","resizeObserver","_this$props8","_this$props8$aspect","_this$props8$minWidth","_this$props8$minHeigh","getPointRegion","xyOrds","xOrds","yOrds","_this$props9","_this$props9$ariaLabe","ariaLabels","renderSelectionAddon","ruleOfThirds","getCropStyle","cropArea","nwDragHandle","nDragHandle","neDragHandle","eDragHandle","seDragHandle","sDragHandle","swDragHandle","wDragHandle","_this$props10","circularCrop","createCropSelection","sparkMd5","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","md51_array","rhex","toUtf8","utf8Str2ArrayBuffer","returnUInt8Array","buff","arrayBuffer2Utf8Str","concatenateArrayBuffers","hexToBinaryString","SparkMD5","targetArray","sourceArray","begin","appendBinary","_buff","_hash","_finish","getState","hashBinary","classCallCheck","createClass","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkCount","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","readAsArrayBuffer","findElement","eventInit","createEvent","initEvent","toArray$1","BlobRecord","checksum","content_type","byte_size","getMetaValue","requestDidLoad","requestDidError","blob","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","DirectUpload","DirectUploadController","directUpload","insertAdjacentElement","dispatchError","signed_id","alert","uploadRequestDidProgress","DirectUploadsController","createDirectUploadControllers","startNextController","processingAttribute","submitButtonsByForm","started","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","hasAttribute","enable","submitForm","ActiveStorage","componentRequireContext","require","webpackContext","req","webpackContextResolve","StrictMode","Profiler","q","Suspense","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","refs","updater","forceUpdate","isPureReactComponent","__self","__source","$$typeof","_owner","_status","_result","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","IsSomeRendererActing","only","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","createFactory","forwardRef","isValidElement","lazy","_payload","memo","useCallback","useDebugValue","useImperativeHandle","useReducer","aa","ba","da","ea","ha","ia","ja","ka","na","acceptsBooleans","ma","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","oa","pa","qa","la","setAttributeNS","xlinkHref","ra","sa","ta","ua","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","Qa","_render","Ra","Sa","Ta","Va","_valueTracker","setValue","stopTracking","Ua","Wa","Xa","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","controlled","$a","ab","bb","eb","db","defaultSelected","gb","hb","ib","jb","kb","lb","mb","nb","ob","MSApp","execUnsafeLocalFunction","pb","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","rb","sb","tb","ub","menuitem","br","embed","hr","img","keygen","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","flags","$b","memoizedState","dehydrated","ac","cc","bc","dc","ec","fc","hc","ic","jc","kc","lc","mc","nc","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","targetContainers","sc","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","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","md","nd","od","pd","qd","rd","_reactName","_targetInst","cancelBubble","persist","isPersistent","wd","xd","yd","sd","isTrusted","ud","vd","Ad","getModifierState","zd","fromElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","repeat","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","isPrimary","Vd","Xd","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","email","tel","me","ne","oe","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","Be","Ce","De","Ee","Fe","He","Ie","Je","Ke","Le","Me","Ne","HTMLIFrameElement","contentWindow","Oe","contentEditable","Pe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","anchorOffset","focusNode","focusOffset","Ve","We","Ye","Ze","Yb","$e","af","bf","cf","df","Nb","ef","ff","gf","hf","je","ke","jf","kf","lf","mf","autoFocus","nf","of","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","childContextTypes","Gf","Hf","If","getChildContext","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","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","pending","yg","zg","eventTime","lane","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","Mg","Ng","Og","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","Vg","Wg","Xg","Yg","Zg","ah","bh","dh","eh","fh","gh","ih","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","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","di","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","ii","ji","ki","li","mi","baseLanes","ni","oi","pi","qi","getDerivedStateFromError","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","unstable_avoidThisFallback","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onclick","createElementNS","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","_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","ak","bk","dk","rangeCount","focusedElem","ek","createRange","addRange","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","sk","uk","hk","unstable_observedBits","unmount","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","supportsFiber","inject","findDOMNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","_f","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","bodyOpenClassName","portalClassName","_react","_react2","_interopRequireDefault","_reactDom2","_propTypes2","_ModalPortal2","ariaAppHider","newObj","_interopRequireWildcard","_safeHTMLElement2","_reactLifecyclesCompat","isReact16","createHTMLElement","getCreatePortal","getParentElement","parentSelector","Modal","_Component","_temp","removePortal","portalRef","portal","renderPortal","defaultStyles","prevParent","nextParent","_props","closesAt","closeTimeoutMS","beforeClose","closeWithTimeout","htmlOpenClassName","afterOpen","overlayClassName","onAfterOpen","shouldFocusAfterRender","shouldCloseOnOverlayClick","shouldReturnFocusAfterClose","aria","contentLabel","shouldCloseOnEsc","overlayRef","contentRef","overlayElement","contentElement","contentEl","ReactPropTypesSecret","focusManager","_scopeTab2","_portalOpenInstances2","CLASS_NAMES","ariaHiddenInstances","ModalPortal","setOverlayRef","setContentRef","afterClose","returnFocus","teardownScopedFocus","popWithoutFocus","onAfterClose","beforeOpen","closeTimer","setupScopedFocus","markForFocusLater","openAnimationFrame","overlayEl","closeWithoutTimeout","focusContent","contentHasFocus","handleKeyDown","requestClose","handleOverlayOnClick","shouldClose","ownerHandlesClose","handleContentOnMouseUp","handleOverlayOnMouseDown","handleContentOnClick","handleContentOnMouseDown","shouldBeClosed","buildClassName","additional","attributesFromObject","moveFromContentToOverlay","_props2","contentStyles","overlayStyles","overlayProps","contentProps","modal","testId","focusLaterElements","handleBlur","handleFocus","toFocus","modalElement","_tabbable","_tabbable2","needToFocus","getActiveElement","checkSafari","warning","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","canUseViewport","screen","htmlElement","cls","htmlClassList","_cls","docBodyClassList","at","classString","classListRef","poll","incrementReference","decrementReference","_arr2","_portalOpenInstances","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","isGeneratorFunction","genFun","ctor","awrap","skipTempReset","rootRecord","rval","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","regeneratorRuntime","accidentalStrictMode","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","len2","encodeChunk","lookup","output","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","failures","styleKey","supportingArrays","bigint","__assign","__spreadArrays","il","jl","__importDefault","mod","react_1","react_dom_1","isEqual_1","quill_1","ReactQuill","dirtyProps","cleanProps","generation","onEditorChange","rangeOrDelta","oldRangeOrDelta","onEditorChangeText","editor","unprivilegedEditor","onEditorChangeSelection","isControlled","validateProps","lastDeltaChangeSet","prevContents","getEditorContents","nextContents","isEqualValue","setEditorContents","readOnly","setEditorReadOnly","shouldComponentRegenerate","instantiateEditor","destroyEditor","getContents","regenerationSnapshot","selection_1","editor_1","setContents","postpone","setEditorSelection","hookEditor","createEditor","getEditingArea","getEditorConfig","unhookEditor","scrollingContainer","getEditor","setEditorTabIndex","makeUnprivilegedEditor","getEditorSelection","isDelta","ops","nextValue","convert","length_1","getLength","setSelection","getHTML","getBounds","editingArea","renderEditingArea","preserveWhitespace","onKeyPress","onKeyUp","nextSelection","hasGainedFocus","hasLostFocus","onChangeSelection","Quill","baseIsEqual","baseIsEqualDeep","isObjectLike","Stack","equalArrays","equalByTag","equalObjects","getTag","argsTag","arrayTag","objectTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","stackClear","stackDelete","stackGet","stackHas","stackSet","assocIndexOf","LARGE_ARRAY_SIZE","isMasked","toSource","reIsHostCtor","funcProto","objectProto","reIsNative","nativeObjectToString","isOwn","unmasked","coreJsData","maskSrcKey","IE_PROTO","Hash","hashClear","hashDelete","hashGet","hashHas","hashSet","getMapData","setCacheAdd","setCacheHas","predicate","mapToArray","setToArray","symbolProto","symbolValueOf","getAllKeys","objLength","objStacked","skipCtor","objValue","objCtor","othCtor","baseGetAllKeys","getSymbols","arrayPush","keysFunc","symbolsFunc","arrayFilter","stubArray","nativeGetSymbols","resIndex","arrayLikeKeys","baseKeys","baseTimes","isArguments","isIndex","inherited","isArr","isArg","isBuff","isType","skipIndexes","iteratee","baseIsArguments","reIsUint","isLength","typedArrayTags","freeProcess","binding","isPrototype","nativeKeys","overArg","DataView","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ctorString","container_1","format_1","leaf_1","scroll_1","inline_1","block_1","embed_1","text_1","attributor_1","class_1","style_1","store_1","Parchment","Scope","Container","Format","Leaf","Embed","Block","Inline","Text","Attributor","Attribute","Class","Style","Store","extendStatics","ParchmentError","tags","ANY","Node","TEXT_NODE","LEVEL","BLOCK","INLINE","TYPE","DATA_KEY","BlotClass","bubble","blot","Definitions","Definition","blotName","attrName","keyName","tagNames","equal","op","NULL_CHARACTER","Delta","newOp","retain","lastOp","chop","partition","failed","changeLength","hasNext","nextOp","compose","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","thisOp","otherOp","strings","diffResult","opLength","INSERT","DELETE","EQUAL","eachLine","newline","transformPosition","nextType","gOPD","hasOwnConstructor","hasIsPrototypeOf","newValue","getProperty","BlockEmbed","bubbleFormats","_extend2","_quillDelta2","_parchment2","_break2","_inline2","_text2","_Parchment$Embed","attribute","BLOCK_ATTRIBUTE","BLOCK_BLOT","_Parchment$Block","leaf","statics","defaultChild","allowedChildren","overload","expandConfig","sliceIterator","_editor2","_emitter4","_module2","_selection","_selection2","_logger2","_theme2","__quill","addContainer","whitelist","keyboard","addModule","EDITOR_CHANGE","TEXT_CHANGE","isBlank","SCROLL_UPDATE","mutations","lastRange","modify","imports","overwrite","refNode","setRange","_overload","_overload2","deleteText","API","formatLine","formatText","SILENT","_overload3","_overload4","_overload5","_overload6","containerBounds","_overload7","_overload8","getFormat","MAX_VALUE","_overload9","_overload10","insertEmbed","_overload11","_overload12","insertText","dangerouslyPasteHTML","_overload13","_overload14","removeFormat","applied","applyDelta","_overload15","_overload16","Range","USER","DEFAULTS","themeConfig","moduleConfig","moduleClass","toolbar","modifier","strict","oldDelta","shiftRange","_emitter","_emitter2","_map3","_map4","_Parchment$Inline","BLOT","isolate","moveChildren","selfIndex","otherIndex","_parchment","TextBlot","_Parchment$Text","_eventemitter2","_node$__quill$emitter","handleDOM","_EventEmitter","SCROLL_BEFORE_UPDATE","SCROLL_OPTIMIZE","SELECTION_CHANGE","Module","quill","levels","_console","logger","newLevel","pSlice","objectKeys","deepEqual","expected","isUndefinedOrNull","objEquiv","attributeBit","ATTRIBUTE","canAdd","Code","_block2","_Inline","CodeBlock","_Block","frag","_descendant","descendant","deleteAt","nextNewline","newlineIndex","prevNewline","isolateLength","formatAt","_descendant3","_descendant4","optimize","TAB","_op2","_code2","_cursor2","_block","_clone2","_deepEqual2","ASCII","Editor","getDelta","consumeNextNewline","scrollLength","batchStart","bullet","normalizeDelta","_scroll$line","_scroll$line2","_line$descendant","batchEnd","lengthRemaining","lineLength","codeIndex","codeLength","leaves","formatsArr","blots","combineFormats","_scroll$line3","_scroll$line4","suffixLength","cursorIndex","textBlot","oldValue","CONTENTS","oldText","newText","diffDelta","combined","Selection","composing","mouseDown","savedRange","handleComposition","handleDragging","listenDOM","_native","getNativeRange","textNode","setNativeRange","_context$range","startNode","startOffset","endNode","endOffset","nativeRange","collapsed","_scroll$leaf","_scroll$leaf2","_leaf$position","_leaf$position2","_scroll$leaf3","_scroll$leaf4","_leaf$position3","_leaf$position4","side","getRangeAt","normalizeNative","normalizedToRange","_position","startContainer","endContainer","_scroll$leaf5","_scroll$leaf6","_leaf$position5","_leaf$position6","scrollBounds","_native2","rangeToNative","oldRange","_getRange","_getRange2","Break","linked_list_1","shadow_1","ContainerBlot","makeBlot","forEachAt","criteria","lengthLeft","childBlot","refBlot","insertInto","targetParent","inclusive","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_FOLLOWING","FormatBlot","replacement","wrapper","LeafBlot","INLINE_BLOT","lib","keepNull","Iterator","retOp","_instanceof","nativeMap","nativeSet","nativePromise","includeNonEnumerable","allParents","allChildren","useBuffer","_clone","__isArray","__isRegExp","__getRegExpFlags","__isDate","keyChild","valueChild","entryChild","allPropertyNames","__objToStr","ignoreCase","multiline","clonePrototype","_container2","isLine","_Parchment$Scroll","batch","_line","_line2","_line3","_newlineIndex","getLines","takeRecords","SHORTKEY","_quill2","Keyboard","_Module","bindings","addBinding","ENTER","handleEnter","BACKSPACE","handleBackspace","handleDelete","handleDeleteRange","_quill$getLine","getLine","_quill$getLine2","_quill$getLeaf","getLeaf","_quill$getLeaf2","leafStart","offsetStart","leafEnd","offsetEnd","prefixText","suffixText","curContext","makeEmbedArrowHandler","where","LEFT","RIGHT","_quill$getLeaf3","_quill$getLine11","_quill$getLine13","curFormats","prevFormats","nextLength","_quill$getLine15","_quill$getLine17","nextFormats","firstFormats","lastFormats","lineFormats","makeCodeBlockHandler","indent","_quill$scroll$descend","_quill$scroll$descend2","scrollIndex","getIndex","makeFormatHandler","shortKey","ESCAPE","UP","DOWN","cutoff","updateContents","_quill$getLine3","_quill$getLine4","_quill$getLine5","_quill$getLine6","_quill$getLine7","_quill$getLine8","_quill$getLine9","_quill$getLine10","Cursor","restoreText","_Parchment$Container","ColorStyle","ColorClass","ColorAttributor","_Parchment$Attributor","sanitize","_inline","Link","_sanitize","PROTOCOL_WHITELIST","SANITIZED_URL","anchor","_keyboard2","_dropdown2","optionsCounter","toggleAriaAttribute","Picker","buildPicker","togglePicker","selectItem","buildItem","buildLabel","buildOptions","isActive","_embed2","_scroll2","_clipboard2","_history2","ShadowBlot","parentBlot","refDomNode","AttributorStore","ClassAttributor","camelize","part","StyleAttributor","themes","GUARD_TEXT","contentNode","leftGuard","rightGuard","prevLength","AlignStyle","AlignClass","AlignAttribute","BackgroundStyle","BackgroundClass","_color","DirectionStyle","DirectionClass","DirectionAttribute","FontClass","FontStyle","FontStyleAttributor","SizeStyle","SizeClass","getLastChangeIndex","History","lastRecorded","ignoreChange","userOnly","undo","redo","changeDelta","undoDelta","maxStack","deleteLength","changeIndex","endsWithNewlineChange","BaseTooltip","_colorPicker2","_iconPicker2","_picker2","_tooltip2","ALIGNS","COLORS","FONTS","HEADERS","SIZES","BaseTheme","_Theme","textbox","pickers","picker","extendToolbar","icons","selects","fillSelect","formula","edit","fileInput","reader","readAsDataURL","video","_Tooltip","boundsContainer","preview","linkRange","restoreFocus","LinkedList","curNode","curIndex","curLength","OBSERVER_CONFIG","characterData","characterDataOldValue","ScrollBlot","records","markParent","grandChild","InlineBlot","BlockBlot","EmbedBlot","splitText","_toggle","DOMTokenList","subjectString","execCommand","DIFF_DELETE","diff_main","text1","text2","cursor_pos","commonlength","diff_commonPrefix","commonprefix","diff_commonSuffix","commonsuffix","diffs","longtext","shorttext","hm","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","best_common","prefixLength","text1_a","text1_b","text2_a","text2_b","hm1","hm2","mid_common","diff_halfMatch_","diffs_a","diffs_b","text1_length","text2_length","max_d","v_offset","v_length","k1start","k1end","k2start","k2end","k1","k1_offset","k2_offset","diff_bisectSplit_","k2","diff_bisect_","diff_compute_","diff_cleanupMerge","norm","current_pos","next_pos","split_pos","d_left","d_right","cursor_normalize_diff","ndiffs","cursor_pointer","d_next","merge_tuples","fix_cursor","compact","starts_with_pair_end","ends_with_pair_start","fixed_diffs","fix_emoji","text1a","text2a","text1b","text2b","diffsb","pointermin","pointermax","pointermid","pointerstart","pointerend","count_delete","count_insert","text_delete","text_insert","changes","left_d","right_d","supportsArgumentsClass","supported","unsupported","EventEmitter","_eventsCount","eventNames","exists","a2","a3","a4","a5","removeAllListeners","setMaxListeners","prefixed","matchText","matchSpacing","matchNewline","matchBlot","matchAttributor","_extend3","_align","_background","_direction","_font","DOM_KEY","CLIPBOARD_CONFIG","deltaEndsWith","ELEMENT_NODE","computeStyle","bold","applyFormat","textIndent","matchAlias","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","Clipboard","onPaste","matchVisual","addMatcher","_prepareMatching","prepareMatching","_prepareMatching2","textMatchers","traverse","paste","_pair","endText","childrenDelta","nextElementSibling","nodeHeight","whiteSpace","replacer","collapse","Bold","addControls","controls","addHandler","_this$quill$selection","_quill$selection$getR","prompt","addButton","control","addSelect","clean","_picker","ColorPicker","_Picker","colorLabel","IconPicker","defaultItem","TEMPLATE","reference","rootBounds","verticalShift","_base","_base2","_link2","_icons2","TOOLBAR_CONFIG","SnowTheme","_BaseTheme","buildButtons","buildPickers","SnowTooltip","_BaseTooltip","_core2","_indent","_blockquote2","_header2","_list","_list2","_bold2","_italic2","_script2","_strike2","_underline2","_image2","_video2","_code","_formula2","_syntax2","_toolbar2","_bubble2","_snow2","IndentClass","ListItem","IdentAttributor","Blockquote","Header","List","_Container","listEventHandler","_bold","Italic","_Bold","Script","Strike","Underline","_link","ATTRIBUTES","Video","_BlockEmbed","FormulaBlot","_Embed","katex","throwOnError","errorColor","Formula","CodeToken","SyntaxCodeBlock","_CodeBlock","_highlight","cachedText","Syntax","highlight","hljs","highlightAuto","BubbleTooltip","BubbleTheme","lastLine","_bounds","arrow","ReactDOM","ReactDOMServer","_detectEvents","constructorFromGlobal","constructorFromRequireContextWithGlobalFallback","ReactRailsUJS","CLASS_NAME_ATTR","PROPS_ATTR","RENDER_ATTR","CACHE_ID_ATTR","TURBOLINKS_PERMANENT_ATTR","components","findDOMNodes","searchSelector","classNameAttr","getConstructor","requireContext","serverRender","renderFunction","componentClass","mountComponents","ujs","propsJson","cacheId","turbolinksPermanent","unmountComponents","detectEvents","Uint16Array","threadID","identifierPrefix","listing","textarea","suppressContentEditableWarning","suppressHydrationWarning","domNamespace","childIndex","exhausted","currentSelectValue","previousWasTextNode","makeStaticMarkup","suspenseDepth","contextIndex","contextStack","contextValueStack","clearProviders","pushProvider","popProvider","fallbackFrame","renderDOM","renderToNodeStream","renderToStaticMarkup","renderToStaticNodeStream","renderToString","pjaxEvents","turbolinksEvents","turbolinksClassicDeprecatedEvents","turbolinksClassicEvents","Turbolinks","EVENTS","nativeEvents","pjax","handleMount","handleUnmount","pagesCached","CHANGE","BEFORE_UNLOAD","fromGlobal","fromRequireContext","reqctx","fromCtx","firstErr","secondErr","_handled","_deferreds","setImmediate","race","_setImmediateFn","_setUnhandledRejectionFn","customElements","registerElement","uid_","nodes_","removeTransientObservers","callback_","records_","transientObservedNodes","JsMutationObserver","ShadowDOMPolyfill","wrapIfNeeded","attributeOldValue","attributeFilter","SyntaxError","removeListeners","addListeners","addListeners_","removeListeners_","addTransientObserver","relatedNode","attrChange","MutationEvent","ADDITION","_isPolyfilled","webkitRequestAnimationFrame","mozRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","CustomEvent","initCustomEvent","WebComponents","CustomElements","initializeModules","hasNative","isIE","useNative","HTMLImports","olderShadowRoot","IMPORT_LINK_TYPE","forDocumentTree","forSubtree","upgrade","__upgraded__","__attached","attachedCallback","detachedCallback","dom","_URL","localName","DOCUMENT_FRAGMENT_NODE","groupEnd","__observer","baseURI","hasPolyfillMutations","hasThrottledAttached","createShadowRoot","watchShadow","__watched","upgradeDocumentTree","upgradeDocument","upgradeSubtree","upgradeAll","createdCallback","HTMLTemplateElement","decorate","getRegisteredDefinition","upgradeWithDefinition","implementPrototype","_polyfilled","attributeChangedCallback","__name","lifecycle","ancestry","reservedTagList","readyTime","unwrapIfNeeded","__importsParsingHook","eager","Trix","ZERO_WIDTH_SPACE","NON_BREAKING_SPACE","OBJECT_REPLACEMENT_CHARACTER","browser","composesExistingText","forcesObjectResizing","supportsInputEvents","InputEvent","BasicObject","proxyMethod","toMethod","toProperty","optional","__super__","fromJSONString","fromJSON","hasSameConstructorAs","isEqualTo","contentsForInspection","toJSONString","toUTF16String","UTF16String","getCacheKey","normalizeSpaces","normalizeNewlines","breakableWhitespacePattern","squishBreakableWhitespace","summarizeStringChange","utf16String","codepoints","fromCodepoints","copyObject","objectsAreEqual","arraysAreEqual","arrayStartsWith","spliceArray","summarizeArrayChange","getAllAttributeNames","getTextAttributeNames","getBlockAttributeNames","getBlockConfig","blockAttributes","getTextConfig","textAttributes","getListAttributeNames","listAttribute","onElement","matchingSelector","withCallback","inPhase","times","findClosestElementFromNode","handleEventOnce","elementMatchesSelector","untilNode","findInnerElement","innerElementIsActive","elementContainsNode","findNodeFromContainerAndOffset","findElementFromContainerAndOffset","findChildIndexOfNode","removeNode","walkTree","onlyNodesOfType","usingFilter","expandEntityReferences","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","SHOW_ALL","createTreeWalker","makeElement","contenteditable","getBlockTagNames","blockTagNames","nodeIsBlockContainer","nodeIsBlockStartComment","nodeProbablyIsBlockContainer","nodeIsBlockStart","nodeIsCommentNode","COMMENT_NODE","nodeIsCursorTarget","nodeIsTextNode","trixCursorTarget","nodeIsAttachmentElement","AttachmentView","attachmentSelector","nodeIsEmptyTextNode","normalizeRange","rangeIsCollapsed","rangesAreEqual","defaultCSS","_t3","connect","initialized","connectedCallback","disconnectedCallback","getDOMSelection","getDOMRange","setDOMRange","selectionChangeObserver","_t4","dataTransferIsPlainText","dataTransferIsWritable","setData","keyEventIsKeyboardCommand","RTL_PATTERN","getDirection","dirName","fromCommonAttributesOfObjects","getKeys","getKeysCommonToHash","isEmpty","ObjectGroup","objects","asTree","groupObjects","canBeGrouped","canBeGroupedWith","getObjects","getDepth","_t5","ObjectMap","ElementStore","trixStoreKey","_t6","Operation","isPerforming","performing","hasPerformed","performed","hasSucceeded","succeeded","hasFailed","getPromise","perform","release","ucs2String","ucs2Length","fromUCS2String","offsetToUCS2Offset","offsetFromUCS2Offset","codePointAt","fromCodePoint","attachFiles","bullets","captionPlaceholder","heading1","outdent","quote","strike","unlink","urlPlaceholder","GB","KB","MB","PB","TB","attachment","attachmentCaption","attachmentCaptionEditor","attachmentMetadata","attachmentMetadataContainer","attachmentName","attachmentProgress","attachmentSize","attachmentToolbar","attachmentGallery","nestable","terminal","breakOnReturn","plaintext","bulletList","numberList","exclusive","fileSize","inheritable","groupTagName","frozen","serializers","Document","fromHTML","toSerializableDocument","DocumentView","deserializers","serializeToContentType","deserializeFromContentType","getDefaultHTML","undoInterval","attachments","presentation","keyNames","level2Enabled","getLevel","pickFiles","fileInputId","_t7","ObjectView","childViews","rootView","getNodes","createNodes","parentView","invalidateViewForObject","findViewForObject","findOrCreateCachedChildView","getCachedViewForObject","recordChildView","createChildView","cacheViewForObject","viewClass","ObjectGroupView","getAllChildViews","findElementForObject","getViewCache","isViewCachingEnabled","viewCache","shouldCacheViews","enableViewCaching","disableViewCaching","garbageCollectCachedViews","_t8","objectGroup","getChildViews","createContainerElement","_t9","Controller","didMutate","_h","findSignificantMutations","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","_t10","FileVerificationOperation","InputController","mutationObserver","handlerFor","editorWillSyncDocumentView","editorDidSyncDocumentView","requestRender","inputControllerDidRequestRender","requestReparse","inputControllerDidRequestReparse","handleInput","inputControllerWillAttachFiles","responder","insertFiles","inputControllerWillHandleInput","inputControllerDidHandleInput","createLinkHTML","outerHTML","Level0InputController","resetInputSummary","setInputSummary","inputSummary","isComposing","inputControllerDidAllowUnhandledInput","mutationIsExpected","preferDocument","didDelete","getSelectedRange","positionIsBlockBreak","compositionInput","getEndData","keydown","didInput","inputControllerDidReceiveKeyboardCommand","keypress","inputControllerWillPerformTyping","insertString","selectionIsExpanded","textInput","setSelectedRange","dragenter","dragstart","serializeSelectionToDataTransfer","draggedRange","inputControllerDidStartDrag","dragover","canAcceptDataTransfer","draggingPoint","inputControllerDidReceiveDragOverPoint","dragend","inputControllerDidCancelDrag","setLocationRangeFromPointRange","inputControllerWillMoveText","moveTextFromRange","insertDocument","cut","inputControllerWillCutText","deleteInDirection","testClipboardData","getPastedHTMLUsingHiddenElement","inputControllerWillPaste","insertHTML","inputControllerDidPaste","getAsFile","insertFile","compositionstart","getCompositionInput","compositionupdate","compositionend","beforeinput","backspace","insertLineBreak","canIncreaseNestingLevel","increaseNestingLevel","selectionIsInCursorTarget","moveCursorInDirection","updatePosition","canDecreaseNestingLevel","decreaseNestingLevel","expandSelectionInDirection","isEnded","getSelectedDocument","Files","inputController","isSignificant","insertPlaceholder","selectPlaceholder","forgetPlaceholder","canApplyToDocument","Level2InputController","scheduledRender","reparse","scheduleRender","afterRender","withEvent","inputTypes","selectionContainsAttachments","ArrowLeft","shouldManageMovingCursorInDirection","ArrowRight","Backspace","shouldManageDeletingInDirection","Tab","deleteByComposition","recordUndoEntry","deleteByCut","deleteByDrag","withTargetDOMRange","deleteByDragRange","deleteCompositionText","deleteContent","deleteContentBackward","deleteContentForward","deleteEntireSoftLine","deleteHardLineBackward","deleteHardLineForward","deleteSoftLineBackward","deleteSoftLineForward","deleteWordBackward","deleteWordForward","formatBackColor","activateAttributeIfSupported","formatBold","toggleAttributeIfSupported","formatFontColor","formatFontName","formatIndent","formatItalic","formatJustifyCenter","formatJustifyFull","formatJustifyLeft","formatJustifyRight","formatOutdent","formatRemove","getCurrentAttributes","removeCurrentAttribute","formatSetBlockTextDirection","formatSetInlineTextDirection","formatStrikeThrough","formatSubscript","formatSuperscript","formatUnderline","historyRedo","inputControllerWillPerformRedo","historyUndo","inputControllerWillPerformUndo","insertCompositionText","insertFromComposition","insertFromDrop","insertFromPaste","insertFromYank","insertLink","insertOrderedList","insertParagraph","insertReplacementText","insertTranspose","insertUnorderedList","inputControllerWillPerformFormatting","toggleCurrentAttribute","setCurrentAttribute","getTargetDOMRange","minLength","getTargetRanges","AttachmentEditorController","attachmentPiece","didBlurCaption","didChangeCaption","didInputCaption","didKeyDownCaption","didClickActionButton","didClickToolbar","install","undos","makeElementMutable","addToolbar","isPreviewable","installCaptionEditor","uninstall","savePendingCaption","didUninstallAttachmentEditor","pendingCaption","attachmentEditorDidRequestUpdatingAttributesForAttachment","attachmentEditorDidRequestRemovingAttributeForAttachment","trixMutable","trixAction","getFilename","getFormattedFilesize","getCaption","editCaption","attachmentEditorDidRequestRemovalOfAttachment","attachmentEditorDidRequestDeselectingAttachment","uploadProgressDelegate","piece","createContentNodes","getClassName","getHref","getContent","createCaptionElement","isPending","progressElement","getUploadProgress","getCaptionConfig","getType","getExtension","trixAttachment","trixContentType","trixId","trixAttributes","trixSerialize","findProgressElement","attachmentDidChangeUploadProgress","PreviewableAttachmentView","previewDelegate","updateAttributesForImage","getURL","getPreviewURL","attachmentDidChangeAttributes","PieceView","getAttributes","textConfig","createAttachmentNodes","createStringNodes","preserveSpaces","styleProperty","followsWhitespace","_t11","TextView","getPieces","BlockView","getLastAttribute","shouldAddExtraNewlineElement","isRTL","getBlockBreakPosition","elementStore","shadowElement","getBlocks","isSynced","createDocumentFragmentForSync","didSync","CompositionController","composition","didClickAttachment","didBlur","didFocus","documentView","focused","compositionControllerDidFocus","blurPromise","compositionControllerDidBlur","findAttachmentForElement","compositionControllerDidSelectAttachment","getSerializableElement","isEditingAttachment","revision","canSyncDocumentView","compositionControllerWillSyncDocumentView","compositionControllerDidSyncDocumentView","compositionControllerDidRender","rerenderViewForObject","refreshViewCache","attachmentEditor","installAttachmentEditorForAttachment","uninstallAttachmentEditor","getAttachmentPieceForAttachment","compositionControllerWillUpdateAttachment","updateAttributesForAttachment","removeAttributeForAttachment","compositionControllerDidRequestRemovalOfAttachment","compositionControllerDidRequestDeselectingAttachment","getAttachmentById","ToolbarController","didKeyDownDialogInput","didClickDialogButton","didClickAttributeButton","actions","resetDialogInputs","toolbarDidClickButton","getDialog","toggleDialog","toolbarDidInvokeAction","toolbarDidToggleAttribute","refreshAttributeButtons","hideDialog","updateActions","refreshActionButtons","eachActionButton","updateAttributes","eachAttributeButton","dialogIsVisible","applyKeyboardCommand","showDialog","toolbarWillShowDialog","toolbarDidShowDialog","willValidate","toolbarDidUpdateAttribute","toolbarDidRemoveAttribute","toolbarDidHideDialog","_t12","ImagePreloadOperation","naturalWidth","naturalHeight","_t13","Attachment","releaseFile","didChangeAttributes","previewablePattern","attachmentForFile","attributesForFile","setFile","filesize","setAttributes","preloadURL","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","setUploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","preload","fileObjectURL","createObjectURL","revokeObjectURL","_t14","Piece","registerType","copyWithAttributes","copyWithAdditionalAttributes","copyWithoutAttribute","getAttributesHash","getCommonAttributes","pieceList","getPieceAtIndex","eachPiece","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","canBeConsolidatedWith","_t15","AttachmentPiece","ensureAttachmentExclusivelyHasAttribute","removeProhibitedAttributes","permittedAttributes","toConsole","StringPiece","consolidateWith","splitAtOffset","SplittableList","eachObject","insertObjectAtIndex","insertSplittableListAtIndex","insertSplittableListAtPosition","splitObjectAtPosition","editObjectAtIndex","replaceObjectAtIndex","removeObjectAtIndex","getObjectAtIndex","getSplittableListInRange","splitObjectsAtRange","selectSplittableList","removeObjectsInRange","transformObjectsInRange","getObjectAtPosition","findIndexAndOffsetAtPosition","consolidate","consolidateFromIndexToIndex","findPositionAtIndexAndOffset","getEndPosition","endPosition","_t16","textForAttachmentWithAttributes","textForStringWithAttributes","copyWithPieceList","copyUsingObjectMap","appendText","insertTextAtPosition","removeTextAtRange","replaceTextAtRange","moveTextFromRangeToPosition","getTextAtRange","addAttributeAtRange","addAttributesAtRange","removeAttributeAtRange","setAttributesAtRange","getAttributesAtPosition","getCommonAttributesAtRange","getExpandedRangeForAttributeAtOffset","getStringAtRange","getStringAtPosition","startsWithString","endsWithString","getAttachmentPieces","getAttachments","getAttachmentAndPositionById","getRangeOfAttachment","getPieceAtPosition","toSerializableText","copyWithText","copyWithoutText","copyWithoutAttributes","addAttribute","removeLastAttribute","getAttributeLevel","getAttributeAtLevel","hasAttributes","getLastNestableAttribute","getNestableAttributes","getNestingLevel","getListItemAttributes","isListItem","isTerminalBlock","breaksOnReturn","findLineBreakInDirectionFromPosition","getTextWithoutBlockBreak","blockBreak","HTMLSanitizer","allowedAttributes","forbiddenProtocols","forbiddenElements","sanitizeElements","normalizeListElementNesting","nextNode","currentNode","elementIsRemovable","sanitizeElement","previousElementSibling","elementIsForbidden","elementIsntSerializable","HTMLParser","referenceElement","blocks","blockElements","processedElements","getDocument","createHiddenContainer","containerElement","translateBlockElementMarginsToNewlines","removeHiddenContainer","FILTER_REJECT","FILTER_ACCEPT","isInsignificantTextNode","appendBlockForTextNode","processTextNode","appendBlockForElement","processElement","currentBlockElement","isBlockElement","appendStringWithAttributes","getBlockAttributes","currentBlock","appendBlockForAttributesWithElement","findParentBlockElement","appendEmptyBlock","getTextAttributes","appendAttachmentWithAttributes","isExtraBR","appendPiece","appendStringToTextAtIndex","prependStringToTextAtIndex","findBlockElementAncestors","getMarginOfDefaultBlockElement","getMarginOfBlockElementAtIndex","blockList","getBlockAtIndex","consolidateBlocks","copyUsingObjectsFromDocument","copyWithBaseBlockAttributes","replaceBlock","insertDocumentAtRange","locationFromPosition","getBlockAtPosition","mergeDocumentAtRange","getBaseBlockAttributes","getBlockCount","insertTextAtRange","locationRangeFromRange","getDocumentAtRange","eachBlockAtRange","eachBlock","getTextAtIndex","insertBlockBreakAtRange","applyBlockAttributeAtRange","expandRangeToLineBreaksAndSplitBlocks","removeLastListAttributeAtRange","exceptAttributeName","convertLineBreaksToBlockBreaksInRange","removeBlockAttributesAtRange","removeLastTerminalAttributeAtRange","consolidateBlocksAtRange","positionFromLocation","getTextAtPosition","getCharacterAtPosition","getEditCount","editCount","getCommonAttributesAtPosition","getRangeOfCommonAttributeAtPosition","getLocationRangeOfAttachment","findRangesForBlockAttribute","findRangesForTextAttribute","withValue","locationRangeFromPosition","rangeFromLocationRange","getTexts","LineBreakInsertion","startPosition","startLocation","endLocation","previousCharacter","nextCharacter","shouldInsertBlockBreak","shouldBreakFormattedBlock","shouldDecreaseListLevel","shouldPrependListItem","shouldRemoveLastBlockAttribute","Composition","currentAttributes","refreshAttachments","compositionDidChangeDocument","selectedRange","loadSnapshot","compositionWillLoadSnapshot","compositionDidLoadSnapshot","notifyDelegateOfInsertionAtRange","insertBlock","getCurrentTextAttributes","insertBlockBreak","decreaseListLevel","removeLastBlockAttribute","breakFormattedBlock","replaceHTML","getLocationRange","compositionShouldAcceptFile","insertAttachments","insertAttachment","canDecreaseBlockAttributeLevel","getBlock","decreaseBlockAttributeLevel","getExpandedRangeInDirection","getAttachmentAtRange","editAttachment","removeAttachment","stopEditingAttachment","placeholderPosition","getPosition","hasCurrentAttribute","canSetCurrentAttribute","canSetCurrentBlockAttribute","canSetCurrentTextAttribute","setBlockAttribute","setTextAttribute","notifyDelegateOfCurrentAttributesChange","removeBlockAttribute","updateCurrentAttributes","removeTextAttribute","getPreviousBlock","ignoreLock","freezeSelection","thawSelection","hasFrozenSelection","compositionDidRequestChangingSelectionToLocationRange","getSelectionManager","setLocationRange","targetLocationRange","withTargetLocationRange","withTargetRange","createLocationRangeFromDOMRange","translateUTF16PositionFromOffset","editingAttachment","expandSelectionForEditing","expandSelectionAroundCommonAttribute","getSelectedAttachments","positionIsCursorTarget","locationIsCursorTarget","compositionDidRemoveAttachment","compositionDidAddAttachment","compositionDidEditAttachment","compositionDidChangeAttachmentPreviewURL","compositionDidStartEditingAttachment","compositionDidStopEditingAttachment","compositionDidChangeCurrentAttributes","compositionDidPerformInsertionAtRange","_t17","UndoManager","undoEntries","redoEntries","consolidatable","createEntry","canUndo","canRedo","attachmentGalleryFilter","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","selectionManager","_t18","undoManager","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","_t19","ManagedAttachment","attachmentManager","requestRemovalOfAttachment","_t20","AttachmentManager","managedAttachments","manageAttachment","attachmentIsManaged","attachmentManagerDidRequestRemovalOfAttachment","unmanageAttachment","LocationMapper","findLocationFromContainerAndOffset","findAttachmentElementParentForNode","findContainerAndOffsetFromLocation","findNodeAndOffsetFromLocation","getSignificantNodesForIndex","PointMapper","createDOMRangeFromPoint","caretPositionFromPoint","offsetNode","caretRangeFromPoint","createTextRange","moveToPoint","getClientRectsForDOMRange","SelectionChangeObserver","selectionManagers","registerSelectionManager","unregisterSelectionManager","notifySelectionManagersOfSelectionChange","selectionDidChange","domRange","SelectionManager","didMouseDown","locationMapper","pointMapper","lockCount","currentLocationRange","lockedLocationRange","createDOMRangeFromLocationRange","updateCurrentLocationRange","getLocationAtPoint","unlock","clearSelection","selectionIsCollapsed","domRangeWithinElement","pauseTemporarily","paused","locationRangeDidChange","EditorController","editorElement","compositionController","toolbarController","toolbarElement","notifyEditorElement","handlingInput","updateCurrentActions","pasting","pastedRange","attachmentLocationRange","loadingSnapshot","isFocused","requestedLocationRange","compositionRevisionWhenLocationRangeRequested","renderedCompositionRevision","runEditorFilters","isFocusedInvisibly","requestedRender","recordTypingUndoEntry","recordFormattingUndoEntry","locationRangeBeforeDrag","invokeAction","selectionFrozen","dialogName","canInvokeAction","actionIsExternal","actionName","getCurrentActions","currentActions","updateInputElement","setInputElementValue","documentChangedSinceLastRender","getUndoContext","getLocationContext","getTimeContext","queryCommandSupported","inputElement","editorController","registerResetListener","registerClickListener","unregisterResetListener","unregisterClickListener","resetListener","resetBubbled","clickListener","clickBubbled","Timeout","clearFn","_id","_clearFn","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","nextTick","runIfPresent","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","Item","argv","versions","prependListener","prependOnceListener","cwd","chdir","umask","AttachmentUpload","directUploadUrl","directUploadDidComplete","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate"],"mappings":"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","file":"js/application-c5eb0bf7f3e494c116eb.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 225);\n","export var IconsManifest = [{\n \"id\": \"ci\",\n \"name\": \"Circum Icons\",\n \"projectUrl\": \"https://circumicons.com/\",\n \"license\": \"MPL-2.0 license\",\n \"licenseUrl\": \"https://github.com/Klarr-Agency/Circum-Icons/blob/main/LICENSE\"\n}, {\n \"id\": \"fa\",\n \"name\": \"Font Awesome 5\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n}, {\n \"id\": \"fa6\",\n \"name\": \"Font Awesome 6\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n}, {\n \"id\": \"io\",\n \"name\": \"Ionicons 4\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n}, {\n \"id\": \"io5\",\n \"name\": \"Ionicons 5\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n}, {\n \"id\": \"md\",\n \"name\": \"Material Design icons\",\n \"projectUrl\": \"http://google.github.io/material-design-icons/\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"https://github.com/google/material-design-icons/blob/master/LICENSE\"\n}, {\n \"id\": \"ti\",\n \"name\": \"Typicons\",\n \"projectUrl\": \"http://s-ings.com/typicons/\",\n \"license\": \"CC BY-SA 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by-sa/3.0/\"\n}, {\n \"id\": \"go\",\n \"name\": \"Github Octicons icons\",\n \"projectUrl\": \"https://octicons.github.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/primer/octicons/blob/master/LICENSE\"\n}, {\n \"id\": \"fi\",\n \"name\": \"Feather\",\n \"projectUrl\": \"https://feathericons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/feathericons/feather/blob/master/LICENSE\"\n}, {\n \"id\": \"lu\",\n \"name\": \"Lucide\",\n \"projectUrl\": \"https://lucide.dev/\",\n \"license\": \"ISC\",\n \"licenseUrl\": \"https://github.com/lucide-icons/lucide/blob/main/LICENSE\"\n}, {\n \"id\": \"gi\",\n \"name\": \"Game Icons\",\n \"projectUrl\": \"https://game-icons.net/\",\n \"license\": \"CC BY 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/3.0/\"\n}, {\n \"id\": \"wi\",\n \"name\": \"Weather Icons\",\n \"projectUrl\": \"https://erikflowers.github.io/weather-icons/\",\n \"license\": \"SIL OFL 1.1\",\n \"licenseUrl\": \"http://scripts.sil.org/OFL\"\n}, {\n \"id\": \"di\",\n \"name\": \"Devicons\",\n \"projectUrl\": \"https://vorillaz.github.io/devicons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"ai\",\n \"name\": \"Ant Design Icons\",\n \"projectUrl\": \"https://github.com/ant-design/ant-design-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"bs\",\n \"name\": \"Bootstrap Icons\",\n \"projectUrl\": \"https://github.com/twbs/icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"ri\",\n \"name\": \"Remix Icon\",\n \"projectUrl\": \"https://github.com/Remix-Design/RemixIcon\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n}, {\n \"id\": \"fc\",\n \"name\": \"Flat Color Icons\",\n \"projectUrl\": \"https://github.com/icons8/flat-color-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"gr\",\n \"name\": \"Grommet-Icons\",\n \"projectUrl\": \"https://github.com/grommet/grommet-icons\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n}, {\n \"id\": \"hi\",\n \"name\": \"Heroicons\",\n \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"hi2\",\n \"name\": \"Heroicons 2\",\n \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"si\",\n \"name\": \"Simple Icons\",\n \"projectUrl\": \"https://simpleicons.org/\",\n \"license\": \"CC0 1.0 Universal\",\n \"licenseUrl\": \"https://creativecommons.org/publicdomain/zero/1.0/\"\n}, {\n \"id\": \"sl\",\n \"name\": \"Simple Line Icons\",\n \"projectUrl\": \"https://thesabbir.github.io/simple-line-icons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"im\",\n \"name\": \"IcoMoon Free\",\n \"projectUrl\": \"https://github.com/Keyamoon/IcoMoon-Free\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://github.com/Keyamoon/IcoMoon-Free/blob/master/License.txt\"\n}, {\n \"id\": \"bi\",\n \"name\": \"BoxIcons\",\n \"projectUrl\": \"https://github.com/atisawd/boxicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/atisawd/boxicons/blob/master/LICENSE\"\n}, {\n \"id\": \"cg\",\n \"name\": \"css.gg\",\n \"projectUrl\": \"https://github.com/astrit/css.gg\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"vsc\",\n \"name\": \"VS Code Icons\",\n \"projectUrl\": \"https://github.com/microsoft/vscode-codicons\",\n \"license\": \"CC BY 4.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n}, {\n \"id\": \"tb\",\n \"name\": \"Tabler Icons\",\n \"projectUrl\": \"https://github.com/tabler/tabler-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"tfi\",\n \"name\": \"Themify Icons\",\n \"projectUrl\": \"https://github.com/lykmapipo/themify-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/thecreation/standard-icons/blob/master/modules/themify-icons/LICENSE\"\n}, {\n \"id\": \"rx\",\n \"name\": \"Radix Icons\",\n \"projectUrl\": \"https://icons.radix-ui.com\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/radix-ui/icons/blob/master/LICENSE\"\n}, {\n \"id\": \"pi\",\n \"name\": \"Phosphor Icons\",\n \"projectUrl\": \"https://github.com/phosphor-icons/core\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/phosphor-icons/core/blob/main/LICENSE\"\n}, {\n \"id\": \"lia\",\n \"name\": \"Icons8 Line Awesome\",\n \"projectUrl\": \"https://icons8.com/line-awesome\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/icons8/line-awesome/blob/master/LICENSE.md\"\n}];","import React from \"react\";\nexport var DefaultContext = {\n color: undefined,\n size: undefined,\n className: undefined,\n style: undefined,\n attr: undefined\n};\nexport var IconContext = React.createContext && /*#__PURE__*/React.createContext(DefaultContext);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar _excluded = [\"attr\", \"size\", \"title\"];\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\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\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _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\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n\n return t;\n}\n\nfunction _objectSpread(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n\n return e;\n}\n\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\n\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n\n return (hint === \"string\" ? String : Number)(input);\n}\n\nimport React from \"react\";\nimport { IconContext, DefaultContext } from \"./iconContext.mjs\";\n\nfunction Tree2Element(tree) {\n return tree && tree.map(function (node, i) {\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: i\n }, node.attr), Tree2Element(node.child));\n });\n}\n\nexport function GenIcon(data) {\n // eslint-disable-next-line react/display-name\n return function (props) {\n return /*#__PURE__*/React.createElement(IconBase, _extends({\n attr: _objectSpread({}, data.attr)\n }, props), Tree2Element(data.child));\n };\n}\nexport function IconBase(props) {\n var elem = function elem(conf) {\n var attr = props.attr,\n size = props.size,\n title = props.title,\n svgProps = _objectWithoutProperties(props, _excluded);\n\n var computedSize = size || conf.size || \"1em\";\n var className;\n if (conf.className) className = conf.className;\n if (props.className) className = (className ? className + \" \" : \"\") + props.className;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n stroke: \"currentColor\",\n fill: \"currentColor\",\n strokeWidth: \"0\"\n }, conf.attr, attr, svgProps, {\n className: className,\n style: _objectSpread(_objectSpread({\n color: props.color || conf.color\n }, conf.style), props.style),\n height: computedSize,\n width: computedSize,\n xmlns: \"http://www.w3.org/2000/svg\"\n }), title && /*#__PURE__*/React.createElement(\"title\", null, title), props.children);\n };\n\n return IconContext !== undefined ? /*#__PURE__*/React.createElement(IconContext.Consumer, null, function (conf) {\n return elem(conf);\n }) : elem(DefaultContext);\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}","/// \nif (typeof FullCalendarVDom === 'undefined') {\n throw new Error('Please import the top-level fullcalendar lib before attempting to import a plugin.');\n}\n\nvar Component = FullCalendarVDom.Component;\nvar createElement = FullCalendarVDom.createElement;\nvar render = FullCalendarVDom.render;\nvar createRef = FullCalendarVDom.createRef;\nvar Fragment = FullCalendarVDom.Fragment;\nvar createContext = FullCalendarVDom.createContext;\nvar createPortal = FullCalendarVDom.createPortal;\nvar flushSync = FullCalendarVDom.flushSync;\nvar unmountComponentAtNode = FullCalendarVDom.unmountComponentAtNode;\n/* eslint-enable */\n\nexport { Component, Fragment, createContext, createElement, createPortal, createRef, flushSync, render, unmountComponentAtNode };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\nFullCalendar v5.11.3\nDocs & License: https://fullcalendar.io/\n(c) 2022 Adam Shaw\n*/\nimport './main.css';\nimport { __assign, __spreadArray, __extends } from 'tslib';\nimport { createContext, Component, createRef, createElement, Fragment, createPortal } from './vdom.js';\nexport * from './vdom.js'; // no public types yet. when there are, export from:\n// import {} from './api-type-deps'\n\nvar EventSourceApi =\n/** @class */\nfunction () {\n function EventSourceApi(context, internalEventSource) {\n this.context = context;\n this.internalEventSource = internalEventSource;\n }\n\n EventSourceApi.prototype.remove = function () {\n this.context.dispatch({\n type: 'REMOVE_EVENT_SOURCE',\n sourceId: this.internalEventSource.sourceId\n });\n };\n\n EventSourceApi.prototype.refetch = function () {\n this.context.dispatch({\n type: 'FETCH_EVENT_SOURCES',\n sourceIds: [this.internalEventSource.sourceId],\n isRefetch: true\n });\n };\n\n Object.defineProperty(EventSourceApi.prototype, \"id\", {\n get: function get() {\n return this.internalEventSource.publicId;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventSourceApi.prototype, \"url\", {\n get: function get() {\n return this.internalEventSource.meta.url;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventSourceApi.prototype, \"format\", {\n get: function get() {\n return this.internalEventSource.meta.format; // TODO: bad. not guaranteed\n },\n enumerable: false,\n configurable: true\n });\n return EventSourceApi;\n}();\n\nfunction removeElement(el) {\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n} // Querying\n// ----------------------------------------------------------------------------------------------------------------\n\n\nfunction elementClosest(el, selector) {\n if (el.closest) {\n return el.closest(selector); // really bad fallback for IE\n // from https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\n }\n\n if (!document.documentElement.contains(el)) {\n return null;\n }\n\n do {\n if (elementMatches(el, selector)) {\n return el;\n }\n\n el = el.parentElement || el.parentNode;\n } while (el !== null && el.nodeType === 1);\n\n return null;\n}\n\nfunction elementMatches(el, selector) {\n var method = el.matches || el.matchesSelector || el.msMatchesSelector;\n return method.call(el, selector);\n} // accepts multiple subject els\n// returns a real array. good for methods like forEach\n// TODO: accept the document\n\n\nfunction findElements(container, selector) {\n var containers = container instanceof HTMLElement ? [container] : container;\n var allMatches = [];\n\n for (var i = 0; i < containers.length; i += 1) {\n var matches = containers[i].querySelectorAll(selector);\n\n for (var j = 0; j < matches.length; j += 1) {\n allMatches.push(matches[j]);\n }\n }\n\n return allMatches;\n} // accepts multiple subject els\n// only queries direct child elements // TODO: rename to findDirectChildren!\n\n\nfunction findDirectChildren(parent, selector) {\n var parents = parent instanceof HTMLElement ? [parent] : parent;\n var allMatches = [];\n\n for (var i = 0; i < parents.length; i += 1) {\n var childNodes = parents[i].children; // only ever elements\n\n for (var j = 0; j < childNodes.length; j += 1) {\n var childNode = childNodes[j];\n\n if (!selector || elementMatches(childNode, selector)) {\n allMatches.push(childNode);\n }\n }\n }\n\n return allMatches;\n} // Style\n// ----------------------------------------------------------------------------------------------------------------\n\n\nvar PIXEL_PROP_RE = /(top|left|right|bottom|width|height)$/i;\n\nfunction applyStyle(el, props) {\n for (var propName in props) {\n applyStyleProp(el, propName, props[propName]);\n }\n}\n\nfunction applyStyleProp(el, name, val) {\n if (val == null) {\n el.style[name] = '';\n } else if (typeof val === 'number' && PIXEL_PROP_RE.test(name)) {\n el.style[name] = val + \"px\";\n } else {\n el.style[name] = val;\n }\n} // Event Handling\n// ----------------------------------------------------------------------------------------------------------------\n// if intercepting bubbled events at the document/window/body level,\n// and want to see originating element (the 'target'), use this util instead\n// of `ev.target` because it goes within web-component boundaries.\n\n\nfunction getEventTargetViaRoot(ev) {\n var _a, _b;\n\n return (_b = (_a = ev.composedPath) === null || _a === void 0 ? void 0 : _a.call(ev)[0]) !== null && _b !== void 0 ? _b : ev.target;\n} // Shadow DOM consuderations\n// ----------------------------------------------------------------------------------------------------------------\n\n\nfunction getElRoot(el) {\n return el.getRootNode ? el.getRootNode() : document;\n} // Unique ID for DOM attribute\n\n\nvar guid$1 = 0;\n\nfunction getUniqueDomId() {\n guid$1 += 1;\n return 'fc-dom-' + guid$1;\n} // Stops a mouse/touch event from doing it's native browser action\n\n\nfunction preventDefault(ev) {\n ev.preventDefault();\n} // Event Delegation\n// ----------------------------------------------------------------------------------------------------------------\n\n\nfunction buildDelegationHandler(selector, handler) {\n return function (ev) {\n var matchedChild = elementClosest(ev.target, selector);\n\n if (matchedChild) {\n handler.call(matchedChild, ev, matchedChild);\n }\n };\n}\n\nfunction listenBySelector(container, eventType, selector, handler) {\n var attachedHandler = buildDelegationHandler(selector, handler);\n container.addEventListener(eventType, attachedHandler);\n return function () {\n container.removeEventListener(eventType, attachedHandler);\n };\n}\n\nfunction listenToHoverBySelector(container, selector, onMouseEnter, onMouseLeave) {\n var currentMatchedChild;\n return listenBySelector(container, 'mouseover', selector, function (mouseOverEv, matchedChild) {\n if (matchedChild !== currentMatchedChild) {\n currentMatchedChild = matchedChild;\n onMouseEnter(mouseOverEv, matchedChild);\n\n var realOnMouseLeave_1 = function realOnMouseLeave_1(mouseLeaveEv) {\n currentMatchedChild = null;\n onMouseLeave(mouseLeaveEv, matchedChild);\n matchedChild.removeEventListener('mouseleave', realOnMouseLeave_1);\n }; // listen to the next mouseleave, and then unattach\n\n\n matchedChild.addEventListener('mouseleave', realOnMouseLeave_1);\n }\n });\n} // Animation\n// ----------------------------------------------------------------------------------------------------------------\n\n\nvar transitionEventNames = ['webkitTransitionEnd', 'otransitionend', 'oTransitionEnd', 'msTransitionEnd', 'transitionend']; // triggered only when the next single subsequent transition finishes\n\nfunction whenTransitionDone(el, callback) {\n var realCallback = function realCallback(ev) {\n callback(ev);\n transitionEventNames.forEach(function (eventName) {\n el.removeEventListener(eventName, realCallback);\n });\n };\n\n transitionEventNames.forEach(function (eventName) {\n el.addEventListener(eventName, realCallback); // cross-browser way to determine when the transition finishes\n });\n} // ARIA workarounds\n// ----------------------------------------------------------------------------------------------------------------\n\n\nfunction createAriaClickAttrs(handler) {\n return __assign({\n onClick: handler\n }, createAriaKeyboardAttrs(handler));\n}\n\nfunction createAriaKeyboardAttrs(handler) {\n return {\n tabIndex: 0,\n onKeyDown: function onKeyDown(ev) {\n if (ev.key === 'Enter' || ev.key === ' ') {\n handler(ev);\n ev.preventDefault(); // if space, don't scroll down page\n }\n }\n };\n}\n\nvar guidNumber = 0;\n\nfunction guid() {\n guidNumber += 1;\n return String(guidNumber);\n}\n/* FullCalendar-specific DOM Utilities\n----------------------------------------------------------------------------------------------------------------------*/\n// Make the mouse cursor express that an event is not allowed in the current area\n\n\nfunction disableCursor() {\n document.body.classList.add('fc-not-allowed');\n} // Returns the mouse cursor to its original look\n\n\nfunction enableCursor() {\n document.body.classList.remove('fc-not-allowed');\n}\n/* Selection\n----------------------------------------------------------------------------------------------------------------------*/\n\n\nfunction preventSelection(el) {\n el.classList.add('fc-unselectable');\n el.addEventListener('selectstart', preventDefault);\n}\n\nfunction allowSelection(el) {\n el.classList.remove('fc-unselectable');\n el.removeEventListener('selectstart', preventDefault);\n}\n/* Context Menu\n----------------------------------------------------------------------------------------------------------------------*/\n\n\nfunction preventContextMenu(el) {\n el.addEventListener('contextmenu', preventDefault);\n}\n\nfunction allowContextMenu(el) {\n el.removeEventListener('contextmenu', preventDefault);\n}\n\nfunction parseFieldSpecs(input) {\n var specs = [];\n var tokens = [];\n var i;\n var token;\n\n if (typeof input === 'string') {\n tokens = input.split(/\\s*,\\s*/);\n } else if (typeof input === 'function') {\n tokens = [input];\n } else if (Array.isArray(input)) {\n tokens = input;\n }\n\n for (i = 0; i < tokens.length; i += 1) {\n token = tokens[i];\n\n if (typeof token === 'string') {\n specs.push(token.charAt(0) === '-' ? {\n field: token.substring(1),\n order: -1\n } : {\n field: token,\n order: 1\n });\n } else if (typeof token === 'function') {\n specs.push({\n func: token\n });\n }\n }\n\n return specs;\n}\n\nfunction compareByFieldSpecs(obj0, obj1, fieldSpecs) {\n var i;\n var cmp;\n\n for (i = 0; i < fieldSpecs.length; i += 1) {\n cmp = compareByFieldSpec(obj0, obj1, fieldSpecs[i]);\n\n if (cmp) {\n return cmp;\n }\n }\n\n return 0;\n}\n\nfunction compareByFieldSpec(obj0, obj1, fieldSpec) {\n if (fieldSpec.func) {\n return fieldSpec.func(obj0, obj1);\n }\n\n return flexibleCompare(obj0[fieldSpec.field], obj1[fieldSpec.field]) * (fieldSpec.order || 1);\n}\n\nfunction flexibleCompare(a, b) {\n if (!a && !b) {\n return 0;\n }\n\n if (b == null) {\n return -1;\n }\n\n if (a == null) {\n return 1;\n }\n\n if (typeof a === 'string' || typeof b === 'string') {\n return String(a).localeCompare(String(b));\n }\n\n return a - b;\n}\n/* String Utilities\n----------------------------------------------------------------------------------------------------------------------*/\n\n\nfunction padStart(val, len) {\n var s = String(val);\n return '000'.substr(0, len - s.length) + s;\n}\n\nfunction formatWithOrdinals(formatter, args, fallbackText) {\n if (typeof formatter === 'function') {\n return formatter.apply(void 0, args);\n }\n\n if (typeof formatter === 'string') {\n // non-blank string\n return args.reduce(function (str, arg, index) {\n return str.replace('$' + index, arg || '');\n }, formatter);\n }\n\n return fallbackText;\n}\n/* Number Utilities\n----------------------------------------------------------------------------------------------------------------------*/\n\n\nfunction compareNumbers(a, b) {\n return a - b;\n}\n\nfunction isInt(n) {\n return n % 1 === 0;\n}\n/* FC-specific DOM dimension stuff\n----------------------------------------------------------------------------------------------------------------------*/\n\n\nfunction computeSmallestCellWidth(cellEl) {\n var allWidthEl = cellEl.querySelector('.fc-scrollgrid-shrink-frame');\n var contentWidthEl = cellEl.querySelector('.fc-scrollgrid-shrink-cushion');\n\n if (!allWidthEl) {\n throw new Error('needs fc-scrollgrid-shrink-frame className'); // TODO: use const\n }\n\n if (!contentWidthEl) {\n throw new Error('needs fc-scrollgrid-shrink-cushion className');\n }\n\n return cellEl.getBoundingClientRect().width - allWidthEl.getBoundingClientRect().width + // the cell padding+border\n contentWidthEl.getBoundingClientRect().width;\n}\n\nvar DAY_IDS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']; // Adding\n\nfunction addWeeks(m, n) {\n var a = dateToUtcArray(m);\n a[2] += n * 7;\n return arrayToUtcDate(a);\n}\n\nfunction addDays(m, n) {\n var a = dateToUtcArray(m);\n a[2] += n;\n return arrayToUtcDate(a);\n}\n\nfunction addMs(m, n) {\n var a = dateToUtcArray(m);\n a[6] += n;\n return arrayToUtcDate(a);\n} // Diffing (all return floats)\n// TODO: why not use ranges?\n\n\nfunction diffWeeks(m0, m1) {\n return diffDays(m0, m1) / 7;\n}\n\nfunction diffDays(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60 * 24);\n}\n\nfunction diffHours(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60);\n}\n\nfunction diffMinutes(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60);\n}\n\nfunction diffSeconds(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / 1000;\n}\n\nfunction diffDayAndTime(m0, m1) {\n var m0day = startOfDay(m0);\n var m1day = startOfDay(m1);\n return {\n years: 0,\n months: 0,\n days: Math.round(diffDays(m0day, m1day)),\n milliseconds: m1.valueOf() - m1day.valueOf() - (m0.valueOf() - m0day.valueOf())\n };\n} // Diffing Whole Units\n\n\nfunction diffWholeWeeks(m0, m1) {\n var d = diffWholeDays(m0, m1);\n\n if (d !== null && d % 7 === 0) {\n return d / 7;\n }\n\n return null;\n}\n\nfunction diffWholeDays(m0, m1) {\n if (timeAsMs(m0) === timeAsMs(m1)) {\n return Math.round(diffDays(m0, m1));\n }\n\n return null;\n} // Start-Of\n\n\nfunction startOfDay(m) {\n return arrayToUtcDate([m.getUTCFullYear(), m.getUTCMonth(), m.getUTCDate()]);\n}\n\nfunction startOfHour(m) {\n return arrayToUtcDate([m.getUTCFullYear(), m.getUTCMonth(), m.getUTCDate(), m.getUTCHours()]);\n}\n\nfunction startOfMinute(m) {\n return arrayToUtcDate([m.getUTCFullYear(), m.getUTCMonth(), m.getUTCDate(), m.getUTCHours(), m.getUTCMinutes()]);\n}\n\nfunction startOfSecond(m) {\n return arrayToUtcDate([m.getUTCFullYear(), m.getUTCMonth(), m.getUTCDate(), m.getUTCHours(), m.getUTCMinutes(), m.getUTCSeconds()]);\n} // Week Computation\n\n\nfunction weekOfYear(marker, dow, doy) {\n var y = marker.getUTCFullYear();\n var w = weekOfGivenYear(marker, y, dow, doy);\n\n if (w < 1) {\n return weekOfGivenYear(marker, y - 1, dow, doy);\n }\n\n var nextW = weekOfGivenYear(marker, y + 1, dow, doy);\n\n if (nextW >= 1) {\n return Math.min(w, nextW);\n }\n\n return w;\n}\n\nfunction weekOfGivenYear(marker, year, dow, doy) {\n var firstWeekStart = arrayToUtcDate([year, 0, 1 + firstWeekOffset(year, dow, doy)]);\n var dayStart = startOfDay(marker);\n var days = Math.round(diffDays(firstWeekStart, dayStart));\n return Math.floor(days / 7) + 1; // zero-indexed\n} // start-of-first-week - start-of-year\n\n\nfunction firstWeekOffset(year, dow, doy) {\n // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n var fwd = 7 + dow - doy; // first-week day local weekday -- which local weekday is fwd\n\n var fwdlw = (7 + arrayToUtcDate([year, 0, fwd]).getUTCDay() - dow) % 7;\n return -fwdlw + fwd - 1;\n} // Array Conversion\n\n\nfunction dateToLocalArray(date) {\n return [date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()];\n}\n\nfunction arrayToLocalDate(a) {\n return new Date(a[0], a[1] || 0, a[2] == null ? 1 : a[2], // day of month\n a[3] || 0, a[4] || 0, a[5] || 0);\n}\n\nfunction dateToUtcArray(date) {\n return [date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds()];\n}\n\nfunction arrayToUtcDate(a) {\n // according to web standards (and Safari), a month index is required.\n // massage if only given a year.\n if (a.length === 1) {\n a = a.concat([0]);\n }\n\n return new Date(Date.UTC.apply(Date, a));\n} // Other Utils\n\n\nfunction isValidDate(m) {\n return !isNaN(m.valueOf());\n}\n\nfunction timeAsMs(m) {\n return m.getUTCHours() * 1000 * 60 * 60 + m.getUTCMinutes() * 1000 * 60 + m.getUTCSeconds() * 1000 + m.getUTCMilliseconds();\n}\n\nfunction createEventInstance(defId, range, forcedStartTzo, forcedEndTzo) {\n return {\n instanceId: guid(),\n defId: defId,\n range: range,\n forcedStartTzo: forcedStartTzo == null ? null : forcedStartTzo,\n forcedEndTzo: forcedEndTzo == null ? null : forcedEndTzo\n };\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty; // Merges an array of objects into a single object.\n// The second argument allows for an array of property names who's object values will be merged together.\n\nfunction mergeProps(propObjs, complexPropsMap) {\n var dest = {};\n\n if (complexPropsMap) {\n for (var name_1 in complexPropsMap) {\n var complexObjs = []; // collect the trailing object values, stopping when a non-object is discovered\n\n for (var i = propObjs.length - 1; i >= 0; i -= 1) {\n var val = propObjs[i][name_1];\n\n if (_typeof(val) === 'object' && val) {\n // non-null object\n complexObjs.unshift(val);\n } else if (val !== undefined) {\n dest[name_1] = val; // if there were no objects, this value will be used\n\n break;\n }\n } // if the trailing values were objects, use the merged value\n\n\n if (complexObjs.length) {\n dest[name_1] = mergeProps(complexObjs);\n }\n }\n } // copy values into the destination, going from last to first\n\n\n for (var i = propObjs.length - 1; i >= 0; i -= 1) {\n var props = propObjs[i];\n\n for (var name_2 in props) {\n if (!(name_2 in dest)) {\n // if already assigned by previous props or complex props, don't reassign\n dest[name_2] = props[name_2];\n }\n }\n }\n\n return dest;\n}\n\nfunction filterHash(hash, func) {\n var filtered = {};\n\n for (var key in hash) {\n if (func(hash[key], key)) {\n filtered[key] = hash[key];\n }\n }\n\n return filtered;\n}\n\nfunction mapHash(hash, func) {\n var newHash = {};\n\n for (var key in hash) {\n newHash[key] = func(hash[key], key);\n }\n\n return newHash;\n}\n\nfunction arrayToHash(a) {\n var hash = {};\n\n for (var _i = 0, a_1 = a; _i < a_1.length; _i++) {\n var item = a_1[_i];\n hash[item] = true;\n }\n\n return hash;\n}\n\nfunction buildHashFromArray(a, func) {\n var hash = {};\n\n for (var i = 0; i < a.length; i += 1) {\n var tuple = func(a[i], i);\n hash[tuple[0]] = tuple[1];\n }\n\n return hash;\n}\n\nfunction hashValuesToArray(obj) {\n var a = [];\n\n for (var key in obj) {\n a.push(obj[key]);\n }\n\n return a;\n}\n\nfunction isPropsEqual(obj0, obj1) {\n if (obj0 === obj1) {\n return true;\n }\n\n for (var key in obj0) {\n if (hasOwnProperty.call(obj0, key)) {\n if (!(key in obj1)) {\n return false;\n }\n }\n }\n\n for (var key in obj1) {\n if (hasOwnProperty.call(obj1, key)) {\n if (obj0[key] !== obj1[key]) {\n return false;\n }\n }\n }\n\n return true;\n}\n\nfunction getUnequalProps(obj0, obj1) {\n var keys = [];\n\n for (var key in obj0) {\n if (hasOwnProperty.call(obj0, key)) {\n if (!(key in obj1)) {\n keys.push(key);\n }\n }\n }\n\n for (var key in obj1) {\n if (hasOwnProperty.call(obj1, key)) {\n if (obj0[key] !== obj1[key]) {\n keys.push(key);\n }\n }\n }\n\n return keys;\n}\n\nfunction compareObjs(oldProps, newProps, equalityFuncs) {\n if (equalityFuncs === void 0) {\n equalityFuncs = {};\n }\n\n if (oldProps === newProps) {\n return true;\n }\n\n for (var key in newProps) {\n if (key in oldProps && isObjValsEqual(oldProps[key], newProps[key], equalityFuncs[key])) ;else {\n return false;\n }\n } // check for props that were omitted in the new\n\n\n for (var key in oldProps) {\n if (!(key in newProps)) {\n return false;\n }\n }\n\n return true;\n}\n/*\nassumed \"true\" equality for handler names like \"onReceiveSomething\"\n*/\n\n\nfunction isObjValsEqual(val0, val1, comparator) {\n if (val0 === val1 || comparator === true) {\n return true;\n }\n\n if (comparator) {\n return comparator(val0, val1);\n }\n\n return false;\n}\n\nfunction collectFromHash(hash, startIndex, endIndex, step) {\n if (startIndex === void 0) {\n startIndex = 0;\n }\n\n if (step === void 0) {\n step = 1;\n }\n\n var res = [];\n\n if (endIndex == null) {\n endIndex = Object.keys(hash).length;\n }\n\n for (var i = startIndex; i < endIndex; i += step) {\n var val = hash[i];\n\n if (val !== undefined) {\n // will disregard undefined for sparse arrays\n res.push(val);\n }\n }\n\n return res;\n}\n\nfunction parseRecurring(refined, defaultAllDay, dateEnv, recurringTypes) {\n for (var i = 0; i < recurringTypes.length; i += 1) {\n var parsed = recurringTypes[i].parse(refined, dateEnv);\n\n if (parsed) {\n var allDay = refined.allDay;\n\n if (allDay == null) {\n allDay = defaultAllDay;\n\n if (allDay == null) {\n allDay = parsed.allDayGuess;\n\n if (allDay == null) {\n allDay = false;\n }\n }\n }\n\n return {\n allDay: allDay,\n duration: parsed.duration,\n typeData: parsed.typeData,\n typeId: i\n };\n }\n }\n\n return null;\n}\n\nfunction expandRecurring(eventStore, framingRange, context) {\n var dateEnv = context.dateEnv,\n pluginHooks = context.pluginHooks,\n options = context.options;\n var defs = eventStore.defs,\n instances = eventStore.instances; // remove existing recurring instances\n // TODO: bad. always expand events as a second step\n\n instances = filterHash(instances, function (instance) {\n return !defs[instance.defId].recurringDef;\n });\n\n for (var defId in defs) {\n var def = defs[defId];\n\n if (def.recurringDef) {\n var duration = def.recurringDef.duration;\n\n if (!duration) {\n duration = def.allDay ? options.defaultAllDayEventDuration : options.defaultTimedEventDuration;\n }\n\n var starts = expandRecurringRanges(def, duration, framingRange, dateEnv, pluginHooks.recurringTypes);\n\n for (var _i = 0, starts_1 = starts; _i < starts_1.length; _i++) {\n var start = starts_1[_i];\n var instance = createEventInstance(defId, {\n start: start,\n end: dateEnv.add(start, duration)\n });\n instances[instance.instanceId] = instance;\n }\n }\n }\n\n return {\n defs: defs,\n instances: instances\n };\n}\n/*\nEvent MUST have a recurringDef\n*/\n\n\nfunction expandRecurringRanges(eventDef, duration, framingRange, dateEnv, recurringTypes) {\n var typeDef = recurringTypes[eventDef.recurringDef.typeId];\n var markers = typeDef.expand(eventDef.recurringDef.typeData, {\n start: dateEnv.subtract(framingRange.start, duration),\n end: framingRange.end\n }, dateEnv); // the recurrence plugins don't guarantee that all-day events are start-of-day, so we have to\n\n if (eventDef.allDay) {\n markers = markers.map(startOfDay);\n }\n\n return markers;\n}\n\nvar INTERNAL_UNITS = ['years', 'months', 'days', 'milliseconds'];\nvar PARSE_RE = /^(-?)(?:(\\d+)\\.)?(\\d+):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?/; // Parsing and Creation\n\nfunction createDuration(input, unit) {\n var _a;\n\n if (typeof input === 'string') {\n return parseString(input);\n }\n\n if (_typeof(input) === 'object' && input) {\n // non-null object\n return parseObject(input);\n }\n\n if (typeof input === 'number') {\n return parseObject((_a = {}, _a[unit || 'milliseconds'] = input, _a));\n }\n\n return null;\n}\n\nfunction parseString(s) {\n var m = PARSE_RE.exec(s);\n\n if (m) {\n var sign = m[1] ? -1 : 1;\n return {\n years: 0,\n months: 0,\n days: sign * (m[2] ? parseInt(m[2], 10) : 0),\n milliseconds: sign * ((m[3] ? parseInt(m[3], 10) : 0) * 60 * 60 * 1000 + // hours\n (m[4] ? parseInt(m[4], 10) : 0) * 60 * 1000 + // minutes\n (m[5] ? parseInt(m[5], 10) : 0) * 1000 + ( // seconds\n m[6] ? parseInt(m[6], 10) : 0) // ms\n )\n };\n }\n\n return null;\n}\n\nfunction parseObject(obj) {\n var duration = {\n years: obj.years || obj.year || 0,\n months: obj.months || obj.month || 0,\n days: obj.days || obj.day || 0,\n milliseconds: (obj.hours || obj.hour || 0) * 60 * 60 * 1000 + // hours\n (obj.minutes || obj.minute || 0) * 60 * 1000 + // minutes\n (obj.seconds || obj.second || 0) * 1000 + ( // seconds\n obj.milliseconds || obj.millisecond || obj.ms || 0) // ms\n\n };\n var weeks = obj.weeks || obj.week;\n\n if (weeks) {\n duration.days += weeks * 7;\n duration.specifiedWeeks = true;\n }\n\n return duration;\n} // Equality\n\n\nfunction durationsEqual(d0, d1) {\n return d0.years === d1.years && d0.months === d1.months && d0.days === d1.days && d0.milliseconds === d1.milliseconds;\n}\n\nfunction asCleanDays(dur) {\n if (!dur.years && !dur.months && !dur.milliseconds) {\n return dur.days;\n }\n\n return 0;\n} // Simple Math\n\n\nfunction addDurations(d0, d1) {\n return {\n years: d0.years + d1.years,\n months: d0.months + d1.months,\n days: d0.days + d1.days,\n milliseconds: d0.milliseconds + d1.milliseconds\n };\n}\n\nfunction subtractDurations(d1, d0) {\n return {\n years: d1.years - d0.years,\n months: d1.months - d0.months,\n days: d1.days - d0.days,\n milliseconds: d1.milliseconds - d0.milliseconds\n };\n}\n\nfunction multiplyDuration(d, n) {\n return {\n years: d.years * n,\n months: d.months * n,\n days: d.days * n,\n milliseconds: d.milliseconds * n\n };\n} // Conversions\n// \"Rough\" because they are based on average-case Gregorian months/years\n\n\nfunction asRoughYears(dur) {\n return asRoughDays(dur) / 365;\n}\n\nfunction asRoughMonths(dur) {\n return asRoughDays(dur) / 30;\n}\n\nfunction asRoughDays(dur) {\n return asRoughMs(dur) / 864e5;\n}\n\nfunction asRoughMinutes(dur) {\n return asRoughMs(dur) / (1000 * 60);\n}\n\nfunction asRoughSeconds(dur) {\n return asRoughMs(dur) / 1000;\n}\n\nfunction asRoughMs(dur) {\n return dur.years * (365 * 864e5) + dur.months * (30 * 864e5) + dur.days * 864e5 + dur.milliseconds;\n} // Advanced Math\n\n\nfunction wholeDivideDurations(numerator, denominator) {\n var res = null;\n\n for (var i = 0; i < INTERNAL_UNITS.length; i += 1) {\n var unit = INTERNAL_UNITS[i];\n\n if (denominator[unit]) {\n var localRes = numerator[unit] / denominator[unit];\n\n if (!isInt(localRes) || res !== null && res !== localRes) {\n return null;\n }\n\n res = localRes;\n } else if (numerator[unit]) {\n // needs to divide by something but can't!\n return null;\n }\n }\n\n return res;\n}\n\nfunction greatestDurationDenominator(dur) {\n var ms = dur.milliseconds;\n\n if (ms) {\n if (ms % 1000 !== 0) {\n return {\n unit: 'millisecond',\n value: ms\n };\n }\n\n if (ms % (1000 * 60) !== 0) {\n return {\n unit: 'second',\n value: ms / 1000\n };\n }\n\n if (ms % (1000 * 60 * 60) !== 0) {\n return {\n unit: 'minute',\n value: ms / (1000 * 60)\n };\n }\n\n if (ms) {\n return {\n unit: 'hour',\n value: ms / (1000 * 60 * 60)\n };\n }\n }\n\n if (dur.days) {\n if (dur.specifiedWeeks && dur.days % 7 === 0) {\n return {\n unit: 'week',\n value: dur.days / 7\n };\n }\n\n return {\n unit: 'day',\n value: dur.days\n };\n }\n\n if (dur.months) {\n return {\n unit: 'month',\n value: dur.months\n };\n }\n\n if (dur.years) {\n return {\n unit: 'year',\n value: dur.years\n };\n }\n\n return {\n unit: 'millisecond',\n value: 0\n };\n} // timeZoneOffset is in minutes\n\n\nfunction buildIsoString(marker, timeZoneOffset, stripZeroTime) {\n if (stripZeroTime === void 0) {\n stripZeroTime = false;\n }\n\n var s = marker.toISOString();\n s = s.replace('.000', '');\n\n if (stripZeroTime) {\n s = s.replace('T00:00:00Z', '');\n }\n\n if (s.length > 10) {\n // time part wasn't stripped, can add timezone info\n if (timeZoneOffset == null) {\n s = s.replace('Z', '');\n } else if (timeZoneOffset !== 0) {\n s = s.replace('Z', formatTimeZoneOffset(timeZoneOffset, true));\n } // otherwise, its UTC-0 and we want to keep the Z\n\n }\n\n return s;\n} // formats the date, but with no time part\n// TODO: somehow merge with buildIsoString and stripZeroTime\n// TODO: rename. omit \"string\"\n\n\nfunction formatDayString(marker) {\n return marker.toISOString().replace(/T.*$/, '');\n} // TODO: use Date::toISOString and use everything after the T?\n\n\nfunction formatIsoTimeString(marker) {\n return padStart(marker.getUTCHours(), 2) + ':' + padStart(marker.getUTCMinutes(), 2) + ':' + padStart(marker.getUTCSeconds(), 2);\n}\n\nfunction formatTimeZoneOffset(minutes, doIso) {\n if (doIso === void 0) {\n doIso = false;\n }\n\n var sign = minutes < 0 ? '-' : '+';\n var abs = Math.abs(minutes);\n var hours = Math.floor(abs / 60);\n var mins = Math.round(abs % 60);\n\n if (doIso) {\n return sign + padStart(hours, 2) + \":\" + padStart(mins, 2);\n }\n\n return \"GMT\" + sign + hours + (mins ? \":\" + padStart(mins, 2) : '');\n} // TODO: new util arrayify?\n\n\nfunction removeExact(array, exactVal) {\n var removeCnt = 0;\n var i = 0;\n\n while (i < array.length) {\n if (array[i] === exactVal) {\n array.splice(i, 1);\n removeCnt += 1;\n } else {\n i += 1;\n }\n }\n\n return removeCnt;\n}\n\nfunction isArraysEqual(a0, a1, equalityFunc) {\n if (a0 === a1) {\n return true;\n }\n\n var len = a0.length;\n var i;\n\n if (len !== a1.length) {\n // not array? or not same length?\n return false;\n }\n\n for (i = 0; i < len; i += 1) {\n if (!(equalityFunc ? equalityFunc(a0[i], a1[i]) : a0[i] === a1[i])) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction memoize(workerFunc, resEquality, teardownFunc) {\n var currentArgs;\n var currentRes;\n return function () {\n var newArgs = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n\n if (!currentArgs) {\n currentRes = workerFunc.apply(this, newArgs);\n } else if (!isArraysEqual(currentArgs, newArgs)) {\n if (teardownFunc) {\n teardownFunc(currentRes);\n }\n\n var res = workerFunc.apply(this, newArgs);\n\n if (!resEquality || !resEquality(res, currentRes)) {\n currentRes = res;\n }\n }\n\n currentArgs = newArgs;\n return currentRes;\n };\n}\n\nfunction memoizeObjArg(workerFunc, resEquality, teardownFunc) {\n var _this = this;\n\n var currentArg;\n var currentRes;\n return function (newArg) {\n if (!currentArg) {\n currentRes = workerFunc.call(_this, newArg);\n } else if (!isPropsEqual(currentArg, newArg)) {\n if (teardownFunc) {\n teardownFunc(currentRes);\n }\n\n var res = workerFunc.call(_this, newArg);\n\n if (!resEquality || !resEquality(res, currentRes)) {\n currentRes = res;\n }\n }\n\n currentArg = newArg;\n return currentRes;\n };\n}\n\nfunction memoizeArraylike( // used at all?\nworkerFunc, resEquality, teardownFunc) {\n var _this = this;\n\n var currentArgSets = [];\n var currentResults = [];\n return function (newArgSets) {\n var currentLen = currentArgSets.length;\n var newLen = newArgSets.length;\n var i = 0;\n\n for (; i < currentLen; i += 1) {\n if (!newArgSets[i]) {\n // one of the old sets no longer exists\n if (teardownFunc) {\n teardownFunc(currentResults[i]);\n }\n } else if (!isArraysEqual(currentArgSets[i], newArgSets[i])) {\n if (teardownFunc) {\n teardownFunc(currentResults[i]);\n }\n\n var res = workerFunc.apply(_this, newArgSets[i]);\n\n if (!resEquality || !resEquality(res, currentResults[i])) {\n currentResults[i] = res;\n }\n }\n }\n\n for (; i < newLen; i += 1) {\n currentResults[i] = workerFunc.apply(_this, newArgSets[i]);\n }\n\n currentArgSets = newArgSets;\n currentResults.splice(newLen); // remove excess\n\n return currentResults;\n };\n}\n\nfunction memoizeHashlike(workerFunc, resEquality, teardownFunc) {\n var _this = this;\n\n var currentArgHash = {};\n var currentResHash = {};\n return function (newArgHash) {\n var newResHash = {};\n\n for (var key in newArgHash) {\n if (!currentResHash[key]) {\n newResHash[key] = workerFunc.apply(_this, newArgHash[key]);\n } else if (!isArraysEqual(currentArgHash[key], newArgHash[key])) {\n if (teardownFunc) {\n teardownFunc(currentResHash[key]);\n }\n\n var res = workerFunc.apply(_this, newArgHash[key]);\n newResHash[key] = resEquality && resEquality(res, currentResHash[key]) ? currentResHash[key] : res;\n } else {\n newResHash[key] = currentResHash[key];\n }\n }\n\n currentArgHash = newArgHash;\n currentResHash = newResHash;\n return newResHash;\n };\n}\n\nvar EXTENDED_SETTINGS_AND_SEVERITIES = {\n week: 3,\n separator: 0,\n omitZeroMinute: 0,\n meridiem: 0,\n omitCommas: 0\n};\nvar STANDARD_DATE_PROP_SEVERITIES = {\n timeZoneName: 7,\n era: 6,\n year: 5,\n month: 4,\n day: 2,\n weekday: 2,\n hour: 1,\n minute: 1,\n second: 1\n};\nvar MERIDIEM_RE = /\\s*([ap])\\.?m\\.?/i; // eats up leading spaces too\n\nvar COMMA_RE = /,/g; // we need re for globalness\n\nvar MULTI_SPACE_RE = /\\s+/g;\nvar LTR_RE = /\\u200e/g; // control character\n\nvar UTC_RE = /UTC|GMT/;\n\nvar NativeFormatter =\n/** @class */\nfunction () {\n function NativeFormatter(formatSettings) {\n var standardDateProps = {};\n var extendedSettings = {};\n var severity = 0;\n\n for (var name_1 in formatSettings) {\n if (name_1 in EXTENDED_SETTINGS_AND_SEVERITIES) {\n extendedSettings[name_1] = formatSettings[name_1];\n severity = Math.max(EXTENDED_SETTINGS_AND_SEVERITIES[name_1], severity);\n } else {\n standardDateProps[name_1] = formatSettings[name_1];\n\n if (name_1 in STANDARD_DATE_PROP_SEVERITIES) {\n // TODO: what about hour12? no severity\n severity = Math.max(STANDARD_DATE_PROP_SEVERITIES[name_1], severity);\n }\n }\n }\n\n this.standardDateProps = standardDateProps;\n this.extendedSettings = extendedSettings;\n this.severity = severity;\n this.buildFormattingFunc = memoize(buildFormattingFunc);\n }\n\n NativeFormatter.prototype.format = function (date, context) {\n return this.buildFormattingFunc(this.standardDateProps, this.extendedSettings, context)(date);\n };\n\n NativeFormatter.prototype.formatRange = function (start, end, context, betterDefaultSeparator) {\n var _a = this,\n standardDateProps = _a.standardDateProps,\n extendedSettings = _a.extendedSettings;\n\n var diffSeverity = computeMarkerDiffSeverity(start.marker, end.marker, context.calendarSystem);\n\n if (!diffSeverity) {\n return this.format(start, context);\n }\n\n var biggestUnitForPartial = diffSeverity;\n\n if (biggestUnitForPartial > 1 && ( // the two dates are different in a way that's larger scale than time\n standardDateProps.year === 'numeric' || standardDateProps.year === '2-digit') && (standardDateProps.month === 'numeric' || standardDateProps.month === '2-digit') && (standardDateProps.day === 'numeric' || standardDateProps.day === '2-digit')) {\n biggestUnitForPartial = 1; // make it look like the dates are only different in terms of time\n }\n\n var full0 = this.format(start, context);\n var full1 = this.format(end, context);\n\n if (full0 === full1) {\n return full0;\n }\n\n var partialDateProps = computePartialFormattingOptions(standardDateProps, biggestUnitForPartial);\n var partialFormattingFunc = buildFormattingFunc(partialDateProps, extendedSettings, context);\n var partial0 = partialFormattingFunc(start);\n var partial1 = partialFormattingFunc(end);\n var insertion = findCommonInsertion(full0, partial0, full1, partial1);\n var separator = extendedSettings.separator || betterDefaultSeparator || context.defaultSeparator || '';\n\n if (insertion) {\n return insertion.before + partial0 + separator + partial1 + insertion.after;\n }\n\n return full0 + separator + full1;\n };\n\n NativeFormatter.prototype.getLargestUnit = function () {\n switch (this.severity) {\n case 7:\n case 6:\n case 5:\n return 'year';\n\n case 4:\n return 'month';\n\n case 3:\n return 'week';\n\n case 2:\n return 'day';\n\n default:\n return 'time';\n // really?\n }\n };\n\n return NativeFormatter;\n}();\n\nfunction buildFormattingFunc(standardDateProps, extendedSettings, context) {\n var standardDatePropCnt = Object.keys(standardDateProps).length;\n\n if (standardDatePropCnt === 1 && standardDateProps.timeZoneName === 'short') {\n return function (date) {\n return formatTimeZoneOffset(date.timeZoneOffset);\n };\n }\n\n if (standardDatePropCnt === 0 && extendedSettings.week) {\n return function (date) {\n return formatWeekNumber(context.computeWeekNumber(date.marker), context.weekText, context.weekTextLong, context.locale, extendedSettings.week);\n };\n }\n\n return buildNativeFormattingFunc(standardDateProps, extendedSettings, context);\n}\n\nfunction buildNativeFormattingFunc(standardDateProps, extendedSettings, context) {\n standardDateProps = __assign({}, standardDateProps); // copy\n\n extendedSettings = __assign({}, extendedSettings); // copy\n\n sanitizeSettings(standardDateProps, extendedSettings);\n standardDateProps.timeZone = 'UTC'; // we leverage the only guaranteed timeZone for our UTC markers\n\n var normalFormat = new Intl.DateTimeFormat(context.locale.codes, standardDateProps);\n var zeroFormat; // needed?\n\n if (extendedSettings.omitZeroMinute) {\n var zeroProps = __assign({}, standardDateProps);\n\n delete zeroProps.minute; // seconds and ms were already considered in sanitizeSettings\n\n zeroFormat = new Intl.DateTimeFormat(context.locale.codes, zeroProps);\n }\n\n return function (date) {\n var marker = date.marker;\n var format;\n\n if (zeroFormat && !marker.getUTCMinutes()) {\n format = zeroFormat;\n } else {\n format = normalFormat;\n }\n\n var s = format.format(marker);\n return postProcess(s, date, standardDateProps, extendedSettings, context);\n };\n}\n\nfunction sanitizeSettings(standardDateProps, extendedSettings) {\n // deal with a browser inconsistency where formatting the timezone\n // requires that the hour/minute be present.\n if (standardDateProps.timeZoneName) {\n if (!standardDateProps.hour) {\n standardDateProps.hour = '2-digit';\n }\n\n if (!standardDateProps.minute) {\n standardDateProps.minute = '2-digit';\n }\n } // only support short timezone names\n\n\n if (standardDateProps.timeZoneName === 'long') {\n standardDateProps.timeZoneName = 'short';\n } // if requesting to display seconds, MUST display minutes\n\n\n if (extendedSettings.omitZeroMinute && (standardDateProps.second || standardDateProps.millisecond)) {\n delete extendedSettings.omitZeroMinute;\n }\n}\n\nfunction postProcess(s, date, standardDateProps, extendedSettings, context) {\n s = s.replace(LTR_RE, ''); // remove left-to-right control chars. do first. good for other regexes\n\n if (standardDateProps.timeZoneName === 'short') {\n s = injectTzoStr(s, context.timeZone === 'UTC' || date.timeZoneOffset == null ? 'UTC' : // important to normalize for IE, which does \"GMT\"\n formatTimeZoneOffset(date.timeZoneOffset));\n }\n\n if (extendedSettings.omitCommas) {\n s = s.replace(COMMA_RE, '').trim();\n }\n\n if (extendedSettings.omitZeroMinute) {\n s = s.replace(':00', ''); // zeroFormat doesn't always achieve this\n } // ^ do anything that might create adjacent spaces before this point,\n // because MERIDIEM_RE likes to eat up loading spaces\n\n\n if (extendedSettings.meridiem === false) {\n s = s.replace(MERIDIEM_RE, '').trim();\n } else if (extendedSettings.meridiem === 'narrow') {\n // a/p\n s = s.replace(MERIDIEM_RE, function (m0, m1) {\n return m1.toLocaleLowerCase();\n });\n } else if (extendedSettings.meridiem === 'short') {\n // am/pm\n s = s.replace(MERIDIEM_RE, function (m0, m1) {\n return m1.toLocaleLowerCase() + \"m\";\n });\n } else if (extendedSettings.meridiem === 'lowercase') {\n // other meridiem transformers already converted to lowercase\n s = s.replace(MERIDIEM_RE, function (m0) {\n return m0.toLocaleLowerCase();\n });\n }\n\n s = s.replace(MULTI_SPACE_RE, ' ');\n s = s.trim();\n return s;\n}\n\nfunction injectTzoStr(s, tzoStr) {\n var replaced = false;\n s = s.replace(UTC_RE, function () {\n replaced = true;\n return tzoStr;\n }); // IE11 doesn't include UTC/GMT in the original string, so append to end\n\n if (!replaced) {\n s += \" \" + tzoStr;\n }\n\n return s;\n}\n\nfunction formatWeekNumber(num, weekText, weekTextLong, locale, display) {\n var parts = [];\n\n if (display === 'long') {\n parts.push(weekTextLong);\n } else if (display === 'short' || display === 'narrow') {\n parts.push(weekText);\n }\n\n if (display === 'long' || display === 'short') {\n parts.push(' ');\n }\n\n parts.push(locale.simpleNumberFormat.format(num));\n\n if (locale.options.direction === 'rtl') {\n // TODO: use control characters instead?\n parts.reverse();\n }\n\n return parts.join('');\n} // Range Formatting Utils\n// 0 = exactly the same\n// 1 = different by time\n// and bigger\n\n\nfunction computeMarkerDiffSeverity(d0, d1, ca) {\n if (ca.getMarkerYear(d0) !== ca.getMarkerYear(d1)) {\n return 5;\n }\n\n if (ca.getMarkerMonth(d0) !== ca.getMarkerMonth(d1)) {\n return 4;\n }\n\n if (ca.getMarkerDay(d0) !== ca.getMarkerDay(d1)) {\n return 2;\n }\n\n if (timeAsMs(d0) !== timeAsMs(d1)) {\n return 1;\n }\n\n return 0;\n}\n\nfunction computePartialFormattingOptions(options, biggestUnit) {\n var partialOptions = {};\n\n for (var name_2 in options) {\n if (!(name_2 in STANDARD_DATE_PROP_SEVERITIES) || // not a date part prop (like timeZone)\n STANDARD_DATE_PROP_SEVERITIES[name_2] <= biggestUnit) {\n partialOptions[name_2] = options[name_2];\n }\n }\n\n return partialOptions;\n}\n\nfunction findCommonInsertion(full0, partial0, full1, partial1) {\n var i0 = 0;\n\n while (i0 < full0.length) {\n var found0 = full0.indexOf(partial0, i0);\n\n if (found0 === -1) {\n break;\n }\n\n var before0 = full0.substr(0, found0);\n i0 = found0 + partial0.length;\n var after0 = full0.substr(i0);\n var i1 = 0;\n\n while (i1 < full1.length) {\n var found1 = full1.indexOf(partial1, i1);\n\n if (found1 === -1) {\n break;\n }\n\n var before1 = full1.substr(0, found1);\n i1 = found1 + partial1.length;\n var after1 = full1.substr(i1);\n\n if (before0 === before1 && after0 === after1) {\n return {\n before: before0,\n after: after0\n };\n }\n }\n }\n\n return null;\n}\n\nfunction expandZonedMarker(dateInfo, calendarSystem) {\n var a = calendarSystem.markerToArray(dateInfo.marker);\n return {\n marker: dateInfo.marker,\n timeZoneOffset: dateInfo.timeZoneOffset,\n array: a,\n year: a[0],\n month: a[1],\n day: a[2],\n hour: a[3],\n minute: a[4],\n second: a[5],\n millisecond: a[6]\n };\n}\n\nfunction createVerboseFormattingArg(start, end, context, betterDefaultSeparator) {\n var startInfo = expandZonedMarker(start, context.calendarSystem);\n var endInfo = end ? expandZonedMarker(end, context.calendarSystem) : null;\n return {\n date: startInfo,\n start: startInfo,\n end: endInfo,\n timeZone: context.timeZone,\n localeCodes: context.locale.codes,\n defaultSeparator: betterDefaultSeparator || context.defaultSeparator\n };\n}\n/*\nTODO: fix the terminology of \"formatter\" vs \"formatting func\"\n*/\n\n/*\nAt the time of instantiation, this object does not know which cmd-formatting system it will use.\nIt receives this at the time of formatting, as a setting.\n*/\n\n\nvar CmdFormatter =\n/** @class */\nfunction () {\n function CmdFormatter(cmdStr) {\n this.cmdStr = cmdStr;\n }\n\n CmdFormatter.prototype.format = function (date, context, betterDefaultSeparator) {\n return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(date, null, context, betterDefaultSeparator));\n };\n\n CmdFormatter.prototype.formatRange = function (start, end, context, betterDefaultSeparator) {\n return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(start, end, context, betterDefaultSeparator));\n };\n\n return CmdFormatter;\n}();\n\nvar FuncFormatter =\n/** @class */\nfunction () {\n function FuncFormatter(func) {\n this.func = func;\n }\n\n FuncFormatter.prototype.format = function (date, context, betterDefaultSeparator) {\n return this.func(createVerboseFormattingArg(date, null, context, betterDefaultSeparator));\n };\n\n FuncFormatter.prototype.formatRange = function (start, end, context, betterDefaultSeparator) {\n return this.func(createVerboseFormattingArg(start, end, context, betterDefaultSeparator));\n };\n\n return FuncFormatter;\n}();\n\nfunction createFormatter(input) {\n if (_typeof(input) === 'object' && input) {\n // non-null object\n return new NativeFormatter(input);\n }\n\n if (typeof input === 'string') {\n return new CmdFormatter(input);\n }\n\n if (typeof input === 'function') {\n return new FuncFormatter(input);\n }\n\n return null;\n} // base options\n// ------------\n\n\nvar BASE_OPTION_REFINERS = {\n navLinkDayClick: identity,\n navLinkWeekClick: identity,\n duration: createDuration,\n bootstrapFontAwesome: identity,\n buttonIcons: identity,\n customButtons: identity,\n defaultAllDayEventDuration: createDuration,\n defaultTimedEventDuration: createDuration,\n nextDayThreshold: createDuration,\n scrollTime: createDuration,\n scrollTimeReset: Boolean,\n slotMinTime: createDuration,\n slotMaxTime: createDuration,\n dayPopoverFormat: createFormatter,\n slotDuration: createDuration,\n snapDuration: createDuration,\n headerToolbar: identity,\n footerToolbar: identity,\n defaultRangeSeparator: String,\n titleRangeSeparator: String,\n forceEventDuration: Boolean,\n dayHeaders: Boolean,\n dayHeaderFormat: createFormatter,\n dayHeaderClassNames: identity,\n dayHeaderContent: identity,\n dayHeaderDidMount: identity,\n dayHeaderWillUnmount: identity,\n dayCellClassNames: identity,\n dayCellContent: identity,\n dayCellDidMount: identity,\n dayCellWillUnmount: identity,\n initialView: String,\n aspectRatio: Number,\n weekends: Boolean,\n weekNumberCalculation: identity,\n weekNumbers: Boolean,\n weekNumberClassNames: identity,\n weekNumberContent: identity,\n weekNumberDidMount: identity,\n weekNumberWillUnmount: identity,\n editable: Boolean,\n viewClassNames: identity,\n viewDidMount: identity,\n viewWillUnmount: identity,\n nowIndicator: Boolean,\n nowIndicatorClassNames: identity,\n nowIndicatorContent: identity,\n nowIndicatorDidMount: identity,\n nowIndicatorWillUnmount: identity,\n showNonCurrentDates: Boolean,\n lazyFetching: Boolean,\n startParam: String,\n endParam: String,\n timeZoneParam: String,\n timeZone: String,\n locales: identity,\n locale: identity,\n themeSystem: String,\n dragRevertDuration: Number,\n dragScroll: Boolean,\n allDayMaintainDuration: Boolean,\n unselectAuto: Boolean,\n dropAccept: identity,\n eventOrder: parseFieldSpecs,\n eventOrderStrict: Boolean,\n handleWindowResize: Boolean,\n windowResizeDelay: Number,\n longPressDelay: Number,\n eventDragMinDistance: Number,\n expandRows: Boolean,\n height: identity,\n contentHeight: identity,\n direction: String,\n weekNumberFormat: createFormatter,\n eventResizableFromStart: Boolean,\n displayEventTime: Boolean,\n displayEventEnd: Boolean,\n weekText: String,\n weekTextLong: String,\n progressiveEventRendering: Boolean,\n businessHours: identity,\n initialDate: identity,\n now: identity,\n eventDataTransform: identity,\n stickyHeaderDates: identity,\n stickyFooterScrollbar: identity,\n viewHeight: identity,\n defaultAllDay: Boolean,\n eventSourceFailure: identity,\n eventSourceSuccess: identity,\n eventDisplay: String,\n eventStartEditable: Boolean,\n eventDurationEditable: Boolean,\n eventOverlap: identity,\n eventConstraint: identity,\n eventAllow: identity,\n eventBackgroundColor: String,\n eventBorderColor: String,\n eventTextColor: String,\n eventColor: String,\n eventClassNames: identity,\n eventContent: identity,\n eventDidMount: identity,\n eventWillUnmount: identity,\n selectConstraint: identity,\n selectOverlap: identity,\n selectAllow: identity,\n droppable: Boolean,\n unselectCancel: String,\n slotLabelFormat: identity,\n slotLaneClassNames: identity,\n slotLaneContent: identity,\n slotLaneDidMount: identity,\n slotLaneWillUnmount: identity,\n slotLabelClassNames: identity,\n slotLabelContent: identity,\n slotLabelDidMount: identity,\n slotLabelWillUnmount: identity,\n dayMaxEvents: identity,\n dayMaxEventRows: identity,\n dayMinWidth: Number,\n slotLabelInterval: createDuration,\n allDayText: String,\n allDayClassNames: identity,\n allDayContent: identity,\n allDayDidMount: identity,\n allDayWillUnmount: identity,\n slotMinWidth: Number,\n navLinks: Boolean,\n eventTimeFormat: createFormatter,\n rerenderDelay: Number,\n moreLinkText: identity,\n moreLinkHint: identity,\n selectMinDistance: Number,\n selectable: Boolean,\n selectLongPressDelay: Number,\n eventLongPressDelay: Number,\n selectMirror: Boolean,\n eventMaxStack: Number,\n eventMinHeight: Number,\n eventMinWidth: Number,\n eventShortHeight: Number,\n slotEventOverlap: Boolean,\n plugins: identity,\n firstDay: Number,\n dayCount: Number,\n dateAlignment: String,\n dateIncrement: createDuration,\n hiddenDays: identity,\n monthMode: Boolean,\n fixedWeekCount: Boolean,\n validRange: identity,\n visibleRange: identity,\n titleFormat: identity,\n eventInteractive: Boolean,\n // only used by list-view, but languages define the value, so we need it in base options\n noEventsText: String,\n viewHint: identity,\n navLinkHint: identity,\n closeHint: String,\n timeHint: String,\n eventHint: String,\n moreLinkClick: identity,\n moreLinkClassNames: identity,\n moreLinkContent: identity,\n moreLinkDidMount: identity,\n moreLinkWillUnmount: identity\n}; // do NOT give a type here. need `typeof BASE_OPTION_DEFAULTS` to give real results.\n// raw values.\n\nvar BASE_OPTION_DEFAULTS = {\n eventDisplay: 'auto',\n defaultRangeSeparator: ' - ',\n titleRangeSeparator: \" \\u2013 \",\n defaultTimedEventDuration: '01:00:00',\n defaultAllDayEventDuration: {\n day: 1\n },\n forceEventDuration: false,\n nextDayThreshold: '00:00:00',\n dayHeaders: true,\n initialView: '',\n aspectRatio: 1.35,\n headerToolbar: {\n start: 'title',\n center: '',\n end: 'today prev,next'\n },\n weekends: true,\n weekNumbers: false,\n weekNumberCalculation: 'local',\n editable: false,\n nowIndicator: false,\n scrollTime: '06:00:00',\n scrollTimeReset: true,\n slotMinTime: '00:00:00',\n slotMaxTime: '24:00:00',\n showNonCurrentDates: true,\n lazyFetching: true,\n startParam: 'start',\n endParam: 'end',\n timeZoneParam: 'timeZone',\n timeZone: 'local',\n locales: [],\n locale: '',\n themeSystem: 'standard',\n dragRevertDuration: 500,\n dragScroll: true,\n allDayMaintainDuration: false,\n unselectAuto: true,\n dropAccept: '*',\n eventOrder: 'start,-duration,allDay,title',\n dayPopoverFormat: {\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n },\n handleWindowResize: true,\n windowResizeDelay: 100,\n longPressDelay: 1000,\n eventDragMinDistance: 5,\n expandRows: false,\n navLinks: false,\n selectable: false,\n eventMinHeight: 15,\n eventMinWidth: 30,\n eventShortHeight: 30\n}; // calendar listeners\n// ------------------\n\nvar CALENDAR_LISTENER_REFINERS = {\n datesSet: identity,\n eventsSet: identity,\n eventAdd: identity,\n eventChange: identity,\n eventRemove: identity,\n windowResize: identity,\n eventClick: identity,\n eventMouseEnter: identity,\n eventMouseLeave: identity,\n select: identity,\n unselect: identity,\n loading: identity,\n // internal\n _unmount: identity,\n _beforeprint: identity,\n _afterprint: identity,\n _noEventDrop: identity,\n _noEventResize: identity,\n _resize: identity,\n _scrollRequest: identity\n}; // calendar-specific options\n// -------------------------\n\nvar CALENDAR_OPTION_REFINERS = {\n buttonText: identity,\n buttonHints: identity,\n views: identity,\n plugins: identity,\n initialEvents: identity,\n events: identity,\n eventSources: identity\n};\nvar COMPLEX_OPTION_COMPARATORS = {\n headerToolbar: isMaybeObjectsEqual,\n footerToolbar: isMaybeObjectsEqual,\n buttonText: isMaybeObjectsEqual,\n buttonHints: isMaybeObjectsEqual,\n buttonIcons: isMaybeObjectsEqual,\n dateIncrement: isMaybeObjectsEqual\n};\n\nfunction isMaybeObjectsEqual(a, b) {\n if (_typeof(a) === 'object' && _typeof(b) === 'object' && a && b) {\n // both non-null objects\n return isPropsEqual(a, b);\n }\n\n return a === b;\n} // view-specific options\n// ---------------------\n\n\nvar VIEW_OPTION_REFINERS = {\n type: String,\n component: identity,\n buttonText: String,\n buttonTextKey: String,\n dateProfileGeneratorClass: identity,\n usesMinMaxTime: Boolean,\n classNames: identity,\n content: identity,\n didMount: identity,\n willUnmount: identity\n}; // util funcs\n// ----------------------------------------------------------------------------------------------------\n\nfunction mergeRawOptions(optionSets) {\n return mergeProps(optionSets, COMPLEX_OPTION_COMPARATORS);\n}\n\nfunction refineProps(input, refiners) {\n var refined = {};\n var extra = {};\n\n for (var propName in refiners) {\n if (propName in input) {\n refined[propName] = refiners[propName](input[propName]);\n }\n }\n\n for (var propName in input) {\n if (!(propName in refiners)) {\n extra[propName] = input[propName];\n }\n }\n\n return {\n refined: refined,\n extra: extra\n };\n}\n\nfunction identity(raw) {\n return raw;\n}\n\nfunction parseEvents(rawEvents, eventSource, context, allowOpenRange) {\n var eventStore = createEmptyEventStore();\n var eventRefiners = buildEventRefiners(context);\n\n for (var _i = 0, rawEvents_1 = rawEvents; _i < rawEvents_1.length; _i++) {\n var rawEvent = rawEvents_1[_i];\n var tuple = parseEvent(rawEvent, eventSource, context, allowOpenRange, eventRefiners);\n\n if (tuple) {\n eventTupleToStore(tuple, eventStore);\n }\n }\n\n return eventStore;\n}\n\nfunction eventTupleToStore(tuple, eventStore) {\n if (eventStore === void 0) {\n eventStore = createEmptyEventStore();\n }\n\n eventStore.defs[tuple.def.defId] = tuple.def;\n\n if (tuple.instance) {\n eventStore.instances[tuple.instance.instanceId] = tuple.instance;\n }\n\n return eventStore;\n} // retrieves events that have the same groupId as the instance specified by `instanceId`\n// or they are the same as the instance.\n// why might instanceId not be in the store? an event from another calendar?\n\n\nfunction getRelevantEvents(eventStore, instanceId) {\n var instance = eventStore.instances[instanceId];\n\n if (instance) {\n var def_1 = eventStore.defs[instance.defId]; // get events/instances with same group\n\n var newStore = filterEventStoreDefs(eventStore, function (lookDef) {\n return isEventDefsGrouped(def_1, lookDef);\n }); // add the original\n // TODO: wish we could use eventTupleToStore or something like it\n\n newStore.defs[def_1.defId] = def_1;\n newStore.instances[instance.instanceId] = instance;\n return newStore;\n }\n\n return createEmptyEventStore();\n}\n\nfunction isEventDefsGrouped(def0, def1) {\n return Boolean(def0.groupId && def0.groupId === def1.groupId);\n}\n\nfunction createEmptyEventStore() {\n return {\n defs: {},\n instances: {}\n };\n}\n\nfunction mergeEventStores(store0, store1) {\n return {\n defs: __assign(__assign({}, store0.defs), store1.defs),\n instances: __assign(__assign({}, store0.instances), store1.instances)\n };\n}\n\nfunction filterEventStoreDefs(eventStore, filterFunc) {\n var defs = filterHash(eventStore.defs, filterFunc);\n var instances = filterHash(eventStore.instances, function (instance) {\n return defs[instance.defId] // still exists?\n ;\n });\n return {\n defs: defs,\n instances: instances\n };\n}\n\nfunction excludeSubEventStore(master, sub) {\n var defs = master.defs,\n instances = master.instances;\n var filteredDefs = {};\n var filteredInstances = {};\n\n for (var defId in defs) {\n if (!sub.defs[defId]) {\n // not explicitly excluded\n filteredDefs[defId] = defs[defId];\n }\n }\n\n for (var instanceId in instances) {\n if (!sub.instances[instanceId] && // not explicitly excluded\n filteredDefs[instances[instanceId].defId] // def wasn't filtered away\n ) {\n filteredInstances[instanceId] = instances[instanceId];\n }\n }\n\n return {\n defs: filteredDefs,\n instances: filteredInstances\n };\n}\n\nfunction normalizeConstraint(input, context) {\n if (Array.isArray(input)) {\n return parseEvents(input, null, context, true); // allowOpenRange=true\n }\n\n if (_typeof(input) === 'object' && input) {\n // non-null object\n return parseEvents([input], null, context, true); // allowOpenRange=true\n }\n\n if (input != null) {\n return String(input);\n }\n\n return null;\n}\n\nfunction parseClassNames(raw) {\n if (Array.isArray(raw)) {\n return raw;\n }\n\n if (typeof raw === 'string') {\n return raw.split(/\\s+/);\n }\n\n return [];\n} // TODO: better called \"EventSettings\" or \"EventConfig\"\n// TODO: move this file into structs\n// TODO: separate constraint/overlap/allow, because selection uses only that, not other props\n\n\nvar EVENT_UI_REFINERS = {\n display: String,\n editable: Boolean,\n startEditable: Boolean,\n durationEditable: Boolean,\n constraint: identity,\n overlap: identity,\n allow: identity,\n className: parseClassNames,\n classNames: parseClassNames,\n color: String,\n backgroundColor: String,\n borderColor: String,\n textColor: String\n};\nvar EMPTY_EVENT_UI = {\n display: null,\n startEditable: null,\n durationEditable: null,\n constraints: [],\n overlap: null,\n allows: [],\n backgroundColor: '',\n borderColor: '',\n textColor: '',\n classNames: []\n};\n\nfunction createEventUi(refined, context) {\n var constraint = normalizeConstraint(refined.constraint, context);\n return {\n display: refined.display || null,\n startEditable: refined.startEditable != null ? refined.startEditable : refined.editable,\n durationEditable: refined.durationEditable != null ? refined.durationEditable : refined.editable,\n constraints: constraint != null ? [constraint] : [],\n overlap: refined.overlap != null ? refined.overlap : null,\n allows: refined.allow != null ? [refined.allow] : [],\n backgroundColor: refined.backgroundColor || refined.color || '',\n borderColor: refined.borderColor || refined.color || '',\n textColor: refined.textColor || '',\n classNames: (refined.className || []).concat(refined.classNames || []) // join singular and plural\n\n };\n} // TODO: prevent against problems with <2 args!\n\n\nfunction combineEventUis(uis) {\n return uis.reduce(combineTwoEventUis, EMPTY_EVENT_UI);\n}\n\nfunction combineTwoEventUis(item0, item1) {\n return {\n display: item1.display != null ? item1.display : item0.display,\n startEditable: item1.startEditable != null ? item1.startEditable : item0.startEditable,\n durationEditable: item1.durationEditable != null ? item1.durationEditable : item0.durationEditable,\n constraints: item0.constraints.concat(item1.constraints),\n overlap: typeof item1.overlap === 'boolean' ? item1.overlap : item0.overlap,\n allows: item0.allows.concat(item1.allows),\n backgroundColor: item1.backgroundColor || item0.backgroundColor,\n borderColor: item1.borderColor || item0.borderColor,\n textColor: item1.textColor || item0.textColor,\n classNames: item0.classNames.concat(item1.classNames)\n };\n}\n\nvar EVENT_NON_DATE_REFINERS = {\n id: String,\n groupId: String,\n title: String,\n url: String,\n interactive: Boolean\n};\nvar EVENT_DATE_REFINERS = {\n start: identity,\n end: identity,\n date: identity,\n allDay: Boolean\n};\n\nvar EVENT_REFINERS = __assign(__assign(__assign({}, EVENT_NON_DATE_REFINERS), EVENT_DATE_REFINERS), {\n extendedProps: identity\n});\n\nfunction parseEvent(raw, eventSource, context, allowOpenRange, refiners) {\n if (refiners === void 0) {\n refiners = buildEventRefiners(context);\n }\n\n var _a = refineEventDef(raw, context, refiners),\n refined = _a.refined,\n extra = _a.extra;\n\n var defaultAllDay = computeIsDefaultAllDay(eventSource, context);\n var recurringRes = parseRecurring(refined, defaultAllDay, context.dateEnv, context.pluginHooks.recurringTypes);\n\n if (recurringRes) {\n var def = parseEventDef(refined, extra, eventSource ? eventSource.sourceId : '', recurringRes.allDay, Boolean(recurringRes.duration), context);\n def.recurringDef = {\n typeId: recurringRes.typeId,\n typeData: recurringRes.typeData,\n duration: recurringRes.duration\n };\n return {\n def: def,\n instance: null\n };\n }\n\n var singleRes = parseSingle(refined, defaultAllDay, context, allowOpenRange);\n\n if (singleRes) {\n var def = parseEventDef(refined, extra, eventSource ? eventSource.sourceId : '', singleRes.allDay, singleRes.hasEnd, context);\n var instance = createEventInstance(def.defId, singleRes.range, singleRes.forcedStartTzo, singleRes.forcedEndTzo);\n return {\n def: def,\n instance: instance\n };\n }\n\n return null;\n}\n\nfunction refineEventDef(raw, context, refiners) {\n if (refiners === void 0) {\n refiners = buildEventRefiners(context);\n }\n\n return refineProps(raw, refiners);\n}\n\nfunction buildEventRefiners(context) {\n return __assign(__assign(__assign({}, EVENT_UI_REFINERS), EVENT_REFINERS), context.pluginHooks.eventRefiners);\n}\n/*\nWill NOT populate extendedProps with the leftover properties.\nWill NOT populate date-related props.\n*/\n\n\nfunction parseEventDef(refined, extra, sourceId, allDay, hasEnd, context) {\n var def = {\n title: refined.title || '',\n groupId: refined.groupId || '',\n publicId: refined.id || '',\n url: refined.url || '',\n recurringDef: null,\n defId: guid(),\n sourceId: sourceId,\n allDay: allDay,\n hasEnd: hasEnd,\n interactive: refined.interactive,\n ui: createEventUi(refined, context),\n extendedProps: __assign(__assign({}, refined.extendedProps || {}), extra)\n };\n\n for (var _i = 0, _a = context.pluginHooks.eventDefMemberAdders; _i < _a.length; _i++) {\n var memberAdder = _a[_i];\n\n __assign(def, memberAdder(refined));\n } // help out EventApi from having user modify props\n\n\n Object.freeze(def.ui.classNames);\n Object.freeze(def.extendedProps);\n return def;\n}\n\nfunction parseSingle(refined, defaultAllDay, context, allowOpenRange) {\n var allDay = refined.allDay;\n var startMeta;\n var startMarker = null;\n var hasEnd = false;\n var endMeta;\n var endMarker = null;\n var startInput = refined.start != null ? refined.start : refined.date;\n startMeta = context.dateEnv.createMarkerMeta(startInput);\n\n if (startMeta) {\n startMarker = startMeta.marker;\n } else if (!allowOpenRange) {\n return null;\n }\n\n if (refined.end != null) {\n endMeta = context.dateEnv.createMarkerMeta(refined.end);\n }\n\n if (allDay == null) {\n if (defaultAllDay != null) {\n allDay = defaultAllDay;\n } else {\n // fall back to the date props LAST\n allDay = (!startMeta || startMeta.isTimeUnspecified) && (!endMeta || endMeta.isTimeUnspecified);\n }\n }\n\n if (allDay && startMarker) {\n startMarker = startOfDay(startMarker);\n }\n\n if (endMeta) {\n endMarker = endMeta.marker;\n\n if (allDay) {\n endMarker = startOfDay(endMarker);\n }\n\n if (startMarker && endMarker <= startMarker) {\n endMarker = null;\n }\n }\n\n if (endMarker) {\n hasEnd = true;\n } else if (!allowOpenRange) {\n hasEnd = context.options.forceEventDuration || false;\n endMarker = context.dateEnv.add(startMarker, allDay ? context.options.defaultAllDayEventDuration : context.options.defaultTimedEventDuration);\n }\n\n return {\n allDay: allDay,\n hasEnd: hasEnd,\n range: {\n start: startMarker,\n end: endMarker\n },\n forcedStartTzo: startMeta ? startMeta.forcedTzo : null,\n forcedEndTzo: endMeta ? endMeta.forcedTzo : null\n };\n}\n\nfunction computeIsDefaultAllDay(eventSource, context) {\n var res = null;\n\n if (eventSource) {\n res = eventSource.defaultAllDay;\n }\n\n if (res == null) {\n res = context.options.defaultAllDay;\n }\n\n return res;\n}\n/* Date stuff that doesn't belong in datelib core\n----------------------------------------------------------------------------------------------------------------------*/\n// given a timed range, computes an all-day range that has the same exact duration,\n// but whose start time is aligned with the start of the day.\n\n\nfunction computeAlignedDayRange(timedRange) {\n var dayCnt = Math.floor(diffDays(timedRange.start, timedRange.end)) || 1;\n var start = startOfDay(timedRange.start);\n var end = addDays(start, dayCnt);\n return {\n start: start,\n end: end\n };\n} // given a timed range, computes an all-day range based on how for the end date bleeds into the next day\n// TODO: give nextDayThreshold a default arg\n\n\nfunction computeVisibleDayRange(timedRange, nextDayThreshold) {\n if (nextDayThreshold === void 0) {\n nextDayThreshold = createDuration(0);\n }\n\n var startDay = null;\n var endDay = null;\n\n if (timedRange.end) {\n endDay = startOfDay(timedRange.end);\n var endTimeMS = timedRange.end.valueOf() - endDay.valueOf(); // # of milliseconds into `endDay`\n // If the end time is actually inclusively part of the next day and is equal to or\n // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`.\n // Otherwise, leaving it as inclusive will cause it to exclude `endDay`.\n\n if (endTimeMS && endTimeMS >= asRoughMs(nextDayThreshold)) {\n endDay = addDays(endDay, 1);\n }\n }\n\n if (timedRange.start) {\n startDay = startOfDay(timedRange.start); // the beginning of the day the range starts\n // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day.\n\n if (endDay && endDay <= startDay) {\n endDay = addDays(startDay, 1);\n }\n }\n\n return {\n start: startDay,\n end: endDay\n };\n} // spans from one day into another?\n\n\nfunction isMultiDayRange(range) {\n var visibleRange = computeVisibleDayRange(range);\n return diffDays(visibleRange.start, visibleRange.end) > 1;\n}\n\nfunction diffDates(date0, date1, dateEnv, largeUnit) {\n if (largeUnit === 'year') {\n return createDuration(dateEnv.diffWholeYears(date0, date1), 'year');\n }\n\n if (largeUnit === 'month') {\n return createDuration(dateEnv.diffWholeMonths(date0, date1), 'month');\n }\n\n return diffDayAndTime(date0, date1); // returns a duration\n}\n\nfunction parseRange(input, dateEnv) {\n var start = null;\n var end = null;\n\n if (input.start) {\n start = dateEnv.createMarker(input.start);\n }\n\n if (input.end) {\n end = dateEnv.createMarker(input.end);\n }\n\n if (!start && !end) {\n return null;\n }\n\n if (start && end && end < start) {\n return null;\n }\n\n return {\n start: start,\n end: end\n };\n} // SIDE-EFFECT: will mutate ranges.\n// Will return a new array result.\n\n\nfunction invertRanges(ranges, constraintRange) {\n var invertedRanges = [];\n var start = constraintRange.start; // the end of the previous range. the start of the new range\n\n var i;\n var dateRange; // ranges need to be in order. required for our date-walking algorithm\n\n ranges.sort(compareRanges);\n\n for (i = 0; i < ranges.length; i += 1) {\n dateRange = ranges[i]; // add the span of time before the event (if there is any)\n\n if (dateRange.start > start) {\n // compare millisecond time (skip any ambig logic)\n invertedRanges.push({\n start: start,\n end: dateRange.start\n });\n }\n\n if (dateRange.end > start) {\n start = dateRange.end;\n }\n } // add the span of time after the last event (if there is any)\n\n\n if (start < constraintRange.end) {\n // compare millisecond time (skip any ambig logic)\n invertedRanges.push({\n start: start,\n end: constraintRange.end\n });\n }\n\n return invertedRanges;\n}\n\nfunction compareRanges(range0, range1) {\n return range0.start.valueOf() - range1.start.valueOf(); // earlier ranges go first\n}\n\nfunction intersectRanges(range0, range1) {\n var start = range0.start,\n end = range0.end;\n var newRange = null;\n\n if (range1.start !== null) {\n if (start === null) {\n start = range1.start;\n } else {\n start = new Date(Math.max(start.valueOf(), range1.start.valueOf()));\n }\n }\n\n if (range1.end != null) {\n if (end === null) {\n end = range1.end;\n } else {\n end = new Date(Math.min(end.valueOf(), range1.end.valueOf()));\n }\n }\n\n if (start === null || end === null || start < end) {\n newRange = {\n start: start,\n end: end\n };\n }\n\n return newRange;\n}\n\nfunction rangesEqual(range0, range1) {\n return (range0.start === null ? null : range0.start.valueOf()) === (range1.start === null ? null : range1.start.valueOf()) && (range0.end === null ? null : range0.end.valueOf()) === (range1.end === null ? null : range1.end.valueOf());\n}\n\nfunction rangesIntersect(range0, range1) {\n return (range0.end === null || range1.start === null || range0.end > range1.start) && (range0.start === null || range1.end === null || range0.start < range1.end);\n}\n\nfunction rangeContainsRange(outerRange, innerRange) {\n return (outerRange.start === null || innerRange.start !== null && innerRange.start >= outerRange.start) && (outerRange.end === null || innerRange.end !== null && innerRange.end <= outerRange.end);\n}\n\nfunction rangeContainsMarker(range, date) {\n return (range.start === null || date >= range.start) && (range.end === null || date < range.end);\n} // If the given date is not within the given range, move it inside.\n// (If it's past the end, make it one millisecond before the end).\n\n\nfunction constrainMarkerToRange(date, range) {\n if (range.start != null && date < range.start) {\n return range.start;\n }\n\n if (range.end != null && date >= range.end) {\n return new Date(range.end.valueOf() - 1);\n }\n\n return date;\n}\n/*\nSpecifying nextDayThreshold signals that all-day ranges should be sliced.\n*/\n\n\nfunction sliceEventStore(eventStore, eventUiBases, framingRange, nextDayThreshold) {\n var inverseBgByGroupId = {};\n var inverseBgByDefId = {};\n var defByGroupId = {};\n var bgRanges = [];\n var fgRanges = [];\n var eventUis = compileEventUis(eventStore.defs, eventUiBases);\n\n for (var defId in eventStore.defs) {\n var def = eventStore.defs[defId];\n var ui = eventUis[def.defId];\n\n if (ui.display === 'inverse-background') {\n if (def.groupId) {\n inverseBgByGroupId[def.groupId] = [];\n\n if (!defByGroupId[def.groupId]) {\n defByGroupId[def.groupId] = def;\n }\n } else {\n inverseBgByDefId[defId] = [];\n }\n }\n }\n\n for (var instanceId in eventStore.instances) {\n var instance = eventStore.instances[instanceId];\n var def = eventStore.defs[instance.defId];\n var ui = eventUis[def.defId];\n var origRange = instance.range;\n var normalRange = !def.allDay && nextDayThreshold ? computeVisibleDayRange(origRange, nextDayThreshold) : origRange;\n var slicedRange = intersectRanges(normalRange, framingRange);\n\n if (slicedRange) {\n if (ui.display === 'inverse-background') {\n if (def.groupId) {\n inverseBgByGroupId[def.groupId].push(slicedRange);\n } else {\n inverseBgByDefId[instance.defId].push(slicedRange);\n }\n } else if (ui.display !== 'none') {\n (ui.display === 'background' ? bgRanges : fgRanges).push({\n def: def,\n ui: ui,\n instance: instance,\n range: slicedRange,\n isStart: normalRange.start && normalRange.start.valueOf() === slicedRange.start.valueOf(),\n isEnd: normalRange.end && normalRange.end.valueOf() === slicedRange.end.valueOf()\n });\n }\n }\n }\n\n for (var groupId in inverseBgByGroupId) {\n // BY GROUP\n var ranges = inverseBgByGroupId[groupId];\n var invertedRanges = invertRanges(ranges, framingRange);\n\n for (var _i = 0, invertedRanges_1 = invertedRanges; _i < invertedRanges_1.length; _i++) {\n var invertedRange = invertedRanges_1[_i];\n var def = defByGroupId[groupId];\n var ui = eventUis[def.defId];\n bgRanges.push({\n def: def,\n ui: ui,\n instance: null,\n range: invertedRange,\n isStart: false,\n isEnd: false\n });\n }\n }\n\n for (var defId in inverseBgByDefId) {\n var ranges = inverseBgByDefId[defId];\n var invertedRanges = invertRanges(ranges, framingRange);\n\n for (var _a = 0, invertedRanges_2 = invertedRanges; _a < invertedRanges_2.length; _a++) {\n var invertedRange = invertedRanges_2[_a];\n bgRanges.push({\n def: eventStore.defs[defId],\n ui: eventUis[defId],\n instance: null,\n range: invertedRange,\n isStart: false,\n isEnd: false\n });\n }\n }\n\n return {\n bg: bgRanges,\n fg: fgRanges\n };\n}\n\nfunction hasBgRendering(def) {\n return def.ui.display === 'background' || def.ui.display === 'inverse-background';\n}\n\nfunction setElSeg(el, seg) {\n el.fcSeg = seg;\n}\n\nfunction getElSeg(el) {\n return el.fcSeg || el.parentNode.fcSeg || // for the harness\n null;\n} // event ui computation\n\n\nfunction compileEventUis(eventDefs, eventUiBases) {\n return mapHash(eventDefs, function (eventDef) {\n return compileEventUi(eventDef, eventUiBases);\n });\n}\n\nfunction compileEventUi(eventDef, eventUiBases) {\n var uis = [];\n\n if (eventUiBases['']) {\n uis.push(eventUiBases['']);\n }\n\n if (eventUiBases[eventDef.defId]) {\n uis.push(eventUiBases[eventDef.defId]);\n }\n\n uis.push(eventDef.ui);\n return combineEventUis(uis);\n}\n\nfunction sortEventSegs(segs, eventOrderSpecs) {\n var objs = segs.map(buildSegCompareObj);\n objs.sort(function (obj0, obj1) {\n return compareByFieldSpecs(obj0, obj1, eventOrderSpecs);\n });\n return objs.map(function (c) {\n return c._seg;\n });\n} // returns a object with all primitive props that can be compared\n\n\nfunction buildSegCompareObj(seg) {\n var eventRange = seg.eventRange;\n var eventDef = eventRange.def;\n var range = eventRange.instance ? eventRange.instance.range : eventRange.range;\n var start = range.start ? range.start.valueOf() : 0; // TODO: better support for open-range events\n\n var end = range.end ? range.end.valueOf() : 0; // \"\n\n return __assign(__assign(__assign({}, eventDef.extendedProps), eventDef), {\n id: eventDef.publicId,\n start: start,\n end: end,\n duration: end - start,\n allDay: Number(eventDef.allDay),\n _seg: seg\n });\n}\n\nfunction computeSegDraggable(seg, context) {\n var pluginHooks = context.pluginHooks;\n var transformers = pluginHooks.isDraggableTransformers;\n var _a = seg.eventRange,\n def = _a.def,\n ui = _a.ui;\n var val = ui.startEditable;\n\n for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) {\n var transformer = transformers_1[_i];\n val = transformer(val, def, ui, context);\n }\n\n return val;\n}\n\nfunction computeSegStartResizable(seg, context) {\n return seg.isStart && seg.eventRange.ui.durationEditable && context.options.eventResizableFromStart;\n}\n\nfunction computeSegEndResizable(seg, context) {\n return seg.isEnd && seg.eventRange.ui.durationEditable;\n}\n\nfunction buildSegTimeText(seg, timeFormat, context, defaultDisplayEventTime, // defaults to true\ndefaultDisplayEventEnd, // defaults to true\nstartOverride, endOverride) {\n var dateEnv = context.dateEnv,\n options = context.options;\n var displayEventTime = options.displayEventTime,\n displayEventEnd = options.displayEventEnd;\n var eventDef = seg.eventRange.def;\n var eventInstance = seg.eventRange.instance;\n\n if (displayEventTime == null) {\n displayEventTime = defaultDisplayEventTime !== false;\n }\n\n if (displayEventEnd == null) {\n displayEventEnd = defaultDisplayEventEnd !== false;\n }\n\n var wholeEventStart = eventInstance.range.start;\n var wholeEventEnd = eventInstance.range.end;\n var segStart = startOverride || seg.start || seg.eventRange.range.start;\n var segEnd = endOverride || seg.end || seg.eventRange.range.end;\n var isStartDay = startOfDay(wholeEventStart).valueOf() === startOfDay(segStart).valueOf();\n var isEndDay = startOfDay(addMs(wholeEventEnd, -1)).valueOf() === startOfDay(addMs(segEnd, -1)).valueOf();\n\n if (displayEventTime && !eventDef.allDay && (isStartDay || isEndDay)) {\n segStart = isStartDay ? wholeEventStart : segStart;\n segEnd = isEndDay ? wholeEventEnd : segEnd;\n\n if (displayEventEnd && eventDef.hasEnd) {\n return dateEnv.formatRange(segStart, segEnd, timeFormat, {\n forcedStartTzo: startOverride ? null : eventInstance.forcedStartTzo,\n forcedEndTzo: endOverride ? null : eventInstance.forcedEndTzo\n });\n }\n\n return dateEnv.format(segStart, timeFormat, {\n forcedTzo: startOverride ? null : eventInstance.forcedStartTzo // nooooo, same\n\n });\n }\n\n return '';\n}\n\nfunction getSegMeta(seg, todayRange, nowDate) {\n var segRange = seg.eventRange.range;\n return {\n isPast: segRange.end < (nowDate || todayRange.start),\n isFuture: segRange.start >= (nowDate || todayRange.end),\n isToday: todayRange && rangeContainsMarker(todayRange, segRange.start)\n };\n}\n\nfunction getEventClassNames(props) {\n var classNames = ['fc-event'];\n\n if (props.isMirror) {\n classNames.push('fc-event-mirror');\n }\n\n if (props.isDraggable) {\n classNames.push('fc-event-draggable');\n }\n\n if (props.isStartResizable || props.isEndResizable) {\n classNames.push('fc-event-resizable');\n }\n\n if (props.isDragging) {\n classNames.push('fc-event-dragging');\n }\n\n if (props.isResizing) {\n classNames.push('fc-event-resizing');\n }\n\n if (props.isSelected) {\n classNames.push('fc-event-selected');\n }\n\n if (props.isStart) {\n classNames.push('fc-event-start');\n }\n\n if (props.isEnd) {\n classNames.push('fc-event-end');\n }\n\n if (props.isPast) {\n classNames.push('fc-event-past');\n }\n\n if (props.isToday) {\n classNames.push('fc-event-today');\n }\n\n if (props.isFuture) {\n classNames.push('fc-event-future');\n }\n\n return classNames;\n}\n\nfunction buildEventRangeKey(eventRange) {\n return eventRange.instance ? eventRange.instance.instanceId : eventRange.def.defId + \":\" + eventRange.range.start.toISOString(); // inverse-background events don't have specific instances. TODO: better solution\n}\n\nfunction getSegAnchorAttrs(seg, context) {\n var _a = seg.eventRange,\n def = _a.def,\n instance = _a.instance;\n var url = def.url;\n\n if (url) {\n return {\n href: url\n };\n }\n\n var emitter = context.emitter,\n options = context.options;\n var eventInteractive = options.eventInteractive;\n\n if (eventInteractive == null) {\n eventInteractive = def.interactive;\n\n if (eventInteractive == null) {\n eventInteractive = Boolean(emitter.hasHandlers('eventClick'));\n }\n } // mock what happens in EventClicking\n\n\n if (eventInteractive) {\n // only attach keyboard-related handlers because click handler is already done in EventClicking\n return createAriaKeyboardAttrs(function (ev) {\n emitter.trigger('eventClick', {\n el: ev.target,\n event: new EventApi(context, def, instance),\n jsEvent: ev,\n view: context.viewApi\n });\n });\n }\n\n return {};\n}\n\nvar STANDARD_PROPS = {\n start: identity,\n end: identity,\n allDay: Boolean\n};\n\nfunction parseDateSpan(raw, dateEnv, defaultDuration) {\n var span = parseOpenDateSpan(raw, dateEnv);\n var range = span.range;\n\n if (!range.start) {\n return null;\n }\n\n if (!range.end) {\n if (defaultDuration == null) {\n return null;\n }\n\n range.end = dateEnv.add(range.start, defaultDuration);\n }\n\n return span;\n}\n/*\nTODO: somehow combine with parseRange?\nWill return null if the start/end props were present but parsed invalidly.\n*/\n\n\nfunction parseOpenDateSpan(raw, dateEnv) {\n var _a = refineProps(raw, STANDARD_PROPS),\n standardProps = _a.refined,\n extra = _a.extra;\n\n var startMeta = standardProps.start ? dateEnv.createMarkerMeta(standardProps.start) : null;\n var endMeta = standardProps.end ? dateEnv.createMarkerMeta(standardProps.end) : null;\n var allDay = standardProps.allDay;\n\n if (allDay == null) {\n allDay = startMeta && startMeta.isTimeUnspecified && (!endMeta || endMeta.isTimeUnspecified);\n }\n\n return __assign({\n range: {\n start: startMeta ? startMeta.marker : null,\n end: endMeta ? endMeta.marker : null\n },\n allDay: allDay\n }, extra);\n}\n\nfunction isDateSpansEqual(span0, span1) {\n return rangesEqual(span0.range, span1.range) && span0.allDay === span1.allDay && isSpanPropsEqual(span0, span1);\n} // the NON-DATE-RELATED props\n\n\nfunction isSpanPropsEqual(span0, span1) {\n for (var propName in span1) {\n if (propName !== 'range' && propName !== 'allDay') {\n if (span0[propName] !== span1[propName]) {\n return false;\n }\n }\n } // are there any props that span0 has that span1 DOESN'T have?\n // both have range/allDay, so no need to special-case.\n\n\n for (var propName in span0) {\n if (!(propName in span1)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction buildDateSpanApi(span, dateEnv) {\n return __assign(__assign({}, buildRangeApi(span.range, dateEnv, span.allDay)), {\n allDay: span.allDay\n });\n}\n\nfunction buildRangeApiWithTimeZone(range, dateEnv, omitTime) {\n return __assign(__assign({}, buildRangeApi(range, dateEnv, omitTime)), {\n timeZone: dateEnv.timeZone\n });\n}\n\nfunction buildRangeApi(range, dateEnv, omitTime) {\n return {\n start: dateEnv.toDate(range.start),\n end: dateEnv.toDate(range.end),\n startStr: dateEnv.formatIso(range.start, {\n omitTime: omitTime\n }),\n endStr: dateEnv.formatIso(range.end, {\n omitTime: omitTime\n })\n };\n}\n\nfunction fabricateEventRange(dateSpan, eventUiBases, context) {\n var res = refineEventDef({\n editable: false\n }, context);\n var def = parseEventDef(res.refined, res.extra, '', // sourceId\n dateSpan.allDay, true, // hasEnd\n context);\n return {\n def: def,\n ui: compileEventUi(def, eventUiBases),\n instance: createEventInstance(def.defId, dateSpan.range),\n range: dateSpan.range,\n isStart: true,\n isEnd: true\n };\n}\n\nfunction triggerDateSelect(selection, pev, context) {\n context.emitter.trigger('select', __assign(__assign({}, buildDateSpanApiWithContext(selection, context)), {\n jsEvent: pev ? pev.origEvent : null,\n view: context.viewApi || context.calendarApi.view\n }));\n}\n\nfunction triggerDateUnselect(pev, context) {\n context.emitter.trigger('unselect', {\n jsEvent: pev ? pev.origEvent : null,\n view: context.viewApi || context.calendarApi.view\n });\n}\n\nfunction buildDateSpanApiWithContext(dateSpan, context) {\n var props = {};\n\n for (var _i = 0, _a = context.pluginHooks.dateSpanTransforms; _i < _a.length; _i++) {\n var transform = _a[_i];\n\n __assign(props, transform(dateSpan, context));\n }\n\n __assign(props, buildDateSpanApi(dateSpan, context.dateEnv));\n\n return props;\n} // Given an event's allDay status and start date, return what its fallback end date should be.\n// TODO: rename to computeDefaultEventEnd\n\n\nfunction getDefaultEventEnd(allDay, marker, context) {\n var dateEnv = context.dateEnv,\n options = context.options;\n var end = marker;\n\n if (allDay) {\n end = startOfDay(end);\n end = dateEnv.add(end, options.defaultAllDayEventDuration);\n } else {\n end = dateEnv.add(end, options.defaultTimedEventDuration);\n }\n\n return end;\n} // applies the mutation to ALL defs/instances within the event store\n\n\nfunction applyMutationToEventStore(eventStore, eventConfigBase, mutation, context) {\n var eventConfigs = compileEventUis(eventStore.defs, eventConfigBase);\n var dest = createEmptyEventStore();\n\n for (var defId in eventStore.defs) {\n var def = eventStore.defs[defId];\n dest.defs[defId] = applyMutationToEventDef(def, eventConfigs[defId], mutation, context);\n }\n\n for (var instanceId in eventStore.instances) {\n var instance = eventStore.instances[instanceId];\n var def = dest.defs[instance.defId]; // important to grab the newly modified def\n\n dest.instances[instanceId] = applyMutationToEventInstance(instance, def, eventConfigs[instance.defId], mutation, context);\n }\n\n return dest;\n}\n\nfunction applyMutationToEventDef(eventDef, eventConfig, mutation, context) {\n var standardProps = mutation.standardProps || {}; // if hasEnd has not been specified, guess a good value based on deltas.\n // if duration will change, there's no way the default duration will persist,\n // and thus, we need to mark the event as having a real end\n\n if (standardProps.hasEnd == null && eventConfig.durationEditable && (mutation.startDelta || mutation.endDelta)) {\n standardProps.hasEnd = true; // TODO: is this mutation okay?\n }\n\n var copy = __assign(__assign(__assign({}, eventDef), standardProps), {\n ui: __assign(__assign({}, eventDef.ui), standardProps.ui)\n });\n\n if (mutation.extendedProps) {\n copy.extendedProps = __assign(__assign({}, copy.extendedProps), mutation.extendedProps);\n }\n\n for (var _i = 0, _a = context.pluginHooks.eventDefMutationAppliers; _i < _a.length; _i++) {\n var applier = _a[_i];\n applier(copy, mutation, context);\n }\n\n if (!copy.hasEnd && context.options.forceEventDuration) {\n copy.hasEnd = true;\n }\n\n return copy;\n}\n\nfunction applyMutationToEventInstance(eventInstance, eventDef, // must first be modified by applyMutationToEventDef\neventConfig, mutation, context) {\n var dateEnv = context.dateEnv;\n var forceAllDay = mutation.standardProps && mutation.standardProps.allDay === true;\n var clearEnd = mutation.standardProps && mutation.standardProps.hasEnd === false;\n\n var copy = __assign({}, eventInstance);\n\n if (forceAllDay) {\n copy.range = computeAlignedDayRange(copy.range);\n }\n\n if (mutation.datesDelta && eventConfig.startEditable) {\n copy.range = {\n start: dateEnv.add(copy.range.start, mutation.datesDelta),\n end: dateEnv.add(copy.range.end, mutation.datesDelta)\n };\n }\n\n if (mutation.startDelta && eventConfig.durationEditable) {\n copy.range = {\n start: dateEnv.add(copy.range.start, mutation.startDelta),\n end: copy.range.end\n };\n }\n\n if (mutation.endDelta && eventConfig.durationEditable) {\n copy.range = {\n start: copy.range.start,\n end: dateEnv.add(copy.range.end, mutation.endDelta)\n };\n }\n\n if (clearEnd) {\n copy.range = {\n start: copy.range.start,\n end: getDefaultEventEnd(eventDef.allDay, copy.range.start, context)\n };\n } // in case event was all-day but the supplied deltas were not\n // better util for this?\n\n\n if (eventDef.allDay) {\n copy.range = {\n start: startOfDay(copy.range.start),\n end: startOfDay(copy.range.end)\n };\n } // handle invalid durations\n\n\n if (copy.range.end < copy.range.start) {\n copy.range.end = getDefaultEventEnd(eventDef.allDay, copy.range.start, context);\n }\n\n return copy;\n} // no public types yet. when there are, export from:\n// import {} from './api-type-deps'\n\n\nvar ViewApi =\n/** @class */\nfunction () {\n function ViewApi(type, getCurrentData, dateEnv) {\n this.type = type;\n this.getCurrentData = getCurrentData;\n this.dateEnv = dateEnv;\n }\n\n Object.defineProperty(ViewApi.prototype, \"calendar\", {\n get: function get() {\n return this.getCurrentData().calendarApi;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ViewApi.prototype, \"title\", {\n get: function get() {\n return this.getCurrentData().viewTitle;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ViewApi.prototype, \"activeStart\", {\n get: function get() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.start);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ViewApi.prototype, \"activeEnd\", {\n get: function get() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.end);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ViewApi.prototype, \"currentStart\", {\n get: function get() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.start);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ViewApi.prototype, \"currentEnd\", {\n get: function get() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.end);\n },\n enumerable: false,\n configurable: true\n });\n\n ViewApi.prototype.getOption = function (name) {\n return this.getCurrentData().options[name]; // are the view-specific options\n };\n\n return ViewApi;\n}();\n\nvar EVENT_SOURCE_REFINERS = {\n id: String,\n defaultAllDay: Boolean,\n url: String,\n format: String,\n events: identity,\n eventDataTransform: identity,\n // for any network-related sources\n success: identity,\n failure: identity\n};\n\nfunction parseEventSource(raw, context, refiners) {\n if (refiners === void 0) {\n refiners = buildEventSourceRefiners(context);\n }\n\n var rawObj;\n\n if (typeof raw === 'string') {\n rawObj = {\n url: raw\n };\n } else if (typeof raw === 'function' || Array.isArray(raw)) {\n rawObj = {\n events: raw\n };\n } else if (_typeof(raw) === 'object' && raw) {\n // not null\n rawObj = raw;\n }\n\n if (rawObj) {\n var _a = refineProps(rawObj, refiners),\n refined = _a.refined,\n extra = _a.extra;\n\n var metaRes = buildEventSourceMeta(refined, context);\n\n if (metaRes) {\n return {\n _raw: raw,\n isFetching: false,\n latestFetchId: '',\n fetchRange: null,\n defaultAllDay: refined.defaultAllDay,\n eventDataTransform: refined.eventDataTransform,\n success: refined.success,\n failure: refined.failure,\n publicId: refined.id || '',\n sourceId: guid(),\n sourceDefId: metaRes.sourceDefId,\n meta: metaRes.meta,\n ui: createEventUi(refined, context),\n extendedProps: extra\n };\n }\n }\n\n return null;\n}\n\nfunction buildEventSourceRefiners(context) {\n return __assign(__assign(__assign({}, EVENT_UI_REFINERS), EVENT_SOURCE_REFINERS), context.pluginHooks.eventSourceRefiners);\n}\n\nfunction buildEventSourceMeta(raw, context) {\n var defs = context.pluginHooks.eventSourceDefs;\n\n for (var i = defs.length - 1; i >= 0; i -= 1) {\n // later-added plugins take precedence\n var def = defs[i];\n var meta = def.parseMeta(raw);\n\n if (meta) {\n return {\n sourceDefId: i,\n meta: meta\n };\n }\n }\n\n return null;\n}\n\nfunction reduceCurrentDate(currentDate, action) {\n switch (action.type) {\n case 'CHANGE_DATE':\n return action.dateMarker;\n\n default:\n return currentDate;\n }\n}\n\nfunction getInitialDate(options, dateEnv) {\n var initialDateInput = options.initialDate; // compute the initial ambig-timezone date\n\n if (initialDateInput != null) {\n return dateEnv.createMarker(initialDateInput);\n }\n\n return getNow(options.now, dateEnv); // getNow already returns unzoned\n}\n\nfunction getNow(nowInput, dateEnv) {\n if (typeof nowInput === 'function') {\n nowInput = nowInput();\n }\n\n if (nowInput == null) {\n return dateEnv.createNowMarker();\n }\n\n return dateEnv.createMarker(nowInput);\n}\n\nvar CalendarApi =\n/** @class */\nfunction () {\n function CalendarApi() {}\n\n CalendarApi.prototype.getCurrentData = function () {\n return this.currentDataManager.getCurrentData();\n };\n\n CalendarApi.prototype.dispatch = function (action) {\n return this.currentDataManager.dispatch(action);\n };\n\n Object.defineProperty(CalendarApi.prototype, \"view\", {\n get: function get() {\n return this.getCurrentData().viewApi;\n } // for public API\n ,\n enumerable: false,\n configurable: true\n });\n\n CalendarApi.prototype.batchRendering = function (callback) {\n callback();\n };\n\n CalendarApi.prototype.updateSize = function () {\n this.trigger('_resize', true);\n }; // Options\n // -----------------------------------------------------------------------------------------------------------------\n\n\n CalendarApi.prototype.setOption = function (name, val) {\n this.dispatch({\n type: 'SET_OPTION',\n optionName: name,\n rawOptionValue: val\n });\n };\n\n CalendarApi.prototype.getOption = function (name) {\n return this.currentDataManager.currentCalendarOptionsInput[name];\n };\n\n CalendarApi.prototype.getAvailableLocaleCodes = function () {\n return Object.keys(this.getCurrentData().availableRawLocales);\n }; // Trigger\n // -----------------------------------------------------------------------------------------------------------------\n\n\n CalendarApi.prototype.on = function (handlerName, handler) {\n var currentDataManager = this.currentDataManager;\n\n if (currentDataManager.currentCalendarOptionsRefiners[handlerName]) {\n currentDataManager.emitter.on(handlerName, handler);\n } else {\n console.warn(\"Unknown listener name '\" + handlerName + \"'\");\n }\n };\n\n CalendarApi.prototype.off = function (handlerName, handler) {\n this.currentDataManager.emitter.off(handlerName, handler);\n }; // not meant for public use\n\n\n CalendarApi.prototype.trigger = function (handlerName) {\n var _a;\n\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n (_a = this.currentDataManager.emitter).trigger.apply(_a, __spreadArray([handlerName], args));\n }; // View\n // -----------------------------------------------------------------------------------------------------------------\n\n\n CalendarApi.prototype.changeView = function (viewType, dateOrRange) {\n var _this = this;\n\n this.batchRendering(function () {\n _this.unselect();\n\n if (dateOrRange) {\n if (dateOrRange.start && dateOrRange.end) {\n // a range\n _this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType: viewType\n });\n\n _this.dispatch({\n type: 'SET_OPTION',\n optionName: 'visibleRange',\n rawOptionValue: dateOrRange\n });\n } else {\n var dateEnv = _this.getCurrentData().dateEnv;\n\n _this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType: viewType,\n dateMarker: dateEnv.createMarker(dateOrRange)\n });\n }\n } else {\n _this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType: viewType\n });\n }\n });\n }; // Forces navigation to a view for the given date.\n // `viewType` can be a specific view name or a generic one like \"week\" or \"day\".\n // needs to change\n\n\n CalendarApi.prototype.zoomTo = function (dateMarker, viewType) {\n var state = this.getCurrentData();\n var spec;\n viewType = viewType || 'day'; // day is default zoom\n\n spec = state.viewSpecs[viewType] || this.getUnitViewSpec(viewType);\n this.unselect();\n\n if (spec) {\n this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType: spec.type,\n dateMarker: dateMarker\n });\n } else {\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: dateMarker\n });\n }\n }; // Given a duration singular unit, like \"week\" or \"day\", finds a matching view spec.\n // Preference is given to views that have corresponding buttons.\n\n\n CalendarApi.prototype.getUnitViewSpec = function (unit) {\n var _a = this.getCurrentData(),\n viewSpecs = _a.viewSpecs,\n toolbarConfig = _a.toolbarConfig;\n\n var viewTypes = [].concat(toolbarConfig.header ? toolbarConfig.header.viewsWithButtons : [], toolbarConfig.footer ? toolbarConfig.footer.viewsWithButtons : []);\n var i;\n var spec;\n\n for (var viewType in viewSpecs) {\n viewTypes.push(viewType);\n }\n\n for (i = 0; i < viewTypes.length; i += 1) {\n spec = viewSpecs[viewTypes[i]];\n\n if (spec) {\n if (spec.singleUnit === unit) {\n return spec;\n }\n }\n }\n\n return null;\n }; // Current Date\n // -----------------------------------------------------------------------------------------------------------------\n\n\n CalendarApi.prototype.prev = function () {\n this.unselect();\n this.dispatch({\n type: 'PREV'\n });\n };\n\n CalendarApi.prototype.next = function () {\n this.unselect();\n this.dispatch({\n type: 'NEXT'\n });\n };\n\n CalendarApi.prototype.prevYear = function () {\n var state = this.getCurrentData();\n this.unselect();\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: state.dateEnv.addYears(state.currentDate, -1)\n });\n };\n\n CalendarApi.prototype.nextYear = function () {\n var state = this.getCurrentData();\n this.unselect();\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: state.dateEnv.addYears(state.currentDate, 1)\n });\n };\n\n CalendarApi.prototype.today = function () {\n var state = this.getCurrentData();\n this.unselect();\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: getNow(state.calendarOptions.now, state.dateEnv)\n });\n };\n\n CalendarApi.prototype.gotoDate = function (zonedDateInput) {\n var state = this.getCurrentData();\n this.unselect();\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: state.dateEnv.createMarker(zonedDateInput)\n });\n };\n\n CalendarApi.prototype.incrementDate = function (deltaInput) {\n var state = this.getCurrentData();\n var delta = createDuration(deltaInput);\n\n if (delta) {\n // else, warn about invalid input?\n this.unselect();\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: state.dateEnv.add(state.currentDate, delta)\n });\n }\n }; // for external API\n\n\n CalendarApi.prototype.getDate = function () {\n var state = this.getCurrentData();\n return state.dateEnv.toDate(state.currentDate);\n }; // Date Formatting Utils\n // -----------------------------------------------------------------------------------------------------------------\n\n\n CalendarApi.prototype.formatDate = function (d, formatter) {\n var dateEnv = this.getCurrentData().dateEnv;\n return dateEnv.format(dateEnv.createMarker(d), createFormatter(formatter));\n }; // `settings` is for formatter AND isEndExclusive\n\n\n CalendarApi.prototype.formatRange = function (d0, d1, settings) {\n var dateEnv = this.getCurrentData().dateEnv;\n return dateEnv.formatRange(dateEnv.createMarker(d0), dateEnv.createMarker(d1), createFormatter(settings), settings);\n };\n\n CalendarApi.prototype.formatIso = function (d, omitTime) {\n var dateEnv = this.getCurrentData().dateEnv;\n return dateEnv.formatIso(dateEnv.createMarker(d), {\n omitTime: omitTime\n });\n }; // Date Selection / Event Selection / DayClick\n // -----------------------------------------------------------------------------------------------------------------\n // this public method receives start/end dates in any format, with any timezone\n // NOTE: args were changed from v3\n\n\n CalendarApi.prototype.select = function (dateOrObj, endDate) {\n var selectionInput;\n\n if (endDate == null) {\n if (dateOrObj.start != null) {\n selectionInput = dateOrObj;\n } else {\n selectionInput = {\n start: dateOrObj,\n end: null\n };\n }\n } else {\n selectionInput = {\n start: dateOrObj,\n end: endDate\n };\n }\n\n var state = this.getCurrentData();\n var selection = parseDateSpan(selectionInput, state.dateEnv, createDuration({\n days: 1\n }));\n\n if (selection) {\n // throw parse error otherwise?\n this.dispatch({\n type: 'SELECT_DATES',\n selection: selection\n });\n triggerDateSelect(selection, null, state);\n }\n }; // public method\n\n\n CalendarApi.prototype.unselect = function (pev) {\n var state = this.getCurrentData();\n\n if (state.dateSelection) {\n this.dispatch({\n type: 'UNSELECT_DATES'\n });\n triggerDateUnselect(pev, state);\n }\n }; // Public Events API\n // -----------------------------------------------------------------------------------------------------------------\n\n\n CalendarApi.prototype.addEvent = function (eventInput, sourceInput) {\n if (eventInput instanceof EventApi) {\n var def = eventInput._def;\n var instance = eventInput._instance;\n var currentData = this.getCurrentData(); // not already present? don't want to add an old snapshot\n\n if (!currentData.eventStore.defs[def.defId]) {\n this.dispatch({\n type: 'ADD_EVENTS',\n eventStore: eventTupleToStore({\n def: def,\n instance: instance\n }) // TODO: better util for two args?\n\n });\n this.triggerEventAdd(eventInput);\n }\n\n return eventInput;\n }\n\n var state = this.getCurrentData();\n var eventSource;\n\n if (sourceInput instanceof EventSourceApi) {\n eventSource = sourceInput.internalEventSource;\n } else if (typeof sourceInput === 'boolean') {\n if (sourceInput) {\n // true. part of the first event source\n eventSource = hashValuesToArray(state.eventSources)[0];\n }\n } else if (sourceInput != null) {\n // an ID. accepts a number too\n var sourceApi = this.getEventSourceById(sourceInput); // TODO: use an internal function\n\n if (!sourceApi) {\n console.warn(\"Could not find an event source with ID \\\"\" + sourceInput + \"\\\"\"); // TODO: test\n\n return null;\n }\n\n eventSource = sourceApi.internalEventSource;\n }\n\n var tuple = parseEvent(eventInput, eventSource, state, false);\n\n if (tuple) {\n var newEventApi = new EventApi(state, tuple.def, tuple.def.recurringDef ? null : tuple.instance);\n this.dispatch({\n type: 'ADD_EVENTS',\n eventStore: eventTupleToStore(tuple)\n });\n this.triggerEventAdd(newEventApi);\n return newEventApi;\n }\n\n return null;\n };\n\n CalendarApi.prototype.triggerEventAdd = function (eventApi) {\n var _this = this;\n\n var emitter = this.getCurrentData().emitter;\n emitter.trigger('eventAdd', {\n event: eventApi,\n relatedEvents: [],\n revert: function revert() {\n _this.dispatch({\n type: 'REMOVE_EVENTS',\n eventStore: eventApiToStore(eventApi)\n });\n }\n });\n }; // TODO: optimize\n\n\n CalendarApi.prototype.getEventById = function (id) {\n var state = this.getCurrentData();\n var _a = state.eventStore,\n defs = _a.defs,\n instances = _a.instances;\n id = String(id);\n\n for (var defId in defs) {\n var def = defs[defId];\n\n if (def.publicId === id) {\n if (def.recurringDef) {\n return new EventApi(state, def, null);\n }\n\n for (var instanceId in instances) {\n var instance = instances[instanceId];\n\n if (instance.defId === def.defId) {\n return new EventApi(state, def, instance);\n }\n }\n }\n }\n\n return null;\n };\n\n CalendarApi.prototype.getEvents = function () {\n var currentData = this.getCurrentData();\n return buildEventApis(currentData.eventStore, currentData);\n };\n\n CalendarApi.prototype.removeAllEvents = function () {\n this.dispatch({\n type: 'REMOVE_ALL_EVENTS'\n });\n }; // Public Event Sources API\n // -----------------------------------------------------------------------------------------------------------------\n\n\n CalendarApi.prototype.getEventSources = function () {\n var state = this.getCurrentData();\n var sourceHash = state.eventSources;\n var sourceApis = [];\n\n for (var internalId in sourceHash) {\n sourceApis.push(new EventSourceApi(state, sourceHash[internalId]));\n }\n\n return sourceApis;\n };\n\n CalendarApi.prototype.getEventSourceById = function (id) {\n var state = this.getCurrentData();\n var sourceHash = state.eventSources;\n id = String(id);\n\n for (var sourceId in sourceHash) {\n if (sourceHash[sourceId].publicId === id) {\n return new EventSourceApi(state, sourceHash[sourceId]);\n }\n }\n\n return null;\n };\n\n CalendarApi.prototype.addEventSource = function (sourceInput) {\n var state = this.getCurrentData();\n\n if (sourceInput instanceof EventSourceApi) {\n // not already present? don't want to add an old snapshot\n if (!state.eventSources[sourceInput.internalEventSource.sourceId]) {\n this.dispatch({\n type: 'ADD_EVENT_SOURCES',\n sources: [sourceInput.internalEventSource]\n });\n }\n\n return sourceInput;\n }\n\n var eventSource = parseEventSource(sourceInput, state);\n\n if (eventSource) {\n // TODO: error otherwise?\n this.dispatch({\n type: 'ADD_EVENT_SOURCES',\n sources: [eventSource]\n });\n return new EventSourceApi(state, eventSource);\n }\n\n return null;\n };\n\n CalendarApi.prototype.removeAllEventSources = function () {\n this.dispatch({\n type: 'REMOVE_ALL_EVENT_SOURCES'\n });\n };\n\n CalendarApi.prototype.refetchEvents = function () {\n this.dispatch({\n type: 'FETCH_EVENT_SOURCES',\n isRefetch: true\n });\n }; // Scroll\n // -----------------------------------------------------------------------------------------------------------------\n\n\n CalendarApi.prototype.scrollToTime = function (timeInput) {\n var time = createDuration(timeInput);\n\n if (time) {\n this.trigger('_scrollRequest', {\n time: time\n });\n }\n };\n\n return CalendarApi;\n}();\n\nvar EventApi =\n/** @class */\nfunction () {\n // instance will be null if expressing a recurring event that has no current instances,\n // OR if trying to validate an incoming external event that has no dates assigned\n function EventApi(context, def, instance) {\n this._context = context;\n this._def = def;\n this._instance = instance || null;\n }\n /*\n TODO: make event struct more responsible for this\n */\n\n\n EventApi.prototype.setProp = function (name, val) {\n var _a, _b;\n\n if (name in EVENT_DATE_REFINERS) {\n console.warn('Could not set date-related prop \\'name\\'. Use one of the date-related methods instead.'); // TODO: make proper aliasing system?\n } else if (name === 'id') {\n val = EVENT_NON_DATE_REFINERS[name](val);\n this.mutate({\n standardProps: {\n publicId: val\n } // hardcoded internal name\n\n });\n } else if (name in EVENT_NON_DATE_REFINERS) {\n val = EVENT_NON_DATE_REFINERS[name](val);\n this.mutate({\n standardProps: (_a = {}, _a[name] = val, _a)\n });\n } else if (name in EVENT_UI_REFINERS) {\n var ui = EVENT_UI_REFINERS[name](val);\n\n if (name === 'color') {\n ui = {\n backgroundColor: val,\n borderColor: val\n };\n } else if (name === 'editable') {\n ui = {\n startEditable: val,\n durationEditable: val\n };\n } else {\n ui = (_b = {}, _b[name] = val, _b);\n }\n\n this.mutate({\n standardProps: {\n ui: ui\n }\n });\n } else {\n console.warn(\"Could not set prop '\" + name + \"'. Use setExtendedProp instead.\");\n }\n };\n\n EventApi.prototype.setExtendedProp = function (name, val) {\n var _a;\n\n this.mutate({\n extendedProps: (_a = {}, _a[name] = val, _a)\n });\n };\n\n EventApi.prototype.setStart = function (startInput, options) {\n if (options === void 0) {\n options = {};\n }\n\n var dateEnv = this._context.dateEnv;\n var start = dateEnv.createMarker(startInput);\n\n if (start && this._instance) {\n // TODO: warning if parsed bad\n var instanceRange = this._instance.range;\n var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); // what if parsed bad!?\n\n if (options.maintainDuration) {\n this.mutate({\n datesDelta: startDelta\n });\n } else {\n this.mutate({\n startDelta: startDelta\n });\n }\n }\n };\n\n EventApi.prototype.setEnd = function (endInput, options) {\n if (options === void 0) {\n options = {};\n }\n\n var dateEnv = this._context.dateEnv;\n var end;\n\n if (endInput != null) {\n end = dateEnv.createMarker(endInput);\n\n if (!end) {\n return; // TODO: warning if parsed bad\n }\n }\n\n if (this._instance) {\n if (end) {\n var endDelta = diffDates(this._instance.range.end, end, dateEnv, options.granularity);\n this.mutate({\n endDelta: endDelta\n });\n } else {\n this.mutate({\n standardProps: {\n hasEnd: false\n }\n });\n }\n }\n };\n\n EventApi.prototype.setDates = function (startInput, endInput, options) {\n if (options === void 0) {\n options = {};\n }\n\n var dateEnv = this._context.dateEnv;\n var standardProps = {\n allDay: options.allDay\n };\n var start = dateEnv.createMarker(startInput);\n var end;\n\n if (!start) {\n return; // TODO: warning if parsed bad\n }\n\n if (endInput != null) {\n end = dateEnv.createMarker(endInput);\n\n if (!end) {\n // TODO: warning if parsed bad\n return;\n }\n }\n\n if (this._instance) {\n var instanceRange = this._instance.range; // when computing the diff for an event being converted to all-day,\n // compute diff off of the all-day values the way event-mutation does.\n\n if (options.allDay === true) {\n instanceRange = computeAlignedDayRange(instanceRange);\n }\n\n var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity);\n\n if (end) {\n var endDelta = diffDates(instanceRange.end, end, dateEnv, options.granularity);\n\n if (durationsEqual(startDelta, endDelta)) {\n this.mutate({\n datesDelta: startDelta,\n standardProps: standardProps\n });\n } else {\n this.mutate({\n startDelta: startDelta,\n endDelta: endDelta,\n standardProps: standardProps\n });\n }\n } else {\n // means \"clear the end\"\n standardProps.hasEnd = false;\n this.mutate({\n datesDelta: startDelta,\n standardProps: standardProps\n });\n }\n }\n };\n\n EventApi.prototype.moveStart = function (deltaInput) {\n var delta = createDuration(deltaInput);\n\n if (delta) {\n // TODO: warning if parsed bad\n this.mutate({\n startDelta: delta\n });\n }\n };\n\n EventApi.prototype.moveEnd = function (deltaInput) {\n var delta = createDuration(deltaInput);\n\n if (delta) {\n // TODO: warning if parsed bad\n this.mutate({\n endDelta: delta\n });\n }\n };\n\n EventApi.prototype.moveDates = function (deltaInput) {\n var delta = createDuration(deltaInput);\n\n if (delta) {\n // TODO: warning if parsed bad\n this.mutate({\n datesDelta: delta\n });\n }\n };\n\n EventApi.prototype.setAllDay = function (allDay, options) {\n if (options === void 0) {\n options = {};\n }\n\n var standardProps = {\n allDay: allDay\n };\n var maintainDuration = options.maintainDuration;\n\n if (maintainDuration == null) {\n maintainDuration = this._context.options.allDayMaintainDuration;\n }\n\n if (this._def.allDay !== allDay) {\n standardProps.hasEnd = maintainDuration;\n }\n\n this.mutate({\n standardProps: standardProps\n });\n };\n\n EventApi.prototype.formatRange = function (formatInput) {\n var dateEnv = this._context.dateEnv;\n var instance = this._instance;\n var formatter = createFormatter(formatInput);\n\n if (this._def.hasEnd) {\n return dateEnv.formatRange(instance.range.start, instance.range.end, formatter, {\n forcedStartTzo: instance.forcedStartTzo,\n forcedEndTzo: instance.forcedEndTzo\n });\n }\n\n return dateEnv.format(instance.range.start, formatter, {\n forcedTzo: instance.forcedStartTzo\n });\n };\n\n EventApi.prototype.mutate = function (mutation) {\n var instance = this._instance;\n\n if (instance) {\n var def = this._def;\n var context_1 = this._context;\n var eventStore_1 = context_1.getCurrentData().eventStore;\n var relevantEvents = getRelevantEvents(eventStore_1, instance.instanceId);\n var eventConfigBase = {\n '': {\n display: '',\n startEditable: true,\n durationEditable: true,\n constraints: [],\n overlap: null,\n allows: [],\n backgroundColor: '',\n borderColor: '',\n textColor: '',\n classNames: []\n }\n };\n relevantEvents = applyMutationToEventStore(relevantEvents, eventConfigBase, mutation, context_1);\n var oldEvent = new EventApi(context_1, def, instance); // snapshot\n\n this._def = relevantEvents.defs[def.defId];\n this._instance = relevantEvents.instances[instance.instanceId];\n context_1.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: relevantEvents\n });\n context_1.emitter.trigger('eventChange', {\n oldEvent: oldEvent,\n event: this,\n relatedEvents: buildEventApis(relevantEvents, context_1, instance),\n revert: function revert() {\n context_1.dispatch({\n type: 'RESET_EVENTS',\n eventStore: eventStore_1\n });\n }\n });\n }\n };\n\n EventApi.prototype.remove = function () {\n var context = this._context;\n var asStore = eventApiToStore(this);\n context.dispatch({\n type: 'REMOVE_EVENTS',\n eventStore: asStore\n });\n context.emitter.trigger('eventRemove', {\n event: this,\n relatedEvents: [],\n revert: function revert() {\n context.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: asStore\n });\n }\n });\n };\n\n Object.defineProperty(EventApi.prototype, \"source\", {\n get: function get() {\n var sourceId = this._def.sourceId;\n\n if (sourceId) {\n return new EventSourceApi(this._context, this._context.getCurrentData().eventSources[sourceId]);\n }\n\n return null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"start\", {\n get: function get() {\n return this._instance ? this._context.dateEnv.toDate(this._instance.range.start) : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"end\", {\n get: function get() {\n return this._instance && this._def.hasEnd ? this._context.dateEnv.toDate(this._instance.range.end) : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"startStr\", {\n get: function get() {\n var instance = this._instance;\n\n if (instance) {\n return this._context.dateEnv.formatIso(instance.range.start, {\n omitTime: this._def.allDay,\n forcedTzo: instance.forcedStartTzo\n });\n }\n\n return '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"endStr\", {\n get: function get() {\n var instance = this._instance;\n\n if (instance && this._def.hasEnd) {\n return this._context.dateEnv.formatIso(instance.range.end, {\n omitTime: this._def.allDay,\n forcedTzo: instance.forcedEndTzo\n });\n }\n\n return '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"id\", {\n // computable props that all access the def\n // TODO: find a TypeScript-compatible way to do this at scale\n get: function get() {\n return this._def.publicId;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"groupId\", {\n get: function get() {\n return this._def.groupId;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"allDay\", {\n get: function get() {\n return this._def.allDay;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"title\", {\n get: function get() {\n return this._def.title;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"url\", {\n get: function get() {\n return this._def.url;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"display\", {\n get: function get() {\n return this._def.ui.display || 'auto';\n } // bad. just normalize the type earlier\n ,\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"startEditable\", {\n get: function get() {\n return this._def.ui.startEditable;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"durationEditable\", {\n get: function get() {\n return this._def.ui.durationEditable;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"constraint\", {\n get: function get() {\n return this._def.ui.constraints[0] || null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"overlap\", {\n get: function get() {\n return this._def.ui.overlap;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"allow\", {\n get: function get() {\n return this._def.ui.allows[0] || null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"backgroundColor\", {\n get: function get() {\n return this._def.ui.backgroundColor;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"borderColor\", {\n get: function get() {\n return this._def.ui.borderColor;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"textColor\", {\n get: function get() {\n return this._def.ui.textColor;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"classNames\", {\n // NOTE: user can't modify these because Object.freeze was called in event-def parsing\n get: function get() {\n return this._def.ui.classNames;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"extendedProps\", {\n get: function get() {\n return this._def.extendedProps;\n },\n enumerable: false,\n configurable: true\n });\n\n EventApi.prototype.toPlainObject = function (settings) {\n if (settings === void 0) {\n settings = {};\n }\n\n var def = this._def;\n var ui = def.ui;\n\n var _a = this,\n startStr = _a.startStr,\n endStr = _a.endStr;\n\n var res = {};\n\n if (def.title) {\n res.title = def.title;\n }\n\n if (startStr) {\n res.start = startStr;\n }\n\n if (endStr) {\n res.end = endStr;\n }\n\n if (def.publicId) {\n res.id = def.publicId;\n }\n\n if (def.groupId) {\n res.groupId = def.groupId;\n }\n\n if (def.url) {\n res.url = def.url;\n }\n\n if (ui.display && ui.display !== 'auto') {\n res.display = ui.display;\n } // TODO: what about recurring-event properties???\n // TODO: include startEditable/durationEditable/constraint/overlap/allow\n\n\n if (settings.collapseColor && ui.backgroundColor && ui.backgroundColor === ui.borderColor) {\n res.color = ui.backgroundColor;\n } else {\n if (ui.backgroundColor) {\n res.backgroundColor = ui.backgroundColor;\n }\n\n if (ui.borderColor) {\n res.borderColor = ui.borderColor;\n }\n }\n\n if (ui.textColor) {\n res.textColor = ui.textColor;\n }\n\n if (ui.classNames.length) {\n res.classNames = ui.classNames;\n }\n\n if (Object.keys(def.extendedProps).length) {\n if (settings.collapseExtendedProps) {\n __assign(res, def.extendedProps);\n } else {\n res.extendedProps = def.extendedProps;\n }\n }\n\n return res;\n };\n\n EventApi.prototype.toJSON = function () {\n return this.toPlainObject();\n };\n\n return EventApi;\n}();\n\nfunction eventApiToStore(eventApi) {\n var _a, _b;\n\n var def = eventApi._def;\n var instance = eventApi._instance;\n return {\n defs: (_a = {}, _a[def.defId] = def, _a),\n instances: instance ? (_b = {}, _b[instance.instanceId] = instance, _b) : {}\n };\n}\n\nfunction buildEventApis(eventStore, context, excludeInstance) {\n var defs = eventStore.defs,\n instances = eventStore.instances;\n var eventApis = [];\n var excludeInstanceId = excludeInstance ? excludeInstance.instanceId : '';\n\n for (var id in instances) {\n var instance = instances[id];\n var def = defs[instance.defId];\n\n if (instance.instanceId !== excludeInstanceId) {\n eventApis.push(new EventApi(context, def, instance));\n }\n }\n\n return eventApis;\n}\n\nvar calendarSystemClassMap = {};\n\nfunction registerCalendarSystem(name, theClass) {\n calendarSystemClassMap[name] = theClass;\n}\n\nfunction createCalendarSystem(name) {\n return new calendarSystemClassMap[name]();\n}\n\nvar GregorianCalendarSystem =\n/** @class */\nfunction () {\n function GregorianCalendarSystem() {}\n\n GregorianCalendarSystem.prototype.getMarkerYear = function (d) {\n return d.getUTCFullYear();\n };\n\n GregorianCalendarSystem.prototype.getMarkerMonth = function (d) {\n return d.getUTCMonth();\n };\n\n GregorianCalendarSystem.prototype.getMarkerDay = function (d) {\n return d.getUTCDate();\n };\n\n GregorianCalendarSystem.prototype.arrayToMarker = function (arr) {\n return arrayToUtcDate(arr);\n };\n\n GregorianCalendarSystem.prototype.markerToArray = function (marker) {\n return dateToUtcArray(marker);\n };\n\n return GregorianCalendarSystem;\n}();\n\nregisterCalendarSystem('gregory', GregorianCalendarSystem);\nvar ISO_RE = /^\\s*(\\d{4})(-?(\\d{2})(-?(\\d{2})([T ](\\d{2}):?(\\d{2})(:?(\\d{2})(\\.(\\d+))?)?(Z|(([-+])(\\d{2})(:?(\\d{2}))?))?)?)?)?$/;\n\nfunction parse(str) {\n var m = ISO_RE.exec(str);\n\n if (m) {\n var marker = new Date(Date.UTC(Number(m[1]), m[3] ? Number(m[3]) - 1 : 0, Number(m[5] || 1), Number(m[7] || 0), Number(m[8] || 0), Number(m[10] || 0), m[12] ? Number(\"0.\" + m[12]) * 1000 : 0));\n\n if (isValidDate(marker)) {\n var timeZoneOffset = null;\n\n if (m[13]) {\n timeZoneOffset = (m[15] === '-' ? -1 : 1) * (Number(m[16] || 0) * 60 + Number(m[18] || 0));\n }\n\n return {\n marker: marker,\n isTimeUnspecified: !m[6],\n timeZoneOffset: timeZoneOffset\n };\n }\n }\n\n return null;\n}\n\nvar DateEnv =\n/** @class */\nfunction () {\n function DateEnv(settings) {\n var timeZone = this.timeZone = settings.timeZone;\n var isNamedTimeZone = timeZone !== 'local' && timeZone !== 'UTC';\n\n if (settings.namedTimeZoneImpl && isNamedTimeZone) {\n this.namedTimeZoneImpl = new settings.namedTimeZoneImpl(timeZone);\n }\n\n this.canComputeOffset = Boolean(!isNamedTimeZone || this.namedTimeZoneImpl);\n this.calendarSystem = createCalendarSystem(settings.calendarSystem);\n this.locale = settings.locale;\n this.weekDow = settings.locale.week.dow;\n this.weekDoy = settings.locale.week.doy;\n\n if (settings.weekNumberCalculation === 'ISO') {\n this.weekDow = 1;\n this.weekDoy = 4;\n }\n\n if (typeof settings.firstDay === 'number') {\n this.weekDow = settings.firstDay;\n }\n\n if (typeof settings.weekNumberCalculation === 'function') {\n this.weekNumberFunc = settings.weekNumberCalculation;\n }\n\n this.weekText = settings.weekText != null ? settings.weekText : settings.locale.options.weekText;\n this.weekTextLong = (settings.weekTextLong != null ? settings.weekTextLong : settings.locale.options.weekTextLong) || this.weekText;\n this.cmdFormatter = settings.cmdFormatter;\n this.defaultSeparator = settings.defaultSeparator;\n } // Creating / Parsing\n\n\n DateEnv.prototype.createMarker = function (input) {\n var meta = this.createMarkerMeta(input);\n\n if (meta === null) {\n return null;\n }\n\n return meta.marker;\n };\n\n DateEnv.prototype.createNowMarker = function () {\n if (this.canComputeOffset) {\n return this.timestampToMarker(new Date().valueOf());\n } // if we can't compute the current date val for a timezone,\n // better to give the current local date vals than UTC\n\n\n return arrayToUtcDate(dateToLocalArray(new Date()));\n };\n\n DateEnv.prototype.createMarkerMeta = function (input) {\n if (typeof input === 'string') {\n return this.parse(input);\n }\n\n var marker = null;\n\n if (typeof input === 'number') {\n marker = this.timestampToMarker(input);\n } else if (input instanceof Date) {\n input = input.valueOf();\n\n if (!isNaN(input)) {\n marker = this.timestampToMarker(input);\n }\n } else if (Array.isArray(input)) {\n marker = arrayToUtcDate(input);\n }\n\n if (marker === null || !isValidDate(marker)) {\n return null;\n }\n\n return {\n marker: marker,\n isTimeUnspecified: false,\n forcedTzo: null\n };\n };\n\n DateEnv.prototype.parse = function (s) {\n var parts = parse(s);\n\n if (parts === null) {\n return null;\n }\n\n var marker = parts.marker;\n var forcedTzo = null;\n\n if (parts.timeZoneOffset !== null) {\n if (this.canComputeOffset) {\n marker = this.timestampToMarker(marker.valueOf() - parts.timeZoneOffset * 60 * 1000);\n } else {\n forcedTzo = parts.timeZoneOffset;\n }\n }\n\n return {\n marker: marker,\n isTimeUnspecified: parts.isTimeUnspecified,\n forcedTzo: forcedTzo\n };\n }; // Accessors\n\n\n DateEnv.prototype.getYear = function (marker) {\n return this.calendarSystem.getMarkerYear(marker);\n };\n\n DateEnv.prototype.getMonth = function (marker) {\n return this.calendarSystem.getMarkerMonth(marker);\n }; // Adding / Subtracting\n\n\n DateEnv.prototype.add = function (marker, dur) {\n var a = this.calendarSystem.markerToArray(marker);\n a[0] += dur.years;\n a[1] += dur.months;\n a[2] += dur.days;\n a[6] += dur.milliseconds;\n return this.calendarSystem.arrayToMarker(a);\n };\n\n DateEnv.prototype.subtract = function (marker, dur) {\n var a = this.calendarSystem.markerToArray(marker);\n a[0] -= dur.years;\n a[1] -= dur.months;\n a[2] -= dur.days;\n a[6] -= dur.milliseconds;\n return this.calendarSystem.arrayToMarker(a);\n };\n\n DateEnv.prototype.addYears = function (marker, n) {\n var a = this.calendarSystem.markerToArray(marker);\n a[0] += n;\n return this.calendarSystem.arrayToMarker(a);\n };\n\n DateEnv.prototype.addMonths = function (marker, n) {\n var a = this.calendarSystem.markerToArray(marker);\n a[1] += n;\n return this.calendarSystem.arrayToMarker(a);\n }; // Diffing Whole Units\n\n\n DateEnv.prototype.diffWholeYears = function (m0, m1) {\n var calendarSystem = this.calendarSystem;\n\n if (timeAsMs(m0) === timeAsMs(m1) && calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1) && calendarSystem.getMarkerMonth(m0) === calendarSystem.getMarkerMonth(m1)) {\n return calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0);\n }\n\n return null;\n };\n\n DateEnv.prototype.diffWholeMonths = function (m0, m1) {\n var calendarSystem = this.calendarSystem;\n\n if (timeAsMs(m0) === timeAsMs(m1) && calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1)) {\n return calendarSystem.getMarkerMonth(m1) - calendarSystem.getMarkerMonth(m0) + (calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0)) * 12;\n }\n\n return null;\n }; // Range / Duration\n\n\n DateEnv.prototype.greatestWholeUnit = function (m0, m1) {\n var n = this.diffWholeYears(m0, m1);\n\n if (n !== null) {\n return {\n unit: 'year',\n value: n\n };\n }\n\n n = this.diffWholeMonths(m0, m1);\n\n if (n !== null) {\n return {\n unit: 'month',\n value: n\n };\n }\n\n n = diffWholeWeeks(m0, m1);\n\n if (n !== null) {\n return {\n unit: 'week',\n value: n\n };\n }\n\n n = diffWholeDays(m0, m1);\n\n if (n !== null) {\n return {\n unit: 'day',\n value: n\n };\n }\n\n n = diffHours(m0, m1);\n\n if (isInt(n)) {\n return {\n unit: 'hour',\n value: n\n };\n }\n\n n = diffMinutes(m0, m1);\n\n if (isInt(n)) {\n return {\n unit: 'minute',\n value: n\n };\n }\n\n n = diffSeconds(m0, m1);\n\n if (isInt(n)) {\n return {\n unit: 'second',\n value: n\n };\n }\n\n return {\n unit: 'millisecond',\n value: m1.valueOf() - m0.valueOf()\n };\n };\n\n DateEnv.prototype.countDurationsBetween = function (m0, m1, d) {\n // TODO: can use greatestWholeUnit\n var diff;\n\n if (d.years) {\n diff = this.diffWholeYears(m0, m1);\n\n if (diff !== null) {\n return diff / asRoughYears(d);\n }\n }\n\n if (d.months) {\n diff = this.diffWholeMonths(m0, m1);\n\n if (diff !== null) {\n return diff / asRoughMonths(d);\n }\n }\n\n if (d.days) {\n diff = diffWholeDays(m0, m1);\n\n if (diff !== null) {\n return diff / asRoughDays(d);\n }\n }\n\n return (m1.valueOf() - m0.valueOf()) / asRoughMs(d);\n }; // Start-Of\n // these DON'T return zoned-dates. only UTC start-of dates\n\n\n DateEnv.prototype.startOf = function (m, unit) {\n if (unit === 'year') {\n return this.startOfYear(m);\n }\n\n if (unit === 'month') {\n return this.startOfMonth(m);\n }\n\n if (unit === 'week') {\n return this.startOfWeek(m);\n }\n\n if (unit === 'day') {\n return startOfDay(m);\n }\n\n if (unit === 'hour') {\n return startOfHour(m);\n }\n\n if (unit === 'minute') {\n return startOfMinute(m);\n }\n\n if (unit === 'second') {\n return startOfSecond(m);\n }\n\n return null;\n };\n\n DateEnv.prototype.startOfYear = function (m) {\n return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(m)]);\n };\n\n DateEnv.prototype.startOfMonth = function (m) {\n return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(m), this.calendarSystem.getMarkerMonth(m)]);\n };\n\n DateEnv.prototype.startOfWeek = function (m) {\n return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(m), this.calendarSystem.getMarkerMonth(m), m.getUTCDate() - (m.getUTCDay() - this.weekDow + 7) % 7]);\n }; // Week Number\n\n\n DateEnv.prototype.computeWeekNumber = function (marker) {\n if (this.weekNumberFunc) {\n return this.weekNumberFunc(this.toDate(marker));\n }\n\n return weekOfYear(marker, this.weekDow, this.weekDoy);\n }; // TODO: choke on timeZoneName: long\n\n\n DateEnv.prototype.format = function (marker, formatter, dateOptions) {\n if (dateOptions === void 0) {\n dateOptions = {};\n }\n\n return formatter.format({\n marker: marker,\n timeZoneOffset: dateOptions.forcedTzo != null ? dateOptions.forcedTzo : this.offsetForMarker(marker)\n }, this);\n };\n\n DateEnv.prototype.formatRange = function (start, end, formatter, dateOptions) {\n if (dateOptions === void 0) {\n dateOptions = {};\n }\n\n if (dateOptions.isEndExclusive) {\n end = addMs(end, -1);\n }\n\n return formatter.formatRange({\n marker: start,\n timeZoneOffset: dateOptions.forcedStartTzo != null ? dateOptions.forcedStartTzo : this.offsetForMarker(start)\n }, {\n marker: end,\n timeZoneOffset: dateOptions.forcedEndTzo != null ? dateOptions.forcedEndTzo : this.offsetForMarker(end)\n }, this, dateOptions.defaultSeparator);\n };\n /*\n DUMB: the omitTime arg is dumb. if we omit the time, we want to omit the timezone offset. and if we do that,\n might as well use buildIsoString or some other util directly\n */\n\n\n DateEnv.prototype.formatIso = function (marker, extraOptions) {\n if (extraOptions === void 0) {\n extraOptions = {};\n }\n\n var timeZoneOffset = null;\n\n if (!extraOptions.omitTimeZoneOffset) {\n if (extraOptions.forcedTzo != null) {\n timeZoneOffset = extraOptions.forcedTzo;\n } else {\n timeZoneOffset = this.offsetForMarker(marker);\n }\n }\n\n return buildIsoString(marker, timeZoneOffset, extraOptions.omitTime);\n }; // TimeZone\n\n\n DateEnv.prototype.timestampToMarker = function (ms) {\n if (this.timeZone === 'local') {\n return arrayToUtcDate(dateToLocalArray(new Date(ms)));\n }\n\n if (this.timeZone === 'UTC' || !this.namedTimeZoneImpl) {\n return new Date(ms);\n }\n\n return arrayToUtcDate(this.namedTimeZoneImpl.timestampToArray(ms));\n };\n\n DateEnv.prototype.offsetForMarker = function (m) {\n if (this.timeZone === 'local') {\n return -arrayToLocalDate(dateToUtcArray(m)).getTimezoneOffset(); // convert \"inverse\" offset to \"normal\" offset\n }\n\n if (this.timeZone === 'UTC') {\n return 0;\n }\n\n if (this.namedTimeZoneImpl) {\n return this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m));\n }\n\n return null;\n }; // Conversion\n\n\n DateEnv.prototype.toDate = function (m, forcedTzo) {\n if (this.timeZone === 'local') {\n return arrayToLocalDate(dateToUtcArray(m));\n }\n\n if (this.timeZone === 'UTC') {\n return new Date(m.valueOf()); // make sure it's a copy\n }\n\n if (!this.namedTimeZoneImpl) {\n return new Date(m.valueOf() - (forcedTzo || 0));\n }\n\n return new Date(m.valueOf() - this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)) * 1000 * 60);\n };\n\n return DateEnv;\n}();\n\nvar globalLocales = [];\nvar MINIMAL_RAW_EN_LOCALE = {\n code: 'en',\n week: {\n dow: 0,\n doy: 4 // 4 days need to be within the year to be considered the first week\n\n },\n direction: 'ltr',\n buttonText: {\n prev: 'prev',\n next: 'next',\n prevYear: 'prev year',\n nextYear: 'next year',\n year: 'year',\n today: 'today',\n month: 'month',\n week: 'week',\n day: 'day',\n list: 'list'\n },\n weekText: 'W',\n weekTextLong: 'Week',\n closeHint: 'Close',\n timeHint: 'Time',\n eventHint: 'Event',\n allDayText: 'all-day',\n moreLinkText: 'more',\n noEventsText: 'No events to display'\n};\n\nvar RAW_EN_LOCALE = __assign(__assign({}, MINIMAL_RAW_EN_LOCALE), {\n // Includes things we don't want other locales to inherit,\n // things that derive from other translatable strings.\n buttonHints: {\n prev: 'Previous $0',\n next: 'Next $0',\n today: function today(buttonText, unit) {\n return unit === 'day' ? 'Today' : \"This \" + buttonText;\n }\n },\n viewHint: '$0 view',\n navLinkHint: 'Go to $0',\n moreLinkHint: function moreLinkHint(eventCnt) {\n return \"Show \" + eventCnt + \" more event\" + (eventCnt === 1 ? '' : 's');\n }\n});\n\nfunction organizeRawLocales(explicitRawLocales) {\n var defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en';\n var allRawLocales = globalLocales.concat(explicitRawLocales);\n var rawLocaleMap = {\n en: RAW_EN_LOCALE\n };\n\n for (var _i = 0, allRawLocales_1 = allRawLocales; _i < allRawLocales_1.length; _i++) {\n var rawLocale = allRawLocales_1[_i];\n rawLocaleMap[rawLocale.code] = rawLocale;\n }\n\n return {\n map: rawLocaleMap,\n defaultCode: defaultCode\n };\n}\n\nfunction buildLocale(inputSingular, available) {\n if (_typeof(inputSingular) === 'object' && !Array.isArray(inputSingular)) {\n return parseLocale(inputSingular.code, [inputSingular.code], inputSingular);\n }\n\n return queryLocale(inputSingular, available);\n}\n\nfunction queryLocale(codeArg, available) {\n var codes = [].concat(codeArg || []); // will convert to array\n\n var raw = queryRawLocale(codes, available) || RAW_EN_LOCALE;\n return parseLocale(codeArg, codes, raw);\n}\n\nfunction queryRawLocale(codes, available) {\n for (var i = 0; i < codes.length; i += 1) {\n var parts = codes[i].toLocaleLowerCase().split('-');\n\n for (var j = parts.length; j > 0; j -= 1) {\n var simpleId = parts.slice(0, j).join('-');\n\n if (available[simpleId]) {\n return available[simpleId];\n }\n }\n }\n\n return null;\n}\n\nfunction parseLocale(codeArg, codes, raw) {\n var merged = mergeProps([MINIMAL_RAW_EN_LOCALE, raw], ['buttonText']);\n delete merged.code; // don't want this part of the options\n\n var week = merged.week;\n delete merged.week;\n return {\n codeArg: codeArg,\n codes: codes,\n week: week,\n simpleNumberFormat: new Intl.NumberFormat(codeArg),\n options: merged\n };\n}\n\nfunction formatDate(dateInput, options) {\n if (options === void 0) {\n options = {};\n }\n\n var dateEnv = buildDateEnv$1(options);\n var formatter = createFormatter(options);\n var dateMeta = dateEnv.createMarkerMeta(dateInput);\n\n if (!dateMeta) {\n // TODO: warning?\n return '';\n }\n\n return dateEnv.format(dateMeta.marker, formatter, {\n forcedTzo: dateMeta.forcedTzo\n });\n}\n\nfunction formatRange(startInput, endInput, options) {\n var dateEnv = buildDateEnv$1(_typeof(options) === 'object' && options ? options : {}); // pass in if non-null object\n\n var formatter = createFormatter(options);\n var startMeta = dateEnv.createMarkerMeta(startInput);\n var endMeta = dateEnv.createMarkerMeta(endInput);\n\n if (!startMeta || !endMeta) {\n // TODO: warning?\n return '';\n }\n\n return dateEnv.formatRange(startMeta.marker, endMeta.marker, formatter, {\n forcedStartTzo: startMeta.forcedTzo,\n forcedEndTzo: endMeta.forcedTzo,\n isEndExclusive: options.isEndExclusive,\n defaultSeparator: BASE_OPTION_DEFAULTS.defaultRangeSeparator\n });\n} // TODO: more DRY and optimized\n\n\nfunction buildDateEnv$1(settings) {\n var locale = buildLocale(settings.locale || 'en', organizeRawLocales([]).map); // TODO: don't hardcode 'en' everywhere\n\n return new DateEnv(__assign(__assign({\n timeZone: BASE_OPTION_DEFAULTS.timeZone,\n calendarSystem: 'gregory'\n }, settings), {\n locale: locale\n }));\n}\n\nvar DEF_DEFAULTS = {\n startTime: '09:00',\n endTime: '17:00',\n daysOfWeek: [1, 2, 3, 4, 5],\n display: 'inverse-background',\n classNames: 'fc-non-business',\n groupId: '_businessHours' // so multiple defs get grouped\n\n};\n/*\nTODO: pass around as EventDefHash!!!\n*/\n\nfunction parseBusinessHours(input, context) {\n return parseEvents(refineInputs(input), null, context);\n}\n\nfunction refineInputs(input) {\n var rawDefs;\n\n if (input === true) {\n rawDefs = [{}]; // will get DEF_DEFAULTS verbatim\n } else if (Array.isArray(input)) {\n // if specifying an array, every sub-definition NEEDS a day-of-week\n rawDefs = input.filter(function (rawDef) {\n return rawDef.daysOfWeek;\n });\n } else if (_typeof(input) === 'object' && input) {\n // non-null object\n rawDefs = [input];\n } else {\n // is probably false\n rawDefs = [];\n }\n\n rawDefs = rawDefs.map(function (rawDef) {\n return __assign(__assign({}, DEF_DEFAULTS), rawDef);\n });\n return rawDefs;\n}\n\nfunction pointInsideRect(point, rect) {\n return point.left >= rect.left && point.left < rect.right && point.top >= rect.top && point.top < rect.bottom;\n} // Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false\n\n\nfunction intersectRects(rect1, rect2) {\n var res = {\n left: Math.max(rect1.left, rect2.left),\n right: Math.min(rect1.right, rect2.right),\n top: Math.max(rect1.top, rect2.top),\n bottom: Math.min(rect1.bottom, rect2.bottom)\n };\n\n if (res.left < res.right && res.top < res.bottom) {\n return res;\n }\n\n return false;\n}\n\nfunction translateRect(rect, deltaX, deltaY) {\n return {\n left: rect.left + deltaX,\n right: rect.right + deltaX,\n top: rect.top + deltaY,\n bottom: rect.bottom + deltaY\n };\n} // Returns a new point that will have been moved to reside within the given rectangle\n\n\nfunction constrainPoint(point, rect) {\n return {\n left: Math.min(Math.max(point.left, rect.left), rect.right),\n top: Math.min(Math.max(point.top, rect.top), rect.bottom)\n };\n} // Returns a point that is the center of the given rectangle\n\n\nfunction getRectCenter(rect) {\n return {\n left: (rect.left + rect.right) / 2,\n top: (rect.top + rect.bottom) / 2\n };\n} // Subtracts point2's coordinates from point1's coordinates, returning a delta\n\n\nfunction diffPoints(point1, point2) {\n return {\n left: point1.left - point2.left,\n top: point1.top - point2.top\n };\n}\n\nvar canVGrowWithinCell;\n\nfunction getCanVGrowWithinCell() {\n if (canVGrowWithinCell == null) {\n canVGrowWithinCell = computeCanVGrowWithinCell();\n }\n\n return canVGrowWithinCell;\n}\n\nfunction computeCanVGrowWithinCell() {\n // for SSR, because this function is call immediately at top-level\n // TODO: just make this logic execute top-level, immediately, instead of doing lazily\n if (typeof document === 'undefined') {\n return true;\n }\n\n var el = document.createElement('div');\n el.style.position = 'absolute';\n el.style.top = '0px';\n el.style.left = '0px';\n el.innerHTML = '
';\n el.querySelector('table').style.height = '100px';\n el.querySelector('div').style.height = '100%';\n document.body.appendChild(el);\n var div = el.querySelector('div');\n var possible = div.offsetHeight > 0;\n document.body.removeChild(el);\n return possible;\n}\n\nvar EMPTY_EVENT_STORE = createEmptyEventStore(); // for purecomponents. TODO: keep elsewhere\n\nvar Splitter =\n/** @class */\nfunction () {\n function Splitter() {\n this.getKeysForEventDefs = memoize(this._getKeysForEventDefs);\n this.splitDateSelection = memoize(this._splitDateSpan);\n this.splitEventStore = memoize(this._splitEventStore);\n this.splitIndividualUi = memoize(this._splitIndividualUi);\n this.splitEventDrag = memoize(this._splitInteraction);\n this.splitEventResize = memoize(this._splitInteraction);\n this.eventUiBuilders = {}; // TODO: typescript protection\n }\n\n Splitter.prototype.splitProps = function (props) {\n var _this = this;\n\n var keyInfos = this.getKeyInfo(props);\n var defKeys = this.getKeysForEventDefs(props.eventStore);\n var dateSelections = this.splitDateSelection(props.dateSelection);\n var individualUi = this.splitIndividualUi(props.eventUiBases, defKeys); // the individual *bases*\n\n var eventStores = this.splitEventStore(props.eventStore, defKeys);\n var eventDrags = this.splitEventDrag(props.eventDrag);\n var eventResizes = this.splitEventResize(props.eventResize);\n var splitProps = {};\n this.eventUiBuilders = mapHash(keyInfos, function (info, key) {\n return _this.eventUiBuilders[key] || memoize(buildEventUiForKey);\n });\n\n for (var key in keyInfos) {\n var keyInfo = keyInfos[key];\n var eventStore = eventStores[key] || EMPTY_EVENT_STORE;\n var buildEventUi = this.eventUiBuilders[key];\n splitProps[key] = {\n businessHours: keyInfo.businessHours || props.businessHours,\n dateSelection: dateSelections[key] || null,\n eventStore: eventStore,\n eventUiBases: buildEventUi(props.eventUiBases[''], keyInfo.ui, individualUi[key]),\n eventSelection: eventStore.instances[props.eventSelection] ? props.eventSelection : '',\n eventDrag: eventDrags[key] || null,\n eventResize: eventResizes[key] || null\n };\n }\n\n return splitProps;\n };\n\n Splitter.prototype._splitDateSpan = function (dateSpan) {\n var dateSpans = {};\n\n if (dateSpan) {\n var keys = this.getKeysForDateSpan(dateSpan);\n\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n dateSpans[key] = dateSpan;\n }\n }\n\n return dateSpans;\n };\n\n Splitter.prototype._getKeysForEventDefs = function (eventStore) {\n var _this = this;\n\n return mapHash(eventStore.defs, function (eventDef) {\n return _this.getKeysForEventDef(eventDef);\n });\n };\n\n Splitter.prototype._splitEventStore = function (eventStore, defKeys) {\n var defs = eventStore.defs,\n instances = eventStore.instances;\n var splitStores = {};\n\n for (var defId in defs) {\n for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) {\n var key = _a[_i];\n\n if (!splitStores[key]) {\n splitStores[key] = createEmptyEventStore();\n }\n\n splitStores[key].defs[defId] = defs[defId];\n }\n }\n\n for (var instanceId in instances) {\n var instance = instances[instanceId];\n\n for (var _b = 0, _c = defKeys[instance.defId]; _b < _c.length; _b++) {\n var key = _c[_b];\n\n if (splitStores[key]) {\n // must have already been created\n splitStores[key].instances[instanceId] = instance;\n }\n }\n }\n\n return splitStores;\n };\n\n Splitter.prototype._splitIndividualUi = function (eventUiBases, defKeys) {\n var splitHashes = {};\n\n for (var defId in eventUiBases) {\n if (defId) {\n // not the '' key\n for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) {\n var key = _a[_i];\n\n if (!splitHashes[key]) {\n splitHashes[key] = {};\n }\n\n splitHashes[key][defId] = eventUiBases[defId];\n }\n }\n }\n\n return splitHashes;\n };\n\n Splitter.prototype._splitInteraction = function (interaction) {\n var splitStates = {};\n\n if (interaction) {\n var affectedStores_1 = this._splitEventStore(interaction.affectedEvents, this._getKeysForEventDefs(interaction.affectedEvents)); // can't rely on defKeys because event data is mutated\n\n\n var mutatedKeysByDefId = this._getKeysForEventDefs(interaction.mutatedEvents);\n\n var mutatedStores_1 = this._splitEventStore(interaction.mutatedEvents, mutatedKeysByDefId);\n\n var populate = function populate(key) {\n if (!splitStates[key]) {\n splitStates[key] = {\n affectedEvents: affectedStores_1[key] || EMPTY_EVENT_STORE,\n mutatedEvents: mutatedStores_1[key] || EMPTY_EVENT_STORE,\n isEvent: interaction.isEvent\n };\n }\n };\n\n for (var key in affectedStores_1) {\n populate(key);\n }\n\n for (var key in mutatedStores_1) {\n populate(key);\n }\n }\n\n return splitStates;\n };\n\n return Splitter;\n}();\n\nfunction buildEventUiForKey(allUi, eventUiForKey, individualUi) {\n var baseParts = [];\n\n if (allUi) {\n baseParts.push(allUi);\n }\n\n if (eventUiForKey) {\n baseParts.push(eventUiForKey);\n }\n\n var stuff = {\n '': combineEventUis(baseParts)\n };\n\n if (individualUi) {\n __assign(stuff, individualUi);\n }\n\n return stuff;\n}\n\nfunction getDateMeta(date, todayRange, nowDate, dateProfile) {\n return {\n dow: date.getUTCDay(),\n isDisabled: Boolean(dateProfile && !rangeContainsMarker(dateProfile.activeRange, date)),\n isOther: Boolean(dateProfile && !rangeContainsMarker(dateProfile.currentRange, date)),\n isToday: Boolean(todayRange && rangeContainsMarker(todayRange, date)),\n isPast: Boolean(nowDate ? date < nowDate : todayRange ? date < todayRange.start : false),\n isFuture: Boolean(nowDate ? date > nowDate : todayRange ? date >= todayRange.end : false)\n };\n}\n\nfunction getDayClassNames(meta, theme) {\n var classNames = ['fc-day', \"fc-day-\" + DAY_IDS[meta.dow]];\n\n if (meta.isDisabled) {\n classNames.push('fc-day-disabled');\n } else {\n if (meta.isToday) {\n classNames.push('fc-day-today');\n classNames.push(theme.getClass('today'));\n }\n\n if (meta.isPast) {\n classNames.push('fc-day-past');\n }\n\n if (meta.isFuture) {\n classNames.push('fc-day-future');\n }\n\n if (meta.isOther) {\n classNames.push('fc-day-other');\n }\n }\n\n return classNames;\n}\n\nfunction getSlotClassNames(meta, theme) {\n var classNames = ['fc-slot', \"fc-slot-\" + DAY_IDS[meta.dow]];\n\n if (meta.isDisabled) {\n classNames.push('fc-slot-disabled');\n } else {\n if (meta.isToday) {\n classNames.push('fc-slot-today');\n classNames.push(theme.getClass('today'));\n }\n\n if (meta.isPast) {\n classNames.push('fc-slot-past');\n }\n\n if (meta.isFuture) {\n classNames.push('fc-slot-future');\n }\n }\n\n return classNames;\n}\n\nvar DAY_FORMAT = createFormatter({\n year: 'numeric',\n month: 'long',\n day: 'numeric'\n});\nvar WEEK_FORMAT = createFormatter({\n week: 'long'\n});\n\nfunction buildNavLinkAttrs(context, dateMarker, viewType, isTabbable) {\n if (viewType === void 0) {\n viewType = 'day';\n }\n\n if (isTabbable === void 0) {\n isTabbable = true;\n }\n\n var dateEnv = context.dateEnv,\n options = context.options,\n calendarApi = context.calendarApi;\n var dateStr = dateEnv.format(dateMarker, viewType === 'week' ? WEEK_FORMAT : DAY_FORMAT);\n\n if (options.navLinks) {\n var zonedDate = dateEnv.toDate(dateMarker);\n\n var handleInteraction = function handleInteraction(ev) {\n var customAction = viewType === 'day' ? options.navLinkDayClick : viewType === 'week' ? options.navLinkWeekClick : null;\n\n if (typeof customAction === 'function') {\n customAction.call(calendarApi, dateEnv.toDate(dateMarker), ev);\n } else {\n if (typeof customAction === 'string') {\n viewType = customAction;\n }\n\n calendarApi.zoomTo(dateMarker, viewType);\n }\n };\n\n return __assign({\n title: formatWithOrdinals(options.navLinkHint, [dateStr, zonedDate], dateStr),\n 'data-navlink': ''\n }, isTabbable ? createAriaClickAttrs(handleInteraction) : {\n onClick: handleInteraction\n });\n }\n\n return {\n 'aria-label': dateStr\n };\n}\n\nvar _isRtlScrollbarOnLeft = null;\n\nfunction getIsRtlScrollbarOnLeft() {\n if (_isRtlScrollbarOnLeft === null) {\n _isRtlScrollbarOnLeft = computeIsRtlScrollbarOnLeft();\n }\n\n return _isRtlScrollbarOnLeft;\n}\n\nfunction computeIsRtlScrollbarOnLeft() {\n var outerEl = document.createElement('div');\n applyStyle(outerEl, {\n position: 'absolute',\n top: -1000,\n left: 0,\n border: 0,\n padding: 0,\n overflow: 'scroll',\n direction: 'rtl'\n });\n outerEl.innerHTML = '
';\n document.body.appendChild(outerEl);\n var innerEl = outerEl.firstChild;\n var res = innerEl.getBoundingClientRect().left > outerEl.getBoundingClientRect().left;\n removeElement(outerEl);\n return res;\n}\n\nvar _scrollbarWidths;\n\nfunction getScrollbarWidths() {\n if (!_scrollbarWidths) {\n _scrollbarWidths = computeScrollbarWidths();\n }\n\n return _scrollbarWidths;\n}\n\nfunction computeScrollbarWidths() {\n var el = document.createElement('div');\n el.style.overflow = 'scroll';\n el.style.position = 'absolute';\n el.style.top = '-9999px';\n el.style.left = '-9999px';\n document.body.appendChild(el);\n var res = computeScrollbarWidthsForEl(el);\n document.body.removeChild(el);\n return res;\n} // WARNING: will include border\n\n\nfunction computeScrollbarWidthsForEl(el) {\n return {\n x: el.offsetHeight - el.clientHeight,\n y: el.offsetWidth - el.clientWidth\n };\n}\n\nfunction computeEdges(el, getPadding) {\n if (getPadding === void 0) {\n getPadding = false;\n }\n\n var computedStyle = window.getComputedStyle(el);\n var borderLeft = parseInt(computedStyle.borderLeftWidth, 10) || 0;\n var borderRight = parseInt(computedStyle.borderRightWidth, 10) || 0;\n var borderTop = parseInt(computedStyle.borderTopWidth, 10) || 0;\n var borderBottom = parseInt(computedStyle.borderBottomWidth, 10) || 0;\n var badScrollbarWidths = computeScrollbarWidthsForEl(el); // includes border!\n\n var scrollbarLeftRight = badScrollbarWidths.y - borderLeft - borderRight;\n var scrollbarBottom = badScrollbarWidths.x - borderTop - borderBottom;\n var res = {\n borderLeft: borderLeft,\n borderRight: borderRight,\n borderTop: borderTop,\n borderBottom: borderBottom,\n scrollbarBottom: scrollbarBottom,\n scrollbarLeft: 0,\n scrollbarRight: 0\n };\n\n if (getIsRtlScrollbarOnLeft() && computedStyle.direction === 'rtl') {\n // is the scrollbar on the left side?\n res.scrollbarLeft = scrollbarLeftRight;\n } else {\n res.scrollbarRight = scrollbarLeftRight;\n }\n\n if (getPadding) {\n res.paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0;\n res.paddingRight = parseInt(computedStyle.paddingRight, 10) || 0;\n res.paddingTop = parseInt(computedStyle.paddingTop, 10) || 0;\n res.paddingBottom = parseInt(computedStyle.paddingBottom, 10) || 0;\n }\n\n return res;\n}\n\nfunction computeInnerRect(el, goWithinPadding, doFromWindowViewport) {\n if (goWithinPadding === void 0) {\n goWithinPadding = false;\n }\n\n var outerRect = doFromWindowViewport ? el.getBoundingClientRect() : computeRect(el);\n var edges = computeEdges(el, goWithinPadding);\n var res = {\n left: outerRect.left + edges.borderLeft + edges.scrollbarLeft,\n right: outerRect.right - edges.borderRight - edges.scrollbarRight,\n top: outerRect.top + edges.borderTop,\n bottom: outerRect.bottom - edges.borderBottom - edges.scrollbarBottom\n };\n\n if (goWithinPadding) {\n res.left += edges.paddingLeft;\n res.right -= edges.paddingRight;\n res.top += edges.paddingTop;\n res.bottom -= edges.paddingBottom;\n }\n\n return res;\n}\n\nfunction computeRect(el) {\n var rect = el.getBoundingClientRect();\n return {\n left: rect.left + window.pageXOffset,\n top: rect.top + window.pageYOffset,\n right: rect.right + window.pageXOffset,\n bottom: rect.bottom + window.pageYOffset\n };\n}\n\nfunction computeClippedClientRect(el) {\n var clippingParents = getClippingParents(el);\n var rect = el.getBoundingClientRect();\n\n for (var _i = 0, clippingParents_1 = clippingParents; _i < clippingParents_1.length; _i++) {\n var clippingParent = clippingParents_1[_i];\n var intersection = intersectRects(rect, clippingParent.getBoundingClientRect());\n\n if (intersection) {\n rect = intersection;\n } else {\n return null;\n }\n }\n\n return rect;\n}\n\nfunction computeHeightAndMargins(el) {\n return el.getBoundingClientRect().height + computeVMargins(el);\n}\n\nfunction computeVMargins(el) {\n var computed = window.getComputedStyle(el);\n return parseInt(computed.marginTop, 10) + parseInt(computed.marginBottom, 10);\n} // does not return window\n\n\nfunction getClippingParents(el) {\n var parents = [];\n\n while (el instanceof HTMLElement) {\n // will stop when gets to document or null\n var computedStyle = window.getComputedStyle(el);\n\n if (computedStyle.position === 'fixed') {\n break;\n }\n\n if (/(auto|scroll)/.test(computedStyle.overflow + computedStyle.overflowY + computedStyle.overflowX)) {\n parents.push(el);\n }\n\n el = el.parentNode;\n }\n\n return parents;\n} // given a function that resolves a result asynchronously.\n// the function can either call passed-in success and failure callbacks,\n// or it can return a promise.\n// if you need to pass additional params to func, bind them first.\n\n\nfunction unpromisify(func, success, failure) {\n // guard against success/failure callbacks being called more than once\n // and guard against a promise AND callback being used together.\n var isResolved = false;\n\n var wrappedSuccess = function wrappedSuccess() {\n if (!isResolved) {\n isResolved = true;\n success.apply(this, arguments); // eslint-disable-line prefer-rest-params\n }\n };\n\n var wrappedFailure = function wrappedFailure() {\n if (!isResolved) {\n isResolved = true;\n\n if (failure) {\n failure.apply(this, arguments); // eslint-disable-line prefer-rest-params\n }\n }\n };\n\n var res = func(wrappedSuccess, wrappedFailure);\n\n if (res && typeof res.then === 'function') {\n res.then(wrappedSuccess, wrappedFailure);\n }\n}\n\nvar Emitter =\n/** @class */\nfunction () {\n function Emitter() {\n this.handlers = {};\n this.thisContext = null;\n }\n\n Emitter.prototype.setThisContext = function (thisContext) {\n this.thisContext = thisContext;\n };\n\n Emitter.prototype.setOptions = function (options) {\n this.options = options;\n };\n\n Emitter.prototype.on = function (type, handler) {\n addToHash(this.handlers, type, handler);\n };\n\n Emitter.prototype.off = function (type, handler) {\n removeFromHash(this.handlers, type, handler);\n };\n\n Emitter.prototype.trigger = function (type) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n var attachedHandlers = this.handlers[type] || [];\n var optionHandler = this.options && this.options[type];\n var handlers = [].concat(optionHandler || [], attachedHandlers);\n\n for (var _a = 0, handlers_1 = handlers; _a < handlers_1.length; _a++) {\n var handler = handlers_1[_a];\n handler.apply(this.thisContext, args);\n }\n };\n\n Emitter.prototype.hasHandlers = function (type) {\n return Boolean(this.handlers[type] && this.handlers[type].length || this.options && this.options[type]);\n };\n\n return Emitter;\n}();\n\nfunction addToHash(hash, type, handler) {\n (hash[type] || (hash[type] = [])).push(handler);\n}\n\nfunction removeFromHash(hash, type, handler) {\n if (handler) {\n if (hash[type]) {\n hash[type] = hash[type].filter(function (func) {\n return func !== handler;\n });\n }\n } else {\n delete hash[type]; // remove all handler funcs for this type\n }\n}\n/*\nRecords offset information for a set of elements, relative to an origin element.\nCan record the left/right OR the top/bottom OR both.\nProvides methods for querying the cache by position.\n*/\n\n\nvar PositionCache =\n/** @class */\nfunction () {\n function PositionCache(originEl, els, isHorizontal, isVertical) {\n this.els = els;\n var originClientRect = this.originClientRect = originEl.getBoundingClientRect(); // relative to viewport top-left\n\n if (isHorizontal) {\n this.buildElHorizontals(originClientRect.left);\n }\n\n if (isVertical) {\n this.buildElVerticals(originClientRect.top);\n }\n } // Populates the left/right internal coordinate arrays\n\n\n PositionCache.prototype.buildElHorizontals = function (originClientLeft) {\n var lefts = [];\n var rights = [];\n\n for (var _i = 0, _a = this.els; _i < _a.length; _i++) {\n var el = _a[_i];\n var rect = el.getBoundingClientRect();\n lefts.push(rect.left - originClientLeft);\n rights.push(rect.right - originClientLeft);\n }\n\n this.lefts = lefts;\n this.rights = rights;\n }; // Populates the top/bottom internal coordinate arrays\n\n\n PositionCache.prototype.buildElVerticals = function (originClientTop) {\n var tops = [];\n var bottoms = [];\n\n for (var _i = 0, _a = this.els; _i < _a.length; _i++) {\n var el = _a[_i];\n var rect = el.getBoundingClientRect();\n tops.push(rect.top - originClientTop);\n bottoms.push(rect.bottom - originClientTop);\n }\n\n this.tops = tops;\n this.bottoms = bottoms;\n }; // Given a left offset (from document left), returns the index of the el that it horizontally intersects.\n // If no intersection is made, returns undefined.\n\n\n PositionCache.prototype.leftToIndex = function (leftPosition) {\n var _a = this,\n lefts = _a.lefts,\n rights = _a.rights;\n\n var len = lefts.length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n if (leftPosition >= lefts[i] && leftPosition < rights[i]) {\n return i;\n }\n }\n\n return undefined; // TODO: better\n }; // Given a top offset (from document top), returns the index of the el that it vertically intersects.\n // If no intersection is made, returns undefined.\n\n\n PositionCache.prototype.topToIndex = function (topPosition) {\n var _a = this,\n tops = _a.tops,\n bottoms = _a.bottoms;\n\n var len = tops.length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n if (topPosition >= tops[i] && topPosition < bottoms[i]) {\n return i;\n }\n }\n\n return undefined; // TODO: better\n }; // Gets the width of the element at the given index\n\n\n PositionCache.prototype.getWidth = function (leftIndex) {\n return this.rights[leftIndex] - this.lefts[leftIndex];\n }; // Gets the height of the element at the given index\n\n\n PositionCache.prototype.getHeight = function (topIndex) {\n return this.bottoms[topIndex] - this.tops[topIndex];\n };\n\n return PositionCache;\n}();\n/* eslint max-classes-per-file: \"off\" */\n\n/*\nAn object for getting/setting scroll-related information for an element.\nInternally, this is done very differently for window versus DOM element,\nso this object serves as a common interface.\n*/\n\n\nvar ScrollController =\n/** @class */\nfunction () {\n function ScrollController() {}\n\n ScrollController.prototype.getMaxScrollTop = function () {\n return this.getScrollHeight() - this.getClientHeight();\n };\n\n ScrollController.prototype.getMaxScrollLeft = function () {\n return this.getScrollWidth() - this.getClientWidth();\n };\n\n ScrollController.prototype.canScrollVertically = function () {\n return this.getMaxScrollTop() > 0;\n };\n\n ScrollController.prototype.canScrollHorizontally = function () {\n return this.getMaxScrollLeft() > 0;\n };\n\n ScrollController.prototype.canScrollUp = function () {\n return this.getScrollTop() > 0;\n };\n\n ScrollController.prototype.canScrollDown = function () {\n return this.getScrollTop() < this.getMaxScrollTop();\n };\n\n ScrollController.prototype.canScrollLeft = function () {\n return this.getScrollLeft() > 0;\n };\n\n ScrollController.prototype.canScrollRight = function () {\n return this.getScrollLeft() < this.getMaxScrollLeft();\n };\n\n return ScrollController;\n}();\n\nvar ElementScrollController =\n/** @class */\nfunction (_super) {\n __extends(ElementScrollController, _super);\n\n function ElementScrollController(el) {\n var _this = _super.call(this) || this;\n\n _this.el = el;\n return _this;\n }\n\n ElementScrollController.prototype.getScrollTop = function () {\n return this.el.scrollTop;\n };\n\n ElementScrollController.prototype.getScrollLeft = function () {\n return this.el.scrollLeft;\n };\n\n ElementScrollController.prototype.setScrollTop = function (top) {\n this.el.scrollTop = top;\n };\n\n ElementScrollController.prototype.setScrollLeft = function (left) {\n this.el.scrollLeft = left;\n };\n\n ElementScrollController.prototype.getScrollWidth = function () {\n return this.el.scrollWidth;\n };\n\n ElementScrollController.prototype.getScrollHeight = function () {\n return this.el.scrollHeight;\n };\n\n ElementScrollController.prototype.getClientHeight = function () {\n return this.el.clientHeight;\n };\n\n ElementScrollController.prototype.getClientWidth = function () {\n return this.el.clientWidth;\n };\n\n return ElementScrollController;\n}(ScrollController);\n\nvar WindowScrollController =\n/** @class */\nfunction (_super) {\n __extends(WindowScrollController, _super);\n\n function WindowScrollController() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n WindowScrollController.prototype.getScrollTop = function () {\n return window.pageYOffset;\n };\n\n WindowScrollController.prototype.getScrollLeft = function () {\n return window.pageXOffset;\n };\n\n WindowScrollController.prototype.setScrollTop = function (n) {\n window.scroll(window.pageXOffset, n);\n };\n\n WindowScrollController.prototype.setScrollLeft = function (n) {\n window.scroll(n, window.pageYOffset);\n };\n\n WindowScrollController.prototype.getScrollWidth = function () {\n return document.documentElement.scrollWidth;\n };\n\n WindowScrollController.prototype.getScrollHeight = function () {\n return document.documentElement.scrollHeight;\n };\n\n WindowScrollController.prototype.getClientHeight = function () {\n return document.documentElement.clientHeight;\n };\n\n WindowScrollController.prototype.getClientWidth = function () {\n return document.documentElement.clientWidth;\n };\n\n return WindowScrollController;\n}(ScrollController);\n\nvar Theme =\n/** @class */\nfunction () {\n function Theme(calendarOptions) {\n if (this.iconOverrideOption) {\n this.setIconOverride(calendarOptions[this.iconOverrideOption]);\n }\n }\n\n Theme.prototype.setIconOverride = function (iconOverrideHash) {\n var iconClassesCopy;\n var buttonName;\n\n if (_typeof(iconOverrideHash) === 'object' && iconOverrideHash) {\n // non-null object\n iconClassesCopy = __assign({}, this.iconClasses);\n\n for (buttonName in iconOverrideHash) {\n iconClassesCopy[buttonName] = this.applyIconOverridePrefix(iconOverrideHash[buttonName]);\n }\n\n this.iconClasses = iconClassesCopy;\n } else if (iconOverrideHash === false) {\n this.iconClasses = {};\n }\n };\n\n Theme.prototype.applyIconOverridePrefix = function (className) {\n var prefix = this.iconOverridePrefix;\n\n if (prefix && className.indexOf(prefix) !== 0) {\n // if not already present\n className = prefix + className;\n }\n\n return className;\n };\n\n Theme.prototype.getClass = function (key) {\n return this.classes[key] || '';\n };\n\n Theme.prototype.getIconClass = function (buttonName, isRtl) {\n var className;\n\n if (isRtl && this.rtlIconClasses) {\n className = this.rtlIconClasses[buttonName] || this.iconClasses[buttonName];\n } else {\n className = this.iconClasses[buttonName];\n }\n\n if (className) {\n return this.baseIconClass + \" \" + className;\n }\n\n return '';\n };\n\n Theme.prototype.getCustomButtonIconClass = function (customButtonProps) {\n var className;\n\n if (this.iconOverrideCustomButtonOption) {\n className = customButtonProps[this.iconOverrideCustomButtonOption];\n\n if (className) {\n return this.baseIconClass + \" \" + this.applyIconOverridePrefix(className);\n }\n }\n\n return '';\n };\n\n return Theme;\n}();\n\nTheme.prototype.classes = {};\nTheme.prototype.iconClasses = {};\nTheme.prototype.baseIconClass = '';\nTheme.prototype.iconOverridePrefix = '';\n\nvar ScrollResponder =\n/** @class */\nfunction () {\n function ScrollResponder(execFunc, emitter, scrollTime, scrollTimeReset) {\n var _this = this;\n\n this.execFunc = execFunc;\n this.emitter = emitter;\n this.scrollTime = scrollTime;\n this.scrollTimeReset = scrollTimeReset;\n\n this.handleScrollRequest = function (request) {\n _this.queuedRequest = __assign({}, _this.queuedRequest || {}, request);\n\n _this.drain();\n };\n\n emitter.on('_scrollRequest', this.handleScrollRequest);\n this.fireInitialScroll();\n }\n\n ScrollResponder.prototype.detach = function () {\n this.emitter.off('_scrollRequest', this.handleScrollRequest);\n };\n\n ScrollResponder.prototype.update = function (isDatesNew) {\n if (isDatesNew && this.scrollTimeReset) {\n this.fireInitialScroll(); // will drain\n } else {\n this.drain();\n }\n };\n\n ScrollResponder.prototype.fireInitialScroll = function () {\n this.handleScrollRequest({\n time: this.scrollTime\n });\n };\n\n ScrollResponder.prototype.drain = function () {\n if (this.queuedRequest && this.execFunc(this.queuedRequest)) {\n this.queuedRequest = null;\n }\n };\n\n return ScrollResponder;\n}();\n\nvar ViewContextType = createContext({}); // for Components\n\nfunction buildViewContext(viewSpec, viewApi, viewOptions, dateProfileGenerator, dateEnv, theme, pluginHooks, dispatch, getCurrentData, emitter, calendarApi, registerInteractiveComponent, unregisterInteractiveComponent) {\n return {\n dateEnv: dateEnv,\n options: viewOptions,\n pluginHooks: pluginHooks,\n emitter: emitter,\n dispatch: dispatch,\n getCurrentData: getCurrentData,\n calendarApi: calendarApi,\n viewSpec: viewSpec,\n viewApi: viewApi,\n dateProfileGenerator: dateProfileGenerator,\n theme: theme,\n isRtl: viewOptions.direction === 'rtl',\n addResizeHandler: function addResizeHandler(handler) {\n emitter.on('_resize', handler);\n },\n removeResizeHandler: function removeResizeHandler(handler) {\n emitter.off('_resize', handler);\n },\n createScrollResponder: function createScrollResponder(execFunc) {\n return new ScrollResponder(execFunc, emitter, createDuration(viewOptions.scrollTime), viewOptions.scrollTimeReset);\n },\n registerInteractiveComponent: registerInteractiveComponent,\n unregisterInteractiveComponent: unregisterInteractiveComponent\n };\n}\n/* eslint max-classes-per-file: off */\n\n\nvar PureComponent =\n/** @class */\nfunction (_super) {\n __extends(PureComponent, _super);\n\n function PureComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n PureComponent.prototype.shouldComponentUpdate = function (nextProps, nextState) {\n if (this.debug) {\n // eslint-disable-next-line no-console\n console.log(getUnequalProps(nextProps, this.props), getUnequalProps(nextState, this.state));\n }\n\n return !compareObjs(this.props, nextProps, this.propEquality) || !compareObjs(this.state, nextState, this.stateEquality);\n }; // HACK for freakin' React StrictMode\n\n\n PureComponent.prototype.safeSetState = function (newState) {\n if (!compareObjs(this.state, __assign(__assign({}, this.state), newState), this.stateEquality)) {\n this.setState(newState);\n }\n };\n\n PureComponent.addPropsEquality = addPropsEquality;\n PureComponent.addStateEquality = addStateEquality;\n PureComponent.contextType = ViewContextType;\n return PureComponent;\n}(Component);\n\nPureComponent.prototype.propEquality = {};\nPureComponent.prototype.stateEquality = {};\n\nvar BaseComponent =\n/** @class */\nfunction (_super) {\n __extends(BaseComponent, _super);\n\n function BaseComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n BaseComponent.contextType = ViewContextType;\n return BaseComponent;\n}(PureComponent);\n\nfunction addPropsEquality(propEquality) {\n var hash = Object.create(this.prototype.propEquality);\n\n __assign(hash, propEquality);\n\n this.prototype.propEquality = hash;\n}\n\nfunction addStateEquality(stateEquality) {\n var hash = Object.create(this.prototype.stateEquality);\n\n __assign(hash, stateEquality);\n\n this.prototype.stateEquality = hash;\n} // use other one\n\n\nfunction setRef(ref, current) {\n if (typeof ref === 'function') {\n ref(current);\n } else if (ref) {\n // see https://github.com/facebook/react/issues/13029\n ref.current = current;\n }\n}\n/*\nan INTERACTABLE date component\n\nPURPOSES:\n- hook up to fg, fill, and mirror renderers\n- interface for dragging and hits\n*/\n\n\nvar DateComponent =\n/** @class */\nfunction (_super) {\n __extends(DateComponent, _super);\n\n function DateComponent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.uid = guid();\n return _this;\n } // Hit System\n // -----------------------------------------------------------------------------------------------------------------\n\n\n DateComponent.prototype.prepareHits = function () {};\n\n DateComponent.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) {\n return null; // this should be abstract\n }; // Pointer Interaction Utils\n // -----------------------------------------------------------------------------------------------------------------\n\n\n DateComponent.prototype.isValidSegDownEl = function (el) {\n return !this.props.eventDrag && // HACK\n !this.props.eventResize && // HACK\n !elementClosest(el, '.fc-event-mirror');\n };\n\n DateComponent.prototype.isValidDateDownEl = function (el) {\n return !elementClosest(el, '.fc-event:not(.fc-bg-event)') && !elementClosest(el, '.fc-more-link') && // a \"more..\" link\n !elementClosest(el, 'a[data-navlink]') && // a clickable nav link\n !elementClosest(el, '.fc-popover'); // hack\n };\n\n return DateComponent;\n}(BaseComponent); // TODO: easier way to add new hooks? need to update a million things\n\n\nfunction createPlugin(input) {\n return {\n id: guid(),\n deps: input.deps || [],\n reducers: input.reducers || [],\n isLoadingFuncs: input.isLoadingFuncs || [],\n contextInit: [].concat(input.contextInit || []),\n eventRefiners: input.eventRefiners || {},\n eventDefMemberAdders: input.eventDefMemberAdders || [],\n eventSourceRefiners: input.eventSourceRefiners || {},\n isDraggableTransformers: input.isDraggableTransformers || [],\n eventDragMutationMassagers: input.eventDragMutationMassagers || [],\n eventDefMutationAppliers: input.eventDefMutationAppliers || [],\n dateSelectionTransformers: input.dateSelectionTransformers || [],\n datePointTransforms: input.datePointTransforms || [],\n dateSpanTransforms: input.dateSpanTransforms || [],\n views: input.views || {},\n viewPropsTransformers: input.viewPropsTransformers || [],\n isPropsValid: input.isPropsValid || null,\n externalDefTransforms: input.externalDefTransforms || [],\n viewContainerAppends: input.viewContainerAppends || [],\n eventDropTransformers: input.eventDropTransformers || [],\n componentInteractions: input.componentInteractions || [],\n calendarInteractions: input.calendarInteractions || [],\n themeClasses: input.themeClasses || {},\n eventSourceDefs: input.eventSourceDefs || [],\n cmdFormatter: input.cmdFormatter,\n recurringTypes: input.recurringTypes || [],\n namedTimeZonedImpl: input.namedTimeZonedImpl,\n initialView: input.initialView || '',\n elementDraggingImpl: input.elementDraggingImpl,\n optionChangeHandlers: input.optionChangeHandlers || {},\n scrollGridImpl: input.scrollGridImpl || null,\n contentTypeHandlers: input.contentTypeHandlers || {},\n listenerRefiners: input.listenerRefiners || {},\n optionRefiners: input.optionRefiners || {},\n propSetHandlers: input.propSetHandlers || {}\n };\n}\n\nfunction buildPluginHooks(pluginDefs, globalDefs) {\n var isAdded = {};\n var hooks = {\n reducers: [],\n isLoadingFuncs: [],\n contextInit: [],\n eventRefiners: {},\n eventDefMemberAdders: [],\n eventSourceRefiners: {},\n isDraggableTransformers: [],\n eventDragMutationMassagers: [],\n eventDefMutationAppliers: [],\n dateSelectionTransformers: [],\n datePointTransforms: [],\n dateSpanTransforms: [],\n views: {},\n viewPropsTransformers: [],\n isPropsValid: null,\n externalDefTransforms: [],\n viewContainerAppends: [],\n eventDropTransformers: [],\n componentInteractions: [],\n calendarInteractions: [],\n themeClasses: {},\n eventSourceDefs: [],\n cmdFormatter: null,\n recurringTypes: [],\n namedTimeZonedImpl: null,\n initialView: '',\n elementDraggingImpl: null,\n optionChangeHandlers: {},\n scrollGridImpl: null,\n contentTypeHandlers: {},\n listenerRefiners: {},\n optionRefiners: {},\n propSetHandlers: {}\n };\n\n function addDefs(defs) {\n for (var _i = 0, defs_1 = defs; _i < defs_1.length; _i++) {\n var def = defs_1[_i];\n\n if (!isAdded[def.id]) {\n isAdded[def.id] = true;\n addDefs(def.deps);\n hooks = combineHooks(hooks, def);\n }\n }\n }\n\n if (pluginDefs) {\n addDefs(pluginDefs);\n }\n\n addDefs(globalDefs);\n return hooks;\n}\n\nfunction buildBuildPluginHooks() {\n var currentOverrideDefs = [];\n var currentGlobalDefs = [];\n var currentHooks;\n return function (overrideDefs, globalDefs) {\n if (!currentHooks || !isArraysEqual(overrideDefs, currentOverrideDefs) || !isArraysEqual(globalDefs, currentGlobalDefs)) {\n currentHooks = buildPluginHooks(overrideDefs, globalDefs);\n }\n\n currentOverrideDefs = overrideDefs;\n currentGlobalDefs = globalDefs;\n return currentHooks;\n };\n}\n\nfunction combineHooks(hooks0, hooks1) {\n return {\n reducers: hooks0.reducers.concat(hooks1.reducers),\n isLoadingFuncs: hooks0.isLoadingFuncs.concat(hooks1.isLoadingFuncs),\n contextInit: hooks0.contextInit.concat(hooks1.contextInit),\n eventRefiners: __assign(__assign({}, hooks0.eventRefiners), hooks1.eventRefiners),\n eventDefMemberAdders: hooks0.eventDefMemberAdders.concat(hooks1.eventDefMemberAdders),\n eventSourceRefiners: __assign(__assign({}, hooks0.eventSourceRefiners), hooks1.eventSourceRefiners),\n isDraggableTransformers: hooks0.isDraggableTransformers.concat(hooks1.isDraggableTransformers),\n eventDragMutationMassagers: hooks0.eventDragMutationMassagers.concat(hooks1.eventDragMutationMassagers),\n eventDefMutationAppliers: hooks0.eventDefMutationAppliers.concat(hooks1.eventDefMutationAppliers),\n dateSelectionTransformers: hooks0.dateSelectionTransformers.concat(hooks1.dateSelectionTransformers),\n datePointTransforms: hooks0.datePointTransforms.concat(hooks1.datePointTransforms),\n dateSpanTransforms: hooks0.dateSpanTransforms.concat(hooks1.dateSpanTransforms),\n views: __assign(__assign({}, hooks0.views), hooks1.views),\n viewPropsTransformers: hooks0.viewPropsTransformers.concat(hooks1.viewPropsTransformers),\n isPropsValid: hooks1.isPropsValid || hooks0.isPropsValid,\n externalDefTransforms: hooks0.externalDefTransforms.concat(hooks1.externalDefTransforms),\n viewContainerAppends: hooks0.viewContainerAppends.concat(hooks1.viewContainerAppends),\n eventDropTransformers: hooks0.eventDropTransformers.concat(hooks1.eventDropTransformers),\n calendarInteractions: hooks0.calendarInteractions.concat(hooks1.calendarInteractions),\n componentInteractions: hooks0.componentInteractions.concat(hooks1.componentInteractions),\n themeClasses: __assign(__assign({}, hooks0.themeClasses), hooks1.themeClasses),\n eventSourceDefs: hooks0.eventSourceDefs.concat(hooks1.eventSourceDefs),\n cmdFormatter: hooks1.cmdFormatter || hooks0.cmdFormatter,\n recurringTypes: hooks0.recurringTypes.concat(hooks1.recurringTypes),\n namedTimeZonedImpl: hooks1.namedTimeZonedImpl || hooks0.namedTimeZonedImpl,\n initialView: hooks0.initialView || hooks1.initialView,\n elementDraggingImpl: hooks0.elementDraggingImpl || hooks1.elementDraggingImpl,\n optionChangeHandlers: __assign(__assign({}, hooks0.optionChangeHandlers), hooks1.optionChangeHandlers),\n scrollGridImpl: hooks1.scrollGridImpl || hooks0.scrollGridImpl,\n contentTypeHandlers: __assign(__assign({}, hooks0.contentTypeHandlers), hooks1.contentTypeHandlers),\n listenerRefiners: __assign(__assign({}, hooks0.listenerRefiners), hooks1.listenerRefiners),\n optionRefiners: __assign(__assign({}, hooks0.optionRefiners), hooks1.optionRefiners),\n propSetHandlers: __assign(__assign({}, hooks0.propSetHandlers), hooks1.propSetHandlers)\n };\n}\n\nvar StandardTheme =\n/** @class */\nfunction (_super) {\n __extends(StandardTheme, _super);\n\n function StandardTheme() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return StandardTheme;\n}(Theme);\n\nStandardTheme.prototype.classes = {\n root: 'fc-theme-standard',\n tableCellShaded: 'fc-cell-shaded',\n buttonGroup: 'fc-button-group',\n button: 'fc-button fc-button-primary',\n buttonActive: 'fc-button-active'\n};\nStandardTheme.prototype.baseIconClass = 'fc-icon';\nStandardTheme.prototype.iconClasses = {\n close: 'fc-icon-x',\n prev: 'fc-icon-chevron-left',\n next: 'fc-icon-chevron-right',\n prevYear: 'fc-icon-chevrons-left',\n nextYear: 'fc-icon-chevrons-right'\n};\nStandardTheme.prototype.rtlIconClasses = {\n prev: 'fc-icon-chevron-right',\n next: 'fc-icon-chevron-left',\n prevYear: 'fc-icon-chevrons-right',\n nextYear: 'fc-icon-chevrons-left'\n};\nStandardTheme.prototype.iconOverrideOption = 'buttonIcons'; // TODO: make TS-friendly\n\nStandardTheme.prototype.iconOverrideCustomButtonOption = 'icon';\nStandardTheme.prototype.iconOverridePrefix = 'fc-icon-';\n\nfunction compileViewDefs(defaultConfigs, overrideConfigs) {\n var hash = {};\n var viewType;\n\n for (viewType in defaultConfigs) {\n ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n }\n\n for (viewType in overrideConfigs) {\n ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n }\n\n return hash;\n}\n\nfunction ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs) {\n if (hash[viewType]) {\n return hash[viewType];\n }\n\n var viewDef = buildViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n\n if (viewDef) {\n hash[viewType] = viewDef;\n }\n\n return viewDef;\n}\n\nfunction buildViewDef(viewType, hash, defaultConfigs, overrideConfigs) {\n var defaultConfig = defaultConfigs[viewType];\n var overrideConfig = overrideConfigs[viewType];\n\n var queryProp = function queryProp(name) {\n return defaultConfig && defaultConfig[name] !== null ? defaultConfig[name] : overrideConfig && overrideConfig[name] !== null ? overrideConfig[name] : null;\n };\n\n var theComponent = queryProp('component');\n var superType = queryProp('superType');\n var superDef = null;\n\n if (superType) {\n if (superType === viewType) {\n throw new Error('Can\\'t have a custom view type that references itself');\n }\n\n superDef = ensureViewDef(superType, hash, defaultConfigs, overrideConfigs);\n }\n\n if (!theComponent && superDef) {\n theComponent = superDef.component;\n }\n\n if (!theComponent) {\n return null; // don't throw a warning, might be settings for a single-unit view\n }\n\n return {\n type: viewType,\n component: theComponent,\n defaults: __assign(__assign({}, superDef ? superDef.defaults : {}), defaultConfig ? defaultConfig.rawOptions : {}),\n overrides: __assign(__assign({}, superDef ? superDef.overrides : {}), overrideConfig ? overrideConfig.rawOptions : {})\n };\n}\n/* eslint max-classes-per-file: off */\n// NOTE: in JSX, you should always use this class with arg. otherwise, will default to any???\n\n\nvar RenderHook =\n/** @class */\nfunction (_super) {\n __extends(RenderHook, _super);\n\n function RenderHook() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.rootElRef = createRef();\n\n _this.handleRootEl = function (el) {\n setRef(_this.rootElRef, el);\n\n if (_this.props.elRef) {\n setRef(_this.props.elRef, el);\n }\n };\n\n return _this;\n }\n\n RenderHook.prototype.render = function () {\n var _this = this;\n\n var props = this.props;\n var hookProps = props.hookProps;\n return createElement(MountHook, {\n hookProps: hookProps,\n didMount: props.didMount,\n willUnmount: props.willUnmount,\n elRef: this.handleRootEl\n }, function (rootElRef) {\n return createElement(ContentHook, {\n hookProps: hookProps,\n content: props.content,\n defaultContent: props.defaultContent,\n backupElRef: _this.rootElRef\n }, function (innerElRef, innerContent) {\n return props.children(rootElRef, normalizeClassNames(props.classNames, hookProps), innerElRef, innerContent);\n });\n });\n };\n\n return RenderHook;\n}(BaseComponent); // TODO: rename to be about function, not default. use in above type\n// for forcing rerender of components that use the ContentHook\n\n\nvar CustomContentRenderContext = createContext(0);\n\nfunction ContentHook(props) {\n return createElement(CustomContentRenderContext.Consumer, null, function (renderId) {\n return createElement(ContentHookInner, __assign({\n renderId: renderId\n }, props));\n });\n}\n\nvar ContentHookInner =\n/** @class */\nfunction (_super) {\n __extends(ContentHookInner, _super);\n\n function ContentHookInner() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.innerElRef = createRef();\n return _this;\n }\n\n ContentHookInner.prototype.render = function () {\n return this.props.children(this.innerElRef, this.renderInnerContent());\n };\n\n ContentHookInner.prototype.componentDidMount = function () {\n this.updateCustomContent();\n };\n\n ContentHookInner.prototype.componentDidUpdate = function () {\n this.updateCustomContent();\n };\n\n ContentHookInner.prototype.componentWillUnmount = function () {\n if (this.customContentInfo && this.customContentInfo.destroy) {\n this.customContentInfo.destroy();\n }\n };\n\n ContentHookInner.prototype.renderInnerContent = function () {\n var customContentInfo = this.customContentInfo; // only populated if using non-[p]react node(s)\n\n var innerContent = this.getInnerContent();\n var meta = this.getContentMeta(innerContent); // initial run, or content-type changing? (from vue -> react for example)\n\n if (!customContentInfo || customContentInfo.contentKey !== meta.contentKey) {\n // clearing old value\n if (customContentInfo) {\n if (customContentInfo.destroy) {\n customContentInfo.destroy();\n }\n\n customContentInfo = this.customContentInfo = null;\n } // assigning new value\n\n\n if (meta.contentKey) {\n customContentInfo = this.customContentInfo = __assign({\n contentKey: meta.contentKey,\n contentVal: innerContent[meta.contentKey]\n }, meta.buildLifecycleFuncs());\n } // updating\n\n } else if (customContentInfo) {\n customContentInfo.contentVal = innerContent[meta.contentKey];\n }\n\n return customContentInfo ? [] // signal that something was specified\n : innerContent; // assume a [p]react vdom node. use it\n };\n\n ContentHookInner.prototype.getInnerContent = function () {\n var props = this.props;\n var innerContent = normalizeContent(props.content, props.hookProps);\n\n if (innerContent === undefined) {\n // use the default\n innerContent = normalizeContent(props.defaultContent, props.hookProps);\n }\n\n return innerContent == null ? null : innerContent; // convert undefined to null (better for React)\n };\n\n ContentHookInner.prototype.getContentMeta = function (innerContent) {\n var contentTypeHandlers = this.context.pluginHooks.contentTypeHandlers;\n var contentKey = '';\n var buildLifecycleFuncs = null;\n\n if (innerContent) {\n // allowed to be null, for convenience to caller\n for (var searchKey in contentTypeHandlers) {\n if (innerContent[searchKey] !== undefined) {\n contentKey = searchKey;\n buildLifecycleFuncs = contentTypeHandlers[searchKey];\n break;\n }\n }\n }\n\n return {\n contentKey: contentKey,\n buildLifecycleFuncs: buildLifecycleFuncs\n };\n };\n\n ContentHookInner.prototype.updateCustomContent = function () {\n if (this.customContentInfo) {\n // for non-[p]react\n this.customContentInfo.render(this.innerElRef.current || this.props.backupElRef.current, // the element to render into\n this.customContentInfo.contentVal);\n }\n };\n\n return ContentHookInner;\n}(BaseComponent);\n\nvar MountHook =\n/** @class */\nfunction (_super) {\n __extends(MountHook, _super);\n\n function MountHook() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.handleRootEl = function (rootEl) {\n _this.rootEl = rootEl;\n\n if (_this.props.elRef) {\n setRef(_this.props.elRef, rootEl);\n }\n };\n\n return _this;\n }\n\n MountHook.prototype.render = function () {\n return this.props.children(this.handleRootEl);\n };\n\n MountHook.prototype.componentDidMount = function () {\n var callback = this.props.didMount;\n\n if (callback) {\n callback(__assign(__assign({}, this.props.hookProps), {\n el: this.rootEl\n }));\n }\n };\n\n MountHook.prototype.componentWillUnmount = function () {\n var callback = this.props.willUnmount;\n\n if (callback) {\n callback(__assign(__assign({}, this.props.hookProps), {\n el: this.rootEl\n }));\n }\n };\n\n return MountHook;\n}(BaseComponent);\n\nfunction buildClassNameNormalizer() {\n var currentGenerator;\n var currentHookProps;\n var currentClassNames = [];\n return function (generator, hookProps) {\n if (!currentHookProps || !isPropsEqual(currentHookProps, hookProps) || generator !== currentGenerator) {\n currentGenerator = generator;\n currentHookProps = hookProps;\n currentClassNames = normalizeClassNames(generator, hookProps);\n }\n\n return currentClassNames;\n };\n}\n\nfunction normalizeClassNames(classNames, hookProps) {\n if (typeof classNames === 'function') {\n classNames = classNames(hookProps);\n }\n\n return parseClassNames(classNames);\n}\n\nfunction normalizeContent(input, hookProps) {\n if (typeof input === 'function') {\n return input(hookProps, createElement); // give the function the vdom-creation func\n }\n\n return input;\n}\n\nvar ViewRoot =\n/** @class */\nfunction (_super) {\n __extends(ViewRoot, _super);\n\n function ViewRoot() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.normalizeClassNames = buildClassNameNormalizer();\n return _this;\n }\n\n ViewRoot.prototype.render = function () {\n var _a = this,\n props = _a.props,\n context = _a.context;\n\n var options = context.options;\n var hookProps = {\n view: context.viewApi\n };\n var customClassNames = this.normalizeClassNames(options.viewClassNames, hookProps);\n return createElement(MountHook, {\n hookProps: hookProps,\n didMount: options.viewDidMount,\n willUnmount: options.viewWillUnmount,\n elRef: props.elRef\n }, function (rootElRef) {\n return props.children(rootElRef, [\"fc-\" + props.viewSpec.type + \"-view\", 'fc-view'].concat(customClassNames));\n });\n };\n\n return ViewRoot;\n}(BaseComponent);\n\nfunction parseViewConfigs(inputs) {\n return mapHash(inputs, parseViewConfig);\n}\n\nfunction parseViewConfig(input) {\n var rawOptions = typeof input === 'function' ? {\n component: input\n } : input;\n var component = rawOptions.component;\n\n if (rawOptions.content) {\n component = createViewHookComponent(rawOptions); // TODO: remove content/classNames/didMount/etc from options?\n }\n\n return {\n superType: rawOptions.type,\n component: component,\n rawOptions: rawOptions\n };\n}\n\nfunction createViewHookComponent(options) {\n return function (viewProps) {\n return createElement(ViewContextType.Consumer, null, function (context) {\n return createElement(ViewRoot, {\n viewSpec: context.viewSpec\n }, function (viewElRef, viewClassNames) {\n var hookProps = __assign(__assign({}, viewProps), {\n nextDayThreshold: context.options.nextDayThreshold\n });\n\n return createElement(RenderHook, {\n hookProps: hookProps,\n classNames: options.classNames,\n content: options.content,\n didMount: options.didMount,\n willUnmount: options.willUnmount,\n elRef: viewElRef\n }, function (rootElRef, customClassNames, innerElRef, innerContent) {\n return createElement(\"div\", {\n className: viewClassNames.concat(customClassNames).join(' '),\n ref: rootElRef\n }, innerContent);\n });\n });\n });\n };\n}\n\nfunction buildViewSpecs(defaultInputs, optionOverrides, dynamicOptionOverrides, localeDefaults) {\n var defaultConfigs = parseViewConfigs(defaultInputs);\n var overrideConfigs = parseViewConfigs(optionOverrides.views);\n var viewDefs = compileViewDefs(defaultConfigs, overrideConfigs);\n return mapHash(viewDefs, function (viewDef) {\n return buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionOverrides, localeDefaults);\n });\n}\n\nfunction buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionOverrides, localeDefaults) {\n var durationInput = viewDef.overrides.duration || viewDef.defaults.duration || dynamicOptionOverrides.duration || optionOverrides.duration;\n var duration = null;\n var durationUnit = '';\n var singleUnit = '';\n var singleUnitOverrides = {};\n\n if (durationInput) {\n duration = createDurationCached(durationInput);\n\n if (duration) {\n // valid?\n var denom = greatestDurationDenominator(duration);\n durationUnit = denom.unit;\n\n if (denom.value === 1) {\n singleUnit = durationUnit;\n singleUnitOverrides = overrideConfigs[durationUnit] ? overrideConfigs[durationUnit].rawOptions : {};\n }\n }\n }\n\n var queryButtonText = function queryButtonText(optionsSubset) {\n var buttonTextMap = optionsSubset.buttonText || {};\n var buttonTextKey = viewDef.defaults.buttonTextKey;\n\n if (buttonTextKey != null && buttonTextMap[buttonTextKey] != null) {\n return buttonTextMap[buttonTextKey];\n }\n\n if (buttonTextMap[viewDef.type] != null) {\n return buttonTextMap[viewDef.type];\n }\n\n if (buttonTextMap[singleUnit] != null) {\n return buttonTextMap[singleUnit];\n }\n\n return null;\n };\n\n var queryButtonTitle = function queryButtonTitle(optionsSubset) {\n var buttonHints = optionsSubset.buttonHints || {};\n var buttonKey = viewDef.defaults.buttonTextKey; // use same key as text\n\n if (buttonKey != null && buttonHints[buttonKey] != null) {\n return buttonHints[buttonKey];\n }\n\n if (buttonHints[viewDef.type] != null) {\n return buttonHints[viewDef.type];\n }\n\n if (buttonHints[singleUnit] != null) {\n return buttonHints[singleUnit];\n }\n\n return null;\n };\n\n return {\n type: viewDef.type,\n component: viewDef.component,\n duration: duration,\n durationUnit: durationUnit,\n singleUnit: singleUnit,\n optionDefaults: viewDef.defaults,\n optionOverrides: __assign(__assign({}, singleUnitOverrides), viewDef.overrides),\n buttonTextOverride: queryButtonText(dynamicOptionOverrides) || queryButtonText(optionOverrides) || // constructor-specified buttonText lookup hash takes precedence\n viewDef.overrides.buttonText,\n buttonTextDefault: queryButtonText(localeDefaults) || viewDef.defaults.buttonText || queryButtonText(BASE_OPTION_DEFAULTS) || viewDef.type,\n // not DRY\n buttonTitleOverride: queryButtonTitle(dynamicOptionOverrides) || queryButtonTitle(optionOverrides) || viewDef.overrides.buttonHint,\n buttonTitleDefault: queryButtonTitle(localeDefaults) || viewDef.defaults.buttonHint || queryButtonTitle(BASE_OPTION_DEFAULTS) // will eventually fall back to buttonText\n\n };\n} // hack to get memoization working\n\n\nvar durationInputMap = {};\n\nfunction createDurationCached(durationInput) {\n var json = JSON.stringify(durationInput);\n var res = durationInputMap[json];\n\n if (res === undefined) {\n res = createDuration(durationInput);\n durationInputMap[json] = res;\n }\n\n return res;\n}\n\nvar DateProfileGenerator =\n/** @class */\nfunction () {\n function DateProfileGenerator(props) {\n this.props = props;\n this.nowDate = getNow(props.nowInput, props.dateEnv);\n this.initHiddenDays();\n }\n /* Date Range Computation\n ------------------------------------------------------------------------------------------------------------------*/\n // Builds a structure with info about what the dates/ranges will be for the \"prev\" view.\n\n\n DateProfileGenerator.prototype.buildPrev = function (currentDateProfile, currentDate, forceToValid) {\n var dateEnv = this.props.dateEnv;\n var prevDate = dateEnv.subtract(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month\n currentDateProfile.dateIncrement);\n return this.build(prevDate, -1, forceToValid);\n }; // Builds a structure with info about what the dates/ranges will be for the \"next\" view.\n\n\n DateProfileGenerator.prototype.buildNext = function (currentDateProfile, currentDate, forceToValid) {\n var dateEnv = this.props.dateEnv;\n var nextDate = dateEnv.add(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month\n currentDateProfile.dateIncrement);\n return this.build(nextDate, 1, forceToValid);\n }; // Builds a structure holding dates/ranges for rendering around the given date.\n // Optional direction param indicates whether the date is being incremented/decremented\n // from its previous value. decremented = -1, incremented = 1 (default).\n\n\n DateProfileGenerator.prototype.build = function (currentDate, direction, forceToValid) {\n if (forceToValid === void 0) {\n forceToValid = true;\n }\n\n var props = this.props;\n var validRange;\n var currentInfo;\n var isRangeAllDay;\n var renderRange;\n var activeRange;\n var isValid;\n validRange = this.buildValidRange();\n validRange = this.trimHiddenDays(validRange);\n\n if (forceToValid) {\n currentDate = constrainMarkerToRange(currentDate, validRange);\n }\n\n currentInfo = this.buildCurrentRangeInfo(currentDate, direction);\n isRangeAllDay = /^(year|month|week|day)$/.test(currentInfo.unit);\n renderRange = this.buildRenderRange(this.trimHiddenDays(currentInfo.range), currentInfo.unit, isRangeAllDay);\n renderRange = this.trimHiddenDays(renderRange);\n activeRange = renderRange;\n\n if (!props.showNonCurrentDates) {\n activeRange = intersectRanges(activeRange, currentInfo.range);\n }\n\n activeRange = this.adjustActiveRange(activeRange);\n activeRange = intersectRanges(activeRange, validRange); // might return null\n // it's invalid if the originally requested date is not contained,\n // or if the range is completely outside of the valid range.\n\n isValid = rangesIntersect(currentInfo.range, validRange);\n return {\n // constraint for where prev/next operations can go and where events can be dragged/resized to.\n // an object with optional start and end properties.\n validRange: validRange,\n // range the view is formally responsible for.\n // for example, a month view might have 1st-31st, excluding padded dates\n currentRange: currentInfo.range,\n // name of largest unit being displayed, like \"month\" or \"week\"\n currentRangeUnit: currentInfo.unit,\n isRangeAllDay: isRangeAllDay,\n // dates that display events and accept drag-n-drop\n // will be `null` if no dates accept events\n activeRange: activeRange,\n // date range with a rendered skeleton\n // includes not-active days that need some sort of DOM\n renderRange: renderRange,\n // Duration object that denotes the first visible time of any given day\n slotMinTime: props.slotMinTime,\n // Duration object that denotes the exclusive visible end time of any given day\n slotMaxTime: props.slotMaxTime,\n isValid: isValid,\n // how far the current date will move for a prev/next operation\n dateIncrement: this.buildDateIncrement(currentInfo.duration) // pass a fallback (might be null) ^\n\n };\n }; // Builds an object with optional start/end properties.\n // Indicates the minimum/maximum dates to display.\n // not responsible for trimming hidden days.\n\n\n DateProfileGenerator.prototype.buildValidRange = function () {\n var input = this.props.validRangeInput;\n var simpleInput = typeof input === 'function' ? input.call(this.props.calendarApi, this.nowDate) : input;\n return this.refineRange(simpleInput) || {\n start: null,\n end: null\n }; // completely open-ended\n }; // Builds a structure with info about the \"current\" range, the range that is\n // highlighted as being the current month for example.\n // See build() for a description of `direction`.\n // Guaranteed to have `range` and `unit` properties. `duration` is optional.\n\n\n DateProfileGenerator.prototype.buildCurrentRangeInfo = function (date, direction) {\n var props = this.props;\n var duration = null;\n var unit = null;\n var range = null;\n var dayCount;\n\n if (props.duration) {\n duration = props.duration;\n unit = props.durationUnit;\n range = this.buildRangeFromDuration(date, direction, duration, unit);\n } else if (dayCount = this.props.dayCount) {\n unit = 'day';\n range = this.buildRangeFromDayCount(date, direction, dayCount);\n } else if (range = this.buildCustomVisibleRange(date)) {\n unit = props.dateEnv.greatestWholeUnit(range.start, range.end).unit;\n } else {\n duration = this.getFallbackDuration();\n unit = greatestDurationDenominator(duration).unit;\n range = this.buildRangeFromDuration(date, direction, duration, unit);\n }\n\n return {\n duration: duration,\n unit: unit,\n range: range\n };\n };\n\n DateProfileGenerator.prototype.getFallbackDuration = function () {\n return createDuration({\n day: 1\n });\n }; // Returns a new activeRange to have time values (un-ambiguate)\n // slotMinTime or slotMaxTime causes the range to expand.\n\n\n DateProfileGenerator.prototype.adjustActiveRange = function (range) {\n var _a = this.props,\n dateEnv = _a.dateEnv,\n usesMinMaxTime = _a.usesMinMaxTime,\n slotMinTime = _a.slotMinTime,\n slotMaxTime = _a.slotMaxTime;\n var start = range.start,\n end = range.end;\n\n if (usesMinMaxTime) {\n // expand active range if slotMinTime is negative (why not when positive?)\n if (asRoughDays(slotMinTime) < 0) {\n start = startOfDay(start); // necessary?\n\n start = dateEnv.add(start, slotMinTime);\n } // expand active range if slotMaxTime is beyond one day (why not when negative?)\n\n\n if (asRoughDays(slotMaxTime) > 1) {\n end = startOfDay(end); // necessary?\n\n end = addDays(end, -1);\n end = dateEnv.add(end, slotMaxTime);\n }\n }\n\n return {\n start: start,\n end: end\n };\n }; // Builds the \"current\" range when it is specified as an explicit duration.\n // `unit` is the already-computed greatestDurationDenominator unit of duration.\n\n\n DateProfileGenerator.prototype.buildRangeFromDuration = function (date, direction, duration, unit) {\n var _a = this.props,\n dateEnv = _a.dateEnv,\n dateAlignment = _a.dateAlignment;\n var start;\n var end;\n var res; // compute what the alignment should be\n\n if (!dateAlignment) {\n var dateIncrement = this.props.dateIncrement;\n\n if (dateIncrement) {\n // use the smaller of the two units\n if (asRoughMs(dateIncrement) < asRoughMs(duration)) {\n dateAlignment = greatestDurationDenominator(dateIncrement).unit;\n } else {\n dateAlignment = unit;\n }\n } else {\n dateAlignment = unit;\n }\n } // if the view displays a single day or smaller\n\n\n if (asRoughDays(duration) <= 1) {\n if (this.isHiddenDay(start)) {\n start = this.skipHiddenDays(start, direction);\n start = startOfDay(start);\n }\n }\n\n function computeRes() {\n start = dateEnv.startOf(date, dateAlignment);\n end = dateEnv.add(start, duration);\n res = {\n start: start,\n end: end\n };\n }\n\n computeRes(); // if range is completely enveloped by hidden days, go past the hidden days\n\n if (!this.trimHiddenDays(res)) {\n date = this.skipHiddenDays(date, direction);\n computeRes();\n }\n\n return res;\n }; // Builds the \"current\" range when a dayCount is specified.\n\n\n DateProfileGenerator.prototype.buildRangeFromDayCount = function (date, direction, dayCount) {\n var _a = this.props,\n dateEnv = _a.dateEnv,\n dateAlignment = _a.dateAlignment;\n var runningCount = 0;\n var start = date;\n var end;\n\n if (dateAlignment) {\n start = dateEnv.startOf(start, dateAlignment);\n }\n\n start = startOfDay(start);\n start = this.skipHiddenDays(start, direction);\n end = start;\n\n do {\n end = addDays(end, 1);\n\n if (!this.isHiddenDay(end)) {\n runningCount += 1;\n }\n } while (runningCount < dayCount);\n\n return {\n start: start,\n end: end\n };\n }; // Builds a normalized range object for the \"visible\" range,\n // which is a way to define the currentRange and activeRange at the same time.\n\n\n DateProfileGenerator.prototype.buildCustomVisibleRange = function (date) {\n var props = this.props;\n var input = props.visibleRangeInput;\n var simpleInput = typeof input === 'function' ? input.call(props.calendarApi, props.dateEnv.toDate(date)) : input;\n var range = this.refineRange(simpleInput);\n\n if (range && (range.start == null || range.end == null)) {\n return null;\n }\n\n return range;\n }; // Computes the range that will represent the element/cells for *rendering*,\n // but which may have voided days/times.\n // not responsible for trimming hidden days.\n\n\n DateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) {\n return currentRange;\n }; // Compute the duration value that should be added/substracted to the current date\n // when a prev/next operation happens.\n\n\n DateProfileGenerator.prototype.buildDateIncrement = function (fallback) {\n var dateIncrement = this.props.dateIncrement;\n var customAlignment;\n\n if (dateIncrement) {\n return dateIncrement;\n }\n\n if (customAlignment = this.props.dateAlignment) {\n return createDuration(1, customAlignment);\n }\n\n if (fallback) {\n return fallback;\n }\n\n return createDuration({\n days: 1\n });\n };\n\n DateProfileGenerator.prototype.refineRange = function (rangeInput) {\n if (rangeInput) {\n var range = parseRange(rangeInput, this.props.dateEnv);\n\n if (range) {\n range = computeVisibleDayRange(range);\n }\n\n return range;\n }\n\n return null;\n };\n /* Hidden Days\n ------------------------------------------------------------------------------------------------------------------*/\n // Initializes internal variables related to calculating hidden days-of-week\n\n\n DateProfileGenerator.prototype.initHiddenDays = function () {\n var hiddenDays = this.props.hiddenDays || []; // array of day-of-week indices that are hidden\n\n var isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool)\n\n var dayCnt = 0;\n var i;\n\n if (this.props.weekends === false) {\n hiddenDays.push(0, 6); // 0=sunday, 6=saturday\n }\n\n for (i = 0; i < 7; i += 1) {\n if (!(isHiddenDayHash[i] = hiddenDays.indexOf(i) !== -1)) {\n dayCnt += 1;\n }\n }\n\n if (!dayCnt) {\n throw new Error('invalid hiddenDays'); // all days were hidden? bad.\n }\n\n this.isHiddenDayHash = isHiddenDayHash;\n }; // Remove days from the beginning and end of the range that are computed as hidden.\n // If the whole range is trimmed off, returns null\n\n\n DateProfileGenerator.prototype.trimHiddenDays = function (range) {\n var start = range.start,\n end = range.end;\n\n if (start) {\n start = this.skipHiddenDays(start);\n }\n\n if (end) {\n end = this.skipHiddenDays(end, -1, true);\n }\n\n if (start == null || end == null || start < end) {\n return {\n start: start,\n end: end\n };\n }\n\n return null;\n }; // Is the current day hidden?\n // `day` is a day-of-week index (0-6), or a Date (used for UTC)\n\n\n DateProfileGenerator.prototype.isHiddenDay = function (day) {\n if (day instanceof Date) {\n day = day.getUTCDay();\n }\n\n return this.isHiddenDayHash[day];\n }; // Incrementing the current day until it is no longer a hidden day, returning a copy.\n // DOES NOT CONSIDER validRange!\n // If the initial value of `date` is not a hidden day, don't do anything.\n // Pass `isExclusive` as `true` if you are dealing with an end date.\n // `inc` defaults to `1` (increment one day forward each time)\n\n\n DateProfileGenerator.prototype.skipHiddenDays = function (date, inc, isExclusive) {\n if (inc === void 0) {\n inc = 1;\n }\n\n if (isExclusive === void 0) {\n isExclusive = false;\n }\n\n while (this.isHiddenDayHash[(date.getUTCDay() + (isExclusive ? inc : 0) + 7) % 7]) {\n date = addDays(date, inc);\n }\n\n return date;\n };\n\n return DateProfileGenerator;\n}();\n\nfunction reduceViewType(viewType, action) {\n switch (action.type) {\n case 'CHANGE_VIEW_TYPE':\n viewType = action.viewType;\n }\n\n return viewType;\n}\n\nfunction reduceDynamicOptionOverrides(dynamicOptionOverrides, action) {\n var _a;\n\n switch (action.type) {\n case 'SET_OPTION':\n return __assign(__assign({}, dynamicOptionOverrides), (_a = {}, _a[action.optionName] = action.rawOptionValue, _a));\n\n default:\n return dynamicOptionOverrides;\n }\n}\n\nfunction reduceDateProfile(currentDateProfile, action, currentDate, dateProfileGenerator) {\n var dp;\n\n switch (action.type) {\n case 'CHANGE_VIEW_TYPE':\n return dateProfileGenerator.build(action.dateMarker || currentDate);\n\n case 'CHANGE_DATE':\n return dateProfileGenerator.build(action.dateMarker);\n\n case 'PREV':\n dp = dateProfileGenerator.buildPrev(currentDateProfile, currentDate);\n\n if (dp.isValid) {\n return dp;\n }\n\n break;\n\n case 'NEXT':\n dp = dateProfileGenerator.buildNext(currentDateProfile, currentDate);\n\n if (dp.isValid) {\n return dp;\n }\n\n break;\n }\n\n return currentDateProfile;\n}\n\nfunction initEventSources(calendarOptions, dateProfile, context) {\n var activeRange = dateProfile ? dateProfile.activeRange : null;\n return addSources({}, parseInitialSources(calendarOptions, context), activeRange, context);\n}\n\nfunction reduceEventSources(eventSources, action, dateProfile, context) {\n var activeRange = dateProfile ? dateProfile.activeRange : null; // need this check?\n\n switch (action.type) {\n case 'ADD_EVENT_SOURCES':\n // already parsed\n return addSources(eventSources, action.sources, activeRange, context);\n\n case 'REMOVE_EVENT_SOURCE':\n return removeSource(eventSources, action.sourceId);\n\n case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n\n case 'NEXT':\n case 'CHANGE_DATE':\n case 'CHANGE_VIEW_TYPE':\n if (dateProfile) {\n return fetchDirtySources(eventSources, activeRange, context);\n }\n\n return eventSources;\n\n case 'FETCH_EVENT_SOURCES':\n return fetchSourcesByIds(eventSources, action.sourceIds ? // why no type?\n arrayToHash(action.sourceIds) : excludeStaticSources(eventSources, context), activeRange, action.isRefetch || false, context);\n\n case 'RECEIVE_EVENTS':\n case 'RECEIVE_EVENT_ERROR':\n return receiveResponse(eventSources, action.sourceId, action.fetchId, action.fetchRange);\n\n case 'REMOVE_ALL_EVENT_SOURCES':\n return {};\n\n default:\n return eventSources;\n }\n}\n\nfunction reduceEventSourcesNewTimeZone(eventSources, dateProfile, context) {\n var activeRange = dateProfile ? dateProfile.activeRange : null; // need this check?\n\n return fetchSourcesByIds(eventSources, excludeStaticSources(eventSources, context), activeRange, true, context);\n}\n\nfunction computeEventSourcesLoading(eventSources) {\n for (var sourceId in eventSources) {\n if (eventSources[sourceId].isFetching) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction addSources(eventSourceHash, sources, fetchRange, context) {\n var hash = {};\n\n for (var _i = 0, sources_1 = sources; _i < sources_1.length; _i++) {\n var source = sources_1[_i];\n hash[source.sourceId] = source;\n }\n\n if (fetchRange) {\n hash = fetchDirtySources(hash, fetchRange, context);\n }\n\n return __assign(__assign({}, eventSourceHash), hash);\n}\n\nfunction removeSource(eventSourceHash, sourceId) {\n return filterHash(eventSourceHash, function (eventSource) {\n return eventSource.sourceId !== sourceId;\n });\n}\n\nfunction fetchDirtySources(sourceHash, fetchRange, context) {\n return fetchSourcesByIds(sourceHash, filterHash(sourceHash, function (eventSource) {\n return isSourceDirty(eventSource, fetchRange, context);\n }), fetchRange, false, context);\n}\n\nfunction isSourceDirty(eventSource, fetchRange, context) {\n if (!doesSourceNeedRange(eventSource, context)) {\n return !eventSource.latestFetchId;\n }\n\n return !context.options.lazyFetching || !eventSource.fetchRange || eventSource.isFetching || // always cancel outdated in-progress fetches\n fetchRange.start < eventSource.fetchRange.start || fetchRange.end > eventSource.fetchRange.end;\n}\n\nfunction fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, isRefetch, context) {\n var nextSources = {};\n\n for (var sourceId in prevSources) {\n var source = prevSources[sourceId];\n\n if (sourceIdHash[sourceId]) {\n nextSources[sourceId] = fetchSource(source, fetchRange, isRefetch, context);\n } else {\n nextSources[sourceId] = source;\n }\n }\n\n return nextSources;\n}\n\nfunction fetchSource(eventSource, fetchRange, isRefetch, context) {\n var options = context.options,\n calendarApi = context.calendarApi;\n var sourceDef = context.pluginHooks.eventSourceDefs[eventSource.sourceDefId];\n var fetchId = guid();\n sourceDef.fetch({\n eventSource: eventSource,\n range: fetchRange,\n isRefetch: isRefetch,\n context: context\n }, function (res) {\n var rawEvents = res.rawEvents;\n\n if (options.eventSourceSuccess) {\n rawEvents = options.eventSourceSuccess.call(calendarApi, rawEvents, res.xhr) || rawEvents;\n }\n\n if (eventSource.success) {\n rawEvents = eventSource.success.call(calendarApi, rawEvents, res.xhr) || rawEvents;\n }\n\n context.dispatch({\n type: 'RECEIVE_EVENTS',\n sourceId: eventSource.sourceId,\n fetchId: fetchId,\n fetchRange: fetchRange,\n rawEvents: rawEvents\n });\n }, function (error) {\n console.warn(error.message, error);\n\n if (options.eventSourceFailure) {\n options.eventSourceFailure.call(calendarApi, error);\n }\n\n if (eventSource.failure) {\n eventSource.failure(error);\n }\n\n context.dispatch({\n type: 'RECEIVE_EVENT_ERROR',\n sourceId: eventSource.sourceId,\n fetchId: fetchId,\n fetchRange: fetchRange,\n error: error\n });\n });\n return __assign(__assign({}, eventSource), {\n isFetching: true,\n latestFetchId: fetchId\n });\n}\n\nfunction receiveResponse(sourceHash, sourceId, fetchId, fetchRange) {\n var _a;\n\n var eventSource = sourceHash[sourceId];\n\n if (eventSource && // not already removed\n fetchId === eventSource.latestFetchId) {\n return __assign(__assign({}, sourceHash), (_a = {}, _a[sourceId] = __assign(__assign({}, eventSource), {\n isFetching: false,\n fetchRange: fetchRange\n }), _a));\n }\n\n return sourceHash;\n}\n\nfunction excludeStaticSources(eventSources, context) {\n return filterHash(eventSources, function (eventSource) {\n return doesSourceNeedRange(eventSource, context);\n });\n}\n\nfunction parseInitialSources(rawOptions, context) {\n var refiners = buildEventSourceRefiners(context);\n var rawSources = [].concat(rawOptions.eventSources || []);\n var sources = []; // parsed\n\n if (rawOptions.initialEvents) {\n rawSources.unshift(rawOptions.initialEvents);\n }\n\n if (rawOptions.events) {\n rawSources.unshift(rawOptions.events);\n }\n\n for (var _i = 0, rawSources_1 = rawSources; _i < rawSources_1.length; _i++) {\n var rawSource = rawSources_1[_i];\n var source = parseEventSource(rawSource, context, refiners);\n\n if (source) {\n sources.push(source);\n }\n }\n\n return sources;\n}\n\nfunction doesSourceNeedRange(eventSource, context) {\n var defs = context.pluginHooks.eventSourceDefs;\n return !defs[eventSource.sourceDefId].ignoreRange;\n}\n\nfunction reduceEventStore(eventStore, action, eventSources, dateProfile, context) {\n switch (action.type) {\n case 'RECEIVE_EVENTS':\n // raw\n return receiveRawEvents(eventStore, eventSources[action.sourceId], action.fetchId, action.fetchRange, action.rawEvents, context);\n\n case 'ADD_EVENTS':\n // already parsed, but not expanded\n return addEvent(eventStore, action.eventStore, // new ones\n dateProfile ? dateProfile.activeRange : null, context);\n\n case 'RESET_EVENTS':\n return action.eventStore;\n\n case 'MERGE_EVENTS':\n // already parsed and expanded\n return mergeEventStores(eventStore, action.eventStore);\n\n case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n\n case 'NEXT':\n case 'CHANGE_DATE':\n case 'CHANGE_VIEW_TYPE':\n if (dateProfile) {\n return expandRecurring(eventStore, dateProfile.activeRange, context);\n }\n\n return eventStore;\n\n case 'REMOVE_EVENTS':\n return excludeSubEventStore(eventStore, action.eventStore);\n\n case 'REMOVE_EVENT_SOURCE':\n return excludeEventsBySourceId(eventStore, action.sourceId);\n\n case 'REMOVE_ALL_EVENT_SOURCES':\n return filterEventStoreDefs(eventStore, function (eventDef) {\n return !eventDef.sourceId // only keep events with no source id\n ;\n });\n\n case 'REMOVE_ALL_EVENTS':\n return createEmptyEventStore();\n\n default:\n return eventStore;\n }\n}\n\nfunction receiveRawEvents(eventStore, eventSource, fetchId, fetchRange, rawEvents, context) {\n if (eventSource && // not already removed\n fetchId === eventSource.latestFetchId // TODO: wish this logic was always in event-sources\n ) {\n var subset = parseEvents(transformRawEvents(rawEvents, eventSource, context), eventSource, context);\n\n if (fetchRange) {\n subset = expandRecurring(subset, fetchRange, context);\n }\n\n return mergeEventStores(excludeEventsBySourceId(eventStore, eventSource.sourceId), subset);\n }\n\n return eventStore;\n}\n\nfunction transformRawEvents(rawEvents, eventSource, context) {\n var calEachTransform = context.options.eventDataTransform;\n var sourceEachTransform = eventSource ? eventSource.eventDataTransform : null;\n\n if (sourceEachTransform) {\n rawEvents = transformEachRawEvent(rawEvents, sourceEachTransform);\n }\n\n if (calEachTransform) {\n rawEvents = transformEachRawEvent(rawEvents, calEachTransform);\n }\n\n return rawEvents;\n}\n\nfunction transformEachRawEvent(rawEvents, func) {\n var refinedEvents;\n\n if (!func) {\n refinedEvents = rawEvents;\n } else {\n refinedEvents = [];\n\n for (var _i = 0, rawEvents_1 = rawEvents; _i < rawEvents_1.length; _i++) {\n var rawEvent = rawEvents_1[_i];\n var refinedEvent = func(rawEvent);\n\n if (refinedEvent) {\n refinedEvents.push(refinedEvent);\n } else if (refinedEvent == null) {\n refinedEvents.push(rawEvent);\n } // if a different falsy value, do nothing\n\n }\n }\n\n return refinedEvents;\n}\n\nfunction addEvent(eventStore, subset, expandRange, context) {\n if (expandRange) {\n subset = expandRecurring(subset, expandRange, context);\n }\n\n return mergeEventStores(eventStore, subset);\n}\n\nfunction rezoneEventStoreDates(eventStore, oldDateEnv, newDateEnv) {\n var defs = eventStore.defs;\n var instances = mapHash(eventStore.instances, function (instance) {\n var def = defs[instance.defId];\n\n if (def.allDay || def.recurringDef) {\n return instance; // isn't dependent on timezone\n }\n\n return __assign(__assign({}, instance), {\n range: {\n start: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start, instance.forcedStartTzo)),\n end: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end, instance.forcedEndTzo))\n },\n forcedStartTzo: newDateEnv.canComputeOffset ? null : instance.forcedStartTzo,\n forcedEndTzo: newDateEnv.canComputeOffset ? null : instance.forcedEndTzo\n });\n });\n return {\n defs: defs,\n instances: instances\n };\n}\n\nfunction excludeEventsBySourceId(eventStore, sourceId) {\n return filterEventStoreDefs(eventStore, function (eventDef) {\n return eventDef.sourceId !== sourceId;\n });\n} // QUESTION: why not just return instances? do a general object-property-exclusion util\n\n\nfunction excludeInstances(eventStore, removals) {\n return {\n defs: eventStore.defs,\n instances: filterHash(eventStore.instances, function (instance) {\n return !removals[instance.instanceId];\n })\n };\n}\n\nfunction reduceDateSelection(currentSelection, action) {\n switch (action.type) {\n case 'UNSELECT_DATES':\n return null;\n\n case 'SELECT_DATES':\n return action.selection;\n\n default:\n return currentSelection;\n }\n}\n\nfunction reduceSelectedEvent(currentInstanceId, action) {\n switch (action.type) {\n case 'UNSELECT_EVENT':\n return '';\n\n case 'SELECT_EVENT':\n return action.eventInstanceId;\n\n default:\n return currentInstanceId;\n }\n}\n\nfunction reduceEventDrag(currentDrag, action) {\n var newDrag;\n\n switch (action.type) {\n case 'UNSET_EVENT_DRAG':\n return null;\n\n case 'SET_EVENT_DRAG':\n newDrag = action.state;\n return {\n affectedEvents: newDrag.affectedEvents,\n mutatedEvents: newDrag.mutatedEvents,\n isEvent: newDrag.isEvent\n };\n\n default:\n return currentDrag;\n }\n}\n\nfunction reduceEventResize(currentResize, action) {\n var newResize;\n\n switch (action.type) {\n case 'UNSET_EVENT_RESIZE':\n return null;\n\n case 'SET_EVENT_RESIZE':\n newResize = action.state;\n return {\n affectedEvents: newResize.affectedEvents,\n mutatedEvents: newResize.mutatedEvents,\n isEvent: newResize.isEvent\n };\n\n default:\n return currentResize;\n }\n}\n\nfunction parseToolbars(calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {\n var header = calendarOptions.headerToolbar ? parseToolbar(calendarOptions.headerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) : null;\n var footer = calendarOptions.footerToolbar ? parseToolbar(calendarOptions.footerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) : null;\n return {\n header: header,\n footer: footer\n };\n}\n\nfunction parseToolbar(sectionStrHash, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {\n var sectionWidgets = {};\n var viewsWithButtons = [];\n var hasTitle = false;\n\n for (var sectionName in sectionStrHash) {\n var sectionStr = sectionStrHash[sectionName];\n var sectionRes = parseSection(sectionStr, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi);\n sectionWidgets[sectionName] = sectionRes.widgets;\n viewsWithButtons.push.apply(viewsWithButtons, sectionRes.viewsWithButtons);\n hasTitle = hasTitle || sectionRes.hasTitle;\n }\n\n return {\n sectionWidgets: sectionWidgets,\n viewsWithButtons: viewsWithButtons,\n hasTitle: hasTitle\n };\n}\n/*\nBAD: querying icons and text here. should be done at render time\n*/\n\n\nfunction parseSection(sectionStr, calendarOptions, // defaults+overrides, then refined\ncalendarOptionOverrides, // overrides only!, unrefined :(\ntheme, viewSpecs, calendarApi) {\n var isRtl = calendarOptions.direction === 'rtl';\n var calendarCustomButtons = calendarOptions.customButtons || {};\n var calendarButtonTextOverrides = calendarOptionOverrides.buttonText || {};\n var calendarButtonText = calendarOptions.buttonText || {};\n var calendarButtonHintOverrides = calendarOptionOverrides.buttonHints || {};\n var calendarButtonHints = calendarOptions.buttonHints || {};\n var sectionSubstrs = sectionStr ? sectionStr.split(' ') : [];\n var viewsWithButtons = [];\n var hasTitle = false;\n var widgets = sectionSubstrs.map(function (buttonGroupStr) {\n return buttonGroupStr.split(',').map(function (buttonName) {\n if (buttonName === 'title') {\n hasTitle = true;\n return {\n buttonName: buttonName\n };\n }\n\n var customButtonProps;\n var viewSpec;\n var buttonClick;\n var buttonIcon; // only one of these will be set\n\n var buttonText; // \"\n\n var buttonHint; // ^ for the title=\"\" attribute, for accessibility\n\n if (customButtonProps = calendarCustomButtons[buttonName]) {\n buttonClick = function buttonClick(ev) {\n if (customButtonProps.click) {\n customButtonProps.click.call(ev.target, ev, ev.target); // TODO: use Calendar this context?\n }\n };\n\n (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) || (buttonIcon = theme.getIconClass(buttonName, isRtl)) || (buttonText = customButtonProps.text);\n buttonHint = customButtonProps.hint || customButtonProps.text;\n } else if (viewSpec = viewSpecs[buttonName]) {\n viewsWithButtons.push(buttonName);\n\n buttonClick = function buttonClick() {\n calendarApi.changeView(buttonName);\n };\n\n (buttonText = viewSpec.buttonTextOverride) || (buttonIcon = theme.getIconClass(buttonName, isRtl)) || (buttonText = viewSpec.buttonTextDefault);\n var textFallback = viewSpec.buttonTextOverride || viewSpec.buttonTextDefault;\n buttonHint = formatWithOrdinals(viewSpec.buttonTitleOverride || viewSpec.buttonTitleDefault || calendarOptions.viewHint, [textFallback, buttonName], // view-name = buttonName\n textFallback);\n } else if (calendarApi[buttonName]) {\n // a calendarApi method\n buttonClick = function buttonClick() {\n calendarApi[buttonName]();\n };\n\n (buttonText = calendarButtonTextOverrides[buttonName]) || (buttonIcon = theme.getIconClass(buttonName, isRtl)) || (buttonText = calendarButtonText[buttonName]); // everything else is considered default\n\n if (buttonName === 'prevYear' || buttonName === 'nextYear') {\n var prevOrNext = buttonName === 'prevYear' ? 'prev' : 'next';\n buttonHint = formatWithOrdinals(calendarButtonHintOverrides[prevOrNext] || calendarButtonHints[prevOrNext], [calendarButtonText.year || 'year', 'year'], calendarButtonText[buttonName]);\n } else {\n buttonHint = function buttonHint(navUnit) {\n return formatWithOrdinals(calendarButtonHintOverrides[buttonName] || calendarButtonHints[buttonName], [calendarButtonText[navUnit] || navUnit, navUnit], calendarButtonText[buttonName]);\n };\n }\n }\n\n return {\n buttonName: buttonName,\n buttonClick: buttonClick,\n buttonIcon: buttonIcon,\n buttonText: buttonText,\n buttonHint: buttonHint\n };\n });\n });\n return {\n widgets: widgets,\n viewsWithButtons: viewsWithButtons,\n hasTitle: hasTitle\n };\n}\n\nvar eventSourceDef$2 = {\n ignoreRange: true,\n parseMeta: function parseMeta(refined) {\n if (Array.isArray(refined.events)) {\n return refined.events;\n }\n\n return null;\n },\n fetch: function fetch(arg, success) {\n success({\n rawEvents: arg.eventSource.meta\n });\n }\n};\nvar arrayEventSourcePlugin = createPlugin({\n eventSourceDefs: [eventSourceDef$2]\n});\nvar eventSourceDef$1 = {\n parseMeta: function parseMeta(refined) {\n if (typeof refined.events === 'function') {\n return refined.events;\n }\n\n return null;\n },\n fetch: function fetch(arg, success, failure) {\n var dateEnv = arg.context.dateEnv;\n var func = arg.eventSource.meta;\n unpromisify(func.bind(null, buildRangeApiWithTimeZone(arg.range, dateEnv)), function (rawEvents) {\n success({\n rawEvents: rawEvents\n }); // needs an object response\n }, failure);\n }\n};\nvar funcEventSourcePlugin = createPlugin({\n eventSourceDefs: [eventSourceDef$1]\n});\n\nfunction requestJson(method, url, params, successCallback, failureCallback) {\n method = method.toUpperCase();\n var body = null;\n\n if (method === 'GET') {\n url = injectQueryStringParams(url, params);\n } else {\n body = encodeParams(params);\n }\n\n var xhr = new XMLHttpRequest();\n xhr.open(method, url, true);\n\n if (method !== 'GET') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n }\n\n xhr.onload = function () {\n if (xhr.status >= 200 && xhr.status < 400) {\n var parsed = false;\n var res = void 0;\n\n try {\n res = JSON.parse(xhr.responseText);\n parsed = true;\n } catch (err) {// will handle parsed=false\n }\n\n if (parsed) {\n successCallback(res, xhr);\n } else {\n failureCallback('Failure parsing JSON', xhr);\n }\n } else {\n failureCallback('Request failed', xhr);\n }\n };\n\n xhr.onerror = function () {\n failureCallback('Request failed', xhr);\n };\n\n xhr.send(body);\n}\n\nfunction injectQueryStringParams(url, params) {\n return url + (url.indexOf('?') === -1 ? '?' : '&') + encodeParams(params);\n}\n\nfunction encodeParams(params) {\n var parts = [];\n\n for (var key in params) {\n parts.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(params[key]));\n }\n\n return parts.join('&');\n}\n\nvar JSON_FEED_EVENT_SOURCE_REFINERS = {\n method: String,\n extraParams: identity,\n startParam: String,\n endParam: String,\n timeZoneParam: String\n};\nvar eventSourceDef = {\n parseMeta: function parseMeta(refined) {\n if (refined.url && (refined.format === 'json' || !refined.format)) {\n return {\n url: refined.url,\n format: 'json',\n method: (refined.method || 'GET').toUpperCase(),\n extraParams: refined.extraParams,\n startParam: refined.startParam,\n endParam: refined.endParam,\n timeZoneParam: refined.timeZoneParam\n };\n }\n\n return null;\n },\n fetch: function fetch(arg, success, failure) {\n var meta = arg.eventSource.meta;\n var requestParams = buildRequestParams(meta, arg.range, arg.context);\n requestJson(meta.method, meta.url, requestParams, function (rawEvents, xhr) {\n success({\n rawEvents: rawEvents,\n xhr: xhr\n });\n }, function (errorMessage, xhr) {\n failure({\n message: errorMessage,\n xhr: xhr\n });\n });\n }\n};\nvar jsonFeedEventSourcePlugin = createPlugin({\n eventSourceRefiners: JSON_FEED_EVENT_SOURCE_REFINERS,\n eventSourceDefs: [eventSourceDef]\n});\n\nfunction buildRequestParams(meta, range, context) {\n var dateEnv = context.dateEnv,\n options = context.options;\n var startParam;\n var endParam;\n var timeZoneParam;\n var customRequestParams;\n var params = {};\n startParam = meta.startParam;\n\n if (startParam == null) {\n startParam = options.startParam;\n }\n\n endParam = meta.endParam;\n\n if (endParam == null) {\n endParam = options.endParam;\n }\n\n timeZoneParam = meta.timeZoneParam;\n\n if (timeZoneParam == null) {\n timeZoneParam = options.timeZoneParam;\n } // retrieve any outbound GET/POST data from the options\n\n\n if (typeof meta.extraParams === 'function') {\n // supplied as a function that returns a key/value object\n customRequestParams = meta.extraParams();\n } else {\n // probably supplied as a straight key/value object\n customRequestParams = meta.extraParams || {};\n }\n\n __assign(params, customRequestParams);\n\n params[startParam] = dateEnv.formatIso(range.start);\n params[endParam] = dateEnv.formatIso(range.end);\n\n if (dateEnv.timeZone !== 'local') {\n params[timeZoneParam] = dateEnv.timeZone;\n }\n\n return params;\n}\n\nvar SIMPLE_RECURRING_REFINERS = {\n daysOfWeek: identity,\n startTime: createDuration,\n endTime: createDuration,\n duration: createDuration,\n startRecur: identity,\n endRecur: identity\n};\nvar recurring = {\n parse: function parse(refined, dateEnv) {\n if (refined.daysOfWeek || refined.startTime || refined.endTime || refined.startRecur || refined.endRecur) {\n var recurringData = {\n daysOfWeek: refined.daysOfWeek || null,\n startTime: refined.startTime || null,\n endTime: refined.endTime || null,\n startRecur: refined.startRecur ? dateEnv.createMarker(refined.startRecur) : null,\n endRecur: refined.endRecur ? dateEnv.createMarker(refined.endRecur) : null\n };\n var duration = void 0;\n\n if (refined.duration) {\n duration = refined.duration;\n }\n\n if (!duration && refined.startTime && refined.endTime) {\n duration = subtractDurations(refined.endTime, refined.startTime);\n }\n\n return {\n allDayGuess: Boolean(!refined.startTime && !refined.endTime),\n duration: duration,\n typeData: recurringData // doesn't need endTime anymore but oh well\n\n };\n }\n\n return null;\n },\n expand: function expand(typeData, framingRange, dateEnv) {\n var clippedFramingRange = intersectRanges(framingRange, {\n start: typeData.startRecur,\n end: typeData.endRecur\n });\n\n if (clippedFramingRange) {\n return expandRanges(typeData.daysOfWeek, typeData.startTime, clippedFramingRange, dateEnv);\n }\n\n return [];\n }\n};\nvar simpleRecurringEventsPlugin = createPlugin({\n recurringTypes: [recurring],\n eventRefiners: SIMPLE_RECURRING_REFINERS\n});\n\nfunction expandRanges(daysOfWeek, startTime, framingRange, dateEnv) {\n var dowHash = daysOfWeek ? arrayToHash(daysOfWeek) : null;\n var dayMarker = startOfDay(framingRange.start);\n var endMarker = framingRange.end;\n var instanceStarts = [];\n\n while (dayMarker < endMarker) {\n var instanceStart // if everyday, or this particular day-of-week\n = void 0; // if everyday, or this particular day-of-week\n\n if (!dowHash || dowHash[dayMarker.getUTCDay()]) {\n if (startTime) {\n instanceStart = dateEnv.add(dayMarker, startTime);\n } else {\n instanceStart = dayMarker;\n }\n\n instanceStarts.push(instanceStart);\n }\n\n dayMarker = addDays(dayMarker, 1);\n }\n\n return instanceStarts;\n}\n\nvar changeHandlerPlugin = createPlugin({\n optionChangeHandlers: {\n events: function events(_events, context) {\n handleEventSources([_events], context);\n },\n eventSources: handleEventSources\n }\n});\n/*\nBUG: if `event` was supplied, all previously-given `eventSources` will be wiped out\n*/\n\nfunction handleEventSources(inputs, context) {\n var unfoundSources = hashValuesToArray(context.getCurrentData().eventSources);\n var newInputs = [];\n\n for (var _i = 0, inputs_1 = inputs; _i < inputs_1.length; _i++) {\n var input = inputs_1[_i];\n var inputFound = false;\n\n for (var i = 0; i < unfoundSources.length; i += 1) {\n if (unfoundSources[i]._raw === input) {\n unfoundSources.splice(i, 1); // delete\n\n inputFound = true;\n break;\n }\n }\n\n if (!inputFound) {\n newInputs.push(input);\n }\n }\n\n for (var _a = 0, unfoundSources_1 = unfoundSources; _a < unfoundSources_1.length; _a++) {\n var unfoundSource = unfoundSources_1[_a];\n context.dispatch({\n type: 'REMOVE_EVENT_SOURCE',\n sourceId: unfoundSource.sourceId\n });\n }\n\n for (var _b = 0, newInputs_1 = newInputs; _b < newInputs_1.length; _b++) {\n var newInput = newInputs_1[_b];\n context.calendarApi.addEventSource(newInput);\n }\n}\n\nfunction handleDateProfile(dateProfile, context) {\n context.emitter.trigger('datesSet', __assign(__assign({}, buildRangeApiWithTimeZone(dateProfile.activeRange, context.dateEnv)), {\n view: context.viewApi\n }));\n}\n\nfunction handleEventStore(eventStore, context) {\n var emitter = context.emitter;\n\n if (emitter.hasHandlers('eventsSet')) {\n emitter.trigger('eventsSet', buildEventApis(eventStore, context));\n }\n}\n/*\nthis array is exposed on the root namespace so that UMD plugins can add to it.\nsee the rollup-bundles script.\n*/\n\n\nvar globalPlugins = [arrayEventSourcePlugin, funcEventSourcePlugin, jsonFeedEventSourcePlugin, simpleRecurringEventsPlugin, changeHandlerPlugin, createPlugin({\n isLoadingFuncs: [function (state) {\n return computeEventSourcesLoading(state.eventSources);\n }],\n contentTypeHandlers: {\n html: buildHtmlRenderer,\n domNodes: buildDomNodeRenderer\n },\n propSetHandlers: {\n dateProfile: handleDateProfile,\n eventStore: handleEventStore\n }\n})];\n\nfunction buildHtmlRenderer() {\n var currentEl = null;\n var currentHtml = '';\n\n function render(el, html) {\n if (el !== currentEl || html !== currentHtml) {\n el.innerHTML = html;\n }\n\n currentEl = el;\n currentHtml = html;\n }\n\n function destroy() {\n currentEl.innerHTML = '';\n currentEl = null;\n currentHtml = '';\n }\n\n return {\n render: render,\n destroy: destroy\n };\n}\n\nfunction buildDomNodeRenderer() {\n var currentEl = null;\n var currentDomNodes = [];\n\n function render(el, domNodes) {\n var newDomNodes = Array.prototype.slice.call(domNodes);\n\n if (el !== currentEl || !isArraysEqual(currentDomNodes, newDomNodes)) {\n // append first, remove second (for scroll resetting)\n for (var _i = 0, newDomNodes_1 = newDomNodes; _i < newDomNodes_1.length; _i++) {\n var newNode = newDomNodes_1[_i];\n el.appendChild(newNode);\n }\n\n destroy();\n }\n\n currentEl = el;\n currentDomNodes = newDomNodes;\n }\n\n function destroy() {\n currentDomNodes.forEach(removeElement);\n currentDomNodes = [];\n currentEl = null;\n }\n\n return {\n render: render,\n destroy: destroy\n };\n}\n\nvar DelayedRunner =\n/** @class */\nfunction () {\n function DelayedRunner(drainedOption) {\n this.drainedOption = drainedOption;\n this.isRunning = false;\n this.isDirty = false;\n this.pauseDepths = {};\n this.timeoutId = 0;\n }\n\n DelayedRunner.prototype.request = function (delay) {\n this.isDirty = true;\n\n if (!this.isPaused()) {\n this.clearTimeout();\n\n if (delay == null) {\n this.tryDrain();\n } else {\n this.timeoutId = setTimeout( // NOT OPTIMAL! TODO: look at debounce\n this.tryDrain.bind(this), delay);\n }\n }\n };\n\n DelayedRunner.prototype.pause = function (scope) {\n if (scope === void 0) {\n scope = '';\n }\n\n var pauseDepths = this.pauseDepths;\n pauseDepths[scope] = (pauseDepths[scope] || 0) + 1;\n this.clearTimeout();\n };\n\n DelayedRunner.prototype.resume = function (scope, force) {\n if (scope === void 0) {\n scope = '';\n }\n\n var pauseDepths = this.pauseDepths;\n\n if (scope in pauseDepths) {\n if (force) {\n delete pauseDepths[scope];\n } else {\n pauseDepths[scope] -= 1;\n var depth = pauseDepths[scope];\n\n if (depth <= 0) {\n delete pauseDepths[scope];\n }\n }\n\n this.tryDrain();\n }\n };\n\n DelayedRunner.prototype.isPaused = function () {\n return Object.keys(this.pauseDepths).length;\n };\n\n DelayedRunner.prototype.tryDrain = function () {\n if (!this.isRunning && !this.isPaused()) {\n this.isRunning = true;\n\n while (this.isDirty) {\n this.isDirty = false;\n this.drained(); // might set isDirty to true again\n }\n\n this.isRunning = false;\n }\n };\n\n DelayedRunner.prototype.clear = function () {\n this.clearTimeout();\n this.isDirty = false;\n this.pauseDepths = {};\n };\n\n DelayedRunner.prototype.clearTimeout = function () {\n if (this.timeoutId) {\n clearTimeout(this.timeoutId);\n this.timeoutId = 0;\n }\n };\n\n DelayedRunner.prototype.drained = function () {\n if (this.drainedOption) {\n this.drainedOption();\n }\n };\n\n return DelayedRunner;\n}();\n\nvar TaskRunner =\n/** @class */\nfunction () {\n function TaskRunner(runTaskOption, drainedOption) {\n this.runTaskOption = runTaskOption;\n this.drainedOption = drainedOption;\n this.queue = [];\n this.delayedRunner = new DelayedRunner(this.drain.bind(this));\n }\n\n TaskRunner.prototype.request = function (task, delay) {\n this.queue.push(task);\n this.delayedRunner.request(delay);\n };\n\n TaskRunner.prototype.pause = function (scope) {\n this.delayedRunner.pause(scope);\n };\n\n TaskRunner.prototype.resume = function (scope, force) {\n this.delayedRunner.resume(scope, force);\n };\n\n TaskRunner.prototype.drain = function () {\n var queue = this.queue;\n\n while (queue.length) {\n var completedTasks = [];\n var task = void 0;\n\n while (task = queue.shift()) {\n this.runTask(task);\n completedTasks.push(task);\n }\n\n this.drained(completedTasks);\n } // keep going, in case new tasks were added in the drained handler\n\n };\n\n TaskRunner.prototype.runTask = function (task) {\n if (this.runTaskOption) {\n this.runTaskOption(task);\n }\n };\n\n TaskRunner.prototype.drained = function (completedTasks) {\n if (this.drainedOption) {\n this.drainedOption(completedTasks);\n }\n };\n\n return TaskRunner;\n}(); // Computes what the title at the top of the calendarApi should be for this view\n\n\nfunction buildTitle(dateProfile, viewOptions, dateEnv) {\n var range; // for views that span a large unit of time, show the proper interval, ignoring stray days before and after\n\n if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) {\n range = dateProfile.currentRange;\n } else {\n // for day units or smaller, use the actual day range\n range = dateProfile.activeRange;\n }\n\n return dateEnv.formatRange(range.start, range.end, createFormatter(viewOptions.titleFormat || buildTitleFormat(dateProfile)), {\n isEndExclusive: dateProfile.isRangeAllDay,\n defaultSeparator: viewOptions.titleRangeSeparator\n });\n} // Generates the format string that should be used to generate the title for the current date range.\n// Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`.\n\n\nfunction buildTitleFormat(dateProfile) {\n var currentRangeUnit = dateProfile.currentRangeUnit;\n\n if (currentRangeUnit === 'year') {\n return {\n year: 'numeric'\n };\n }\n\n if (currentRangeUnit === 'month') {\n return {\n year: 'numeric',\n month: 'long'\n }; // like \"September 2014\"\n }\n\n var days = diffWholeDays(dateProfile.currentRange.start, dateProfile.currentRange.end);\n\n if (days !== null && days > 1) {\n // multi-day range. shorter, like \"Sep 9 - 10 2014\"\n return {\n year: 'numeric',\n month: 'short',\n day: 'numeric'\n };\n } // one day. longer, like \"September 9 2014\"\n\n\n return {\n year: 'numeric',\n month: 'long',\n day: 'numeric'\n };\n} // in future refactor, do the redux-style function(state=initial) for initial-state\n// also, whatever is happening in constructor, have it happen in action queue too\n\n\nvar CalendarDataManager =\n/** @class */\nfunction () {\n function CalendarDataManager(props) {\n var _this = this;\n\n this.computeOptionsData = memoize(this._computeOptionsData);\n this.computeCurrentViewData = memoize(this._computeCurrentViewData);\n this.organizeRawLocales = memoize(organizeRawLocales);\n this.buildLocale = memoize(buildLocale);\n this.buildPluginHooks = buildBuildPluginHooks();\n this.buildDateEnv = memoize(buildDateEnv);\n this.buildTheme = memoize(buildTheme);\n this.parseToolbars = memoize(parseToolbars);\n this.buildViewSpecs = memoize(buildViewSpecs);\n this.buildDateProfileGenerator = memoizeObjArg(buildDateProfileGenerator);\n this.buildViewApi = memoize(buildViewApi);\n this.buildViewUiProps = memoizeObjArg(buildViewUiProps);\n this.buildEventUiBySource = memoize(buildEventUiBySource, isPropsEqual);\n this.buildEventUiBases = memoize(buildEventUiBases);\n this.parseContextBusinessHours = memoizeObjArg(parseContextBusinessHours);\n this.buildTitle = memoize(buildTitle);\n this.emitter = new Emitter();\n this.actionRunner = new TaskRunner(this._handleAction.bind(this), this.updateData.bind(this));\n this.currentCalendarOptionsInput = {};\n this.currentCalendarOptionsRefined = {};\n this.currentViewOptionsInput = {};\n this.currentViewOptionsRefined = {};\n this.currentCalendarOptionsRefiners = {};\n\n this.getCurrentData = function () {\n return _this.data;\n };\n\n this.dispatch = function (action) {\n _this.actionRunner.request(action); // protects against recursive calls to _handleAction\n\n };\n\n this.props = props;\n this.actionRunner.pause();\n var dynamicOptionOverrides = {};\n var optionsData = this.computeOptionsData(props.optionOverrides, dynamicOptionOverrides, props.calendarApi);\n var currentViewType = optionsData.calendarOptions.initialView || optionsData.pluginHooks.initialView;\n var currentViewData = this.computeCurrentViewData(currentViewType, optionsData, props.optionOverrides, dynamicOptionOverrides); // wire things up\n // TODO: not DRY\n\n props.calendarApi.currentDataManager = this;\n this.emitter.setThisContext(props.calendarApi);\n this.emitter.setOptions(currentViewData.options);\n var currentDate = getInitialDate(optionsData.calendarOptions, optionsData.dateEnv);\n var dateProfile = currentViewData.dateProfileGenerator.build(currentDate);\n\n if (!rangeContainsMarker(dateProfile.activeRange, currentDate)) {\n currentDate = dateProfile.currentRange.start;\n }\n\n var calendarContext = {\n dateEnv: optionsData.dateEnv,\n options: optionsData.calendarOptions,\n pluginHooks: optionsData.pluginHooks,\n calendarApi: props.calendarApi,\n dispatch: this.dispatch,\n emitter: this.emitter,\n getCurrentData: this.getCurrentData\n }; // needs to be after setThisContext\n\n for (var _i = 0, _a = optionsData.pluginHooks.contextInit; _i < _a.length; _i++) {\n var callback = _a[_i];\n callback(calendarContext);\n } // NOT DRY\n\n\n var eventSources = initEventSources(optionsData.calendarOptions, dateProfile, calendarContext);\n var initialState = {\n dynamicOptionOverrides: dynamicOptionOverrides,\n currentViewType: currentViewType,\n currentDate: currentDate,\n dateProfile: dateProfile,\n businessHours: this.parseContextBusinessHours(calendarContext),\n eventSources: eventSources,\n eventUiBases: {},\n eventStore: createEmptyEventStore(),\n renderableEventStore: createEmptyEventStore(),\n dateSelection: null,\n eventSelection: '',\n eventDrag: null,\n eventResize: null,\n selectionConfig: this.buildViewUiProps(calendarContext).selectionConfig\n };\n\n var contextAndState = __assign(__assign({}, calendarContext), initialState);\n\n for (var _b = 0, _c = optionsData.pluginHooks.reducers; _b < _c.length; _b++) {\n var reducer = _c[_b];\n\n __assign(initialState, reducer(null, null, contextAndState));\n }\n\n if (computeIsLoading(initialState, calendarContext)) {\n this.emitter.trigger('loading', true); // NOT DRY\n }\n\n this.state = initialState;\n this.updateData();\n this.actionRunner.resume();\n }\n\n CalendarDataManager.prototype.resetOptions = function (optionOverrides, append) {\n var props = this.props;\n props.optionOverrides = append ? __assign(__assign({}, props.optionOverrides), optionOverrides) : optionOverrides;\n this.actionRunner.request({\n type: 'NOTHING'\n });\n };\n\n CalendarDataManager.prototype._handleAction = function (action) {\n var _a = this,\n props = _a.props,\n state = _a.state,\n emitter = _a.emitter;\n\n var dynamicOptionOverrides = reduceDynamicOptionOverrides(state.dynamicOptionOverrides, action);\n var optionsData = this.computeOptionsData(props.optionOverrides, dynamicOptionOverrides, props.calendarApi);\n var currentViewType = reduceViewType(state.currentViewType, action);\n var currentViewData = this.computeCurrentViewData(currentViewType, optionsData, props.optionOverrides, dynamicOptionOverrides); // wire things up\n // TODO: not DRY\n\n props.calendarApi.currentDataManager = this;\n emitter.setThisContext(props.calendarApi);\n emitter.setOptions(currentViewData.options);\n var calendarContext = {\n dateEnv: optionsData.dateEnv,\n options: optionsData.calendarOptions,\n pluginHooks: optionsData.pluginHooks,\n calendarApi: props.calendarApi,\n dispatch: this.dispatch,\n emitter: emitter,\n getCurrentData: this.getCurrentData\n };\n var currentDate = state.currentDate,\n dateProfile = state.dateProfile;\n\n if (this.data && this.data.dateProfileGenerator !== currentViewData.dateProfileGenerator) {\n // hack\n dateProfile = currentViewData.dateProfileGenerator.build(currentDate);\n }\n\n currentDate = reduceCurrentDate(currentDate, action);\n dateProfile = reduceDateProfile(dateProfile, action, currentDate, currentViewData.dateProfileGenerator);\n\n if (action.type === 'PREV' || // TODO: move this logic into DateProfileGenerator\n action.type === 'NEXT' || // \"\n !rangeContainsMarker(dateProfile.currentRange, currentDate)) {\n currentDate = dateProfile.currentRange.start;\n }\n\n var eventSources = reduceEventSources(state.eventSources, action, dateProfile, calendarContext);\n var eventStore = reduceEventStore(state.eventStore, action, eventSources, dateProfile, calendarContext);\n var isEventsLoading = computeEventSourcesLoading(eventSources); // BAD. also called in this func in computeIsLoading\n\n var renderableEventStore = isEventsLoading && !currentViewData.options.progressiveEventRendering ? state.renderableEventStore || eventStore : // try from previous state\n eventStore;\n\n var _b = this.buildViewUiProps(calendarContext),\n eventUiSingleBase = _b.eventUiSingleBase,\n selectionConfig = _b.selectionConfig; // will memoize obj\n\n\n var eventUiBySource = this.buildEventUiBySource(eventSources);\n var eventUiBases = this.buildEventUiBases(renderableEventStore.defs, eventUiSingleBase, eventUiBySource);\n var newState = {\n dynamicOptionOverrides: dynamicOptionOverrides,\n currentViewType: currentViewType,\n currentDate: currentDate,\n dateProfile: dateProfile,\n eventSources: eventSources,\n eventStore: eventStore,\n renderableEventStore: renderableEventStore,\n selectionConfig: selectionConfig,\n eventUiBases: eventUiBases,\n businessHours: this.parseContextBusinessHours(calendarContext),\n dateSelection: reduceDateSelection(state.dateSelection, action),\n eventSelection: reduceSelectedEvent(state.eventSelection, action),\n eventDrag: reduceEventDrag(state.eventDrag, action),\n eventResize: reduceEventResize(state.eventResize, action)\n };\n\n var contextAndState = __assign(__assign({}, calendarContext), newState);\n\n for (var _i = 0, _c = optionsData.pluginHooks.reducers; _i < _c.length; _i++) {\n var reducer = _c[_i];\n\n __assign(newState, reducer(state, action, contextAndState)); // give the OLD state, for old value\n\n }\n\n var wasLoading = computeIsLoading(state, calendarContext);\n var isLoading = computeIsLoading(newState, calendarContext); // TODO: use propSetHandlers in plugin system\n\n if (!wasLoading && isLoading) {\n emitter.trigger('loading', true);\n } else if (wasLoading && !isLoading) {\n emitter.trigger('loading', false);\n }\n\n this.state = newState;\n\n if (props.onAction) {\n props.onAction(action);\n }\n };\n\n CalendarDataManager.prototype.updateData = function () {\n var _a = this,\n props = _a.props,\n state = _a.state;\n\n var oldData = this.data;\n var optionsData = this.computeOptionsData(props.optionOverrides, state.dynamicOptionOverrides, props.calendarApi);\n var currentViewData = this.computeCurrentViewData(state.currentViewType, optionsData, props.optionOverrides, state.dynamicOptionOverrides);\n\n var data = this.data = __assign(__assign(__assign({\n viewTitle: this.buildTitle(state.dateProfile, currentViewData.options, optionsData.dateEnv),\n calendarApi: props.calendarApi,\n dispatch: this.dispatch,\n emitter: this.emitter,\n getCurrentData: this.getCurrentData\n }, optionsData), currentViewData), state);\n\n var changeHandlers = optionsData.pluginHooks.optionChangeHandlers;\n var oldCalendarOptions = oldData && oldData.calendarOptions;\n var newCalendarOptions = optionsData.calendarOptions;\n\n if (oldCalendarOptions && oldCalendarOptions !== newCalendarOptions) {\n if (oldCalendarOptions.timeZone !== newCalendarOptions.timeZone) {\n // hack\n state.eventSources = data.eventSources = reduceEventSourcesNewTimeZone(data.eventSources, state.dateProfile, data);\n state.eventStore = data.eventStore = rezoneEventStoreDates(data.eventStore, oldData.dateEnv, data.dateEnv);\n }\n\n for (var optionName in changeHandlers) {\n if (oldCalendarOptions[optionName] !== newCalendarOptions[optionName]) {\n changeHandlers[optionName](newCalendarOptions[optionName], data);\n }\n }\n }\n\n if (props.onData) {\n props.onData(data);\n }\n };\n\n CalendarDataManager.prototype._computeOptionsData = function (optionOverrides, dynamicOptionOverrides, calendarApi) {\n // TODO: blacklist options that are handled by optionChangeHandlers\n var _a = this.processRawCalendarOptions(optionOverrides, dynamicOptionOverrides),\n refinedOptions = _a.refinedOptions,\n pluginHooks = _a.pluginHooks,\n localeDefaults = _a.localeDefaults,\n availableLocaleData = _a.availableLocaleData,\n extra = _a.extra;\n\n warnUnknownOptions(extra);\n var dateEnv = this.buildDateEnv(refinedOptions.timeZone, refinedOptions.locale, refinedOptions.weekNumberCalculation, refinedOptions.firstDay, refinedOptions.weekText, pluginHooks, availableLocaleData, refinedOptions.defaultRangeSeparator);\n var viewSpecs = this.buildViewSpecs(pluginHooks.views, optionOverrides, dynamicOptionOverrides, localeDefaults);\n var theme = this.buildTheme(refinedOptions, pluginHooks);\n var toolbarConfig = this.parseToolbars(refinedOptions, optionOverrides, theme, viewSpecs, calendarApi);\n return {\n calendarOptions: refinedOptions,\n pluginHooks: pluginHooks,\n dateEnv: dateEnv,\n viewSpecs: viewSpecs,\n theme: theme,\n toolbarConfig: toolbarConfig,\n localeDefaults: localeDefaults,\n availableRawLocales: availableLocaleData.map\n };\n }; // always called from behind a memoizer\n\n\n CalendarDataManager.prototype.processRawCalendarOptions = function (optionOverrides, dynamicOptionOverrides) {\n var _a = mergeRawOptions([BASE_OPTION_DEFAULTS, optionOverrides, dynamicOptionOverrides]),\n locales = _a.locales,\n locale = _a.locale;\n\n var availableLocaleData = this.organizeRawLocales(locales);\n var availableRawLocales = availableLocaleData.map;\n var localeDefaults = this.buildLocale(locale || availableLocaleData.defaultCode, availableRawLocales).options;\n var pluginHooks = this.buildPluginHooks(optionOverrides.plugins || [], globalPlugins);\n\n var refiners = this.currentCalendarOptionsRefiners = __assign(__assign(__assign(__assign(__assign({}, BASE_OPTION_REFINERS), CALENDAR_LISTENER_REFINERS), CALENDAR_OPTION_REFINERS), pluginHooks.listenerRefiners), pluginHooks.optionRefiners);\n\n var extra = {};\n var raw = mergeRawOptions([BASE_OPTION_DEFAULTS, localeDefaults, optionOverrides, dynamicOptionOverrides]);\n var refined = {};\n var currentRaw = this.currentCalendarOptionsInput;\n var currentRefined = this.currentCalendarOptionsRefined;\n var anyChanges = false;\n\n for (var optionName in raw) {\n if (optionName !== 'plugins') {\n // because plugins is special-cased\n if (raw[optionName] === currentRaw[optionName] || COMPLEX_OPTION_COMPARATORS[optionName] && optionName in currentRaw && COMPLEX_OPTION_COMPARATORS[optionName](currentRaw[optionName], raw[optionName])) {\n refined[optionName] = currentRefined[optionName];\n } else if (refiners[optionName]) {\n refined[optionName] = refiners[optionName](raw[optionName]);\n anyChanges = true;\n } else {\n extra[optionName] = currentRaw[optionName];\n }\n }\n }\n\n if (anyChanges) {\n this.currentCalendarOptionsInput = raw;\n this.currentCalendarOptionsRefined = refined;\n }\n\n return {\n rawOptions: this.currentCalendarOptionsInput,\n refinedOptions: this.currentCalendarOptionsRefined,\n pluginHooks: pluginHooks,\n availableLocaleData: availableLocaleData,\n localeDefaults: localeDefaults,\n extra: extra\n };\n };\n\n CalendarDataManager.prototype._computeCurrentViewData = function (viewType, optionsData, optionOverrides, dynamicOptionOverrides) {\n var viewSpec = optionsData.viewSpecs[viewType];\n\n if (!viewSpec) {\n throw new Error(\"viewType \\\"\" + viewType + \"\\\" is not available. Please make sure you've loaded all neccessary plugins\");\n }\n\n var _a = this.processRawViewOptions(viewSpec, optionsData.pluginHooks, optionsData.localeDefaults, optionOverrides, dynamicOptionOverrides),\n refinedOptions = _a.refinedOptions,\n extra = _a.extra;\n\n warnUnknownOptions(extra);\n var dateProfileGenerator = this.buildDateProfileGenerator({\n dateProfileGeneratorClass: viewSpec.optionDefaults.dateProfileGeneratorClass,\n duration: viewSpec.duration,\n durationUnit: viewSpec.durationUnit,\n usesMinMaxTime: viewSpec.optionDefaults.usesMinMaxTime,\n dateEnv: optionsData.dateEnv,\n calendarApi: this.props.calendarApi,\n slotMinTime: refinedOptions.slotMinTime,\n slotMaxTime: refinedOptions.slotMaxTime,\n showNonCurrentDates: refinedOptions.showNonCurrentDates,\n dayCount: refinedOptions.dayCount,\n dateAlignment: refinedOptions.dateAlignment,\n dateIncrement: refinedOptions.dateIncrement,\n hiddenDays: refinedOptions.hiddenDays,\n weekends: refinedOptions.weekends,\n nowInput: refinedOptions.now,\n validRangeInput: refinedOptions.validRange,\n visibleRangeInput: refinedOptions.visibleRange,\n monthMode: refinedOptions.monthMode,\n fixedWeekCount: refinedOptions.fixedWeekCount\n });\n var viewApi = this.buildViewApi(viewType, this.getCurrentData, optionsData.dateEnv);\n return {\n viewSpec: viewSpec,\n options: refinedOptions,\n dateProfileGenerator: dateProfileGenerator,\n viewApi: viewApi\n };\n };\n\n CalendarDataManager.prototype.processRawViewOptions = function (viewSpec, pluginHooks, localeDefaults, optionOverrides, dynamicOptionOverrides) {\n var raw = mergeRawOptions([BASE_OPTION_DEFAULTS, viewSpec.optionDefaults, localeDefaults, optionOverrides, viewSpec.optionOverrides, dynamicOptionOverrides]);\n\n var refiners = __assign(__assign(__assign(__assign(__assign(__assign({}, BASE_OPTION_REFINERS), CALENDAR_LISTENER_REFINERS), CALENDAR_OPTION_REFINERS), VIEW_OPTION_REFINERS), pluginHooks.listenerRefiners), pluginHooks.optionRefiners);\n\n var refined = {};\n var currentRaw = this.currentViewOptionsInput;\n var currentRefined = this.currentViewOptionsRefined;\n var anyChanges = false;\n var extra = {};\n\n for (var optionName in raw) {\n if (raw[optionName] === currentRaw[optionName] || COMPLEX_OPTION_COMPARATORS[optionName] && COMPLEX_OPTION_COMPARATORS[optionName](raw[optionName], currentRaw[optionName])) {\n refined[optionName] = currentRefined[optionName];\n } else {\n if (raw[optionName] === this.currentCalendarOptionsInput[optionName] || COMPLEX_OPTION_COMPARATORS[optionName] && COMPLEX_OPTION_COMPARATORS[optionName](raw[optionName], this.currentCalendarOptionsInput[optionName])) {\n if (optionName in this.currentCalendarOptionsRefined) {\n // might be an \"extra\" prop\n refined[optionName] = this.currentCalendarOptionsRefined[optionName];\n }\n } else if (refiners[optionName]) {\n refined[optionName] = refiners[optionName](raw[optionName]);\n } else {\n extra[optionName] = raw[optionName];\n }\n\n anyChanges = true;\n }\n }\n\n if (anyChanges) {\n this.currentViewOptionsInput = raw;\n this.currentViewOptionsRefined = refined;\n }\n\n return {\n rawOptions: this.currentViewOptionsInput,\n refinedOptions: this.currentViewOptionsRefined,\n extra: extra\n };\n };\n\n return CalendarDataManager;\n}();\n\nfunction buildDateEnv(timeZone, explicitLocale, weekNumberCalculation, firstDay, weekText, pluginHooks, availableLocaleData, defaultSeparator) {\n var locale = buildLocale(explicitLocale || availableLocaleData.defaultCode, availableLocaleData.map);\n return new DateEnv({\n calendarSystem: 'gregory',\n timeZone: timeZone,\n namedTimeZoneImpl: pluginHooks.namedTimeZonedImpl,\n locale: locale,\n weekNumberCalculation: weekNumberCalculation,\n firstDay: firstDay,\n weekText: weekText,\n cmdFormatter: pluginHooks.cmdFormatter,\n defaultSeparator: defaultSeparator\n });\n}\n\nfunction buildTheme(options, pluginHooks) {\n var ThemeClass = pluginHooks.themeClasses[options.themeSystem] || StandardTheme;\n return new ThemeClass(options);\n}\n\nfunction buildDateProfileGenerator(props) {\n var DateProfileGeneratorClass = props.dateProfileGeneratorClass || DateProfileGenerator;\n return new DateProfileGeneratorClass(props);\n}\n\nfunction buildViewApi(type, getCurrentData, dateEnv) {\n return new ViewApi(type, getCurrentData, dateEnv);\n}\n\nfunction buildEventUiBySource(eventSources) {\n return mapHash(eventSources, function (eventSource) {\n return eventSource.ui;\n });\n}\n\nfunction buildEventUiBases(eventDefs, eventUiSingleBase, eventUiBySource) {\n var eventUiBases = {\n '': eventUiSingleBase\n };\n\n for (var defId in eventDefs) {\n var def = eventDefs[defId];\n\n if (def.sourceId && eventUiBySource[def.sourceId]) {\n eventUiBases[defId] = eventUiBySource[def.sourceId];\n }\n }\n\n return eventUiBases;\n}\n\nfunction buildViewUiProps(calendarContext) {\n var options = calendarContext.options;\n return {\n eventUiSingleBase: createEventUi({\n display: options.eventDisplay,\n editable: options.editable,\n startEditable: options.eventStartEditable,\n durationEditable: options.eventDurationEditable,\n constraint: options.eventConstraint,\n overlap: typeof options.eventOverlap === 'boolean' ? options.eventOverlap : undefined,\n allow: options.eventAllow,\n backgroundColor: options.eventBackgroundColor,\n borderColor: options.eventBorderColor,\n textColor: options.eventTextColor,\n color: options.eventColor // classNames: options.eventClassNames // render hook will handle this\n\n }, calendarContext),\n selectionConfig: createEventUi({\n constraint: options.selectConstraint,\n overlap: typeof options.selectOverlap === 'boolean' ? options.selectOverlap : undefined,\n allow: options.selectAllow\n }, calendarContext)\n };\n}\n\nfunction computeIsLoading(state, context) {\n for (var _i = 0, _a = context.pluginHooks.isLoadingFuncs; _i < _a.length; _i++) {\n var isLoadingFunc = _a[_i];\n\n if (isLoadingFunc(state)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction parseContextBusinessHours(calendarContext) {\n return parseBusinessHours(calendarContext.options.businessHours, calendarContext);\n}\n\nfunction warnUnknownOptions(options, viewName) {\n for (var optionName in options) {\n console.warn(\"Unknown option '\" + optionName + \"'\" + (viewName ? \" for view '\" + viewName + \"'\" : ''));\n }\n} // TODO: move this to react plugin?\n\n\nvar CalendarDataProvider =\n/** @class */\nfunction (_super) {\n __extends(CalendarDataProvider, _super);\n\n function CalendarDataProvider(props) {\n var _this = _super.call(this, props) || this;\n\n _this.handleData = function (data) {\n if (!_this.dataManager) {\n // still within initial run, before assignment in constructor\n // eslint-disable-next-line react/no-direct-mutation-state\n _this.state = data; // can't use setState yet\n } else {\n _this.setState(data);\n }\n };\n\n _this.dataManager = new CalendarDataManager({\n optionOverrides: props.optionOverrides,\n calendarApi: props.calendarApi,\n onData: _this.handleData\n });\n return _this;\n }\n\n CalendarDataProvider.prototype.render = function () {\n return this.props.children(this.state);\n };\n\n CalendarDataProvider.prototype.componentDidUpdate = function (prevProps) {\n var newOptionOverrides = this.props.optionOverrides;\n\n if (newOptionOverrides !== prevProps.optionOverrides) {\n // prevent recursive handleData\n this.dataManager.resetOptions(newOptionOverrides);\n }\n };\n\n return CalendarDataProvider;\n}(Component); // HELPERS\n\n/*\nif nextDayThreshold is specified, slicing is done in an all-day fashion.\nyou can get nextDayThreshold from context.nextDayThreshold\n*/\n\n\nfunction sliceEvents(props, allDay) {\n return sliceEventStore(props.eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? props.nextDayThreshold : null).fg;\n}\n\nvar NamedTimeZoneImpl =\n/** @class */\nfunction () {\n function NamedTimeZoneImpl(timeZoneName) {\n this.timeZoneName = timeZoneName;\n }\n\n return NamedTimeZoneImpl;\n}();\n\nvar SegHierarchy =\n/** @class */\nfunction () {\n function SegHierarchy() {\n // settings\n this.strictOrder = false;\n this.allowReslicing = false;\n this.maxCoord = -1; // -1 means no max\n\n this.maxStackCnt = -1; // -1 means no max\n\n this.levelCoords = []; // ordered\n\n this.entriesByLevel = []; // parallel with levelCoords\n\n this.stackCnts = {}; // TODO: use better technique!?\n }\n\n SegHierarchy.prototype.addSegs = function (inputs) {\n var hiddenEntries = [];\n\n for (var _i = 0, inputs_1 = inputs; _i < inputs_1.length; _i++) {\n var input = inputs_1[_i];\n this.insertEntry(input, hiddenEntries);\n }\n\n return hiddenEntries;\n };\n\n SegHierarchy.prototype.insertEntry = function (entry, hiddenEntries) {\n var insertion = this.findInsertion(entry);\n\n if (this.isInsertionValid(insertion, entry)) {\n this.insertEntryAt(entry, insertion);\n return 1;\n }\n\n return this.handleInvalidInsertion(insertion, entry, hiddenEntries);\n };\n\n SegHierarchy.prototype.isInsertionValid = function (insertion, entry) {\n return (this.maxCoord === -1 || insertion.levelCoord + entry.thickness <= this.maxCoord) && (this.maxStackCnt === -1 || insertion.stackCnt < this.maxStackCnt);\n }; // returns number of new entries inserted\n\n\n SegHierarchy.prototype.handleInvalidInsertion = function (insertion, entry, hiddenEntries) {\n if (this.allowReslicing && insertion.touchingEntry) {\n return this.splitEntry(entry, insertion.touchingEntry, hiddenEntries);\n }\n\n hiddenEntries.push(entry);\n return 0;\n };\n\n SegHierarchy.prototype.splitEntry = function (entry, barrier, hiddenEntries) {\n var partCnt = 0;\n var splitHiddenEntries = [];\n var entrySpan = entry.span;\n var barrierSpan = barrier.span;\n\n if (entrySpan.start < barrierSpan.start) {\n partCnt += this.insertEntry({\n index: entry.index,\n thickness: entry.thickness,\n span: {\n start: entrySpan.start,\n end: barrierSpan.start\n }\n }, splitHiddenEntries);\n }\n\n if (entrySpan.end > barrierSpan.end) {\n partCnt += this.insertEntry({\n index: entry.index,\n thickness: entry.thickness,\n span: {\n start: barrierSpan.end,\n end: entrySpan.end\n }\n }, splitHiddenEntries);\n }\n\n if (partCnt) {\n hiddenEntries.push.apply(hiddenEntries, __spreadArray([{\n index: entry.index,\n thickness: entry.thickness,\n span: intersectSpans(barrierSpan, entrySpan) // guaranteed to intersect\n\n }], splitHiddenEntries));\n return partCnt;\n }\n\n hiddenEntries.push(entry);\n return 0;\n };\n\n SegHierarchy.prototype.insertEntryAt = function (entry, insertion) {\n var _a = this,\n entriesByLevel = _a.entriesByLevel,\n levelCoords = _a.levelCoords;\n\n if (insertion.lateral === -1) {\n // create a new level\n insertAt(levelCoords, insertion.level, insertion.levelCoord);\n insertAt(entriesByLevel, insertion.level, [entry]);\n } else {\n // insert into existing level\n insertAt(entriesByLevel[insertion.level], insertion.lateral, entry);\n }\n\n this.stackCnts[buildEntryKey(entry)] = insertion.stackCnt;\n };\n\n SegHierarchy.prototype.findInsertion = function (newEntry) {\n var _a = this,\n levelCoords = _a.levelCoords,\n entriesByLevel = _a.entriesByLevel,\n strictOrder = _a.strictOrder,\n stackCnts = _a.stackCnts;\n\n var levelCnt = levelCoords.length;\n var candidateCoord = 0;\n var touchingLevel = -1;\n var touchingLateral = -1;\n var touchingEntry = null;\n var stackCnt = 0;\n\n for (var trackingLevel = 0; trackingLevel < levelCnt; trackingLevel += 1) {\n var trackingCoord = levelCoords[trackingLevel]; // if the current level is past the placed entry, we have found a good empty space and can stop.\n // if strictOrder, keep finding more lateral intersections.\n\n if (!strictOrder && trackingCoord >= candidateCoord + newEntry.thickness) {\n break;\n }\n\n var trackingEntries = entriesByLevel[trackingLevel];\n var trackingEntry = void 0;\n var searchRes = binarySearch(trackingEntries, newEntry.span.start, getEntrySpanEnd); // find first entry after newEntry's end\n\n var lateralIndex = searchRes[0] + searchRes[1]; // if exact match (which doesn't collide), go to next one\n\n while ( // loop through entries that horizontally intersect\n (trackingEntry = trackingEntries[lateralIndex]) && // but not past the whole entry list\n trackingEntry.span.start < newEntry.span.end // and not entirely past newEntry\n ) {\n var trackingEntryBottom = trackingCoord + trackingEntry.thickness; // intersects into the top of the candidate?\n\n if (trackingEntryBottom > candidateCoord) {\n candidateCoord = trackingEntryBottom;\n touchingEntry = trackingEntry;\n touchingLevel = trackingLevel;\n touchingLateral = lateralIndex;\n } // butts up against top of candidate? (will happen if just intersected as well)\n\n\n if (trackingEntryBottom === candidateCoord) {\n // accumulate the highest possible stackCnt of the trackingEntries that butt up\n stackCnt = Math.max(stackCnt, stackCnts[buildEntryKey(trackingEntry)] + 1);\n }\n\n lateralIndex += 1;\n }\n } // the destination level will be after touchingEntry's level. find it\n\n\n var destLevel = 0;\n\n if (touchingEntry) {\n destLevel = touchingLevel + 1;\n\n while (destLevel < levelCnt && levelCoords[destLevel] < candidateCoord) {\n destLevel += 1;\n }\n } // if adding to an existing level, find where to insert\n\n\n var destLateral = -1;\n\n if (destLevel < levelCnt && levelCoords[destLevel] === candidateCoord) {\n destLateral = binarySearch(entriesByLevel[destLevel], newEntry.span.end, getEntrySpanEnd)[0];\n }\n\n return {\n touchingLevel: touchingLevel,\n touchingLateral: touchingLateral,\n touchingEntry: touchingEntry,\n stackCnt: stackCnt,\n levelCoord: candidateCoord,\n level: destLevel,\n lateral: destLateral\n };\n }; // sorted by levelCoord (lowest to highest)\n\n\n SegHierarchy.prototype.toRects = function () {\n var _a = this,\n entriesByLevel = _a.entriesByLevel,\n levelCoords = _a.levelCoords;\n\n var levelCnt = entriesByLevel.length;\n var rects = [];\n\n for (var level = 0; level < levelCnt; level += 1) {\n var entries = entriesByLevel[level];\n var levelCoord = levelCoords[level];\n\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n rects.push(__assign(__assign({}, entry), {\n levelCoord: levelCoord\n }));\n }\n }\n\n return rects;\n };\n\n return SegHierarchy;\n}();\n\nfunction getEntrySpanEnd(entry) {\n return entry.span.end;\n}\n\nfunction buildEntryKey(entry) {\n return entry.index + ':' + entry.span.start;\n} // returns groups with entries sorted by input order\n\n\nfunction groupIntersectingEntries(entries) {\n var merges = [];\n\n for (var _i = 0, entries_2 = entries; _i < entries_2.length; _i++) {\n var entry = entries_2[_i];\n var filteredMerges = [];\n var hungryMerge = {\n span: entry.span,\n entries: [entry]\n };\n\n for (var _a = 0, merges_1 = merges; _a < merges_1.length; _a++) {\n var merge = merges_1[_a];\n\n if (intersectSpans(merge.span, hungryMerge.span)) {\n hungryMerge = {\n entries: merge.entries.concat(hungryMerge.entries),\n span: joinSpans(merge.span, hungryMerge.span)\n };\n } else {\n filteredMerges.push(merge);\n }\n }\n\n filteredMerges.push(hungryMerge);\n merges = filteredMerges;\n }\n\n return merges;\n}\n\nfunction joinSpans(span0, span1) {\n return {\n start: Math.min(span0.start, span1.start),\n end: Math.max(span0.end, span1.end)\n };\n}\n\nfunction intersectSpans(span0, span1) {\n var start = Math.max(span0.start, span1.start);\n var end = Math.min(span0.end, span1.end);\n\n if (start < end) {\n return {\n start: start,\n end: end\n };\n }\n\n return null;\n} // general util\n// ---------------------------------------------------------------------------------------------------------------------\n\n\nfunction insertAt(arr, index, item) {\n arr.splice(index, 0, item);\n}\n\nfunction binarySearch(a, searchVal, getItemVal) {\n var startIndex = 0;\n var endIndex = a.length; // exclusive\n\n if (!endIndex || searchVal < getItemVal(a[startIndex])) {\n // no items OR before first item\n return [0, 0];\n }\n\n if (searchVal > getItemVal(a[endIndex - 1])) {\n // after last item\n return [endIndex, 0];\n }\n\n while (startIndex < endIndex) {\n var middleIndex = Math.floor(startIndex + (endIndex - startIndex) / 2);\n var middleVal = getItemVal(a[middleIndex]);\n\n if (searchVal < middleVal) {\n endIndex = middleIndex;\n } else if (searchVal > middleVal) {\n startIndex = middleIndex + 1;\n } else {\n // equal!\n return [middleIndex, 1];\n }\n }\n\n return [startIndex, 0];\n}\n\nvar Interaction =\n/** @class */\nfunction () {\n function Interaction(settings) {\n this.component = settings.component;\n this.isHitComboAllowed = settings.isHitComboAllowed || null;\n }\n\n Interaction.prototype.destroy = function () {};\n\n return Interaction;\n}();\n\nfunction parseInteractionSettings(component, input) {\n return {\n component: component,\n el: input.el,\n useEventCenter: input.useEventCenter != null ? input.useEventCenter : true,\n isHitComboAllowed: input.isHitComboAllowed || null\n };\n}\n\nfunction interactionSettingsToStore(settings) {\n var _a;\n\n return _a = {}, _a[settings.component.uid] = settings, _a;\n} // global state\n\n\nvar interactionSettingsStore = {};\n/*\nAn abstraction for a dragging interaction originating on an event.\nDoes higher-level things than PointerDragger, such as possibly:\n- a \"mirror\" that moves with the pointer\n- a minimum number of pixels or other criteria for a true drag to begin\n\nsubclasses must emit:\n- pointerdown\n- dragstart\n- dragmove\n- pointerup\n- dragend\n*/\n\nvar ElementDragging =\n/** @class */\nfunction () {\n function ElementDragging(el, selector) {\n this.emitter = new Emitter();\n }\n\n ElementDragging.prototype.destroy = function () {};\n\n ElementDragging.prototype.setMirrorIsVisible = function (bool) {// optional if subclass doesn't want to support a mirror\n };\n\n ElementDragging.prototype.setMirrorNeedsRevert = function (bool) {// optional if subclass doesn't want to support a mirror\n };\n\n ElementDragging.prototype.setAutoScrollEnabled = function (bool) {// optional\n };\n\n return ElementDragging;\n}(); // TODO: get rid of this in favor of options system,\n// tho it's really easy to access this globally rather than pass thru options.\n\n\nvar config = {};\n/*\nInformation about what will happen when an external element is dragged-and-dropped\nonto a calendar. Contains information for creating an event.\n*/\n\nvar DRAG_META_REFINERS = {\n startTime: createDuration,\n duration: createDuration,\n create: Boolean,\n sourceId: String\n};\n\nfunction parseDragMeta(raw) {\n var _a = refineProps(raw, DRAG_META_REFINERS),\n refined = _a.refined,\n extra = _a.extra;\n\n return {\n startTime: refined.startTime || null,\n duration: refined.duration || null,\n create: refined.create != null ? refined.create : true,\n sourceId: refined.sourceId,\n leftoverProps: extra\n };\n}\n\nvar ToolbarSection =\n/** @class */\nfunction (_super) {\n __extends(ToolbarSection, _super);\n\n function ToolbarSection() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ToolbarSection.prototype.render = function () {\n var _this = this;\n\n var children = this.props.widgetGroups.map(function (widgetGroup) {\n return _this.renderWidgetGroup(widgetGroup);\n });\n return createElement.apply(void 0, __spreadArray(['div', {\n className: 'fc-toolbar-chunk'\n }], children));\n };\n\n ToolbarSection.prototype.renderWidgetGroup = function (widgetGroup) {\n var props = this.props;\n var theme = this.context.theme;\n var children = [];\n var isOnlyButtons = true;\n\n for (var _i = 0, widgetGroup_1 = widgetGroup; _i < widgetGroup_1.length; _i++) {\n var widget = widgetGroup_1[_i];\n var buttonName = widget.buttonName,\n buttonClick = widget.buttonClick,\n buttonText = widget.buttonText,\n buttonIcon = widget.buttonIcon,\n buttonHint = widget.buttonHint;\n\n if (buttonName === 'title') {\n isOnlyButtons = false;\n children.push(createElement(\"h2\", {\n className: \"fc-toolbar-title\",\n id: props.titleId\n }, props.title));\n } else {\n var isPressed = buttonName === props.activeButton;\n var isDisabled = !props.isTodayEnabled && buttonName === 'today' || !props.isPrevEnabled && buttonName === 'prev' || !props.isNextEnabled && buttonName === 'next';\n var buttonClasses = [\"fc-\" + buttonName + \"-button\", theme.getClass('button')];\n\n if (isPressed) {\n buttonClasses.push(theme.getClass('buttonActive'));\n }\n\n children.push(createElement(\"button\", {\n type: \"button\",\n title: typeof buttonHint === 'function' ? buttonHint(props.navUnit) : buttonHint,\n disabled: isDisabled,\n \"aria-pressed\": isPressed,\n className: buttonClasses.join(' '),\n onClick: buttonClick\n }, buttonText || (buttonIcon ? createElement(\"span\", {\n className: buttonIcon\n }) : '')));\n }\n }\n\n if (children.length > 1) {\n var groupClassName = isOnlyButtons && theme.getClass('buttonGroup') || '';\n return createElement.apply(void 0, __spreadArray(['div', {\n className: groupClassName\n }], children));\n }\n\n return children[0];\n };\n\n return ToolbarSection;\n}(BaseComponent);\n\nvar Toolbar =\n/** @class */\nfunction (_super) {\n __extends(Toolbar, _super);\n\n function Toolbar() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Toolbar.prototype.render = function () {\n var _a = this.props,\n model = _a.model,\n extraClassName = _a.extraClassName;\n var forceLtr = false;\n var startContent;\n var endContent;\n var sectionWidgets = model.sectionWidgets;\n var centerContent = sectionWidgets.center;\n\n if (sectionWidgets.left) {\n forceLtr = true;\n startContent = sectionWidgets.left;\n } else {\n startContent = sectionWidgets.start;\n }\n\n if (sectionWidgets.right) {\n forceLtr = true;\n endContent = sectionWidgets.right;\n } else {\n endContent = sectionWidgets.end;\n }\n\n var classNames = [extraClassName || '', 'fc-toolbar', forceLtr ? 'fc-toolbar-ltr' : ''];\n return createElement(\"div\", {\n className: classNames.join(' ')\n }, this.renderSection('start', startContent || []), this.renderSection('center', centerContent || []), this.renderSection('end', endContent || []));\n };\n\n Toolbar.prototype.renderSection = function (key, widgetGroups) {\n var props = this.props;\n return createElement(ToolbarSection, {\n key: key,\n widgetGroups: widgetGroups,\n title: props.title,\n navUnit: props.navUnit,\n activeButton: props.activeButton,\n isTodayEnabled: props.isTodayEnabled,\n isPrevEnabled: props.isPrevEnabled,\n isNextEnabled: props.isNextEnabled,\n titleId: props.titleId\n });\n };\n\n return Toolbar;\n}(BaseComponent); // TODO: do function component?\n\n\nvar ViewContainer =\n/** @class */\nfunction (_super) {\n __extends(ViewContainer, _super);\n\n function ViewContainer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.state = {\n availableWidth: null\n };\n\n _this.handleEl = function (el) {\n _this.el = el;\n setRef(_this.props.elRef, el);\n\n _this.updateAvailableWidth();\n };\n\n _this.handleResize = function () {\n _this.updateAvailableWidth();\n };\n\n return _this;\n }\n\n ViewContainer.prototype.render = function () {\n var _a = this,\n props = _a.props,\n state = _a.state;\n\n var aspectRatio = props.aspectRatio;\n var classNames = ['fc-view-harness', aspectRatio || props.liquid || props.height ? 'fc-view-harness-active' // harness controls the height\n : 'fc-view-harness-passive' // let the view do the height\n ];\n var height = '';\n var paddingBottom = '';\n\n if (aspectRatio) {\n if (state.availableWidth !== null) {\n height = state.availableWidth / aspectRatio;\n } else {\n // while waiting to know availableWidth, we can't set height to *zero*\n // because will cause lots of unnecessary scrollbars within scrollgrid.\n // BETTER: don't start rendering ANYTHING yet until we know container width\n // NOTE: why not always use paddingBottom? Causes height oscillation (issue 5606)\n paddingBottom = 1 / aspectRatio * 100 + \"%\";\n }\n } else {\n height = props.height || '';\n }\n\n return createElement(\"div\", {\n \"aria-labelledby\": props.labeledById,\n ref: this.handleEl,\n className: classNames.join(' '),\n style: {\n height: height,\n paddingBottom: paddingBottom\n }\n }, props.children);\n };\n\n ViewContainer.prototype.componentDidMount = function () {\n this.context.addResizeHandler(this.handleResize);\n };\n\n ViewContainer.prototype.componentWillUnmount = function () {\n this.context.removeResizeHandler(this.handleResize);\n };\n\n ViewContainer.prototype.updateAvailableWidth = function () {\n if (this.el && // needed. but why?\n this.props.aspectRatio // aspectRatio is the only height setting that needs availableWidth\n ) {\n this.setState({\n availableWidth: this.el.offsetWidth\n });\n }\n };\n\n return ViewContainer;\n}(BaseComponent);\n/*\nDetects when the user clicks on an event within a DateComponent\n*/\n\n\nvar EventClicking =\n/** @class */\nfunction (_super) {\n __extends(EventClicking, _super);\n\n function EventClicking(settings) {\n var _this = _super.call(this, settings) || this;\n\n _this.handleSegClick = function (ev, segEl) {\n var component = _this.component;\n var context = component.context;\n var seg = getElSeg(segEl);\n\n if (seg && // might be the
surrounding the more link\n component.isValidSegDownEl(ev.target)) {\n // our way to simulate a link click for elements that can't be tags\n // grab before trigger fired in case trigger trashes DOM thru rerendering\n var hasUrlContainer = elementClosest(ev.target, '.fc-event-forced-url');\n var url = hasUrlContainer ? hasUrlContainer.querySelector('a[href]').href : '';\n context.emitter.trigger('eventClick', {\n el: segEl,\n event: new EventApi(component.context, seg.eventRange.def, seg.eventRange.instance),\n jsEvent: ev,\n view: context.viewApi\n });\n\n if (url && !ev.defaultPrevented) {\n window.location.href = url;\n }\n }\n };\n\n _this.destroy = listenBySelector(settings.el, 'click', '.fc-event', // on both fg and bg events\n _this.handleSegClick);\n return _this;\n }\n\n return EventClicking;\n}(Interaction);\n/*\nTriggers events and adds/removes core classNames when the user's pointer\nenters/leaves event-elements of a component.\n*/\n\n\nvar EventHovering =\n/** @class */\nfunction (_super) {\n __extends(EventHovering, _super);\n\n function EventHovering(settings) {\n var _this = _super.call(this, settings) || this; // for simulating an eventMouseLeave when the event el is destroyed while mouse is over it\n\n\n _this.handleEventElRemove = function (el) {\n if (el === _this.currentSegEl) {\n _this.handleSegLeave(null, _this.currentSegEl);\n }\n };\n\n _this.handleSegEnter = function (ev, segEl) {\n if (getElSeg(segEl)) {\n // TODO: better way to make sure not hovering over more+ link or its wrapper\n _this.currentSegEl = segEl;\n\n _this.triggerEvent('eventMouseEnter', ev, segEl);\n }\n };\n\n _this.handleSegLeave = function (ev, segEl) {\n if (_this.currentSegEl) {\n _this.currentSegEl = null;\n\n _this.triggerEvent('eventMouseLeave', ev, segEl);\n }\n };\n\n _this.removeHoverListeners = listenToHoverBySelector(settings.el, '.fc-event', // on both fg and bg events\n _this.handleSegEnter, _this.handleSegLeave);\n return _this;\n }\n\n EventHovering.prototype.destroy = function () {\n this.removeHoverListeners();\n };\n\n EventHovering.prototype.triggerEvent = function (publicEvName, ev, segEl) {\n var component = this.component;\n var context = component.context;\n var seg = getElSeg(segEl);\n\n if (!ev || component.isValidSegDownEl(ev.target)) {\n context.emitter.trigger(publicEvName, {\n el: segEl,\n event: new EventApi(context, seg.eventRange.def, seg.eventRange.instance),\n jsEvent: ev,\n view: context.viewApi\n });\n }\n };\n\n return EventHovering;\n}(Interaction);\n\nvar CalendarContent =\n/** @class */\nfunction (_super) {\n __extends(CalendarContent, _super);\n\n function CalendarContent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.buildViewContext = memoize(buildViewContext);\n _this.buildViewPropTransformers = memoize(buildViewPropTransformers);\n _this.buildToolbarProps = memoize(buildToolbarProps);\n _this.headerRef = createRef();\n _this.footerRef = createRef();\n _this.interactionsStore = {}; // eslint-disable-next-line\n\n _this.state = {\n viewLabelId: getUniqueDomId()\n }; // Component Registration\n // -----------------------------------------------------------------------------------------------------------------\n\n _this.registerInteractiveComponent = function (component, settingsInput) {\n var settings = parseInteractionSettings(component, settingsInput);\n var DEFAULT_INTERACTIONS = [EventClicking, EventHovering];\n var interactionClasses = DEFAULT_INTERACTIONS.concat(_this.props.pluginHooks.componentInteractions);\n var interactions = interactionClasses.map(function (TheInteractionClass) {\n return new TheInteractionClass(settings);\n });\n _this.interactionsStore[component.uid] = interactions;\n interactionSettingsStore[component.uid] = settings;\n };\n\n _this.unregisterInteractiveComponent = function (component) {\n var listeners = _this.interactionsStore[component.uid];\n\n if (listeners) {\n for (var _i = 0, listeners_1 = listeners; _i < listeners_1.length; _i++) {\n var listener = listeners_1[_i];\n listener.destroy();\n }\n\n delete _this.interactionsStore[component.uid];\n }\n\n delete interactionSettingsStore[component.uid];\n }; // Resizing\n // -----------------------------------------------------------------------------------------------------------------\n\n\n _this.resizeRunner = new DelayedRunner(function () {\n _this.props.emitter.trigger('_resize', true); // should window resizes be considered \"forced\" ?\n\n\n _this.props.emitter.trigger('windowResize', {\n view: _this.props.viewApi\n });\n });\n\n _this.handleWindowResize = function (ev) {\n var options = _this.props.options;\n\n if (options.handleWindowResize && ev.target === window // avoid jqui events\n ) {\n _this.resizeRunner.request(options.windowResizeDelay);\n }\n };\n\n return _this;\n }\n /*\n renders INSIDE of an outer div\n */\n\n\n CalendarContent.prototype.render = function () {\n var props = this.props;\n var toolbarConfig = props.toolbarConfig,\n options = props.options;\n var toolbarProps = this.buildToolbarProps(props.viewSpec, props.dateProfile, props.dateProfileGenerator, props.currentDate, getNow(props.options.now, props.dateEnv), // TODO: use NowTimer????\n props.viewTitle);\n var viewVGrow = false;\n var viewHeight = '';\n var viewAspectRatio;\n\n if (props.isHeightAuto || props.forPrint) {\n viewHeight = '';\n } else if (options.height != null) {\n viewVGrow = true;\n } else if (options.contentHeight != null) {\n viewHeight = options.contentHeight;\n } else {\n viewAspectRatio = Math.max(options.aspectRatio, 0.5); // prevent from getting too tall\n }\n\n var viewContext = this.buildViewContext(props.viewSpec, props.viewApi, props.options, props.dateProfileGenerator, props.dateEnv, props.theme, props.pluginHooks, props.dispatch, props.getCurrentData, props.emitter, props.calendarApi, this.registerInteractiveComponent, this.unregisterInteractiveComponent);\n var viewLabelId = toolbarConfig.header && toolbarConfig.header.hasTitle ? this.state.viewLabelId : '';\n return createElement(ViewContextType.Provider, {\n value: viewContext\n }, toolbarConfig.header && createElement(Toolbar, __assign({\n ref: this.headerRef,\n extraClassName: \"fc-header-toolbar\",\n model: toolbarConfig.header,\n titleId: viewLabelId\n }, toolbarProps)), createElement(ViewContainer, {\n liquid: viewVGrow,\n height: viewHeight,\n aspectRatio: viewAspectRatio,\n labeledById: viewLabelId\n }, this.renderView(props), this.buildAppendContent()), toolbarConfig.footer && createElement(Toolbar, __assign({\n ref: this.footerRef,\n extraClassName: \"fc-footer-toolbar\",\n model: toolbarConfig.footer,\n titleId: \"\"\n }, toolbarProps)));\n };\n\n CalendarContent.prototype.componentDidMount = function () {\n var props = this.props;\n this.calendarInteractions = props.pluginHooks.calendarInteractions.map(function (CalendarInteractionClass) {\n return new CalendarInteractionClass(props);\n });\n window.addEventListener('resize', this.handleWindowResize);\n var propSetHandlers = props.pluginHooks.propSetHandlers;\n\n for (var propName in propSetHandlers) {\n propSetHandlers[propName](props[propName], props);\n }\n };\n\n CalendarContent.prototype.componentDidUpdate = function (prevProps) {\n var props = this.props;\n var propSetHandlers = props.pluginHooks.propSetHandlers;\n\n for (var propName in propSetHandlers) {\n if (props[propName] !== prevProps[propName]) {\n propSetHandlers[propName](props[propName], props);\n }\n }\n };\n\n CalendarContent.prototype.componentWillUnmount = function () {\n window.removeEventListener('resize', this.handleWindowResize);\n this.resizeRunner.clear();\n\n for (var _i = 0, _a = this.calendarInteractions; _i < _a.length; _i++) {\n var interaction = _a[_i];\n interaction.destroy();\n }\n\n this.props.emitter.trigger('_unmount');\n };\n\n CalendarContent.prototype.buildAppendContent = function () {\n var props = this.props;\n var children = props.pluginHooks.viewContainerAppends.map(function (buildAppendContent) {\n return buildAppendContent(props);\n });\n return createElement.apply(void 0, __spreadArray([Fragment, {}], children));\n };\n\n CalendarContent.prototype.renderView = function (props) {\n var pluginHooks = props.pluginHooks;\n var viewSpec = props.viewSpec;\n var viewProps = {\n dateProfile: props.dateProfile,\n businessHours: props.businessHours,\n eventStore: props.renderableEventStore,\n eventUiBases: props.eventUiBases,\n dateSelection: props.dateSelection,\n eventSelection: props.eventSelection,\n eventDrag: props.eventDrag,\n eventResize: props.eventResize,\n isHeightAuto: props.isHeightAuto,\n forPrint: props.forPrint\n };\n var transformers = this.buildViewPropTransformers(pluginHooks.viewPropsTransformers);\n\n for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) {\n var transformer = transformers_1[_i];\n\n __assign(viewProps, transformer.transform(viewProps, props));\n }\n\n var ViewComponent = viewSpec.component;\n return createElement(ViewComponent, __assign({}, viewProps));\n };\n\n return CalendarContent;\n}(PureComponent);\n\nfunction buildToolbarProps(viewSpec, dateProfile, dateProfileGenerator, currentDate, now, title) {\n // don't force any date-profiles to valid date profiles (the `false`) so that we can tell if it's invalid\n var todayInfo = dateProfileGenerator.build(now, undefined, false); // TODO: need `undefined` or else INFINITE LOOP for some reason\n\n var prevInfo = dateProfileGenerator.buildPrev(dateProfile, currentDate, false);\n var nextInfo = dateProfileGenerator.buildNext(dateProfile, currentDate, false);\n return {\n title: title,\n activeButton: viewSpec.type,\n navUnit: viewSpec.singleUnit,\n isTodayEnabled: todayInfo.isValid && !rangeContainsMarker(dateProfile.currentRange, now),\n isPrevEnabled: prevInfo.isValid,\n isNextEnabled: nextInfo.isValid\n };\n} // Plugin\n// -----------------------------------------------------------------------------------------------------------------\n\n\nfunction buildViewPropTransformers(theClasses) {\n return theClasses.map(function (TheClass) {\n return new TheClass();\n });\n}\n\nvar CalendarRoot =\n/** @class */\nfunction (_super) {\n __extends(CalendarRoot, _super);\n\n function CalendarRoot() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.state = {\n forPrint: false\n };\n\n _this.handleBeforePrint = function () {\n _this.setState({\n forPrint: true\n });\n };\n\n _this.handleAfterPrint = function () {\n _this.setState({\n forPrint: false\n });\n };\n\n return _this;\n }\n\n CalendarRoot.prototype.render = function () {\n var props = this.props;\n var options = props.options;\n var forPrint = this.state.forPrint;\n var isHeightAuto = forPrint || options.height === 'auto' || options.contentHeight === 'auto';\n var height = !isHeightAuto && options.height != null ? options.height : '';\n var classNames = ['fc', forPrint ? 'fc-media-print' : 'fc-media-screen', \"fc-direction-\" + options.direction, props.theme.getClass('root')];\n\n if (!getCanVGrowWithinCell()) {\n classNames.push('fc-liquid-hack');\n }\n\n return props.children(classNames, height, isHeightAuto, forPrint);\n };\n\n CalendarRoot.prototype.componentDidMount = function () {\n var emitter = this.props.emitter;\n emitter.on('_beforeprint', this.handleBeforePrint);\n emitter.on('_afterprint', this.handleAfterPrint);\n };\n\n CalendarRoot.prototype.componentWillUnmount = function () {\n var emitter = this.props.emitter;\n emitter.off('_beforeprint', this.handleBeforePrint);\n emitter.off('_afterprint', this.handleAfterPrint);\n };\n\n return CalendarRoot;\n}(BaseComponent); // Computes a default column header formatting string if `colFormat` is not explicitly defined\n\n\nfunction computeFallbackHeaderFormat(datesRepDistinctDays, dayCnt) {\n // if more than one week row, or if there are a lot of columns with not much space,\n // put just the day numbers will be in each cell\n if (!datesRepDistinctDays || dayCnt > 10) {\n return createFormatter({\n weekday: 'short'\n }); // \"Sat\"\n }\n\n if (dayCnt > 1) {\n return createFormatter({\n weekday: 'short',\n month: 'numeric',\n day: 'numeric',\n omitCommas: true\n }); // \"Sat 11/12\"\n }\n\n return createFormatter({\n weekday: 'long'\n }); // \"Saturday\"\n}\n\nvar CLASS_NAME = 'fc-col-header-cell'; // do the cushion too? no\n\nfunction renderInner$1(hookProps) {\n return hookProps.text;\n}\n\nvar TableDateCell =\n/** @class */\nfunction (_super) {\n __extends(TableDateCell, _super);\n\n function TableDateCell() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n TableDateCell.prototype.render = function () {\n var _a = this.context,\n dateEnv = _a.dateEnv,\n options = _a.options,\n theme = _a.theme,\n viewApi = _a.viewApi;\n var props = this.props;\n var date = props.date,\n dateProfile = props.dateProfile;\n var dayMeta = getDateMeta(date, props.todayRange, null, dateProfile);\n var classNames = [CLASS_NAME].concat(getDayClassNames(dayMeta, theme));\n var text = dateEnv.format(date, props.dayHeaderFormat); // if colCnt is 1, we are already in a day-view and don't need a navlink\n\n var navLinkAttrs = !dayMeta.isDisabled && props.colCnt > 1 ? buildNavLinkAttrs(this.context, date) : {};\n\n var hookProps = __assign(__assign(__assign({\n date: dateEnv.toDate(date),\n view: viewApi\n }, props.extraHookProps), {\n text: text\n }), dayMeta);\n\n return createElement(RenderHook, {\n hookProps: hookProps,\n classNames: options.dayHeaderClassNames,\n content: options.dayHeaderContent,\n defaultContent: renderInner$1,\n didMount: options.dayHeaderDidMount,\n willUnmount: options.dayHeaderWillUnmount\n }, function (rootElRef, customClassNames, innerElRef, innerContent) {\n return createElement(\"th\", __assign({\n ref: rootElRef,\n role: \"columnheader\",\n className: classNames.concat(customClassNames).join(' '),\n \"data-date\": !dayMeta.isDisabled ? formatDayString(date) : undefined,\n colSpan: props.colSpan\n }, props.extraDataAttrs), createElement(\"div\", {\n className: \"fc-scrollgrid-sync-inner\"\n }, !dayMeta.isDisabled && createElement(\"a\", __assign({\n ref: innerElRef,\n className: ['fc-col-header-cell-cushion', props.isSticky ? 'fc-sticky' : ''].join(' ')\n }, navLinkAttrs), innerContent)));\n });\n };\n\n return TableDateCell;\n}(BaseComponent);\n\nvar WEEKDAY_FORMAT = createFormatter({\n weekday: 'long'\n});\n\nvar TableDowCell =\n/** @class */\nfunction (_super) {\n __extends(TableDowCell, _super);\n\n function TableDowCell() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n TableDowCell.prototype.render = function () {\n var props = this.props;\n var _a = this.context,\n dateEnv = _a.dateEnv,\n theme = _a.theme,\n viewApi = _a.viewApi,\n options = _a.options;\n var date = addDays(new Date(259200000), props.dow); // start with Sun, 04 Jan 1970 00:00:00 GMT\n\n var dateMeta = {\n dow: props.dow,\n isDisabled: false,\n isFuture: false,\n isPast: false,\n isToday: false,\n isOther: false\n };\n var classNames = [CLASS_NAME].concat(getDayClassNames(dateMeta, theme), props.extraClassNames || []);\n var text = dateEnv.format(date, props.dayHeaderFormat);\n\n var hookProps = __assign(__assign(__assign(__assign({\n // TODO: make this public?\n date: date\n }, dateMeta), {\n view: viewApi\n }), props.extraHookProps), {\n text: text\n });\n\n return createElement(RenderHook, {\n hookProps: hookProps,\n classNames: options.dayHeaderClassNames,\n content: options.dayHeaderContent,\n defaultContent: renderInner$1,\n didMount: options.dayHeaderDidMount,\n willUnmount: options.dayHeaderWillUnmount\n }, function (rootElRef, customClassNames, innerElRef, innerContent) {\n return createElement(\"th\", __assign({\n ref: rootElRef,\n role: \"columnheader\",\n className: classNames.concat(customClassNames).join(' '),\n colSpan: props.colSpan\n }, props.extraDataAttrs), createElement(\"div\", {\n className: \"fc-scrollgrid-sync-inner\"\n }, createElement(\"a\", {\n \"aria-label\": dateEnv.format(date, WEEKDAY_FORMAT),\n className: ['fc-col-header-cell-cushion', props.isSticky ? 'fc-sticky' : ''].join(' '),\n ref: innerElRef\n }, innerContent)));\n });\n };\n\n return TableDowCell;\n}(BaseComponent);\n\nvar NowTimer =\n/** @class */\nfunction (_super) {\n __extends(NowTimer, _super);\n\n function NowTimer(props, context) {\n var _this = _super.call(this, props, context) || this;\n\n _this.initialNowDate = getNow(context.options.now, context.dateEnv);\n _this.initialNowQueriedMs = new Date().valueOf();\n _this.state = _this.computeTiming().currentState;\n return _this;\n }\n\n NowTimer.prototype.render = function () {\n var _a = this,\n props = _a.props,\n state = _a.state;\n\n return props.children(state.nowDate, state.todayRange);\n };\n\n NowTimer.prototype.componentDidMount = function () {\n this.setTimeout();\n };\n\n NowTimer.prototype.componentDidUpdate = function (prevProps) {\n if (prevProps.unit !== this.props.unit) {\n this.clearTimeout();\n this.setTimeout();\n }\n };\n\n NowTimer.prototype.componentWillUnmount = function () {\n this.clearTimeout();\n };\n\n NowTimer.prototype.computeTiming = function () {\n var _a = this,\n props = _a.props,\n context = _a.context;\n\n var unroundedNow = addMs(this.initialNowDate, new Date().valueOf() - this.initialNowQueriedMs);\n var currentUnitStart = context.dateEnv.startOf(unroundedNow, props.unit);\n var nextUnitStart = context.dateEnv.add(currentUnitStart, createDuration(1, props.unit));\n var waitMs = nextUnitStart.valueOf() - unroundedNow.valueOf(); // there is a max setTimeout ms value (https://stackoverflow.com/a/3468650/96342)\n // ensure no longer than a day\n\n waitMs = Math.min(1000 * 60 * 60 * 24, waitMs);\n return {\n currentState: {\n nowDate: currentUnitStart,\n todayRange: buildDayRange(currentUnitStart)\n },\n nextState: {\n nowDate: nextUnitStart,\n todayRange: buildDayRange(nextUnitStart)\n },\n waitMs: waitMs\n };\n };\n\n NowTimer.prototype.setTimeout = function () {\n var _this = this;\n\n var _a = this.computeTiming(),\n nextState = _a.nextState,\n waitMs = _a.waitMs;\n\n this.timeoutId = setTimeout(function () {\n _this.setState(nextState, function () {\n _this.setTimeout();\n });\n }, waitMs);\n };\n\n NowTimer.prototype.clearTimeout = function () {\n if (this.timeoutId) {\n clearTimeout(this.timeoutId);\n }\n };\n\n NowTimer.contextType = ViewContextType;\n return NowTimer;\n}(Component);\n\nfunction buildDayRange(date) {\n var start = startOfDay(date);\n var end = addDays(start, 1);\n return {\n start: start,\n end: end\n };\n}\n\nvar DayHeader =\n/** @class */\nfunction (_super) {\n __extends(DayHeader, _super);\n\n function DayHeader() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.createDayHeaderFormatter = memoize(createDayHeaderFormatter);\n return _this;\n }\n\n DayHeader.prototype.render = function () {\n var context = this.context;\n var _a = this.props,\n dates = _a.dates,\n dateProfile = _a.dateProfile,\n datesRepDistinctDays = _a.datesRepDistinctDays,\n renderIntro = _a.renderIntro;\n var dayHeaderFormat = this.createDayHeaderFormatter(context.options.dayHeaderFormat, datesRepDistinctDays, dates.length);\n return createElement(NowTimer, {\n unit: \"day\"\n }, function (nowDate, todayRange) {\n return createElement(\"tr\", {\n role: \"row\"\n }, renderIntro && renderIntro('day'), dates.map(function (date) {\n return datesRepDistinctDays ? createElement(TableDateCell, {\n key: date.toISOString(),\n date: date,\n dateProfile: dateProfile,\n todayRange: todayRange,\n colCnt: dates.length,\n dayHeaderFormat: dayHeaderFormat\n }) : createElement(TableDowCell, {\n key: date.getUTCDay(),\n dow: date.getUTCDay(),\n dayHeaderFormat: dayHeaderFormat\n });\n }));\n });\n };\n\n return DayHeader;\n}(BaseComponent);\n\nfunction createDayHeaderFormatter(explicitFormat, datesRepDistinctDays, dateCnt) {\n return explicitFormat || computeFallbackHeaderFormat(datesRepDistinctDays, dateCnt);\n}\n\nvar DaySeriesModel =\n/** @class */\nfunction () {\n function DaySeriesModel(range, dateProfileGenerator) {\n var date = range.start;\n var end = range.end;\n var indices = [];\n var dates = [];\n var dayIndex = -1;\n\n while (date < end) {\n // loop each day from start to end\n if (dateProfileGenerator.isHiddenDay(date)) {\n indices.push(dayIndex + 0.5); // mark that it's between indices\n } else {\n dayIndex += 1;\n indices.push(dayIndex);\n dates.push(date);\n }\n\n date = addDays(date, 1);\n }\n\n this.dates = dates;\n this.indices = indices;\n this.cnt = dates.length;\n }\n\n DaySeriesModel.prototype.sliceRange = function (range) {\n var firstIndex = this.getDateDayIndex(range.start); // inclusive first index\n\n var lastIndex = this.getDateDayIndex(addDays(range.end, -1)); // inclusive last index\n\n var clippedFirstIndex = Math.max(0, firstIndex);\n var clippedLastIndex = Math.min(this.cnt - 1, lastIndex); // deal with in-between indices\n\n clippedFirstIndex = Math.ceil(clippedFirstIndex); // in-between starts round to next cell\n\n clippedLastIndex = Math.floor(clippedLastIndex); // in-between ends round to prev cell\n\n if (clippedFirstIndex <= clippedLastIndex) {\n return {\n firstIndex: clippedFirstIndex,\n lastIndex: clippedLastIndex,\n isStart: firstIndex === clippedFirstIndex,\n isEnd: lastIndex === clippedLastIndex\n };\n }\n\n return null;\n }; // Given a date, returns its chronolocial cell-index from the first cell of the grid.\n // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets.\n // If before the first offset, returns a negative number.\n // If after the last offset, returns an offset past the last cell offset.\n // Only works for *start* dates of cells. Will not work for exclusive end dates for cells.\n\n\n DaySeriesModel.prototype.getDateDayIndex = function (date) {\n var indices = this.indices;\n var dayOffset = Math.floor(diffDays(this.dates[0], date));\n\n if (dayOffset < 0) {\n return indices[0] - 1;\n }\n\n if (dayOffset >= indices.length) {\n return indices[indices.length - 1] + 1;\n }\n\n return indices[dayOffset];\n };\n\n return DaySeriesModel;\n}();\n\nvar DayTableModel =\n/** @class */\nfunction () {\n function DayTableModel(daySeries, breakOnWeeks) {\n var dates = daySeries.dates;\n var daysPerRow;\n var firstDay;\n var rowCnt;\n\n if (breakOnWeeks) {\n // count columns until the day-of-week repeats\n firstDay = dates[0].getUTCDay();\n\n for (daysPerRow = 1; daysPerRow < dates.length; daysPerRow += 1) {\n if (dates[daysPerRow].getUTCDay() === firstDay) {\n break;\n }\n }\n\n rowCnt = Math.ceil(dates.length / daysPerRow);\n } else {\n rowCnt = 1;\n daysPerRow = dates.length;\n }\n\n this.rowCnt = rowCnt;\n this.colCnt = daysPerRow;\n this.daySeries = daySeries;\n this.cells = this.buildCells();\n this.headerDates = this.buildHeaderDates();\n }\n\n DayTableModel.prototype.buildCells = function () {\n var rows = [];\n\n for (var row = 0; row < this.rowCnt; row += 1) {\n var cells = [];\n\n for (var col = 0; col < this.colCnt; col += 1) {\n cells.push(this.buildCell(row, col));\n }\n\n rows.push(cells);\n }\n\n return rows;\n };\n\n DayTableModel.prototype.buildCell = function (row, col) {\n var date = this.daySeries.dates[row * this.colCnt + col];\n return {\n key: date.toISOString(),\n date: date\n };\n };\n\n DayTableModel.prototype.buildHeaderDates = function () {\n var dates = [];\n\n for (var col = 0; col < this.colCnt; col += 1) {\n dates.push(this.cells[0][col].date);\n }\n\n return dates;\n };\n\n DayTableModel.prototype.sliceRange = function (range) {\n var colCnt = this.colCnt;\n var seriesSeg = this.daySeries.sliceRange(range);\n var segs = [];\n\n if (seriesSeg) {\n var firstIndex = seriesSeg.firstIndex,\n lastIndex = seriesSeg.lastIndex;\n var index = firstIndex;\n\n while (index <= lastIndex) {\n var row = Math.floor(index / colCnt);\n var nextIndex = Math.min((row + 1) * colCnt, lastIndex + 1);\n segs.push({\n row: row,\n firstCol: index % colCnt,\n lastCol: (nextIndex - 1) % colCnt,\n isStart: seriesSeg.isStart && index === firstIndex,\n isEnd: seriesSeg.isEnd && nextIndex - 1 === lastIndex\n });\n index = nextIndex;\n }\n }\n\n return segs;\n };\n\n return DayTableModel;\n}();\n\nvar Slicer =\n/** @class */\nfunction () {\n function Slicer() {\n this.sliceBusinessHours = memoize(this._sliceBusinessHours);\n this.sliceDateSelection = memoize(this._sliceDateSpan);\n this.sliceEventStore = memoize(this._sliceEventStore);\n this.sliceEventDrag = memoize(this._sliceInteraction);\n this.sliceEventResize = memoize(this._sliceInteraction);\n this.forceDayIfListItem = false; // hack\n }\n\n Slicer.prototype.sliceProps = function (props, dateProfile, nextDayThreshold, context) {\n var extraArgs = [];\n\n for (var _i = 4; _i < arguments.length; _i++) {\n extraArgs[_i - 4] = arguments[_i];\n }\n\n var eventUiBases = props.eventUiBases;\n var eventSegs = this.sliceEventStore.apply(this, __spreadArray([props.eventStore, eventUiBases, dateProfile, nextDayThreshold], extraArgs));\n return {\n dateSelectionSegs: this.sliceDateSelection.apply(this, __spreadArray([props.dateSelection, eventUiBases, context], extraArgs)),\n businessHourSegs: this.sliceBusinessHours.apply(this, __spreadArray([props.businessHours, dateProfile, nextDayThreshold, context], extraArgs)),\n fgEventSegs: eventSegs.fg,\n bgEventSegs: eventSegs.bg,\n eventDrag: this.sliceEventDrag.apply(this, __spreadArray([props.eventDrag, eventUiBases, dateProfile, nextDayThreshold], extraArgs)),\n eventResize: this.sliceEventResize.apply(this, __spreadArray([props.eventResize, eventUiBases, dateProfile, nextDayThreshold], extraArgs)),\n eventSelection: props.eventSelection\n }; // TODO: give interactionSegs?\n };\n\n Slicer.prototype.sliceNowDate = function ( // does not memoize\n date, context) {\n var extraArgs = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n extraArgs[_i - 2] = arguments[_i];\n }\n\n return this._sliceDateSpan.apply(this, __spreadArray([{\n range: {\n start: date,\n end: addMs(date, 1)\n },\n allDay: false\n }, {}, context], extraArgs));\n };\n\n Slicer.prototype._sliceBusinessHours = function (businessHours, dateProfile, nextDayThreshold, context) {\n var extraArgs = [];\n\n for (var _i = 4; _i < arguments.length; _i++) {\n extraArgs[_i - 4] = arguments[_i];\n }\n\n if (!businessHours) {\n return [];\n }\n\n return this._sliceEventStore.apply(this, __spreadArray([expandRecurring(businessHours, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), context), {}, dateProfile, nextDayThreshold], extraArgs)).bg;\n };\n\n Slicer.prototype._sliceEventStore = function (eventStore, eventUiBases, dateProfile, nextDayThreshold) {\n var extraArgs = [];\n\n for (var _i = 4; _i < arguments.length; _i++) {\n extraArgs[_i - 4] = arguments[_i];\n }\n\n if (eventStore) {\n var rangeRes = sliceEventStore(eventStore, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold);\n return {\n bg: this.sliceEventRanges(rangeRes.bg, extraArgs),\n fg: this.sliceEventRanges(rangeRes.fg, extraArgs)\n };\n }\n\n return {\n bg: [],\n fg: []\n };\n };\n\n Slicer.prototype._sliceInteraction = function (interaction, eventUiBases, dateProfile, nextDayThreshold) {\n var extraArgs = [];\n\n for (var _i = 4; _i < arguments.length; _i++) {\n extraArgs[_i - 4] = arguments[_i];\n }\n\n if (!interaction) {\n return null;\n }\n\n var rangeRes = sliceEventStore(interaction.mutatedEvents, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold);\n return {\n segs: this.sliceEventRanges(rangeRes.fg, extraArgs),\n affectedInstances: interaction.affectedEvents.instances,\n isEvent: interaction.isEvent\n };\n };\n\n Slicer.prototype._sliceDateSpan = function (dateSpan, eventUiBases, context) {\n var extraArgs = [];\n\n for (var _i = 3; _i < arguments.length; _i++) {\n extraArgs[_i - 3] = arguments[_i];\n }\n\n if (!dateSpan) {\n return [];\n }\n\n var eventRange = fabricateEventRange(dateSpan, eventUiBases, context);\n var segs = this.sliceRange.apply(this, __spreadArray([dateSpan.range], extraArgs));\n\n for (var _a = 0, segs_1 = segs; _a < segs_1.length; _a++) {\n var seg = segs_1[_a];\n seg.eventRange = eventRange;\n }\n\n return segs;\n };\n /*\n \"complete\" seg means it has component and eventRange\n */\n\n\n Slicer.prototype.sliceEventRanges = function (eventRanges, extraArgs) {\n var segs = [];\n\n for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) {\n var eventRange = eventRanges_1[_i];\n segs.push.apply(segs, this.sliceEventRange(eventRange, extraArgs));\n }\n\n return segs;\n };\n /*\n \"complete\" seg means it has component and eventRange\n */\n\n\n Slicer.prototype.sliceEventRange = function (eventRange, extraArgs) {\n var dateRange = eventRange.range; // hack to make multi-day events that are being force-displayed as list-items to take up only one day\n\n if (this.forceDayIfListItem && eventRange.ui.display === 'list-item') {\n dateRange = {\n start: dateRange.start,\n end: addDays(dateRange.start, 1)\n };\n }\n\n var segs = this.sliceRange.apply(this, __spreadArray([dateRange], extraArgs));\n\n for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) {\n var seg = segs_2[_i];\n seg.eventRange = eventRange;\n seg.isStart = eventRange.isStart && seg.isStart;\n seg.isEnd = eventRange.isEnd && seg.isEnd;\n }\n\n return segs;\n };\n\n return Slicer;\n}();\n/*\nfor incorporating slotMinTime/slotMaxTime if appropriate\nTODO: should be part of DateProfile!\nTimelineDateProfile already does this btw\n*/\n\n\nfunction computeActiveRange(dateProfile, isComponentAllDay) {\n var range = dateProfile.activeRange;\n\n if (isComponentAllDay) {\n return range;\n }\n\n return {\n start: addMs(range.start, dateProfile.slotMinTime.milliseconds),\n end: addMs(range.end, dateProfile.slotMaxTime.milliseconds - 864e5) // 864e5 = ms in a day\n\n };\n} // high-level segmenting-aware tester functions\n// ------------------------------------------------------------------------------------------------------------------------\n\n\nfunction isInteractionValid(interaction, dateProfile, context) {\n var instances = interaction.mutatedEvents.instances;\n\n for (var instanceId in instances) {\n if (!rangeContainsRange(dateProfile.validRange, instances[instanceId].range)) {\n return false;\n }\n }\n\n return isNewPropsValid({\n eventDrag: interaction\n }, context); // HACK: the eventDrag props is used for ALL interactions\n}\n\nfunction isDateSelectionValid(dateSelection, dateProfile, context) {\n if (!rangeContainsRange(dateProfile.validRange, dateSelection.range)) {\n return false;\n }\n\n return isNewPropsValid({\n dateSelection: dateSelection\n }, context);\n}\n\nfunction isNewPropsValid(newProps, context) {\n var calendarState = context.getCurrentData();\n\n var props = __assign({\n businessHours: calendarState.businessHours,\n dateSelection: '',\n eventStore: calendarState.eventStore,\n eventUiBases: calendarState.eventUiBases,\n eventSelection: '',\n eventDrag: null,\n eventResize: null\n }, newProps);\n\n return (context.pluginHooks.isPropsValid || isPropsValid)(props, context);\n}\n\nfunction isPropsValid(state, context, dateSpanMeta, filterConfig) {\n if (dateSpanMeta === void 0) {\n dateSpanMeta = {};\n }\n\n if (state.eventDrag && !isInteractionPropsValid(state, context, dateSpanMeta, filterConfig)) {\n return false;\n }\n\n if (state.dateSelection && !isDateSelectionPropsValid(state, context, dateSpanMeta, filterConfig)) {\n return false;\n }\n\n return true;\n} // Moving Event Validation\n// ------------------------------------------------------------------------------------------------------------------------\n\n\nfunction isInteractionPropsValid(state, context, dateSpanMeta, filterConfig) {\n var currentState = context.getCurrentData();\n var interaction = state.eventDrag; // HACK: the eventDrag props is used for ALL interactions\n\n var subjectEventStore = interaction.mutatedEvents;\n var subjectDefs = subjectEventStore.defs;\n var subjectInstances = subjectEventStore.instances;\n var subjectConfigs = compileEventUis(subjectDefs, interaction.isEvent ? state.eventUiBases : {\n '': currentState.selectionConfig\n });\n\n if (filterConfig) {\n subjectConfigs = mapHash(subjectConfigs, filterConfig);\n } // exclude the subject events. TODO: exclude defs too?\n\n\n var otherEventStore = excludeInstances(state.eventStore, interaction.affectedEvents.instances);\n var otherDefs = otherEventStore.defs;\n var otherInstances = otherEventStore.instances;\n var otherConfigs = compileEventUis(otherDefs, state.eventUiBases);\n\n for (var subjectInstanceId in subjectInstances) {\n var subjectInstance = subjectInstances[subjectInstanceId];\n var subjectRange = subjectInstance.range;\n var subjectConfig = subjectConfigs[subjectInstance.defId];\n var subjectDef = subjectDefs[subjectInstance.defId]; // constraint\n\n if (!allConstraintsPass(subjectConfig.constraints, subjectRange, otherEventStore, state.businessHours, context)) {\n return false;\n } // overlap\n\n\n var eventOverlap = context.options.eventOverlap;\n var eventOverlapFunc = typeof eventOverlap === 'function' ? eventOverlap : null;\n\n for (var otherInstanceId in otherInstances) {\n var otherInstance = otherInstances[otherInstanceId]; // intersect! evaluate\n\n if (rangesIntersect(subjectRange, otherInstance.range)) {\n var otherOverlap = otherConfigs[otherInstance.defId].overlap; // consider the other event's overlap. only do this if the subject event is a \"real\" event\n\n if (otherOverlap === false && interaction.isEvent) {\n return false;\n }\n\n if (subjectConfig.overlap === false) {\n return false;\n }\n\n if (eventOverlapFunc && !eventOverlapFunc(new EventApi(context, otherDefs[otherInstance.defId], otherInstance), // still event\n new EventApi(context, subjectDef, subjectInstance))) {\n return false;\n }\n }\n } // allow (a function)\n\n\n var calendarEventStore = currentState.eventStore; // need global-to-calendar, not local to component (splittable)state\n\n for (var _i = 0, _a = subjectConfig.allows; _i < _a.length; _i++) {\n var subjectAllow = _a[_i];\n\n var subjectDateSpan = __assign(__assign({}, dateSpanMeta), {\n range: subjectInstance.range,\n allDay: subjectDef.allDay\n });\n\n var origDef = calendarEventStore.defs[subjectDef.defId];\n var origInstance = calendarEventStore.instances[subjectInstanceId];\n var eventApi = void 0;\n\n if (origDef) {\n // was previously in the calendar\n eventApi = new EventApi(context, origDef, origInstance);\n } else {\n // was an external event\n eventApi = new EventApi(context, subjectDef); // no instance, because had no dates\n }\n\n if (!subjectAllow(buildDateSpanApiWithContext(subjectDateSpan, context), eventApi)) {\n return false;\n }\n }\n }\n\n return true;\n} // Date Selection Validation\n// ------------------------------------------------------------------------------------------------------------------------\n\n\nfunction isDateSelectionPropsValid(state, context, dateSpanMeta, filterConfig) {\n var relevantEventStore = state.eventStore;\n var relevantDefs = relevantEventStore.defs;\n var relevantInstances = relevantEventStore.instances;\n var selection = state.dateSelection;\n var selectionRange = selection.range;\n var selectionConfig = context.getCurrentData().selectionConfig;\n\n if (filterConfig) {\n selectionConfig = filterConfig(selectionConfig);\n } // constraint\n\n\n if (!allConstraintsPass(selectionConfig.constraints, selectionRange, relevantEventStore, state.businessHours, context)) {\n return false;\n } // overlap\n\n\n var selectOverlap = context.options.selectOverlap;\n var selectOverlapFunc = typeof selectOverlap === 'function' ? selectOverlap : null;\n\n for (var relevantInstanceId in relevantInstances) {\n var relevantInstance = relevantInstances[relevantInstanceId]; // intersect! evaluate\n\n if (rangesIntersect(selectionRange, relevantInstance.range)) {\n if (selectionConfig.overlap === false) {\n return false;\n }\n\n if (selectOverlapFunc && !selectOverlapFunc(new EventApi(context, relevantDefs[relevantInstance.defId], relevantInstance), null)) {\n return false;\n }\n }\n } // allow (a function)\n\n\n for (var _i = 0, _a = selectionConfig.allows; _i < _a.length; _i++) {\n var selectionAllow = _a[_i];\n\n var fullDateSpan = __assign(__assign({}, dateSpanMeta), selection);\n\n if (!selectionAllow(buildDateSpanApiWithContext(fullDateSpan, context), null)) {\n return false;\n }\n }\n\n return true;\n} // Constraint Utils\n// ------------------------------------------------------------------------------------------------------------------------\n\n\nfunction allConstraintsPass(constraints, subjectRange, otherEventStore, businessHoursUnexpanded, context) {\n for (var _i = 0, constraints_1 = constraints; _i < constraints_1.length; _i++) {\n var constraint = constraints_1[_i];\n\n if (!anyRangesContainRange(constraintToRanges(constraint, subjectRange, otherEventStore, businessHoursUnexpanded, context), subjectRange)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction constraintToRanges(constraint, subjectRange, // for expanding a recurring constraint, or expanding business hours\notherEventStore, // for if constraint is an even group ID\nbusinessHoursUnexpanded, // for if constraint is 'businessHours'\ncontext) {\n if (constraint === 'businessHours') {\n return eventStoreToRanges(expandRecurring(businessHoursUnexpanded, subjectRange, context));\n }\n\n if (typeof constraint === 'string') {\n // an group ID\n return eventStoreToRanges(filterEventStoreDefs(otherEventStore, function (eventDef) {\n return eventDef.groupId === constraint;\n }));\n }\n\n if (_typeof(constraint) === 'object' && constraint) {\n // non-null object\n return eventStoreToRanges(expandRecurring(constraint, subjectRange, context));\n }\n\n return []; // if it's false\n} // TODO: move to event-store file?\n\n\nfunction eventStoreToRanges(eventStore) {\n var instances = eventStore.instances;\n var ranges = [];\n\n for (var instanceId in instances) {\n ranges.push(instances[instanceId].range);\n }\n\n return ranges;\n} // TODO: move to geom file?\n\n\nfunction anyRangesContainRange(outerRanges, innerRange) {\n for (var _i = 0, outerRanges_1 = outerRanges; _i < outerRanges_1.length; _i++) {\n var outerRange = outerRanges_1[_i];\n\n if (rangeContainsRange(outerRange, innerRange)) {\n return true;\n }\n }\n\n return false;\n}\n\nvar VISIBLE_HIDDEN_RE = /^(visible|hidden)$/;\n\nvar Scroller =\n/** @class */\nfunction (_super) {\n __extends(Scroller, _super);\n\n function Scroller() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.handleEl = function (el) {\n _this.el = el;\n setRef(_this.props.elRef, el);\n };\n\n return _this;\n }\n\n Scroller.prototype.render = function () {\n var props = this.props;\n var liquid = props.liquid,\n liquidIsAbsolute = props.liquidIsAbsolute;\n var isAbsolute = liquid && liquidIsAbsolute;\n var className = ['fc-scroller'];\n\n if (liquid) {\n if (liquidIsAbsolute) {\n className.push('fc-scroller-liquid-absolute');\n } else {\n className.push('fc-scroller-liquid');\n }\n }\n\n return createElement(\"div\", {\n ref: this.handleEl,\n className: className.join(' '),\n style: {\n overflowX: props.overflowX,\n overflowY: props.overflowY,\n left: isAbsolute && -(props.overcomeLeft || 0) || '',\n right: isAbsolute && -(props.overcomeRight || 0) || '',\n bottom: isAbsolute && -(props.overcomeBottom || 0) || '',\n marginLeft: !isAbsolute && -(props.overcomeLeft || 0) || '',\n marginRight: !isAbsolute && -(props.overcomeRight || 0) || '',\n marginBottom: !isAbsolute && -(props.overcomeBottom || 0) || '',\n maxHeight: props.maxHeight || ''\n }\n }, props.children);\n };\n\n Scroller.prototype.needsXScrolling = function () {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowX)) {\n return false;\n } // testing scrollWidth>clientWidth is unreliable cross-browser when pixel heights aren't integers.\n // much more reliable to see if children are taller than the scroller, even tho doesn't account for\n // inner-child margins and absolute positioning\n\n\n var el = this.el;\n var realClientWidth = this.el.getBoundingClientRect().width - this.getYScrollbarWidth();\n var children = el.children;\n\n for (var i = 0; i < children.length; i += 1) {\n var childEl = children[i];\n\n if (childEl.getBoundingClientRect().width > realClientWidth) {\n return true;\n }\n }\n\n return false;\n };\n\n Scroller.prototype.needsYScrolling = function () {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowY)) {\n return false;\n } // testing scrollHeight>clientHeight is unreliable cross-browser when pixel heights aren't integers.\n // much more reliable to see if children are taller than the scroller, even tho doesn't account for\n // inner-child margins and absolute positioning\n\n\n var el = this.el;\n var realClientHeight = this.el.getBoundingClientRect().height - this.getXScrollbarWidth();\n var children = el.children;\n\n for (var i = 0; i < children.length; i += 1) {\n var childEl = children[i];\n\n if (childEl.getBoundingClientRect().height > realClientHeight) {\n return true;\n }\n }\n\n return false;\n };\n\n Scroller.prototype.getXScrollbarWidth = function () {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowX)) {\n return 0;\n }\n\n return this.el.offsetHeight - this.el.clientHeight; // only works because we guarantee no borders. TODO: add to CSS with important?\n };\n\n Scroller.prototype.getYScrollbarWidth = function () {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowY)) {\n return 0;\n }\n\n return this.el.offsetWidth - this.el.clientWidth; // only works because we guarantee no borders. TODO: add to CSS with important?\n };\n\n return Scroller;\n}(BaseComponent);\n/*\nTODO: somehow infer OtherArgs from masterCallback?\nTODO: infer RefType from masterCallback if provided\n*/\n\n\nvar RefMap =\n/** @class */\nfunction () {\n function RefMap(masterCallback) {\n var _this = this;\n\n this.masterCallback = masterCallback;\n this.currentMap = {};\n this.depths = {};\n this.callbackMap = {};\n\n this.handleValue = function (val, key) {\n var _a = _this,\n depths = _a.depths,\n currentMap = _a.currentMap;\n var removed = false;\n var added = false;\n\n if (val !== null) {\n // for bug... ACTUALLY: can probably do away with this now that callers don't share numeric indices anymore\n removed = key in currentMap;\n currentMap[key] = val;\n depths[key] = (depths[key] || 0) + 1;\n added = true;\n } else {\n depths[key] -= 1;\n\n if (!depths[key]) {\n delete currentMap[key];\n delete _this.callbackMap[key];\n removed = true;\n }\n }\n\n if (_this.masterCallback) {\n if (removed) {\n _this.masterCallback(null, String(key));\n }\n\n if (added) {\n _this.masterCallback(val, String(key));\n }\n }\n };\n }\n\n RefMap.prototype.createRef = function (key) {\n var _this = this;\n\n var refCallback = this.callbackMap[key];\n\n if (!refCallback) {\n refCallback = this.callbackMap[key] = function (val) {\n _this.handleValue(val, String(key));\n };\n }\n\n return refCallback;\n }; // TODO: check callers that don't care about order. should use getAll instead\n // NOTE: this method has become less valuable now that we are encouraged to map order by some other index\n // TODO: provide ONE array-export function, buildArray, which fails on non-numeric indexes. caller can manipulate and \"collect\"\n\n\n RefMap.prototype.collect = function (startIndex, endIndex, step) {\n return collectFromHash(this.currentMap, startIndex, endIndex, step);\n };\n\n RefMap.prototype.getAll = function () {\n return hashValuesToArray(this.currentMap);\n };\n\n return RefMap;\n}();\n\nfunction computeShrinkWidth(chunkEls) {\n var shrinkCells = findElements(chunkEls, '.fc-scrollgrid-shrink');\n var largestWidth = 0;\n\n for (var _i = 0, shrinkCells_1 = shrinkCells; _i < shrinkCells_1.length; _i++) {\n var shrinkCell = shrinkCells_1[_i];\n largestWidth = Math.max(largestWidth, computeSmallestCellWidth(shrinkCell));\n }\n\n return Math.ceil(largestWidth); // elements work best with integers. round up to ensure contents fits\n}\n\nfunction getSectionHasLiquidHeight(props, sectionConfig) {\n return props.liquid && sectionConfig.liquid; // does the section do liquid-height? (need to have whole scrollgrid liquid-height as well)\n}\n\nfunction getAllowYScrolling(props, sectionConfig) {\n return sectionConfig.maxHeight != null || // if its possible for the height to max out, we might need scrollbars\n getSectionHasLiquidHeight(props, sectionConfig); // if the section is liquid height, it might condense enough to require scrollbars\n} // TODO: ONLY use `arg`. force out internal function to use same API\n\n\nfunction renderChunkContent(sectionConfig, chunkConfig, arg, isHeader) {\n var expandRows = arg.expandRows;\n var content = typeof chunkConfig.content === 'function' ? chunkConfig.content(arg) : createElement('table', {\n role: 'presentation',\n className: [chunkConfig.tableClassName, sectionConfig.syncRowHeights ? 'fc-scrollgrid-sync-table' : ''].join(' '),\n style: {\n minWidth: arg.tableMinWidth,\n width: arg.clientWidth,\n height: expandRows ? arg.clientHeight : '' // css `height` on a
serves as a min-height\n\n }\n }, arg.tableColGroupNode, createElement(isHeader ? 'thead' : 'tbody', {\n role: 'presentation'\n }, typeof chunkConfig.rowContent === 'function' ? chunkConfig.rowContent(arg) : chunkConfig.rowContent));\n return content;\n}\n\nfunction isColPropsEqual(cols0, cols1) {\n return isArraysEqual(cols0, cols1, isPropsEqual);\n}\n\nfunction renderMicroColGroup(cols, shrinkWidth) {\n var colNodes = [];\n /*\n for ColProps with spans, it would have been great to make a single \n HOWEVER, Chrome was getting messing up distributing the width to elements makes Chrome behave.\n */\n\n for (var _i = 0, cols_1 = cols; _i < cols_1.length; _i++) {\n var colProps = cols_1[_i];\n var span = colProps.span || 1;\n\n for (var i = 0; i < span; i += 1) {\n colNodes.push(createElement(\"col\", {\n style: {\n width: colProps.width === 'shrink' ? sanitizeShrinkWidth(shrinkWidth) : colProps.width || '',\n minWidth: colProps.minWidth || ''\n }\n }));\n }\n }\n\n return createElement.apply(void 0, __spreadArray(['colgroup', {}], colNodes));\n}\n\nfunction sanitizeShrinkWidth(shrinkWidth) {\n /* why 4? if we do 0, it will kill any border, which are needed for computeSmallestCellWidth\n 4 accounts for 2 2-pixel borders. TODO: better solution? */\n return shrinkWidth == null ? 4 : shrinkWidth;\n}\n\nfunction hasShrinkWidth(cols) {\n for (var _i = 0, cols_2 = cols; _i < cols_2.length; _i++) {\n var col = cols_2[_i];\n\n if (col.width === 'shrink') {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getScrollGridClassNames(liquid, context) {\n var classNames = ['fc-scrollgrid', context.theme.getClass('table')];\n\n if (liquid) {\n classNames.push('fc-scrollgrid-liquid');\n }\n\n return classNames;\n}\n\nfunction getSectionClassNames(sectionConfig, wholeTableVGrow) {\n var classNames = ['fc-scrollgrid-section', \"fc-scrollgrid-section-\" + sectionConfig.type, sectionConfig.className // used?\n ];\n\n if (wholeTableVGrow && sectionConfig.liquid && sectionConfig.maxHeight == null) {\n classNames.push('fc-scrollgrid-section-liquid');\n }\n\n if (sectionConfig.isSticky) {\n classNames.push('fc-scrollgrid-section-sticky');\n }\n\n return classNames;\n}\n\nfunction renderScrollShim(arg) {\n return createElement(\"div\", {\n className: \"fc-scrollgrid-sticky-shim\",\n style: {\n width: arg.clientWidth,\n minWidth: arg.tableMinWidth\n }\n });\n}\n\nfunction getStickyHeaderDates(options) {\n var stickyHeaderDates = options.stickyHeaderDates;\n\n if (stickyHeaderDates == null || stickyHeaderDates === 'auto') {\n stickyHeaderDates = options.height === 'auto' || options.viewHeight === 'auto';\n }\n\n return stickyHeaderDates;\n}\n\nfunction getStickyFooterScrollbar(options) {\n var stickyFooterScrollbar = options.stickyFooterScrollbar;\n\n if (stickyFooterScrollbar == null || stickyFooterScrollbar === 'auto') {\n stickyFooterScrollbar = options.height === 'auto' || options.viewHeight === 'auto';\n }\n\n return stickyFooterScrollbar;\n}\n\nvar SimpleScrollGrid =\n/** @class */\nfunction (_super) {\n __extends(SimpleScrollGrid, _super);\n\n function SimpleScrollGrid() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.processCols = memoize(function (a) {\n return a;\n }, isColPropsEqual); // so we get same `cols` props every time\n // yucky to memoize VNodes, but much more efficient for consumers\n\n _this.renderMicroColGroup = memoize(renderMicroColGroup);\n _this.scrollerRefs = new RefMap();\n _this.scrollerElRefs = new RefMap(_this._handleScrollerEl.bind(_this));\n _this.state = {\n shrinkWidth: null,\n forceYScrollbars: false,\n scrollerClientWidths: {},\n scrollerClientHeights: {}\n }; // TODO: can do a really simple print-view. dont need to join rows\n\n _this.handleSizing = function () {\n _this.safeSetState(__assign({\n shrinkWidth: _this.computeShrinkWidth()\n }, _this.computeScrollerDims()));\n };\n\n return _this;\n }\n\n SimpleScrollGrid.prototype.render = function () {\n var _a = this,\n props = _a.props,\n state = _a.state,\n context = _a.context;\n\n var sectionConfigs = props.sections || [];\n var cols = this.processCols(props.cols);\n var microColGroupNode = this.renderMicroColGroup(cols, state.shrinkWidth);\n var classNames = getScrollGridClassNames(props.liquid, context);\n\n if (props.collapsibleWidth) {\n classNames.push('fc-scrollgrid-collapsible');\n } // TODO: make DRY\n\n\n var configCnt = sectionConfigs.length;\n var configI = 0;\n var currentConfig;\n var headSectionNodes = [];\n var bodySectionNodes = [];\n var footSectionNodes = [];\n\n while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'header') {\n headSectionNodes.push(this.renderSection(currentConfig, microColGroupNode, true));\n configI += 1;\n }\n\n while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'body') {\n bodySectionNodes.push(this.renderSection(currentConfig, microColGroupNode, false));\n configI += 1;\n }\n\n while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'footer') {\n footSectionNodes.push(this.renderSection(currentConfig, microColGroupNode, true));\n configI += 1;\n } // firefox bug: when setting height on table and there is a thead or tfoot,\n // the necessary height:100% on the liquid-height body section forces the *whole* table to be taller. (bug #5524)\n // use getCanVGrowWithinCell as a way to detect table-stupid firefox.\n // if so, use a simpler dom structure, jam everything into a lone tbody.\n\n\n var isBuggy = !getCanVGrowWithinCell();\n var roleAttrs = {\n role: 'rowgroup'\n };\n return createElement('table', {\n role: 'grid',\n className: classNames.join(' '),\n style: {\n height: props.height\n }\n }, Boolean(!isBuggy && headSectionNodes.length) && createElement.apply(void 0, __spreadArray(['thead', roleAttrs], headSectionNodes)), Boolean(!isBuggy && bodySectionNodes.length) && createElement.apply(void 0, __spreadArray(['tbody', roleAttrs], bodySectionNodes)), Boolean(!isBuggy && footSectionNodes.length) && createElement.apply(void 0, __spreadArray(['tfoot', roleAttrs], footSectionNodes)), isBuggy && createElement.apply(void 0, __spreadArray(__spreadArray(__spreadArray(['tbody', roleAttrs], headSectionNodes), bodySectionNodes), footSectionNodes)));\n };\n\n SimpleScrollGrid.prototype.renderSection = function (sectionConfig, microColGroupNode, isHeader) {\n if ('outerContent' in sectionConfig) {\n return createElement(Fragment, {\n key: sectionConfig.key\n }, sectionConfig.outerContent);\n }\n\n return createElement(\"tr\", {\n key: sectionConfig.key,\n role: \"presentation\",\n className: getSectionClassNames(sectionConfig, this.props.liquid).join(' ')\n }, this.renderChunkTd(sectionConfig, microColGroupNode, sectionConfig.chunk, isHeader));\n };\n\n SimpleScrollGrid.prototype.renderChunkTd = function (sectionConfig, microColGroupNode, chunkConfig, isHeader) {\n if ('outerContent' in chunkConfig) {\n return chunkConfig.outerContent;\n }\n\n var props = this.props;\n var _a = this.state,\n forceYScrollbars = _a.forceYScrollbars,\n scrollerClientWidths = _a.scrollerClientWidths,\n scrollerClientHeights = _a.scrollerClientHeights;\n var needsYScrolling = getAllowYScrolling(props, sectionConfig); // TODO: do lazily. do in section config?\n\n var isLiquid = getSectionHasLiquidHeight(props, sectionConfig); // for `!props.liquid` - is WHOLE scrollgrid natural height?\n // TODO: do same thing in advanced scrollgrid? prolly not b/c always has horizontal scrollbars\n\n var overflowY = !props.liquid ? 'visible' : forceYScrollbars ? 'scroll' : !needsYScrolling ? 'hidden' : 'auto';\n var sectionKey = sectionConfig.key;\n var content = renderChunkContent(sectionConfig, chunkConfig, {\n tableColGroupNode: microColGroupNode,\n tableMinWidth: '',\n clientWidth: !props.collapsibleWidth && scrollerClientWidths[sectionKey] !== undefined ? scrollerClientWidths[sectionKey] : null,\n clientHeight: scrollerClientHeights[sectionKey] !== undefined ? scrollerClientHeights[sectionKey] : null,\n expandRows: sectionConfig.expandRows,\n syncRowHeights: false,\n rowSyncHeights: [],\n reportRowHeightChange: function reportRowHeightChange() {}\n }, isHeader);\n return createElement(isHeader ? 'th' : 'td', {\n ref: chunkConfig.elRef,\n role: 'presentation'\n }, createElement(\"div\", {\n className: \"fc-scroller-harness\" + (isLiquid ? ' fc-scroller-harness-liquid' : '')\n }, createElement(Scroller, {\n ref: this.scrollerRefs.createRef(sectionKey),\n elRef: this.scrollerElRefs.createRef(sectionKey),\n overflowY: overflowY,\n overflowX: !props.liquid ? 'visible' : 'hidden'\n /* natural height? */\n ,\n maxHeight: sectionConfig.maxHeight,\n liquid: isLiquid,\n liquidIsAbsolute // because its within a harness\n : true\n }, content)));\n };\n\n SimpleScrollGrid.prototype._handleScrollerEl = function (scrollerEl, key) {\n var section = getSectionByKey(this.props.sections, key);\n\n if (section) {\n setRef(section.chunk.scrollerElRef, scrollerEl);\n }\n };\n\n SimpleScrollGrid.prototype.componentDidMount = function () {\n this.handleSizing();\n this.context.addResizeHandler(this.handleSizing);\n };\n\n SimpleScrollGrid.prototype.componentDidUpdate = function () {\n // TODO: need better solution when state contains non-sizing things\n this.handleSizing();\n };\n\n SimpleScrollGrid.prototype.componentWillUnmount = function () {\n this.context.removeResizeHandler(this.handleSizing);\n };\n\n SimpleScrollGrid.prototype.computeShrinkWidth = function () {\n return hasShrinkWidth(this.props.cols) ? computeShrinkWidth(this.scrollerElRefs.getAll()) : 0;\n };\n\n SimpleScrollGrid.prototype.computeScrollerDims = function () {\n var scrollbarWidth = getScrollbarWidths();\n\n var _a = this,\n scrollerRefs = _a.scrollerRefs,\n scrollerElRefs = _a.scrollerElRefs;\n\n var forceYScrollbars = false;\n var scrollerClientWidths = {};\n var scrollerClientHeights = {};\n\n for (var sectionKey in scrollerRefs.currentMap) {\n var scroller = scrollerRefs.currentMap[sectionKey];\n\n if (scroller && scroller.needsYScrolling()) {\n forceYScrollbars = true;\n break;\n }\n }\n\n for (var _i = 0, _b = this.props.sections; _i < _b.length; _i++) {\n var section = _b[_i];\n var sectionKey = section.key;\n var scrollerEl = scrollerElRefs.currentMap[sectionKey];\n\n if (scrollerEl) {\n var harnessEl = scrollerEl.parentNode; // TODO: weird way to get this. need harness b/c doesn't include table borders\n\n scrollerClientWidths[sectionKey] = Math.floor(harnessEl.getBoundingClientRect().width - (forceYScrollbars ? scrollbarWidth.y // use global because scroller might not have scrollbars yet but will need them in future\n : 0));\n scrollerClientHeights[sectionKey] = Math.floor(harnessEl.getBoundingClientRect().height);\n }\n }\n\n return {\n forceYScrollbars: forceYScrollbars,\n scrollerClientWidths: scrollerClientWidths,\n scrollerClientHeights: scrollerClientHeights\n };\n };\n\n return SimpleScrollGrid;\n}(BaseComponent);\n\nSimpleScrollGrid.addStateEquality({\n scrollerClientWidths: isPropsEqual,\n scrollerClientHeights: isPropsEqual\n});\n\nfunction getSectionByKey(sections, key) {\n for (var _i = 0, sections_1 = sections; _i < sections_1.length; _i++) {\n var section = sections_1[_i];\n\n if (section.key === key) {\n return section;\n }\n }\n\n return null;\n}\n\nvar EventRoot =\n/** @class */\nfunction (_super) {\n __extends(EventRoot, _super);\n\n function EventRoot() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.elRef = createRef();\n return _this;\n }\n\n EventRoot.prototype.render = function () {\n var _a = this,\n props = _a.props,\n context = _a.context;\n\n var options = context.options;\n var seg = props.seg;\n var eventRange = seg.eventRange;\n var ui = eventRange.ui;\n var hookProps = {\n event: new EventApi(context, eventRange.def, eventRange.instance),\n view: context.viewApi,\n timeText: props.timeText,\n textColor: ui.textColor,\n backgroundColor: ui.backgroundColor,\n borderColor: ui.borderColor,\n isDraggable: !props.disableDragging && computeSegDraggable(seg, context),\n isStartResizable: !props.disableResizing && computeSegStartResizable(seg, context),\n isEndResizable: !props.disableResizing && computeSegEndResizable(seg),\n isMirror: Boolean(props.isDragging || props.isResizing || props.isDateSelecting),\n isStart: Boolean(seg.isStart),\n isEnd: Boolean(seg.isEnd),\n isPast: Boolean(props.isPast),\n isFuture: Boolean(props.isFuture),\n isToday: Boolean(props.isToday),\n isSelected: Boolean(props.isSelected),\n isDragging: Boolean(props.isDragging),\n isResizing: Boolean(props.isResizing)\n };\n var standardClassNames = getEventClassNames(hookProps).concat(ui.classNames);\n return createElement(RenderHook, {\n hookProps: hookProps,\n classNames: options.eventClassNames,\n content: options.eventContent,\n defaultContent: props.defaultContent,\n didMount: options.eventDidMount,\n willUnmount: options.eventWillUnmount,\n elRef: this.elRef\n }, function (rootElRef, customClassNames, innerElRef, innerContent) {\n return props.children(rootElRef, standardClassNames.concat(customClassNames), innerElRef, innerContent, hookProps);\n });\n };\n\n EventRoot.prototype.componentDidMount = function () {\n setElSeg(this.elRef.current, this.props.seg);\n };\n /*\n need to re-assign seg to the element if seg changes, even if the element is the same\n */\n\n\n EventRoot.prototype.componentDidUpdate = function (prevProps) {\n var seg = this.props.seg;\n\n if (seg !== prevProps.seg) {\n setElSeg(this.elRef.current, seg);\n }\n };\n\n return EventRoot;\n}(BaseComponent); // should not be a purecomponent\n\n\nvar StandardEvent =\n/** @class */\nfunction (_super) {\n __extends(StandardEvent, _super);\n\n function StandardEvent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n StandardEvent.prototype.render = function () {\n var _a = this,\n props = _a.props,\n context = _a.context;\n\n var seg = props.seg;\n var timeFormat = context.options.eventTimeFormat || props.defaultTimeFormat;\n var timeText = buildSegTimeText(seg, timeFormat, context, props.defaultDisplayEventTime, props.defaultDisplayEventEnd);\n return createElement(EventRoot, {\n seg: seg,\n timeText: timeText,\n disableDragging: props.disableDragging,\n disableResizing: props.disableResizing,\n defaultContent: props.defaultContent || renderInnerContent$1,\n isDragging: props.isDragging,\n isResizing: props.isResizing,\n isDateSelecting: props.isDateSelecting,\n isSelected: props.isSelected,\n isPast: props.isPast,\n isFuture: props.isFuture,\n isToday: props.isToday\n }, function (rootElRef, classNames, innerElRef, innerContent, hookProps) {\n return createElement(\"a\", __assign({\n className: props.extraClassNames.concat(classNames).join(' '),\n style: {\n borderColor: hookProps.borderColor,\n backgroundColor: hookProps.backgroundColor\n },\n ref: rootElRef\n }, getSegAnchorAttrs(seg, context)), createElement(\"div\", {\n className: \"fc-event-main\",\n ref: innerElRef,\n style: {\n color: hookProps.textColor\n }\n }, innerContent), hookProps.isStartResizable && createElement(\"div\", {\n className: \"fc-event-resizer fc-event-resizer-start\"\n }), hookProps.isEndResizable && createElement(\"div\", {\n className: \"fc-event-resizer fc-event-resizer-end\"\n }));\n });\n };\n\n return StandardEvent;\n}(BaseComponent);\n\nfunction renderInnerContent$1(innerProps) {\n return createElement(\"div\", {\n className: \"fc-event-main-frame\"\n }, innerProps.timeText && createElement(\"div\", {\n className: \"fc-event-time\"\n }, innerProps.timeText), createElement(\"div\", {\n className: \"fc-event-title-container\"\n }, createElement(\"div\", {\n className: \"fc-event-title fc-sticky\"\n }, innerProps.event.title || createElement(Fragment, null, \"\\xA0\"))));\n}\n\nvar NowIndicatorRoot = function NowIndicatorRoot(props) {\n return createElement(ViewContextType.Consumer, null, function (context) {\n var options = context.options;\n var hookProps = {\n isAxis: props.isAxis,\n date: context.dateEnv.toDate(props.date),\n view: context.viewApi\n };\n return createElement(RenderHook, {\n hookProps: hookProps,\n classNames: options.nowIndicatorClassNames,\n content: options.nowIndicatorContent,\n didMount: options.nowIndicatorDidMount,\n willUnmount: options.nowIndicatorWillUnmount\n }, props.children);\n });\n};\n\nvar DAY_NUM_FORMAT = createFormatter({\n day: 'numeric'\n});\n\nvar DayCellContent =\n/** @class */\nfunction (_super) {\n __extends(DayCellContent, _super);\n\n function DayCellContent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n DayCellContent.prototype.render = function () {\n var _a = this,\n props = _a.props,\n context = _a.context;\n\n var options = context.options;\n var hookProps = refineDayCellHookProps({\n date: props.date,\n dateProfile: props.dateProfile,\n todayRange: props.todayRange,\n showDayNumber: props.showDayNumber,\n extraProps: props.extraHookProps,\n viewApi: context.viewApi,\n dateEnv: context.dateEnv\n });\n return createElement(ContentHook, {\n hookProps: hookProps,\n content: options.dayCellContent,\n defaultContent: props.defaultContent\n }, props.children);\n };\n\n return DayCellContent;\n}(BaseComponent);\n\nfunction refineDayCellHookProps(raw) {\n var date = raw.date,\n dateEnv = raw.dateEnv;\n var dayMeta = getDateMeta(date, raw.todayRange, null, raw.dateProfile);\n return __assign(__assign(__assign({\n date: dateEnv.toDate(date),\n view: raw.viewApi\n }, dayMeta), {\n dayNumberText: raw.showDayNumber ? dateEnv.format(date, DAY_NUM_FORMAT) : ''\n }), raw.extraProps);\n}\n\nvar DayCellRoot =\n/** @class */\nfunction (_super) {\n __extends(DayCellRoot, _super);\n\n function DayCellRoot() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.refineHookProps = memoizeObjArg(refineDayCellHookProps);\n _this.normalizeClassNames = buildClassNameNormalizer();\n return _this;\n }\n\n DayCellRoot.prototype.render = function () {\n var _a = this,\n props = _a.props,\n context = _a.context;\n\n var options = context.options;\n var hookProps = this.refineHookProps({\n date: props.date,\n dateProfile: props.dateProfile,\n todayRange: props.todayRange,\n showDayNumber: props.showDayNumber,\n extraProps: props.extraHookProps,\n viewApi: context.viewApi,\n dateEnv: context.dateEnv\n });\n var classNames = getDayClassNames(hookProps, context.theme).concat(hookProps.isDisabled ? [] // don't use custom classNames if disabled\n : this.normalizeClassNames(options.dayCellClassNames, hookProps));\n var dataAttrs = hookProps.isDisabled ? {} : {\n 'data-date': formatDayString(props.date)\n };\n return createElement(MountHook, {\n hookProps: hookProps,\n didMount: options.dayCellDidMount,\n willUnmount: options.dayCellWillUnmount,\n elRef: props.elRef\n }, function (rootElRef) {\n return props.children(rootElRef, classNames, dataAttrs, hookProps.isDisabled);\n });\n };\n\n return DayCellRoot;\n}(BaseComponent);\n\nfunction renderFill(fillType) {\n return createElement(\"div\", {\n className: \"fc-\" + fillType\n });\n}\n\nvar BgEvent = function BgEvent(props) {\n return createElement(EventRoot, {\n defaultContent: renderInnerContent,\n seg: props.seg\n /* uselesss i think */\n ,\n timeText: \"\",\n disableDragging: true,\n disableResizing: true,\n isDragging: false,\n isResizing: false,\n isDateSelecting: false,\n isSelected: false,\n isPast: props.isPast,\n isFuture: props.isFuture,\n isToday: props.isToday\n }, function (rootElRef, classNames, innerElRef, innerContent, hookProps) {\n return createElement(\"div\", {\n ref: rootElRef,\n className: ['fc-bg-event'].concat(classNames).join(' '),\n style: {\n backgroundColor: hookProps.backgroundColor\n }\n }, innerContent);\n });\n};\n\nfunction renderInnerContent(props) {\n var title = props.event.title;\n return title && createElement(\"div\", {\n className: \"fc-event-title\"\n }, props.event.title);\n}\n\nvar WeekNumberRoot = function WeekNumberRoot(props) {\n return createElement(ViewContextType.Consumer, null, function (context) {\n var dateEnv = context.dateEnv,\n options = context.options;\n var date = props.date;\n var format = options.weekNumberFormat || props.defaultFormat;\n var num = dateEnv.computeWeekNumber(date); // TODO: somehow use for formatting as well?\n\n var text = dateEnv.format(date, format);\n var hookProps = {\n num: num,\n text: text,\n date: date\n };\n return createElement(RenderHook, {\n hookProps: hookProps,\n classNames: options.weekNumberClassNames,\n content: options.weekNumberContent,\n defaultContent: renderInner,\n didMount: options.weekNumberDidMount,\n willUnmount: options.weekNumberWillUnmount\n }, props.children);\n });\n};\n\nfunction renderInner(innerProps) {\n return innerProps.text;\n}\n\nvar PADDING_FROM_VIEWPORT = 10;\n\nvar Popover =\n/** @class */\nfunction (_super) {\n __extends(Popover, _super);\n\n function Popover() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.state = {\n titleId: getUniqueDomId()\n };\n\n _this.handleRootEl = function (el) {\n _this.rootEl = el;\n\n if (_this.props.elRef) {\n setRef(_this.props.elRef, el);\n }\n }; // Triggered when the user clicks *anywhere* in the document, for the autoHide feature\n\n\n _this.handleDocumentMouseDown = function (ev) {\n // only hide the popover if the click happened outside the popover\n var target = getEventTargetViaRoot(ev);\n\n if (!_this.rootEl.contains(target)) {\n _this.handleCloseClick();\n }\n };\n\n _this.handleDocumentKeyDown = function (ev) {\n if (ev.key === 'Escape') {\n _this.handleCloseClick();\n }\n };\n\n _this.handleCloseClick = function () {\n var onClose = _this.props.onClose;\n\n if (onClose) {\n onClose();\n }\n };\n\n return _this;\n }\n\n Popover.prototype.render = function () {\n var _a = this.context,\n theme = _a.theme,\n options = _a.options;\n\n var _b = this,\n props = _b.props,\n state = _b.state;\n\n var classNames = ['fc-popover', theme.getClass('popover')].concat(props.extraClassNames || []);\n return createPortal(createElement(\"div\", __assign({\n id: props.id,\n className: classNames.join(' '),\n \"aria-labelledby\": state.titleId\n }, props.extraAttrs, {\n ref: this.handleRootEl\n }), createElement(\"div\", {\n className: 'fc-popover-header ' + theme.getClass('popoverHeader')\n }, createElement(\"span\", {\n className: \"fc-popover-title\",\n id: state.titleId\n }, props.title), createElement(\"span\", {\n className: 'fc-popover-close ' + theme.getIconClass('close'),\n title: options.closeHint,\n onClick: this.handleCloseClick\n })), createElement(\"div\", {\n className: 'fc-popover-body ' + theme.getClass('popoverContent')\n }, props.children)), props.parentEl);\n };\n\n Popover.prototype.componentDidMount = function () {\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n this.updateSize();\n };\n\n Popover.prototype.componentWillUnmount = function () {\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n };\n\n Popover.prototype.updateSize = function () {\n var isRtl = this.context.isRtl;\n var _a = this.props,\n alignmentEl = _a.alignmentEl,\n alignGridTop = _a.alignGridTop;\n var rootEl = this.rootEl;\n var alignmentRect = computeClippedClientRect(alignmentEl);\n\n if (alignmentRect) {\n var popoverDims = rootEl.getBoundingClientRect(); // position relative to viewport\n\n var popoverTop = alignGridTop ? elementClosest(alignmentEl, '.fc-scrollgrid').getBoundingClientRect().top : alignmentRect.top;\n var popoverLeft = isRtl ? alignmentRect.right - popoverDims.width : alignmentRect.left; // constrain\n\n popoverTop = Math.max(popoverTop, PADDING_FROM_VIEWPORT);\n popoverLeft = Math.min(popoverLeft, document.documentElement.clientWidth - PADDING_FROM_VIEWPORT - popoverDims.width);\n popoverLeft = Math.max(popoverLeft, PADDING_FROM_VIEWPORT);\n var origin_1 = rootEl.offsetParent.getBoundingClientRect();\n applyStyle(rootEl, {\n top: popoverTop - origin_1.top,\n left: popoverLeft - origin_1.left\n });\n }\n };\n\n return Popover;\n}(BaseComponent);\n\nvar MorePopover =\n/** @class */\nfunction (_super) {\n __extends(MorePopover, _super);\n\n function MorePopover() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.handleRootEl = function (rootEl) {\n _this.rootEl = rootEl;\n\n if (rootEl) {\n _this.context.registerInteractiveComponent(_this, {\n el: rootEl,\n useEventCenter: false\n });\n } else {\n _this.context.unregisterInteractiveComponent(_this);\n }\n };\n\n return _this;\n }\n\n MorePopover.prototype.render = function () {\n var _a = this.context,\n options = _a.options,\n dateEnv = _a.dateEnv;\n var props = this.props;\n var startDate = props.startDate,\n todayRange = props.todayRange,\n dateProfile = props.dateProfile;\n var title = dateEnv.format(startDate, options.dayPopoverFormat);\n return createElement(DayCellRoot, {\n date: startDate,\n dateProfile: dateProfile,\n todayRange: todayRange,\n elRef: this.handleRootEl\n }, function (rootElRef, dayClassNames, dataAttrs) {\n return createElement(Popover, {\n elRef: rootElRef,\n id: props.id,\n title: title,\n extraClassNames: ['fc-more-popover'].concat(dayClassNames),\n extraAttrs: dataAttrs\n /* TODO: make these time-based when not whole-day? */\n ,\n parentEl: props.parentEl,\n alignmentEl: props.alignmentEl,\n alignGridTop: props.alignGridTop,\n onClose: props.onClose\n }, createElement(DayCellContent, {\n date: startDate,\n dateProfile: dateProfile,\n todayRange: todayRange\n }, function (innerElRef, innerContent) {\n return innerContent && createElement(\"div\", {\n className: \"fc-more-popover-misc\",\n ref: innerElRef\n }, innerContent);\n }), props.children);\n });\n };\n\n MorePopover.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) {\n var _a = this,\n rootEl = _a.rootEl,\n props = _a.props;\n\n if (positionLeft >= 0 && positionLeft < elWidth && positionTop >= 0 && positionTop < elHeight) {\n return {\n dateProfile: props.dateProfile,\n dateSpan: __assign({\n allDay: true,\n range: {\n start: props.startDate,\n end: props.endDate\n }\n }, props.extraDateSpan),\n dayEl: rootEl,\n rect: {\n left: 0,\n top: 0,\n right: elWidth,\n bottom: elHeight\n },\n layer: 1 // important when comparing with hits from other components\n\n };\n }\n\n return null;\n };\n\n return MorePopover;\n}(DateComponent);\n\nvar MoreLinkRoot =\n/** @class */\nfunction (_super) {\n __extends(MoreLinkRoot, _super);\n\n function MoreLinkRoot() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.linkElRef = createRef();\n _this.state = {\n isPopoverOpen: false,\n popoverId: getUniqueDomId()\n };\n\n _this.handleClick = function (ev) {\n var _a = _this,\n props = _a.props,\n context = _a.context;\n var moreLinkClick = context.options.moreLinkClick;\n var date = computeRange(props).start;\n\n function buildPublicSeg(seg) {\n var _a = seg.eventRange,\n def = _a.def,\n instance = _a.instance,\n range = _a.range;\n return {\n event: new EventApi(context, def, instance),\n start: context.dateEnv.toDate(range.start),\n end: context.dateEnv.toDate(range.end),\n isStart: seg.isStart,\n isEnd: seg.isEnd\n };\n }\n\n if (typeof moreLinkClick === 'function') {\n moreLinkClick = moreLinkClick({\n date: date,\n allDay: Boolean(props.allDayDate),\n allSegs: props.allSegs.map(buildPublicSeg),\n hiddenSegs: props.hiddenSegs.map(buildPublicSeg),\n jsEvent: ev,\n view: context.viewApi\n });\n }\n\n if (!moreLinkClick || moreLinkClick === 'popover') {\n _this.setState({\n isPopoverOpen: true\n });\n } else if (typeof moreLinkClick === 'string') {\n // a view name\n context.calendarApi.zoomTo(date, moreLinkClick);\n }\n };\n\n _this.handlePopoverClose = function () {\n _this.setState({\n isPopoverOpen: false\n });\n };\n\n return _this;\n }\n\n MoreLinkRoot.prototype.render = function () {\n var _this = this;\n\n var _a = this,\n props = _a.props,\n state = _a.state;\n\n return createElement(ViewContextType.Consumer, null, function (context) {\n var viewApi = context.viewApi,\n options = context.options,\n calendarApi = context.calendarApi;\n var moreLinkText = options.moreLinkText;\n var moreCnt = props.moreCnt;\n var range = computeRange(props);\n var text = typeof moreLinkText === 'function' // TODO: eventually use formatWithOrdinals\n ? moreLinkText.call(calendarApi, moreCnt) : \"+\" + moreCnt + \" \" + moreLinkText;\n var title = formatWithOrdinals(options.moreLinkHint, [moreCnt], text);\n var hookProps = {\n num: moreCnt,\n shortText: \"+\" + moreCnt,\n text: text,\n view: viewApi\n };\n return createElement(Fragment, null, Boolean(props.moreCnt) && createElement(RenderHook, {\n elRef: _this.linkElRef,\n hookProps: hookProps,\n classNames: options.moreLinkClassNames,\n content: options.moreLinkContent,\n defaultContent: props.defaultContent || renderMoreLinkInner,\n didMount: options.moreLinkDidMount,\n willUnmount: options.moreLinkWillUnmount\n }, function (rootElRef, customClassNames, innerElRef, innerContent) {\n return props.children(rootElRef, ['fc-more-link'].concat(customClassNames), innerElRef, innerContent, _this.handleClick, title, state.isPopoverOpen, state.isPopoverOpen ? state.popoverId : '');\n }), state.isPopoverOpen && createElement(MorePopover, {\n id: state.popoverId,\n startDate: range.start,\n endDate: range.end,\n dateProfile: props.dateProfile,\n todayRange: props.todayRange,\n extraDateSpan: props.extraDateSpan,\n parentEl: _this.parentEl,\n alignmentEl: props.alignmentElRef.current,\n alignGridTop: props.alignGridTop,\n onClose: _this.handlePopoverClose\n }, props.popoverContent()));\n });\n };\n\n MoreLinkRoot.prototype.componentDidMount = function () {\n this.updateParentEl();\n };\n\n MoreLinkRoot.prototype.componentDidUpdate = function () {\n this.updateParentEl();\n };\n\n MoreLinkRoot.prototype.updateParentEl = function () {\n if (this.linkElRef.current) {\n this.parentEl = elementClosest(this.linkElRef.current, '.fc-view-harness');\n }\n };\n\n return MoreLinkRoot;\n}(BaseComponent);\n\nfunction renderMoreLinkInner(props) {\n return props.text;\n}\n\nfunction computeRange(props) {\n if (props.allDayDate) {\n return {\n start: props.allDayDate,\n end: addDays(props.allDayDate, 1)\n };\n }\n\n var hiddenSegs = props.hiddenSegs;\n return {\n start: computeEarliestSegStart(hiddenSegs),\n end: computeLatestSegEnd(hiddenSegs)\n };\n}\n\nfunction computeEarliestSegStart(segs) {\n return segs.reduce(pickEarliestStart).eventRange.range.start;\n}\n\nfunction pickEarliestStart(seg0, seg1) {\n return seg0.eventRange.range.start < seg1.eventRange.range.start ? seg0 : seg1;\n}\n\nfunction computeLatestSegEnd(segs) {\n return segs.reduce(pickLatestEnd).eventRange.range.end;\n}\n\nfunction pickLatestEnd(seg0, seg1) {\n return seg0.eventRange.range.end > seg1.eventRange.range.end ? seg0 : seg1;\n} // exports\n// --------------------------------------------------------------------------------------------------\n\n\nvar version = '5.11.3'; // important to type it, so .d.ts has generic string\n\nexport { BASE_OPTION_DEFAULTS, BASE_OPTION_REFINERS, BaseComponent, BgEvent, CalendarApi, CalendarContent, CalendarDataManager, CalendarDataProvider, CalendarRoot, ContentHook, CustomContentRenderContext, DateComponent, DateEnv, DateProfileGenerator, DayCellContent, DayCellRoot, DayHeader, DaySeriesModel, DayTableModel, DelayedRunner, ElementDragging, ElementScrollController, Emitter, EventApi, EventRoot, EventSourceApi, Interaction, MoreLinkRoot, MountHook, NamedTimeZoneImpl, NowIndicatorRoot, NowTimer, PositionCache, RefMap, RenderHook, ScrollController, ScrollResponder, Scroller, SegHierarchy, SimpleScrollGrid, Slicer, Splitter, StandardEvent, TableDateCell, TableDowCell, Theme, ViewApi, ViewContextType, ViewRoot, WeekNumberRoot, WindowScrollController, addDays, addDurations, addMs, addWeeks, allowContextMenu, allowSelection, applyMutationToEventStore, applyStyle, applyStyleProp, asCleanDays, asRoughMinutes, asRoughMs, asRoughSeconds, binarySearch, buildClassNameNormalizer, buildEntryKey, buildEventApis, buildEventRangeKey, buildHashFromArray, buildIsoString, buildNavLinkAttrs, buildSegCompareObj, buildSegTimeText, collectFromHash, combineEventUis, compareByFieldSpec, compareByFieldSpecs, compareNumbers, compareObjs, computeEarliestSegStart, computeEdges, computeFallbackHeaderFormat, computeHeightAndMargins, computeInnerRect, computeRect, computeSegDraggable, computeSegEndResizable, computeSegStartResizable, computeShrinkWidth, computeSmallestCellWidth, computeVisibleDayRange, config, constrainPoint, createAriaClickAttrs, createDuration, createEmptyEventStore, createEventInstance, createEventUi, createFormatter, createPlugin, diffDates, diffDayAndTime, diffDays, diffPoints, diffWeeks, diffWholeDays, diffWholeWeeks, disableCursor, elementClosest, elementMatches, enableCursor, eventTupleToStore, filterEventStoreDefs, filterHash, findDirectChildren, findElements, flexibleCompare, formatDate, formatDayString, formatIsoTimeString, formatRange, getAllowYScrolling, getCanVGrowWithinCell, getClippingParents, getDateMeta, getDayClassNames, getDefaultEventEnd, getElRoot, getElSeg, getEntrySpanEnd, getEventClassNames, getEventTargetViaRoot, getIsRtlScrollbarOnLeft, getRectCenter, getRelevantEvents, getScrollGridClassNames, getScrollbarWidths, getSectionClassNames, getSectionHasLiquidHeight, getSegAnchorAttrs, getSegMeta, getSlotClassNames, getStickyFooterScrollbar, getStickyHeaderDates, getUnequalProps, getUniqueDomId, globalLocales, globalPlugins, greatestDurationDenominator, groupIntersectingEntries, guid, hasBgRendering, hasShrinkWidth, identity, interactionSettingsStore, interactionSettingsToStore, intersectRanges, intersectRects, intersectSpans, isArraysEqual, isColPropsEqual, isDateSelectionValid, isDateSpansEqual, isInt, isInteractionValid, isMultiDayRange, isPropsEqual, isPropsValid, isValidDate, joinSpans, listenBySelector, mapHash, memoize, memoizeArraylike, memoizeHashlike, memoizeObjArg, mergeEventStores, multiplyDuration, padStart, parseBusinessHours, parseClassNames, parseDragMeta, parseEventDef, parseFieldSpecs, parse as parseMarker, pointInsideRect, preventContextMenu, preventDefault, preventSelection, rangeContainsMarker, rangeContainsRange, rangesEqual, rangesIntersect, refineEventDef, refineProps, removeElement, removeExact, renderChunkContent, renderFill, renderMicroColGroup, renderScrollShim, requestJson, sanitizeShrinkWidth, setElSeg, setRef, sliceEventStore, sliceEvents, sortEventSegs, startOfDay, translateRect, triggerDateSelect, unpromisify, version, whenTransitionDone, wholeDivideDurations };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n };\n }\n\n Object.defineProperty(o, k2, desc);\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || _typeof(receiver) !== \"object\" && typeof receiver !== \"function\") throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\ndefine([\"./var/arr\", \"./var/getProto\", \"./var/slice\", \"./var/flat\", \"./var/push\", \"./var/indexOf\", \"./var/class2type\", \"./var/toString\", \"./var/hasOwn\", \"./var/fnToString\", \"./var/ObjectFunctionString\", \"./var/support\", \"./var/isFunction\", \"./var/isWindow\", \"./core/DOMEval\", \"./core/toType\"], function (arr, getProto, _slice, flat, push, indexOf, class2type, toString, hasOwn, fnToString, ObjectFunctionString, support, isFunction, isWindow, DOMEval, toType) {\n \"use strict\";\n\n var version = \"3.6.3\",\n // Define a local copy of jQuery\n jQuery = function jQuery(selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n };\n\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function toArray() {\n return _slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function get(num) {\n // Return all the elements in a clean array\n if (num == null) {\n return _slice.call(this);\n } // Return just the one element from the set\n\n\n return num < 0 ? this[num + this.length] : this[num];\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function pushStack(elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems); // Add the old object onto the stack (as a reference)\n\n ret.prevObject = this; // Return the newly-formed element set\n\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function each(callback) {\n return jQuery.each(this, callback);\n },\n map: function map(callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function slice() {\n return this.pushStack(_slice.apply(this, arguments));\n },\n first: function first() {\n return this.eq(0);\n },\n last: function last() {\n return this.eq(-1);\n },\n even: function even() {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return (i + 1) % 2;\n }));\n },\n odd: function odd() {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return i % 2;\n }));\n },\n eq: function eq(i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function end() {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: arr.sort,\n splice: arr.splice\n };\n\n jQuery.extend = jQuery.fn.extend = function () {\n var options,\n name,\n src,\n copy,\n copyIsArray,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false; // Handle a deep copy situation\n\n if (typeof target === \"boolean\") {\n deep = target; // Skip the boolean and the target\n\n target = arguments[i] || {};\n i++;\n } // Handle case when target is a string or something (possible in deep copy)\n\n\n if (_typeof(target) !== \"object\" && !isFunction(target)) {\n target = {};\n } // Extend jQuery itself if only one argument is passed\n\n\n if (i === length) {\n target = this;\n i--;\n }\n\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n copy = options[name]; // Prevent Object.prototype pollution\n // Prevent never-ending loop\n\n if (name === \"__proto__\" || target === copy) {\n continue;\n } // Recurse if we're merging plain objects or arrays\n\n\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n src = target[name]; // Ensure proper type for the source value\n\n if (copyIsArray && !Array.isArray(src)) {\n clone = [];\n } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n clone = {};\n } else {\n clone = src;\n }\n\n copyIsArray = false; // Never move original objects, clone them\n\n target[name] = jQuery.extend(deep, clone, copy); // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n } // Return the modified object\n\n\n return target;\n };\n\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function error(msg) {\n throw new Error(msg);\n },\n noop: function noop() {},\n isPlainObject: function isPlainObject(obj) {\n var proto, Ctor; // Detect obvious negatives\n // Use toString instead of jQuery.type to catch host objects\n\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n\n proto = getProto(obj); // Objects with no prototype (e.g., `Object.create( null )`) are plain\n\n if (!proto) {\n return true;\n } // Objects with prototype are plain iff they were constructed by a global Object function\n\n\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n },\n isEmptyObject: function isEmptyObject(obj) {\n var name;\n\n for (name in obj) {\n return false;\n }\n\n return true;\n },\n // Evaluates a script in a provided context; falls back to the global one\n // if not specified.\n globalEval: function globalEval(code, options, doc) {\n DOMEval(code, {\n nonce: options && options.nonce\n }, doc);\n },\n each: function each(obj, callback) {\n var length,\n i = 0;\n\n if (isArrayLike(obj)) {\n length = obj.length;\n\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n\n return obj;\n },\n // results is for internal usage only\n makeArray: function makeArray(arr, results) {\n var ret = results || [];\n\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n\n return ret;\n },\n inArray: function inArray(elem, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, elem, i);\n },\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n merge: function merge(first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n\n first.length = i;\n return first;\n },\n grep: function grep(elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert; // Go through the array, only saving the items\n // that pass the validator function\n\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n\n return matches;\n },\n // arg is for internal usage only\n map: function map(elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = []; // Go through the array, translating each of the items to their new values\n\n if (isArrayLike(elems)) {\n length = elems.length;\n\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n } // Go through every key on the object,\n\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n }\n } // Flatten any nested arrays\n\n\n return flat(ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n });\n\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n } // Populate the class2type map\n\n\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (_i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n\n function isArrayLike(obj) {\n // Support: real iOS 8.2 only (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = toType(obj);\n\n if (isFunction(obj) || isWindow(obj)) {\n return false;\n }\n\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n\n return jQuery;\n});","'use strict';\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport bind from './helpers/bind.js'; // utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\nvar getPrototypeOf = Object.getPrototypeOf;\n\nvar kindOf = function (cache) {\n return function (thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n}(Object.create(null));\n\nvar kindOfTest = function kindOfTest(type) {\n type = type.toLowerCase();\n return function (thing) {\n return kindOf(thing) === type;\n };\n};\n\nvar typeOfTest = function typeOfTest(type) {\n return function (thing) {\n return _typeof(thing) === type;\n };\n};\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\n\n\nvar isArray = Array.isArray;\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\n\nvar isUndefined = typeOfTest('undefined');\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\n\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\n\n\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\n\nfunction isArrayBufferView(val) {\n var result;\n\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n\n return result;\n}\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\n\n\nvar isString = typeOfTest('string');\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\n\nvar isFunction = typeOfTest('function');\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\n\nvar isNumber = typeOfTest('number');\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\n\nvar isObject = function isObject(thing) {\n return thing !== null && _typeof(thing) === 'object';\n};\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\n\n\nvar isBoolean = function isBoolean(thing) {\n return thing === true || thing === false;\n};\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\n\n\nvar isPlainObject = function isPlainObject(val) {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n var prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n};\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\n\n\nvar isDate = kindOfTest('Date');\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\n\nvar isFile = kindOfTest('File');\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\n\nvar isBlob = kindOfTest('Blob');\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\n\nvar isFileList = kindOfTest('FileList');\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\n\nvar isStream = function isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n};\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\n\n\nvar isFormData = function isFormData(thing) {\n var kind;\n return thing && (typeof FormData === 'function' && thing instanceof FormData || isFunction(thing.append) && ((kind = kindOf(thing)) === 'formdata' || // detect form-data instance\n kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]'));\n};\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\n\n\nvar isURLSearchParams = kindOfTest('URLSearchParams');\n\nvar _map = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest),\n _map2 = _slicedToArray(_map, 4),\n isReadableStream = _map2[0],\n isRequest = _map2[1],\n isResponse = _map2[2],\n isHeaders = _map2[3];\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\n\n\nvar trim = function trim(str) {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\n\n\nfunction forEach(obj, fn) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref$allOwnKeys = _ref.allOwnKeys,\n allOwnKeys = _ref$allOwnKeys === void 0 ? false : _ref$allOwnKeys;\n\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n var i;\n var l; // Force an array if not already something iterable\n\n if (_typeof(obj) !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n var keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n var len = keys.length;\n var key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n var keys = Object.keys(obj);\n var i = keys.length;\n\n var _key;\n\n while (i-- > 0) {\n _key = keys[i];\n\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n\n return null;\n}\n\nvar _global = function () {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : typeof window !== 'undefined' ? window : global;\n}();\n\nvar isContextDefined = function isContextDefined(context) {\n return !isUndefined(context) && context !== _global;\n};\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction\n /* obj1, obj2, obj3, ... */\nmerge() {\n var _ref2 = isContextDefined(this) && this || {},\n caseless = _ref2.caseless;\n\n var result = {};\n\n var assignValue = function assignValue(val, key) {\n var targetKey = caseless && findKey(result, key) || key;\n\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n };\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\n\n\nvar extend = function extend(a, b, thisArg) {\n var _ref3 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},\n allOwnKeys = _ref3.allOwnKeys;\n\n forEach(b, function (val, key) {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {\n allOwnKeys: allOwnKeys\n });\n return a;\n};\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\n\n\nvar stripBOM = function stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n\n return content;\n};\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\n\n\nvar inherits = function inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n};\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\n\n\nvar toFlatObject = function toFlatObject(sourceObj, destObj, filter, propFilter) {\n var props;\n var i;\n var prop;\n var merged = {};\n destObj = destObj || {}; // eslint-disable-next-line no-eq-null,eqeqeq\n\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n\n while (i-- > 0) {\n prop = props[i];\n\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\n\n\nvar endsWith = function endsWith(str, searchString, position) {\n str = String(str);\n\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\n\n\nvar toArray = function toArray(thing) {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n var i = thing.length;\n if (!isNumber(i)) return null;\n var arr = new Array(i);\n\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n\n return arr;\n};\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\n\n\nvar isTypedArray = function (TypedArray) {\n // eslint-disable-next-line func-names\n return function (thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n}(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\n\n\nvar forEachEntry = function forEachEntry(obj, fn) {\n var generator = obj && obj[Symbol.iterator];\n var iterator = generator.call(obj);\n var result;\n\n while ((result = iterator.next()) && !result.done) {\n var pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\n\n\nvar matchAll = function matchAll(regExp, str) {\n var matches;\n var arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\n\n\nvar isHTMLForm = kindOfTest('HTMLFormElement');\n\nvar toCamelCase = function toCamelCase(str) {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n/* Creating a function that will check if an object has a property. */\n\n\nvar hasOwnProperty = function (_ref4) {\n var hasOwnProperty = _ref4.hasOwnProperty;\n return function (obj, prop) {\n return hasOwnProperty.call(obj, prop);\n };\n}(Object.prototype);\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\n\n\nvar isRegExp = kindOfTest('RegExp');\n\nvar reduceDescriptors = function reduceDescriptors(obj, reducer) {\n var descriptors = Object.getOwnPropertyDescriptors(obj);\n var reducedDescriptors = {};\n forEach(descriptors, function (descriptor, name) {\n var ret;\n\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n Object.defineProperties(obj, reducedDescriptors);\n};\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\n\nvar freezeMethods = function freezeMethods(obj) {\n reduceDescriptors(obj, function (descriptor, name) {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n var value = obj[name];\n if (!isFunction(value)) return;\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = function () {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n};\n\nvar toObjectSet = function toObjectSet(arrayOrString, delimiter) {\n var obj = {};\n\n var define = function define(arr) {\n arr.forEach(function (value) {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n return obj;\n};\n\nvar noop = function noop() {};\n\nvar toFiniteNumber = function toFiniteNumber(value, defaultValue) {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n};\n\nvar ALPHA = 'abcdefghijklmnopqrstuvwxyz';\nvar DIGIT = '0123456789';\nvar ALPHABET = {\n DIGIT: DIGIT,\n ALPHA: ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n};\n\nvar generateString = function generateString() {\n var size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 16;\n var alphabet = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ALPHABET.ALPHA_DIGIT;\n var str = '';\n var length = alphabet.length;\n\n while (size--) {\n str += alphabet[Math.random() * length | 0];\n }\n\n return str;\n};\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\n\n\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nvar toJSONObject = function toJSONObject(obj) {\n var stack = new Array(10);\n\n var visit = function visit(source, i) {\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if (!('toJSON' in source)) {\n stack[i] = source;\n var target = isArray(source) ? [] : {};\n forEach(source, function (value, key) {\n var reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n stack[i] = undefined;\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\nvar isAsyncFn = kindOfTest('AsyncFunction');\n\nvar isThenable = function isThenable(thing) {\n return thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing[\"catch\"]);\n};\n\nexport default {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isBoolean: isBoolean,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isReadableStream: isReadableStream,\n isRequest: isRequest,\n isResponse: isResponse,\n isHeaders: isHeaders,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isRegExp: isRegExp,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isTypedArray: isTypedArray,\n isFileList: isFileList,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM,\n inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n forEachEntry: forEachEntry,\n matchAll: matchAll,\n isHTMLForm: isHTMLForm,\n hasOwnProperty: hasOwnProperty,\n hasOwnProp: hasOwnProperty,\n // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors: reduceDescriptors,\n freezeMethods: freezeMethods,\n toObjectSet: toObjectSet,\n toCamelCase: toCamelCase,\n noop: noop,\n toFiniteNumber: toFiniteNumber,\n findKey: findKey,\n global: _global,\n isContextDefined: isContextDefined,\n ALPHABET: ALPHABET,\n generateString: generateString,\n isSpecCompliantForm: isSpecCompliantForm,\n toJSONObject: toJSONObject,\n isAsyncFn: isAsyncFn,\n isThenable: isThenable\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\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() {}\n\nvar uid = function () {\n var id = 0;\n return function () {\n return id++;\n };\n}();\n\nfunction isNullOrUndef(value) {\n return value === null || typeof value === 'undefined';\n}\n\nfunction isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n\n var type = Object.prototype.toString.call(value);\n\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n\n return false;\n}\n\nfunction isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n\nvar isNumberFinite = function isNumberFinite(value) {\n return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n};\n\nfunction finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\n\nfunction valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\n\nvar toPercentage = function toPercentage(value, dimension) {\n return typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 : value / dimension;\n};\n\nvar toDimension = function toDimension(value, dimension) {\n return typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 * dimension : +value;\n};\n\nfunction callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\n\nfunction each(loopable, fn, thisArg, reverse) {\n var i, len, keys;\n\n if (isArray(loopable)) {\n len = loopable.length;\n\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\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\n\nfunction _elementsEqual(a0, a1) {\n var i, ilen, v0, v1;\n\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction clone$1(source) {\n if (isArray(source)) {\n return source.map(clone$1);\n }\n\n if (isObject(source)) {\n var target = Object.create(null);\n var keys = Object.keys(source);\n var klen = keys.length;\n var k = 0;\n\n for (; k < klen; ++k) {\n target[keys[k]] = clone$1(source[keys[k]]);\n }\n\n return target;\n }\n\n return source;\n}\n\nfunction isValidKey(key) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\n\nfunction _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n\n var tval = target[key];\n var sval = source[key];\n\n if (isObject(tval) && isObject(sval)) {\n merge(tval, sval, options);\n } else {\n target[key] = clone$1(sval);\n }\n}\n\nfunction merge(target, source, options) {\n var sources = isArray(source) ? source : [source];\n var ilen = sources.length;\n\n if (!isObject(target)) {\n return target;\n }\n\n options = options || {};\n var merger = options.merger || _merger;\n\n for (var i = 0; i < ilen; ++i) {\n source = sources[i];\n\n if (!isObject(source)) {\n continue;\n }\n\n var keys = Object.keys(source);\n\n for (var k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, source, options);\n }\n }\n\n return target;\n}\n\nfunction mergeIf(target, source) {\n return merge(target, source, {\n merger: _mergerIf\n });\n}\n\nfunction _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n\n var tval = target[key];\n var sval = source[key];\n\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}\n\nfunction _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous + '\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\n\nvar keyResolvers = {\n '': function _(v) {\n return v;\n },\n x: function x(o) {\n return o.x;\n },\n y: function y(o) {\n return o.y;\n }\n};\n\nfunction resolveObjectKey(obj, key) {\n var resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n\n return resolver(obj);\n}\n\nfunction _getKeyResolver(key) {\n var keys = _splitKey(key);\n\n return function (obj) {\n var _iterator = _createForOfIteratorHelper(keys),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var k = _step.value;\n\n if (k === '') {\n break;\n }\n\n obj = obj && obj[k];\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return obj;\n };\n}\n\nfunction _splitKey(key) {\n var parts = key.split('.');\n var keys = [];\n var tmp = '';\n\n var _iterator2 = _createForOfIteratorHelper(parts),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var part = _step2.value;\n tmp += part;\n\n if (tmp.endsWith('\\\\')) {\n tmp = tmp.slice(0, -1) + '.';\n } else {\n keys.push(tmp);\n tmp = '';\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return keys;\n}\n\nfunction _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nvar defined = function defined(value) {\n return typeof value !== 'undefined';\n};\n\nvar isFunction = function isFunction(value) {\n return typeof value === 'function';\n};\n\nvar setsEqual = function setsEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n\n var _iterator3 = _createForOfIteratorHelper(a),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var item = _step3.value;\n\n if (!b.has(item)) {\n return false;\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n return true;\n};\n\nfunction _isClickEvent(e) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\nvar PI = Math.PI;\nvar TAU = 2 * PI;\nvar PITAU = TAU + PI;\nvar INFINITY = Number.POSITIVE_INFINITY;\nvar RAD_PER_DEG = PI / 180;\nvar HALF_PI = PI / 2;\nvar QUARTER_PI = PI / 4;\nvar TWO_THIRDS_PI = PI * 2 / 3;\nvar log10 = Math.log10;\nvar sign = Math.sign;\n\nfunction niceNum(range) {\n var roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n var niceRange = Math.pow(10, Math.floor(log10(range)));\n var fraction = range / niceRange;\n var niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\n\nfunction _factorize(value) {\n var result = [];\n var sqrt = Math.sqrt(value);\n var i;\n\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n\n result.sort(function (a, b) {\n return a - b;\n }).pop();\n return result;\n}\n\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\n\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\n\nfunction almostWhole(x, epsilon) {\n var rounded = Math.round(x);\n return rounded - epsilon <= x && rounded + epsilon >= x;\n}\n\nfunction _setMinAndMaxByKey(array, target, property) {\n var i, ilen, value;\n\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\n\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\n\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\n\nfunction _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n\n var e = 1;\n var p = 0;\n\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n\n return p;\n}\n\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n var distanceFromXCenter = anglePoint.x - centrePoint.x;\n var distanceFromYCenter = anglePoint.y - centrePoint.y;\n var radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n var angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n\n if (angle < -0.5 * PI) {\n angle += TAU;\n }\n\n return {\n angle: angle,\n distance: radialDistanceFromCenter\n };\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}\n\nfunction _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\n\nfunction _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\n\nfunction _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n var a = _normalizeAngle(angle);\n\n var s = _normalizeAngle(start);\n\n var e = _normalizeAngle(end);\n\n var angleToStart = _normalizeAngle(s - a);\n\n var angleToEnd = _normalizeAngle(e - a);\n\n var startToAngle = _normalizeAngle(a - s);\n\n var endToAngle = _normalizeAngle(a - e);\n\n return a === s || a === e || sameAngleIsFullCircle && s === e || angleToStart > angleToEnd && startToAngle < endToAngle;\n}\n\nfunction _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\n\nfunction _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\n\nfunction _isBetween(value, start, end) {\n var epsilon = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 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 || function (index) {\n return table[index] < value;\n };\n\n var hi = table.length - 1;\n var lo = 0;\n var mid;\n\n while (hi - lo > 1) {\n mid = lo + hi >> 1;\n\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n\n return {\n lo: lo,\n hi: hi\n };\n}\n\nvar _lookupByKey = function _lookupByKey(table, key, value, last) {\n return _lookup(table, value, last ? function (index) {\n return table[index][key] <= value;\n } : function (index) {\n return table[index][key] < value;\n });\n};\n\nvar _rlookupByKey = function _rlookupByKey(table, key, value) {\n return _lookup(table, value, function (index) {\n return table[index][key] >= value;\n });\n};\n\nfunction _filterBetween(values, min, max) {\n var start = 0;\n var end = values.length;\n\n while (start < end && values[start] < min) {\n start++;\n }\n\n while (end > start && values[end - 1] > max) {\n end--;\n }\n\n return start > 0 || end < values.length ? values.slice(start, end) : values;\n}\n\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\n\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n\n return;\n }\n\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n arrayEvents.forEach(function (key) {\n var method = '_onData' + _capitalize(key);\n\n var base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value: function value() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var res = base.apply(this, args);\n\n array._chartjs.listeners.forEach(function (object) {\n if (typeof object[method] === 'function') {\n object[method].apply(object, args);\n }\n });\n\n return res;\n }\n });\n });\n}\n\nfunction unlistenArrayEvents(array, listener) {\n var stub = array._chartjs;\n\n if (!stub) {\n return;\n }\n\n var listeners = stub.listeners;\n var index = listeners.indexOf(listener);\n\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n\n if (listeners.length > 0) {\n return;\n }\n\n arrayEvents.forEach(function (key) {\n delete array[key];\n });\n delete array._chartjs;\n}\n\nfunction _arrayUnique(items) {\n var set = new Set();\n var i, ilen;\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n set.add(items[i]);\n }\n\n if (set.size === ilen) {\n return items;\n }\n\n return Array.from(set);\n}\n\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n\nvar requestAnimFrame = function () {\n if (typeof window === 'undefined') {\n return function (callback) {\n return callback();\n };\n }\n\n return window.requestAnimationFrame;\n}();\n\nfunction throttled(fn, thisArg, updateFn) {\n var updateArgs = updateFn || function (args) {\n return Array.prototype.slice.call(args);\n };\n\n var ticking = false;\n var args = [];\n return function () {\n for (var _len2 = arguments.length, rest = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n rest[_key2] = arguments[_key2];\n }\n\n args = updateArgs(rest);\n\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, function () {\n ticking = false;\n fn.apply(thisArg, args);\n });\n }\n };\n}\n\nfunction debounce(fn, delay) {\n var timeout;\n return function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n\n return delay;\n };\n}\n\nvar _toLeftRightCenter = function _toLeftRightCenter(align) {\n return align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n};\n\nvar _alignStartEnd = function _alignStartEnd(align, start, end) {\n return align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n};\n\nvar _textX = function _textX(align, left, right, rtl) {\n var check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n\nfunction _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n var pointCount = points.length;\n var start = 0;\n var count = pointCount;\n\n if (meta._sorted) {\n var iScale = meta.iScale,\n _parsed = meta._parsed;\n var axis = iScale.axis;\n\n var _iScale$getUserBounds = iScale.getUserBounds(),\n min = _iScale$getUserBounds.min,\n max = _iScale$getUserBounds.max,\n minDefined = _iScale$getUserBounds.minDefined,\n maxDefined = _iScale$getUserBounds.maxDefined;\n\n if (minDefined) {\n start = _limitValue(Math.min(_lookupByKey(_parsed, iScale.axis, min).lo, animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo), 0, pointCount - 1);\n }\n\n if (maxDefined) {\n count = _limitValue(Math.max(_lookupByKey(_parsed, iScale.axis, max, true).hi + 1, animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1), start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n\n return {\n start: start,\n count: count\n };\n}\n\nfunction _scaleRangesChanged(meta) {\n var xScale = meta.xScale,\n yScale = meta.yScale,\n _scaleRanges = meta._scaleRanges;\n var newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n\n var changed = _scaleRanges.xmin !== xScale.min || _scaleRanges.xmax !== xScale.max || _scaleRanges.ymin !== yScale.min || _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nvar atEdge = function atEdge(t) {\n return t === 0 || t === 1;\n};\n\nvar elasticIn = function elasticIn(t, s, p) {\n return -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\n};\n\nvar elasticOut = function elasticOut(t, s, p) {\n return Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n};\n\nvar effects = {\n linear: function linear(t) {\n return t;\n },\n easeInQuad: function easeInQuad(t) {\n return t * t;\n },\n easeOutQuad: function easeOutQuad(t) {\n return -t * (t - 2);\n },\n easeInOutQuad: function easeInOutQuad(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1);\n },\n easeInCubic: function easeInCubic(t) {\n return t * t * t;\n },\n easeOutCubic: function easeOutCubic(t) {\n return (t -= 1) * t * t + 1;\n },\n easeInOutCubic: function easeInOutCubic(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t * t : 0.5 * ((t -= 2) * t * t + 2);\n },\n easeInQuart: function easeInQuart(t) {\n return t * t * t * t;\n },\n easeOutQuart: function easeOutQuart(t) {\n return -((t -= 1) * t * t * t - 1);\n },\n easeInOutQuart: function easeInOutQuart(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t * t * t : -0.5 * ((t -= 2) * t * t * t - 2);\n },\n easeInQuint: function easeInQuint(t) {\n return t * t * t * t * t;\n },\n easeOutQuint: function easeOutQuint(t) {\n return (t -= 1) * t * t * t * t + 1;\n },\n easeInOutQuint: function easeInOutQuint(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t * t * t * t : 0.5 * ((t -= 2) * t * t * t * t + 2);\n },\n easeInSine: function easeInSine(t) {\n return -Math.cos(t * HALF_PI) + 1;\n },\n easeOutSine: function easeOutSine(t) {\n return Math.sin(t * HALF_PI);\n },\n easeInOutSine: function easeInOutSine(t) {\n return -0.5 * (Math.cos(PI * t) - 1);\n },\n easeInExpo: function easeInExpo(t) {\n return t === 0 ? 0 : Math.pow(2, 10 * (t - 1));\n },\n easeOutExpo: function easeOutExpo(t) {\n return t === 1 ? 1 : -Math.pow(2, -10 * t) + 1;\n },\n easeInOutExpo: function easeInOutExpo(t) {\n return atEdge(t) ? t : t < 0.5 ? 0.5 * Math.pow(2, 10 * (t * 2 - 1)) : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2);\n },\n easeInCirc: function easeInCirc(t) {\n return t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1);\n },\n easeOutCirc: function easeOutCirc(t) {\n return Math.sqrt(1 - (t -= 1) * t);\n },\n easeInOutCirc: function easeInOutCirc(t) {\n return (t /= 0.5) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n },\n easeInElastic: function easeInElastic(t) {\n return atEdge(t) ? t : elasticIn(t, 0.075, 0.3);\n },\n easeOutElastic: function easeOutElastic(t) {\n return atEdge(t) ? t : elasticOut(t, 0.075, 0.3);\n },\n easeInOutElastic: function easeInOutElastic(t) {\n var s = 0.1125;\n var p = 0.45;\n return atEdge(t) ? t : t < 0.5 ? 0.5 * elasticIn(t * 2, s, p) : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack: function easeInBack(t) {\n var s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack: function easeOutBack(t) {\n var s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack: function easeInOutBack(t) {\n var s = 1.70158;\n\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= 1.525) + 1) * t - s));\n }\n\n return 0.5 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2);\n },\n easeInBounce: function easeInBounce(t) {\n return 1 - effects.easeOutBounce(1 - t);\n },\n easeOutBounce: function easeOutBounce(t) {\n var m = 7.5625;\n var d = 2.75;\n\n if (t < 1 / d) {\n return m * t * t;\n }\n\n if (t < 2 / d) {\n return m * (t -= 1.5 / d) * t + 0.75;\n }\n\n if (t < 2.5 / d) {\n return m * (t -= 2.25 / d) * t + 0.9375;\n }\n\n return m * (t -= 2.625 / d) * t + 0.984375;\n },\n easeInOutBounce: function easeInOutBounce(t) {\n return t < 0.5 ? effects.easeInBounce(t * 2) * 0.5 : 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 */\n\nfunction round(v) {\n return v + 0.5 | 0;\n}\n\nvar lim = function lim(v, l, h) {\n return Math.max(Math.min(v, h), l);\n};\n\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\n\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\n\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\n\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\n\nvar map$1 = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n a: 10,\n b: 11,\n c: 12,\n d: 13,\n e: 14,\n f: 15\n};\n\nvar hex = _toConsumableArray('0123456789ABCDEF');\n\nvar h1 = function h1(b) {\n return hex[b & 0xF];\n};\n\nvar h2 = function h2(b) {\n return hex[(b & 0xF0) >> 4] + hex[b & 0xF];\n};\n\nvar eq = function eq(b) {\n return (b & 0xF0) >> 4 === (b & 0xF);\n};\n\nvar isShort = function isShort(v) {\n return eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\n};\n\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n\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\n return ret;\n}\n\nvar alpha = function alpha(a, f) {\n return a < 255 ? f(a) : '';\n};\n\nfunction _hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f) : undefined;\n}\n\nvar HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\n\nfunction hsl2rgbn(h, s, l) {\n var a = s * Math.min(l, 1 - l);\n\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;\n return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n };\n\n return [f(0), f(8), f(4)];\n}\n\nfunction hsv2rgbn(h, s, v) {\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 60) % 6;\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n };\n\n return [f(5), f(3), f(1)];\n}\n\nfunction hwb2rgbn(h, w, b) {\n var rgb = hsl2rgbn(h, 1, 0.5);\n var i;\n\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n\n return rgb;\n}\n\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return (g - b) / d + (g < b ? 6 : 0);\n }\n\n if (g === max) {\n return (b - r) / d + 2;\n }\n\n return (r - g) / d + 4;\n}\n\nfunction rgb2hsl(v) {\n var range = 255;\n var r = v.r / range;\n var g = v.g / range;\n var b = v.b / range;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var l = (max + min) / 2;\n var h, s, d;\n\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\n return [h | 0, s || 0, l];\n}\n\nfunction calln(f, a, b, c) {\n return (Array.isArray(a) ? f(a[0], a[1], a[2]) : f(a, b, c)).map(n2b);\n}\n\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\n\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\n\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\n\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\n\nfunction hueParse(str) {\n var m = HUE_RE.exec(str);\n var a = 255;\n var v;\n\n if (!m) {\n return;\n }\n\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n\n var h = hue(+m[2]);\n var p1 = +m[3] / 100;\n var p2 = +m[4] / 100;\n\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\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\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}\n\nfunction _hslString(v) {\n if (!v) {\n return;\n }\n\n var a = rgb2hsl(v);\n var h = a[0];\n var s = n2p(a[1]);\n var l = n2p(a[2]);\n return v.a < 255 ? \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(b2n(v.a), \")\") : \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\");\n}\n\nvar 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};\nvar 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};\n\nfunction unpack() {\n var unpacked = {};\n var keys = Object.keys(names$1);\n var tkeys = Object.keys(map);\n var i, j, k, ok, nk;\n\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n\n return unpacked;\n}\n\nvar names;\n\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n\n var 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}\n\nvar RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\n\nfunction rgbParse(str) {\n var m = RGB_RE.exec(str);\n var a = 255;\n var r, g, b;\n\n if (!m) {\n return;\n }\n\n if (m[7] !== r) {\n var v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\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}\n\nfunction _rgbString(v) {\n return v && (v.a < 255 ? \"rgba(\".concat(v.r, \", \").concat(v.g, \", \").concat(v.b, \", \").concat(b2n(v.a), \")\") : \"rgb(\".concat(v.r, \", \").concat(v.g, \", \").concat(v.b, \")\"));\n}\n\nvar to = function to(v) {\n return v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\n};\n\nvar from = function from(v) {\n return v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\n};\n\nfunction _interpolate(rgb1, rgb2, t) {\n var r = from(b2n(rgb1.r));\n var g = from(b2n(rgb1.g));\n var 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}\n\nfunction modHSL(v, i, ratio) {\n if (v) {\n var 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}\n\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\n\nfunction fromObject(input) {\n var v = {\n r: 0,\n g: 0,\n b: 0,\n a: 255\n };\n\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {\n r: input[0],\n g: input[1],\n b: input[2],\n a: 255\n };\n\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {\n r: 0,\n g: 0,\n b: 0,\n a: 1\n });\n v.a = n2b(v.a);\n }\n\n return v;\n}\n\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n\n return hueParse(str);\n}\n\nvar Color = /*#__PURE__*/function () {\n function Color(input) {\n _classCallCheck(this, Color);\n\n if (input instanceof Color) {\n return input;\n }\n\n var type = _typeof(input);\n\n var v;\n\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n\n this._rgb = v;\n this._valid = !!v;\n }\n\n _createClass(Color, [{\n key: \"valid\",\n get: function get() {\n return this._valid;\n }\n }, {\n key: \"rgb\",\n get: function get() {\n var v = clone(this._rgb);\n\n if (v) {\n v.a = b2n(v.a);\n }\n\n return v;\n },\n set: function set(obj) {\n this._rgb = fromObject(obj);\n }\n }, {\n key: \"rgbString\",\n value: function rgbString() {\n return this._valid ? _rgbString(this._rgb) : undefined;\n }\n }, {\n key: \"hexString\",\n value: function hexString() {\n return this._valid ? _hexString(this._rgb) : undefined;\n }\n }, {\n key: \"hslString\",\n value: function hslString() {\n return this._valid ? _hslString(this._rgb) : undefined;\n }\n }, {\n key: \"mix\",\n value: function mix(color, weight) {\n if (color) {\n var c1 = this.rgb;\n var c2 = color.rgb;\n var w2;\n var p = weight === w2 ? 0.5 : weight;\n var w = 2 * p - 1;\n var a = c1.a - c2.a;\n var 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\n return this;\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(color, t) {\n if (color) {\n this._rgb = _interpolate(this._rgb, color._rgb, t);\n }\n\n return this;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new Color(this.rgb);\n }\n }, {\n key: \"alpha\",\n value: function alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n }, {\n key: \"clearer\",\n value: function clearer(ratio) {\n var rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n }, {\n key: \"greyscale\",\n value: function greyscale() {\n var rgb = this._rgb;\n var 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 }, {\n key: \"opaquer\",\n value: function opaquer(ratio) {\n var rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n }, {\n key: \"negate\",\n value: function negate() {\n var 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 }, {\n key: \"lighten\",\n value: function lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n }, {\n key: \"darken\",\n value: function darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n }, {\n key: \"saturate\",\n value: function saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n }, {\n key: \"desaturate\",\n value: function desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n }, {\n key: \"rotate\",\n value: function rotate(deg) {\n _rotate(this._rgb, deg);\n\n return this;\n }\n }]);\n\n return Color;\n}();\n\nfunction index_esm(input) {\n return new Color(input);\n}\n\nfunction isPatternOrGradient(value) {\n if (value && _typeof(value) === 'object') {\n var type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n\n return false;\n}\n\nfunction color(value) {\n return isPatternOrGradient(value) ? value : index_esm(value);\n}\n\nfunction getHoverColor(value) {\n return isPatternOrGradient(value) ? value : index_esm(value).saturate(0.5).darken(0.1).hexString();\n}\n\nvar overrides = Object.create(null);\nvar descriptors = Object.create(null);\n\nfunction getScope$1(node, key) {\n if (!key) {\n return node;\n }\n\n var keys = key.split('.');\n\n for (var i = 0, n = keys.length; i < n; ++i) {\n var k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n\n return node;\n}\n\nfunction _set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n\n return merge(getScope$1(root, ''), scope);\n}\n\nvar Defaults = /*#__PURE__*/function () {\n function Defaults(_descriptors) {\n _classCallCheck(this, Defaults);\n\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\n this.devicePixelRatio = function (context) {\n return context.chart.platform.getDevicePixelRatio();\n };\n\n this.elements = {};\n this.events = ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove'];\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\n this.hoverBackgroundColor = function (ctx, options) {\n return getHoverColor(options.backgroundColor);\n };\n\n this.hoverBorderColor = function (ctx, options) {\n return getHoverColor(options.borderColor);\n };\n\n this.hoverColor = function (ctx, options) {\n return getHoverColor(options.color);\n };\n\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\n _createClass(Defaults, [{\n key: \"set\",\n value: function set(scope, values) {\n return _set(this, scope, values);\n }\n }, {\n key: \"get\",\n value: function get(scope) {\n return getScope$1(this, scope);\n }\n }, {\n key: \"describe\",\n value: function describe(scope, values) {\n return _set(descriptors, scope, values);\n }\n }, {\n key: \"override\",\n value: function override(scope, values) {\n return _set(overrides, scope, values);\n }\n }, {\n key: \"route\",\n value: function route(scope, name, targetScope, targetName) {\n var _Object$definePropert;\n\n var scopeObject = getScope$1(this, scope);\n var targetScopeObject = getScope$1(this, targetScope);\n var privateName = '_' + name;\n Object.defineProperties(scopeObject, (_Object$definePropert = {}, _defineProperty(_Object$definePropert, privateName, {\n value: scopeObject[name],\n writable: true\n }), _defineProperty(_Object$definePropert, name, {\n enumerable: true,\n get: function get() {\n var local = this[privateName];\n var target = targetScopeObject[targetName];\n\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n\n return valueOrDefault(local, target);\n },\n set: function set(value) {\n this[privateName] = value;\n }\n }), _Object$definePropert));\n }\n }]);\n\n return Defaults;\n}();\n\nvar defaults = new Defaults({\n _scriptable: function _scriptable(name) {\n return !name.startsWith('on');\n },\n _indexable: function _indexable(name) {\n return name !== 'events';\n },\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\n return (font.style ? font.style + ' ' : '') + (font.weight ? font.weight + ' ' : '') + font.size + 'px ' + font.family;\n}\n\nfunction _measureText(ctx, data, gc, longest, string) {\n var textWidth = data[string];\n\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n\n if (textWidth > longest) {\n longest = textWidth;\n }\n\n return longest;\n}\n\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n var data = cache.data = cache.data || {};\n var gc = cache.garbageCollect = cache.garbageCollect || [];\n\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n\n ctx.save();\n ctx.font = font;\n var longest = 0;\n var ilen = arrayOfThings.length;\n var i, j, jlen, thing, nestedThing;\n\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n\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\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n\n ctx.restore();\n var gcLen = gc.length / 2;\n\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n\n gc.splice(0, gcLen);\n }\n\n return longest;\n}\n\nfunction _alignPixel(chart, pixel, width) {\n var devicePixelRatio = chart.currentDevicePixelRatio;\n var halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\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}\n\nfunction drawPoint(ctx, options, x, y) {\n drawPointLegend(ctx, options, x, y, null);\n}\n\nfunction drawPointLegend(ctx, options, x, y, w) {\n var type, xOffset, yOffset, size, cornerRadius, width;\n var style = options.pointStyle;\n var rotation = options.rotation;\n var radius = options.radius;\n var rad = (rotation || 0) * RAD_PER_DEG;\n\n if (style && _typeof(style) === 'object') {\n type = style.toString();\n\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\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n\n ctx.beginPath();\n\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\n ctx.closePath();\n break;\n\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\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\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\n rad += QUARTER_PI;\n\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\n case 'crossRot':\n rad += QUARTER_PI;\n\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\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\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\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\n ctx.fill();\n\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\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 && point.y > area.top - margin && point.y < area.bottom + margin;\n}\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}\n\nfunction unclipArea(ctx) {\n ctx.restore();\n}\n\nfunction _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n\n if (mode === 'middle') {\n var 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\n ctx.lineTo(target.x, target.y);\n}\n\nfunction _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n\n ctx.bezierCurveTo(flip ? previous.cp1x : previous.cp2x, flip ? previous.cp1y : previous.cp2y, flip ? target.cp2x : target.cp1x, flip ? target.cp2y : target.cp1y, target.x, target.y);\n}\n\nfunction renderText(ctx, text, x, y, font) {\n var opts = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n var lines = isArray(text) ? text : [text];\n var stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n var i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += font.lineHeight;\n }\n\n ctx.restore();\n}\n\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\n\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n var metrics = ctx.measureText(line);\n var left = x - metrics.actualBoundingBoxLeft;\n var right = x + metrics.actualBoundingBoxRight;\n var top = y - metrics.actualBoundingBoxAscent;\n var bottom = y + metrics.actualBoundingBoxDescent;\n var 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}\n\nfunction addRoundedRectPath(ctx, rect) {\n var x = rect.x,\n y = rect.y,\n w = rect.w,\n h = rect.h,\n radius = rect.radius;\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\nvar LINE_HEIGHT = new RegExp(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\nvar FONT_STYLE = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);\n\nfunction toLineHeight(value, size) {\n var matches = ('' + value).match(LINE_HEIGHT);\n\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n\n value = +matches[2];\n\n switch (matches[3]) {\n case 'px':\n return value;\n\n case '%':\n value /= 100;\n break;\n }\n\n return size * value;\n}\n\nvar numberOrZero = function numberOrZero(v) {\n return +v || 0;\n};\n\nfunction _readValueToProps(value, props) {\n var ret = {};\n var objProps = isObject(props);\n var keys = objProps ? Object.keys(props) : props;\n var read = isObject(value) ? objProps ? function (prop) {\n return valueOrDefault(value[prop], value[props[prop]]);\n } : function (prop) {\n return value[prop];\n } : function () {\n return value;\n };\n\n var _iterator4 = _createForOfIteratorHelper(keys),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var prop = _step4.value;\n ret[prop] = numberOrZero(read(prop));\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n return ret;\n}\n\nfunction toTRBL(value) {\n return _readValueToProps(value, {\n top: 'y',\n right: 'x',\n bottom: 'y',\n left: 'x'\n });\n}\n\nfunction toTRBLCorners(value) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\n\nfunction toPadding(value) {\n var obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\n\nfunction toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n var size = valueOrDefault(options.size, fallback.size);\n\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n\n var style = valueOrDefault(options.style, fallback.style);\n\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = '';\n }\n\n var font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size: size,\n style: style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\n\nfunction resolve(inputs, context, index, info) {\n var cacheable = true;\n var i, ilen, value;\n\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n\n if (value === undefined) {\n continue;\n }\n\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n\n return value;\n }\n }\n}\n\nfunction _addGrace(minmax, grace, beginAtZero) {\n var min = minmax.min,\n max = minmax.max;\n var change = toDimension(grace, (max - min) / 2);\n\n var keepZero = function keepZero(value, add) {\n return beginAtZero && value === 0 ? 0 : value + add;\n };\n\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\n\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\nfunction _createResolver(scopes) {\n var _cache;\n\n var prefixes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [''];\n var rootScopes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : scopes;\n var fallback = arguments.length > 3 ? arguments[3] : undefined;\n var getTarget = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function () {\n return scopes[0];\n };\n\n if (!defined(fallback)) {\n fallback = _resolve('_fallback', scopes);\n }\n\n var cache = (_cache = {}, _defineProperty(_cache, Symbol.toStringTag, 'Object'), _defineProperty(_cache, \"_cacheable\", true), _defineProperty(_cache, \"_scopes\", scopes), _defineProperty(_cache, \"_rootScopes\", rootScopes), _defineProperty(_cache, \"_fallback\", fallback), _defineProperty(_cache, \"_getTarget\", getTarget), _defineProperty(_cache, \"override\", function override(scope) {\n return _createResolver([scope].concat(_toConsumableArray(scopes)), prefixes, rootScopes, fallback);\n }), _cache);\n return new Proxy(cache, {\n deleteProperty: function deleteProperty(target, prop) {\n delete target[prop];\n delete target._keys;\n delete scopes[0][prop];\n return true;\n },\n get: function get(target, prop) {\n return _cached(target, prop, function () {\n return _resolveWithPrefixes(prop, prefixes, scopes, target);\n });\n },\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n getPrototypeOf: function getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n has: function has(target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n ownKeys: function ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n set: function set(target, prop, value) {\n var storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value;\n delete target._keys;\n return true;\n }\n });\n}\n\nfunction _attachContext(proxy, context, subProxy, descriptorDefaults) {\n var cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: function setContext(ctx) {\n return _attachContext(proxy, ctx, subProxy, descriptorDefaults);\n },\n override: function override(scope) {\n return _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults);\n }\n };\n return new Proxy(cache, {\n deleteProperty: function deleteProperty(target, prop) {\n delete target[prop];\n delete proxy[prop];\n return true;\n },\n get: function get(target, prop, receiver) {\n return _cached(target, prop, function () {\n return _resolveWithContext(target, prop, receiver);\n });\n },\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys ? Reflect.has(proxy, prop) ? {\n enumerable: true,\n configurable: true\n } : undefined : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n getPrototypeOf: function getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n has: function has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n ownKeys: function ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n set: function set(target, prop, value) {\n proxy[prop] = value;\n delete target[prop];\n return true;\n }\n });\n}\n\nfunction _descriptors(proxy) {\n var defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n scriptable: true,\n indexable: true\n };\n\n var _proxy$_scriptable = proxy._scriptable,\n _scriptable = _proxy$_scriptable === void 0 ? defaults.scriptable : _proxy$_scriptable,\n _proxy$_indexable = proxy._indexable,\n _indexable = _proxy$_indexable === void 0 ? defaults.indexable : _proxy$_indexable,\n _proxy$_allKeys = proxy._allKeys,\n _allKeys = _proxy$_allKeys === void 0 ? defaults.allKeys : _proxy$_allKeys;\n\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : function () {\n return _scriptable;\n },\n isIndexable: isFunction(_indexable) ? _indexable : function () {\n return _indexable;\n }\n };\n}\n\nvar readKey = function readKey(prefix, name) {\n return prefix ? prefix + _capitalize(name) : name;\n};\n\nvar needsSubResolver = function needsSubResolver(prop, value) {\n return isObject(value) && prop !== 'adapters' && (Object.getPrototypeOf(value) === null || value.constructor === Object);\n};\n\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop)) {\n return target[prop];\n }\n\n var value = resolve();\n target[prop] = value;\n return value;\n}\n\nfunction _resolveWithContext(target, prop, receiver) {\n var _proxy = target._proxy,\n _context = target._context,\n _subProxy = target._subProxy,\n descriptors = target._descriptors;\n var value = _proxy[prop];\n\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n\n if (needsSubResolver(prop, value)) {\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n\n return value;\n}\n\nfunction _resolveScriptable(prop, value, target, receiver) {\n var _proxy = target._proxy,\n _context = target._context,\n _subProxy = target._subProxy,\n _stack = target._stack;\n\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n\n _stack.add(prop);\n\n value = value(_context, _subProxy || receiver);\n\n _stack[\"delete\"](prop);\n\n if (needsSubResolver(prop, value)) {\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n\n return value;\n}\n\nfunction _resolveArray(prop, value, target, isIndexable) {\n var _proxy = target._proxy,\n _context = target._context,\n _subProxy = target._subProxy,\n descriptors = target._descriptors;\n\n if (defined(_context.index) && isIndexable(prop)) {\n value = value[_context.index % value.length];\n } else if (isObject(value[0])) {\n var arr = value;\n\n var scopes = _proxy._scopes.filter(function (s) {\n return s !== arr;\n });\n\n value = [];\n\n var _iterator5 = _createForOfIteratorHelper(arr),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var item = _step5.value;\n var resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n }\n\n return value;\n}\n\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\n\nvar getScope = function getScope(key, parent) {\n return key === true ? parent : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\n};\n\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n var _iterator6 = _createForOfIteratorHelper(parentScopes),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var parent = _step6.value;\n var scope = getScope(key, parent);\n\n if (scope) {\n set.add(scope);\n var fallback = resolveFallback(scope._fallback, key, value);\n\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 } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n\n return false;\n}\n\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n var rootScopes = resolver._rootScopes;\n var fallback = resolveFallback(resolver._fallback, prop, value);\n var allScopes = [].concat(_toConsumableArray(parentScopes), _toConsumableArray(rootScopes));\n var set = new Set();\n set.add(value);\n var key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n\n if (key === null) {\n return false;\n }\n\n if (defined(fallback) && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n\n if (key === null) {\n return false;\n }\n }\n\n return _createResolver(Array.from(set), [''], rootScopes, fallback, function () {\n return subGetTarget(resolver, prop, value);\n });\n}\n\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback, item);\n }\n\n return key;\n}\n\nfunction subGetTarget(resolver, prop, value) {\n var parent = resolver._getTarget();\n\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n\n var target = parent[prop];\n\n if (isArray(target) && isObject(value)) {\n return value;\n }\n\n return target;\n}\n\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n var value;\n\n var _iterator7 = _createForOfIteratorHelper(prefixes),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var prefix = _step7.value;\n value = _resolve(readKey(prefix, prop), scopes);\n\n if (defined(value)) {\n return needsSubResolver(prop, value) ? createSubResolver(scopes, proxy, prop, value) : value;\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n}\n\nfunction _resolve(key, scopes) {\n var _iterator8 = _createForOfIteratorHelper(scopes),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var scope = _step8.value;\n\n if (!scope) {\n continue;\n }\n\n var value = scope[key];\n\n if (defined(value)) {\n return value;\n }\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n}\n\nfunction getKeysFromAllScopes(target) {\n var keys = target._keys;\n\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n\n return keys;\n}\n\nfunction resolveKeysFromAllScopes(scopes) {\n var set = new Set();\n\n var _iterator9 = _createForOfIteratorHelper(scopes),\n _step9;\n\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var scope = _step9.value;\n\n var _iterator10 = _createForOfIteratorHelper(Object.keys(scope).filter(function (k) {\n return !k.startsWith('_');\n })),\n _step10;\n\n try {\n for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n var key = _step10.value;\n set.add(key);\n }\n } catch (err) {\n _iterator10.e(err);\n } finally {\n _iterator10.f();\n }\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n\n return Array.from(set);\n}\n\nfunction _parseObjectDataRadialScale(meta, data, start, count) {\n var iScale = meta.iScale;\n var _this$_parsing$key = this._parsing.key,\n key = _this$_parsing$key === void 0 ? 'r' : _this$_parsing$key;\n var parsed = new Array(count);\n var i, ilen, index, item;\n\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\n return parsed;\n}\n\nvar EPSILON = Number.EPSILON || 1e-14;\n\nvar getPoint = function getPoint(points, i) {\n return i < points.length && !points[i].skip && points[i];\n};\n\nvar getValueAxis = function getValueAxis(indexAxis) {\n return indexAxis === 'x' ? 'y' : 'x';\n};\n\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n var previous = firstPoint.skip ? middlePoint : firstPoint;\n var current = middlePoint;\n var next = afterPoint.skip ? middlePoint : afterPoint;\n var d01 = distanceBetweenPoints(current, previous);\n var d12 = distanceBetweenPoints(next, current);\n var s01 = d01 / (d01 + d12);\n var s12 = d12 / (d01 + d12);\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n var fa = t * s01;\n var 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}\n\nfunction monotoneAdjust(points, deltaK, mK) {\n var pointsLen = points.length;\n var alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n var pointAfter = getPoint(points, 0);\n\n for (var i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\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\n if (squaredMagnitude <= 9) {\n continue;\n }\n\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\n\nfunction monotoneCompute(points, mK) {\n var indexAxis = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'x';\n var valueAxis = getValueAxis(indexAxis);\n var pointsLen = points.length;\n var delta, pointBefore, pointCurrent;\n var pointAfter = getPoint(points, 0);\n\n for (var i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n\n if (!pointCurrent) {\n continue;\n }\n\n var iPixel = pointCurrent[indexAxis];\n var vPixel = pointCurrent[valueAxis];\n\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[\"cp1\".concat(indexAxis)] = iPixel - delta;\n pointCurrent[\"cp1\".concat(valueAxis)] = vPixel - delta * mK[i];\n }\n\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[\"cp2\".concat(indexAxis)] = iPixel + delta;\n pointCurrent[\"cp2\".concat(valueAxis)] = vPixel + delta * mK[i];\n }\n }\n}\n\nfunction splineCurveMonotone(points) {\n var indexAxis = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'x';\n var valueAxis = getValueAxis(indexAxis);\n var pointsLen = points.length;\n var deltaK = Array(pointsLen).fill(0);\n var mK = Array(pointsLen);\n var i, pointBefore, pointCurrent;\n var pointAfter = getPoint(points, 0);\n\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n\n if (!pointCurrent) {\n continue;\n }\n\n if (pointAfter) {\n var slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n\n mK[i] = !pointBefore ? deltaK[i] : !pointAfter ? deltaK[i - 1] : sign(deltaK[i - 1]) !== sign(deltaK[i]) ? 0 : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\n\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\n\nfunction capBezierPoints(points, area) {\n var i, ilen, point, inArea, inAreaPrev;\n\n var inAreaNext = _isPointInArea(points[0], area);\n\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\n if (!inArea) {\n continue;\n }\n\n point = points[i];\n\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\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}\n\nfunction _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n var i, ilen, point, controlPoints;\n\n if (options.spanGaps) {\n points = points.filter(function (pt) {\n return !pt.skip;\n });\n }\n\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n var prev = loop ? points[points.length - 1] : points[0];\n\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(prev, point, points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen], options.tension);\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\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\nfunction _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\nfunction _getParentNode(domNode) {\n var parent = domNode.parentNode;\n\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n\n return parent;\n}\n\nfunction parseMaxStyle(styleValue, node, parentProperty) {\n var valueInPixels;\n\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n\n if (styleValue.indexOf('%') !== -1) {\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n\n return valueInPixels;\n}\n\nvar getComputedStyle = function getComputedStyle(element) {\n return window.getComputedStyle(element, null);\n};\n\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\n\nvar positions = ['top', 'right', 'bottom', 'left'];\n\nfunction getPositionedStyle(styles, style, suffix) {\n var result = {};\n suffix = suffix ? '-' + suffix : '';\n\n for (var i = 0; i < 4; i++) {\n var pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\n\nvar useOffsetPos = function useOffsetPos(x, y, target) {\n return (x > 0 || y > 0) && (!target || !target.shadowRoot);\n};\n\nfunction getCanvasPosition(e, canvas) {\n var touches = e.touches;\n var source = touches && touches.length ? touches[0] : e;\n var offsetX = source.offsetX,\n offsetY = source.offsetY;\n var box = false;\n var x, y;\n\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n var rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n\n return {\n x: x,\n y: y,\n box: box\n };\n}\n\nfunction getRelativePosition(evt, chart) {\n if ('native' in evt) {\n return evt;\n }\n\n var canvas = chart.canvas,\n currentDevicePixelRatio = chart.currentDevicePixelRatio;\n var style = getComputedStyle(canvas);\n var borderBox = style.boxSizing === 'border-box';\n var paddings = getPositionedStyle(style, 'padding');\n var borders = getPositionedStyle(style, 'border', 'width');\n\n var _getCanvasPosition = getCanvasPosition(evt, canvas),\n x = _getCanvasPosition.x,\n y = _getCanvasPosition.y,\n box = _getCanvasPosition.box;\n\n var xOffset = paddings.left + (box && borders.left);\n var yOffset = paddings.top + (box && borders.top);\n var width = chart.width,\n height = chart.height;\n\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\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}\n\nfunction getContainerSize(canvas, width, height) {\n var maxWidth, maxHeight;\n\n if (width === undefined || height === undefined) {\n var container = _getParentNode(canvas);\n\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n var rect = container.getBoundingClientRect();\n var containerStyle = getComputedStyle(container);\n var containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n var 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\n return {\n width: width,\n height: height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\n\nvar round1 = function round1(v) {\n return Math.round(v * 10) / 10;\n};\n\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n var style = getComputedStyle(canvas);\n var margins = getPositionedStyle(style, 'margin');\n var maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n var maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n var containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n var width = containerSize.width,\n height = containerSize.height;\n\n if (style.boxSizing === 'content-box') {\n var borders = getPositionedStyle(style, 'border', 'width');\n var paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\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\n if (width && !height) {\n height = round1(width / 2);\n }\n\n return {\n width: width,\n height: height\n };\n}\n\nfunction retinaScale(chart, forceRatio, forceStyle) {\n var pixelRatio = forceRatio || 1;\n var deviceHeight = Math.floor(chart.height * pixelRatio);\n var deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = deviceHeight / pixelRatio;\n chart.width = deviceWidth / pixelRatio;\n var canvas = chart.canvas;\n\n if (canvas.style && (forceStyle || !canvas.style.height && !canvas.style.width)) {\n canvas.style.height = \"\".concat(chart.height, \"px\");\n canvas.style.width = \"\".concat(chart.width, \"px\");\n }\n\n if (chart.currentDevicePixelRatio !== pixelRatio || canvas.height !== deviceHeight || 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\n return false;\n}\n\nvar supportsEventListenerOptions = function () {\n var passiveSupported = false;\n\n try {\n var options = {\n get passive() {\n passiveSupported = true;\n return false;\n }\n\n };\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {}\n\n return passiveSupported;\n}();\n\nfunction readUsedSize(element, property) {\n var value = getStyle(element, property);\n var 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}\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 : mode === 'after' ? t < 1 ? p1.y : p2.y : t > 0 ? p2.y : p1.y\n };\n}\n\nfunction _bezierInterpolation(p1, p2, t, mode) {\n var cp1 = {\n x: p1.cp2x,\n y: p1.cp2y\n };\n var cp2 = {\n x: p2.cp1x,\n y: p2.cp1y\n };\n\n var a = _pointInLine(p1, cp1, t);\n\n var b = _pointInLine(cp1, cp2, t);\n\n var c = _pointInLine(cp2, p2, t);\n\n var d = _pointInLine(a, b, t);\n\n var e = _pointInLine(b, c, t);\n\n return _pointInLine(d, e, t);\n}\n\nvar intlCache = new Map();\n\nfunction getNumberFormat(locale, options) {\n options = options || {};\n var cacheKey = locale + JSON.stringify(options);\n var formatter = intlCache.get(cacheKey);\n\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n\n return formatter;\n}\n\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nvar getRightToLeftAdapter = function getRightToLeftAdapter(rectX, width) {\n return {\n x: function x(_x) {\n return rectX + rectX + width - _x;\n },\n setWidth: function setWidth(w) {\n width = w;\n },\n textAlign: function textAlign(align) {\n if (align === 'center') {\n return align;\n }\n\n return align === 'right' ? 'left' : 'right';\n },\n xPlus: function xPlus(x, value) {\n return x - value;\n },\n leftForLtr: function leftForLtr(x, itemWidth) {\n return x - itemWidth;\n }\n };\n};\n\nvar getLeftToRightAdapter = function getLeftToRightAdapter() {\n return {\n x: function x(_x2) {\n return _x2;\n },\n setWidth: function setWidth(w) {},\n textAlign: function textAlign(align) {\n return align;\n },\n xPlus: function xPlus(x, value) {\n return x + value;\n },\n leftForLtr: function leftForLtr(x, _itemWidth) {\n return x;\n }\n };\n};\n\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\n\nfunction overrideTextDirection(ctx, direction) {\n var style, original;\n\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [style.getPropertyValue('direction'), style.getPropertyPriority('direction')];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\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\n return {\n between: _isBetween,\n compare: function compare(a, b) {\n return a - b;\n },\n normalize: function normalize(x) {\n return x;\n }\n };\n}\n\nfunction normalizeSegment(_ref) {\n var start = _ref.start,\n end = _ref.end,\n count = _ref.count,\n loop = _ref.loop,\n style = _ref.style;\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style: style\n };\n}\n\nfunction getSegment(segment, points, bounds) {\n var property = bounds.property,\n startBound = bounds.start,\n endBound = bounds.end;\n\n var _propertyFn = propertyFn(property),\n between = _propertyFn.between,\n normalize = _propertyFn.normalize;\n\n var count = points.length;\n var start = segment.start,\n end = segment.end,\n loop = segment.loop;\n var i, ilen;\n\n if (loop) {\n start += count;\n end += count;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n\n start--;\n end--;\n }\n\n start %= count;\n end %= count;\n }\n\n if (end < start) {\n end += count;\n }\n\n return {\n start: start,\n end: end,\n loop: loop,\n style: segment.style\n };\n}\n\nfunction _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n\n var property = bounds.property,\n startBound = bounds.start,\n endBound = bounds.end;\n var count = points.length;\n\n var _propertyFn2 = propertyFn(property),\n compare = _propertyFn2.compare,\n between = _propertyFn2.between,\n normalize = _propertyFn2.normalize;\n\n var _getSegment = getSegment(segment, points, bounds),\n start = _getSegment.start,\n end = _getSegment.end,\n loop = _getSegment.loop,\n style = _getSegment.style;\n\n var result = [];\n var inside = false;\n var subStart = null;\n var value, point, prevValue;\n\n var startIsBefore = function startIsBefore() {\n return between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n };\n\n var endIsBefore = function endIsBefore() {\n return compare(endBound, value) === 0 || between(endBound, prevValue, value);\n };\n\n var shouldStart = function shouldStart() {\n return inside || startIsBefore();\n };\n\n var shouldStop = function shouldStop() {\n return !inside || endIsBefore();\n };\n\n for (var i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n\n if (point.skip) {\n continue;\n }\n\n value = normalize(point[property]);\n\n if (value === prevValue) {\n continue;\n }\n\n inside = between(value, startBound, endBound);\n\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({\n start: subStart,\n end: i,\n loop: loop,\n count: count,\n style: style\n }));\n subStart = null;\n }\n\n prev = i;\n prevValue = value;\n }\n\n if (subStart !== null) {\n result.push(normalizeSegment({\n start: subStart,\n end: end,\n loop: loop,\n count: count,\n style: style\n }));\n }\n\n return result;\n}\n\nfunction _boundSegments(line, bounds) {\n var result = [];\n var segments = line.segments;\n\n for (var i = 0; i < segments.length; i++) {\n var sub = _boundSegment(segments[i], line.points, bounds);\n\n if (sub.length) {\n result.push.apply(result, _toConsumableArray(sub));\n }\n }\n\n return result;\n}\n\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n var start = 0;\n var end = count - 1;\n\n if (loop && !spanGaps) {\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n\n while (start < count && points[start].skip) {\n start++;\n }\n\n start %= count;\n\n if (loop) {\n end += start;\n }\n\n while (end > start && points[end % count].skip) {\n end--;\n }\n\n end %= count;\n return {\n start: start,\n end: end\n };\n}\n\nfunction solidSegments(points, start, max, loop) {\n var count = points.length;\n var result = [];\n var last = start;\n var prev = points[start];\n var end;\n\n for (end = start + 1; end <= max; ++end) {\n var cur = points[end % count];\n\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({\n start: start % count,\n end: (end - 1) % count,\n loop: loop\n });\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n\n if (prev.skip) {\n start = end;\n }\n }\n\n prev = cur;\n }\n\n if (last !== null) {\n result.push({\n start: start % count,\n end: last % count,\n loop: loop\n });\n }\n\n return result;\n}\n\nfunction _computeSegments(line, segmentOptions) {\n var points = line.points;\n var spanGaps = line.options.spanGaps;\n var count = points.length;\n\n if (!count) {\n return [];\n }\n\n var loop = !!line._loop;\n\n var _findStartAndEnd = findStartAndEnd(points, count, loop, spanGaps),\n start = _findStartAndEnd.start,\n end = _findStartAndEnd.end;\n\n if (spanGaps === true) {\n return splitByStyles(line, [{\n start: start,\n end: end,\n loop: loop\n }], points, segmentOptions);\n }\n\n var max = end < start ? end + count : end;\n var completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\n\nfunction splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\n\nfunction doSplitByStyles(line, segments, points, segmentOptions) {\n var chartContext = line._chart.getContext();\n\n var baseStyle = readStyle(line.options);\n var datasetIndex = line._datasetIndex,\n spanGaps = line.options.spanGaps;\n var count = points.length;\n var result = [];\n var prevStyle = baseStyle;\n var start = segments[0].start;\n var i = start;\n\n function addStyle(s, e, l, st) {\n var dir = spanGaps ? -1 : 1;\n\n if (s === e) {\n return;\n }\n\n s += count;\n\n while (points[s % count].skip) {\n s -= dir;\n }\n\n while (points[e % count].skip) {\n e += dir;\n }\n\n if (s % count !== e % count) {\n result.push({\n start: s % count,\n end: e % count,\n loop: l,\n style: st\n });\n prevStyle = st;\n start = e % count;\n }\n }\n\n var _iterator11 = _createForOfIteratorHelper(segments),\n _step11;\n\n try {\n for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n var segment = _step11.value;\n start = spanGaps ? start : segment.start;\n var prev = points[start % count];\n var style = void 0;\n\n for (i = start + 1; i <= segment.end; i++) {\n var 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: datasetIndex\n })));\n\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n\n prev = pt;\n prevStyle = style;\n }\n\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n } catch (err) {\n _iterator11.e(err);\n } finally {\n _iterator11.f();\n }\n\n return result;\n}\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}\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 };","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\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 */\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\nvar Animator = /*#__PURE__*/function () {\n function Animator() {\n _classCallCheck(this, Animator);\n\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n\n _createClass(Animator, [{\n key: \"_notify\",\n value: function _notify(chart, anims, date, type) {\n var callbacks = anims.listeners[type];\n var numSteps = anims.duration;\n callbacks.forEach(function (fn) {\n return fn({\n chart: chart,\n initial: anims.initial,\n numSteps: numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n });\n });\n }\n }, {\n key: \"_refresh\",\n value: function _refresh() {\n var _this = this;\n\n if (this._request) {\n return;\n }\n\n this._running = true;\n this._request = requestAnimFrame.call(window, function () {\n _this._update();\n\n _this._request = null;\n\n if (_this._running) {\n _this._refresh();\n }\n });\n }\n }, {\n key: \"_update\",\n value: function _update() {\n var _this2 = this;\n\n var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Date.now();\n var remaining = 0;\n\n this._charts.forEach(function (anims, chart) {\n if (!anims.running || !anims.items.length) {\n return;\n }\n\n var items = anims.items;\n var i = items.length - 1;\n var draw = false;\n var item;\n\n for (; i >= 0; --i) {\n item = items[i];\n\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n\n if (draw) {\n chart.draw();\n\n _this2._notify(chart, anims, date, 'progress');\n }\n\n if (!items.length) {\n anims.running = false;\n\n _this2._notify(chart, anims, date, 'complete');\n\n anims.initial = false;\n }\n\n remaining += items.length;\n });\n\n this._lastDate = date;\n\n if (remaining === 0) {\n this._running = false;\n }\n }\n }, {\n key: \"_getAnims\",\n value: function _getAnims(chart) {\n var charts = this._charts;\n var anims = charts.get(chart);\n\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\n return anims;\n }\n }, {\n key: \"listen\",\n value: function listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n }, {\n key: \"add\",\n value: function add(chart, items) {\n var _this$_getAnims$items;\n\n if (!items || !items.length) {\n return;\n }\n\n (_this$_getAnims$items = this._getAnims(chart).items).push.apply(_this$_getAnims$items, _toConsumableArray(items));\n }\n }, {\n key: \"has\",\n value: function has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n }, {\n key: \"start\",\n value: function start(chart) {\n var anims = this._charts.get(chart);\n\n if (!anims) {\n return;\n }\n\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce(function (acc, cur) {\n return Math.max(acc, cur._duration);\n }, 0);\n\n this._refresh();\n }\n }, {\n key: \"running\",\n value: function running(chart) {\n if (!this._running) {\n return false;\n }\n\n var anims = this._charts.get(chart);\n\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n\n return true;\n }\n }, {\n key: \"stop\",\n value: function stop(chart) {\n var anims = this._charts.get(chart);\n\n if (!anims || !anims.items.length) {\n return;\n }\n\n var items = anims.items;\n var i = items.length - 1;\n\n for (; i >= 0; --i) {\n items[i].cancel();\n }\n\n anims.items = [];\n\n this._notify(chart, anims, Date.now(), 'complete');\n }\n }, {\n key: \"remove\",\n value: function remove(chart) {\n return this._charts[\"delete\"](chart);\n }\n }]);\n\n return Animator;\n}();\n\nvar animator = new Animator();\nvar transparent = 'transparent';\nvar interpolators = {\n \"boolean\": function boolean(from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color: function color(from, to, factor) {\n var c0 = _color(from || transparent);\n\n var c1 = c0.valid && _color(to || transparent);\n\n return c1 && c1.valid ? c1.mix(c0, factor).hexString() : to;\n },\n number: function number(from, to, factor) {\n return from + (to - from) * factor;\n }\n};\n\nvar Animation = /*#__PURE__*/function () {\n function Animation(cfg, target, prop, to) {\n _classCallCheck(this, Animation);\n\n var currentValue = target[prop];\n to = resolve([cfg.to, to, currentValue, cfg.from]);\n var 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\n _createClass(Animation, [{\n key: \"active\",\n value: function active() {\n return this._active;\n }\n }, {\n key: \"update\",\n value: function update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n\n var currentValue = this._target[this._prop];\n var elapsed = date - this._start;\n var 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 }, {\n key: \"cancel\",\n value: function cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n\n this._notify(false);\n }\n }\n }, {\n key: \"tick\",\n value: function tick(date) {\n var elapsed = date - this._start;\n var duration = this._duration;\n var prop = this._prop;\n var from = this._from;\n var loop = this._loop;\n var to = this._to;\n var factor;\n this._active = from !== to && (loop || elapsed < duration);\n\n if (!this._active) {\n this._target[prop] = to;\n\n this._notify(true);\n\n return;\n }\n\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\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 }, {\n key: \"wait\",\n value: function wait() {\n var promises = this._promises || (this._promises = []);\n return new Promise(function (res, rej) {\n promises.push({\n res: res,\n rej: rej\n });\n });\n }\n }, {\n key: \"_notify\",\n value: function _notify(resolved) {\n var method = resolved ? 'res' : 'rej';\n var promises = this._promises || [];\n\n for (var i = 0; i < promises.length; i++) {\n promises[i][method]();\n }\n }\n }]);\n\n return Animation;\n}();\n\nvar numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nvar 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});\nvar animationOptions = Object.keys(defaults.animation);\ndefaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: function _scriptable(name) {\n return name !== 'onProgress' && name !== 'onComplete' && name !== 'fn';\n }\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: function fn(v) {\n return v | 0;\n }\n }\n }\n }\n});\n\nvar Animations = /*#__PURE__*/function () {\n function Animations(chart, config) {\n _classCallCheck(this, Animations);\n\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n\n _createClass(Animations, [{\n key: \"configure\",\n value: function configure(config) {\n if (!isObject(config)) {\n return;\n }\n\n var animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach(function (key) {\n var cfg = config[key];\n\n if (!isObject(cfg)) {\n return;\n }\n\n var resolved = {};\n\n var _iterator = _createForOfIteratorHelper(animationOptions),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var option = _step.value;\n resolved[option] = cfg[option];\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n (isArray(cfg.properties) && cfg.properties || [key]).forEach(function (prop) {\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n }, {\n key: \"_animateOptions\",\n value: function _animateOptions(target, values) {\n var newOptions = values.options;\n var options = resolveTargetOptions(target, newOptions);\n\n if (!options) {\n return [];\n }\n\n var animations = this._createAnimations(options, newOptions);\n\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(function () {\n target.options = newOptions;\n }, function () {});\n }\n\n return animations;\n }\n }, {\n key: \"_createAnimations\",\n value: function _createAnimations(target, values) {\n var animatedProps = this._properties;\n var animations = [];\n var running = target.$animations || (target.$animations = {});\n var props = Object.keys(values);\n var date = Date.now();\n var i;\n\n for (i = props.length - 1; i >= 0; --i) {\n var prop = props[i];\n\n if (prop.charAt(0) === '$') {\n continue;\n }\n\n if (prop === 'options') {\n animations.push.apply(animations, _toConsumableArray(this._animateOptions(target, values)));\n continue;\n }\n\n var value = values[prop];\n var animation = running[prop];\n var cfg = animatedProps.get(prop);\n\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n\n return animations;\n }\n }, {\n key: \"update\",\n value: function update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n\n var animations = this._createAnimations(target, values);\n\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n }]);\n\n return Animations;\n}();\n\nfunction awaitAll(animations, properties) {\n var running = [];\n var keys = Object.keys(properties);\n\n for (var i = 0; i < keys.length; i++) {\n var anim = animations[keys[i]];\n\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n\n return Promise.all(running);\n}\n\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n\n var options = target.options;\n\n if (!options) {\n target.options = newOptions;\n return;\n }\n\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {\n $shared: false,\n $animations: {}\n });\n }\n\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n var opts = scale && scale.options || {};\n var reverse = opts.reverse;\n var min = opts.min === undefined ? allowedOverflow : 0;\n var max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\n\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n\n var x = scaleClip(xScale, allowedOverflow);\n var y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\n\nfunction toClip(value) {\n var t, r, b, l;\n\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\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\n\nfunction getSortedDatasetIndices(chart, filterVisible) {\n var keys = [];\n\n var metasets = chart._getSortedDatasetMetas(filterVisible);\n\n var i, ilen;\n\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n keys.push(metasets[i].index);\n }\n\n return keys;\n}\n\nfunction _applyStack(stack, value, dsIndex) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keys = stack.keys;\n var singleMode = options.mode === 'single';\n var i, ilen, datasetIndex, otherValue;\n\n if (value === null) {\n return;\n }\n\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n datasetIndex = +keys[i];\n\n if (datasetIndex === dsIndex) {\n if (options.all) {\n continue;\n }\n\n break;\n }\n\n otherValue = stack.values[datasetIndex];\n\n if (isNumberFinite(otherValue) && (singleMode || value === 0 || sign(value) === sign(otherValue))) {\n value += otherValue;\n }\n }\n\n return value;\n}\n\nfunction convertObjectDataToArray(data) {\n var keys = Object.keys(data);\n var adata = new Array(keys.length);\n var i, ilen, key;\n\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\n return adata;\n}\n\nfunction isStacked(scale, meta) {\n var stacked = scale && scale.options.stacked;\n return stacked || stacked === undefined && meta.stack !== undefined;\n}\n\nfunction getStackKey(indexScale, valueScale, meta) {\n return \"\".concat(indexScale.id, \".\").concat(valueScale.id, \".\").concat(meta.stack || meta.type);\n}\n\nfunction getUserBounds(scale) {\n var _scale$getUserBounds = scale.getUserBounds(),\n min = _scale$getUserBounds.min,\n max = _scale$getUserBounds.max,\n minDefined = _scale$getUserBounds.minDefined,\n maxDefined = _scale$getUserBounds.maxDefined;\n\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\n\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n var subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\n\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n var _iterator2 = _createForOfIteratorHelper(vScale.getMatchingVisibleMetas(type).reverse()),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var meta = _step2.value;\n var value = stack[meta.index];\n\n if (positive && value > 0 || !positive && value < 0) {\n return meta.index;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return null;\n}\n\nfunction updateStacks(controller, parsed) {\n var chart = controller.chart,\n meta = controller._cachedMeta;\n var stacks = chart._stacks || (chart._stacks = {});\n var iScale = meta.iScale,\n vScale = meta.vScale,\n datasetIndex = meta.index;\n var iAxis = iScale.axis;\n var vAxis = vScale.axis;\n var key = getStackKey(iScale, vScale, meta);\n var ilen = parsed.length;\n var stack;\n\n for (var i = 0; i < ilen; ++i) {\n var item = parsed[i];\n var _index = item[iAxis],\n value = item[vAxis];\n var 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}\n\nfunction getFirstScaleId(chart, axis) {\n var scales = chart.scales;\n return Object.keys(scales).filter(function (key) {\n return scales[key].axis === axis;\n }).shift();\n}\n\nfunction createDatasetContext(parent, index) {\n return createContext(parent, {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index: 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: element,\n index: index,\n mode: 'default',\n type: 'data'\n });\n}\n\nfunction clearStacks(meta, items) {\n var datasetIndex = meta.controller.index;\n var axis = meta.vScale && meta.vScale.axis;\n\n if (!axis) {\n return;\n }\n\n items = items || meta._parsed;\n\n var _iterator3 = _createForOfIteratorHelper(items),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var parsed = _step3.value;\n var stacks = parsed._stacks;\n\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n\n delete stacks[axis][datasetIndex];\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n}\n\nvar isDirectUpdateMode = function isDirectUpdateMode(mode) {\n return mode === 'reset' || mode === 'none';\n};\n\nvar cloneIfNotShared = function cloneIfNotShared(cached, shared) {\n return shared ? cached : Object.assign({}, cached);\n};\n\nvar createStack = function createStack(canStack, meta, chart) {\n return canStack && !meta.hidden && meta._stacked && {\n keys: getSortedDatasetIndices(chart, true),\n values: null\n };\n};\n\nvar DatasetController = /*#__PURE__*/function () {\n function DatasetController(chart, datasetIndex) {\n _classCallCheck(this, DatasetController);\n\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\n _createClass(DatasetController, [{\n key: \"initialize\",\n value: function initialize() {\n var meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n }\n }, {\n key: \"updateIndex\",\n value: function updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n\n this.index = datasetIndex;\n }\n }, {\n key: \"linkScales\",\n value: function linkScales() {\n var chart = this.chart;\n var meta = this._cachedMeta;\n var dataset = this.getDataset();\n\n var chooseId = function chooseId(axis, x, y, r) {\n return axis === 'x' ? x : axis === 'r' ? r : y;\n };\n\n var xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n var yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n var rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n var indexAxis = meta.indexAxis;\n var iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n var 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 }, {\n key: \"getDataset\",\n value: function getDataset() {\n return this.chart.data.datasets[this.index];\n }\n }, {\n key: \"getMeta\",\n value: function getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n }, {\n key: \"getScaleForId\",\n value: function getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n }, {\n key: \"_getOtherScale\",\n value: function _getOtherScale(scale) {\n var meta = this._cachedMeta;\n return scale === meta.iScale ? meta.vScale : meta.iScale;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this._update('reset');\n }\n }, {\n key: \"_destroy\",\n value: function _destroy() {\n var meta = this._cachedMeta;\n\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n }, {\n key: \"_dataCheck\",\n value: function _dataCheck() {\n var dataset = this.getDataset();\n var data = dataset.data || (dataset.data = []);\n var _data = this._data;\n\n if (isObject(data)) {\n this._data = convertObjectDataToArray(data);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, this);\n var meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n\n this._syncList = [];\n this._data = data;\n }\n }\n }, {\n key: \"addElements\",\n value: function addElements() {\n var meta = this._cachedMeta;\n\n this._dataCheck();\n\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n }, {\n key: \"buildOrUpdateElements\",\n value: function buildOrUpdateElements(resetNewElements) {\n var meta = this._cachedMeta;\n var dataset = this.getDataset();\n var stackChanged = false;\n\n this._dataCheck();\n\n var oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n\n this._resyncElements(resetNewElements);\n\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n }\n }\n }, {\n key: \"configure\",\n value: function configure() {\n var config = this.chart.config;\n var scopeKeys = config.datasetScopeKeys(this._type);\n var 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 }, {\n key: \"parse\",\n value: function parse(start, count) {\n var meta = this._cachedMeta,\n data = this._data;\n var iScale = meta.iScale,\n _stacked = meta._stacked;\n var iAxis = iScale.axis;\n var sorted = start === 0 && count === data.length ? true : meta._sorted;\n var prev = start > 0 && meta._parsed[start - 1];\n var i, cur, parsed;\n\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\n var isNotInOrderComparedToPrev = function isNotInOrderComparedToPrev() {\n return cur[iAxis] === null || prev && cur[iAxis] < prev[iAxis];\n };\n\n for (i = 0; i < count; ++i) {\n meta._parsed[i + start] = cur = parsed[i];\n\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n\n prev = cur;\n }\n }\n\n meta._sorted = sorted;\n }\n\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n }, {\n key: \"parsePrimitiveData\",\n value: function parsePrimitiveData(meta, data, start, count) {\n var iScale = meta.iScale,\n vScale = meta.vScale;\n var iAxis = iScale.axis;\n var vAxis = vScale.axis;\n var labels = iScale.getLabels();\n var singleScale = iScale === vScale;\n var parsed = new Array(count);\n var i, ilen, index;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n var _parsed$i;\n\n index = i + start;\n parsed[i] = (_parsed$i = {}, _defineProperty(_parsed$i, iAxis, singleScale || iScale.parse(labels[index], index)), _defineProperty(_parsed$i, vAxis, vScale.parse(data[index], index)), _parsed$i);\n }\n\n return parsed;\n }\n }, {\n key: \"parseArrayData\",\n value: function parseArrayData(meta, data, start, count) {\n var xScale = meta.xScale,\n yScale = meta.yScale;\n var parsed = new Array(count);\n var i, ilen, index, item;\n\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\n return parsed;\n }\n }, {\n key: \"parseObjectData\",\n value: function parseObjectData(meta, data, start, count) {\n var xScale = meta.xScale,\n yScale = meta.yScale;\n var _this$_parsing = this._parsing,\n _this$_parsing$xAxisK = _this$_parsing.xAxisKey,\n xAxisKey = _this$_parsing$xAxisK === void 0 ? 'x' : _this$_parsing$xAxisK,\n _this$_parsing$yAxisK = _this$_parsing.yAxisKey,\n yAxisKey = _this$_parsing$yAxisK === void 0 ? 'y' : _this$_parsing$yAxisK;\n var parsed = new Array(count);\n var i, ilen, index, item;\n\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\n return parsed;\n }\n }, {\n key: \"getParsed\",\n value: function getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n }, {\n key: \"getDataElement\",\n value: function getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n }, {\n key: \"applyStack\",\n value: function applyStack(scale, parsed, mode) {\n var chart = this.chart;\n var meta = this._cachedMeta;\n var value = parsed[scale.axis];\n var stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]\n };\n return _applyStack(stack, value, meta.index, {\n mode: mode\n });\n }\n }, {\n key: \"updateRangeFromParsed\",\n value: function updateRangeFromParsed(range, scale, parsed, stack) {\n var parsedValue = parsed[scale.axis];\n var value = parsedValue === null ? NaN : parsedValue;\n var values = stack && parsed._stacks[scale.axis];\n\n if (stack && values) {\n stack.values = values;\n value = _applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n }, {\n key: \"getMinMax\",\n value: function getMinMax(scale, canStack) {\n var meta = this._cachedMeta;\n var _parsed = meta._parsed;\n var sorted = meta._sorted && scale === meta.iScale;\n var ilen = _parsed.length;\n\n var otherScale = this._getOtherScale(scale);\n\n var stack = createStack(canStack, meta, this.chart);\n var range = {\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY\n };\n\n var _getUserBounds = getUserBounds(otherScale),\n otherMin = _getUserBounds.min,\n otherMax = _getUserBounds.max;\n\n var i, parsed;\n\n function _skip() {\n parsed = _parsed[i];\n var otherValue = parsed[otherScale.axis];\n return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n\n for (i = 0; i < ilen; ++i) {\n if (_skip()) {\n continue;\n }\n\n this.updateRangeFromParsed(range, scale, parsed, stack);\n\n if (sorted) {\n break;\n }\n }\n\n if (sorted) {\n for (i = ilen - 1; i >= 0; --i) {\n if (_skip()) {\n continue;\n }\n\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n\n return range;\n }\n }, {\n key: \"getAllParsedValues\",\n value: function getAllParsedValues(scale) {\n var parsed = this._cachedMeta._parsed;\n var values = [];\n var i, ilen, value;\n\n for (i = 0, ilen = parsed.length; i < ilen; ++i) {\n value = parsed[i][scale.axis];\n\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n\n return values;\n }\n }, {\n key: \"getMaxOverflow\",\n value: function getMaxOverflow() {\n return false;\n }\n }, {\n key: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var meta = this._cachedMeta;\n var iScale = meta.iScale;\n var vScale = meta.vScale;\n var 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 }, {\n key: \"_update\",\n value: function _update(mode) {\n var 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 }, {\n key: \"update\",\n value: function update(mode) {}\n }, {\n key: \"draw\",\n value: function draw() {\n var ctx = this._ctx;\n var chart = this.chart;\n var meta = this._cachedMeta;\n var elements = meta.data || [];\n var area = chart.chartArea;\n var active = [];\n var start = this._drawStart || 0;\n var count = this._drawCount || elements.length - start;\n var drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n var i;\n\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n\n for (i = start; i < start + count; ++i) {\n var element = elements[i];\n\n if (element.hidden) {\n continue;\n }\n\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n\n for (i = 0; i < active.length; ++i) {\n active[i].draw(ctx, area);\n }\n }\n }, {\n key: \"getStyle\",\n value: function getStyle(index, active) {\n var mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset ? this.resolveDatasetElementOptions(mode) : this.resolveDataElementOptions(index || 0, mode);\n }\n }, {\n key: \"getContext\",\n value: function getContext(index, active, mode) {\n var dataset = this.getDataset();\n var context;\n\n if (index >= 0 && index < this._cachedMeta.data.length) {\n var element = this._cachedMeta.data[index];\n context = element.$context || (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 || (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n }, {\n key: \"resolveDatasetElementOptions\",\n value: function resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n }, {\n key: \"resolveDataElementOptions\",\n value: function resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n }, {\n key: \"_resolveElementOptions\",\n value: function _resolveElementOptions(elementType) {\n var _this3 = this;\n\n var mode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n var index = arguments.length > 2 ? arguments[2] : undefined;\n var active = mode === 'active';\n var cache = this._cachedDataOpts;\n var cacheKey = elementType + '-' + mode;\n var cached = cache[cacheKey];\n var sharing = this.enableOptionSharing && defined(index);\n\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n\n var config = this.chart.config;\n var scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n var prefixes = active ? [\"\".concat(elementType, \"Hover\"), 'hover', elementType, ''] : [elementType, ''];\n var scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n var names = Object.keys(defaults.elements[elementType]);\n\n var context = function context() {\n return _this3.getContext(index, active);\n };\n\n var values = config.resolveNamedOptions(scopes, names, context, prefixes);\n\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n\n return values;\n }\n }, {\n key: \"_resolveAnimations\",\n value: function _resolveAnimations(index, transition, active) {\n var chart = this.chart;\n var cache = this._cachedDataOpts;\n var cacheKey = \"animation-\".concat(transition);\n var cached = cache[cacheKey];\n\n if (cached) {\n return cached;\n }\n\n var options;\n\n if (chart.options.animation !== false) {\n var config = this.chart.config;\n var scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n var scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n\n var animations = new Animations(chart, options && options.animations);\n\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n\n return animations;\n }\n }, {\n key: \"getSharedOptions\",\n value: function getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n }, {\n key: \"includeOptions\",\n value: function includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n }, {\n key: \"_getSharedOptions\",\n value: function _getSharedOptions(start, mode) {\n var firstOpts = this.resolveDataElementOptions(start, mode);\n var previouslySharedOptions = this._sharedOptions;\n var sharedOptions = this.getSharedOptions(firstOpts);\n var includeOptions = this.includeOptions(mode, sharedOptions) || sharedOptions !== previouslySharedOptions;\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n return {\n sharedOptions: sharedOptions,\n includeOptions: includeOptions\n };\n }\n }, {\n key: \"updateElement\",\n value: function 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 }, {\n key: \"updateSharedOptions\",\n value: function updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n }, {\n key: \"_setStyle\",\n value: function _setStyle(element, index, mode, active) {\n element.active = active;\n var options = this.getStyle(index, active);\n\n this._resolveAnimations(index, mode, active).update(element, {\n options: !active && this.getSharedOptions(options) || options\n });\n }\n }, {\n key: \"removeHoverStyle\",\n value: function removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n }, {\n key: \"setHoverStyle\",\n value: function setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n }, {\n key: \"_removeDatasetHoverStyle\",\n value: function _removeDatasetHoverStyle() {\n var element = this._cachedMeta.dataset;\n\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n }, {\n key: \"_setDatasetHoverStyle\",\n value: function _setDatasetHoverStyle() {\n var element = this._cachedMeta.dataset;\n\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n }, {\n key: \"_resyncElements\",\n value: function _resyncElements(resetNewElements) {\n var data = this._data;\n var elements = this._cachedMeta.data;\n\n var _iterator4 = _createForOfIteratorHelper(this._syncList),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var _ref3 = _step4.value;\n\n var _ref2 = _slicedToArray(_ref3, 3);\n\n var method = _ref2[0];\n var arg1 = _ref2[1];\n var arg2 = _ref2[2];\n this[method](arg1, arg2);\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n this._syncList = [];\n var numMeta = elements.length;\n var numData = data.length;\n var count = Math.min(numData, numMeta);\n\n if (count) {\n this.parse(0, count);\n }\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 }, {\n key: \"_insertElements\",\n value: function _insertElements(start, count) {\n var resetNewElements = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var meta = this._cachedMeta;\n var data = meta.data;\n var end = start + count;\n var i;\n\n var move = function move(arr) {\n arr.length += count;\n\n for (i = arr.length - 1; i >= end; i--) {\n arr[i] = arr[i - count];\n }\n };\n\n move(data);\n\n for (i = start; i < end; ++i) {\n data[i] = new this.dataElementType();\n }\n\n if (this._parsing) {\n move(meta._parsed);\n }\n\n this.parse(start, count);\n\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(element, start, count, mode) {}\n }, {\n key: \"_removeElements\",\n value: function _removeElements(start, count) {\n var meta = this._cachedMeta;\n\n if (this._parsing) {\n var removed = meta._parsed.splice(start, count);\n\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n\n meta.data.splice(start, count);\n }\n }, {\n key: \"_sync\",\n value: function _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n var _args2 = _slicedToArray(args, 3),\n method = _args2[0],\n arg1 = _args2[1],\n arg2 = _args2[2];\n\n this[method](arg1, arg2);\n }\n\n this.chart._dataChanges.push([this.index].concat(_toConsumableArray(args)));\n }\n }, {\n key: \"_onDataPush\",\n value: function _onDataPush() {\n var count = arguments.length;\n\n this._sync(['_insertElements', this.getDataset().data.length - count, count]);\n }\n }, {\n key: \"_onDataPop\",\n value: function _onDataPop() {\n this._sync(['_removeElements', this._cachedMeta.data.length - 1, 1]);\n }\n }, {\n key: \"_onDataShift\",\n value: function _onDataShift() {\n this._sync(['_removeElements', 0, 1]);\n }\n }, {\n key: \"_onDataSplice\",\n value: function _onDataSplice(start, count) {\n if (count) {\n this._sync(['_removeElements', start, count]);\n }\n\n var newCount = arguments.length - 2;\n\n if (newCount) {\n this._sync(['_insertElements', start, newCount]);\n }\n }\n }, {\n key: \"_onDataUnshift\",\n value: function _onDataUnshift() {\n this._sync(['_insertElements', 0, arguments.length]);\n }\n }]);\n\n return DatasetController;\n}();\n\nDatasetController.defaults = {};\nDatasetController.prototype.datasetElementType = null;\nDatasetController.prototype.dataElementType = null;\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n var visibleMetas = scale.getMatchingVisibleMetas(type);\n var values = [];\n\n for (var i = 0, ilen = visibleMetas.length; i < ilen; i++) {\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n\n scale._cache.$bar = _arrayUnique(values.sort(function (a, b) {\n return a - b;\n }));\n }\n\n return scale._cache.$bar;\n}\n\nfunction computeMinSampleSize(meta) {\n var scale = meta.iScale;\n var values = getAllScaleValues(scale, meta.type);\n var min = scale._length;\n var i, ilen, curr, prev;\n\n var updateMinAndPrev = function updateMinAndPrev() {\n if (curr === 32767 || curr === -32768) {\n return;\n }\n\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n\n prev = curr;\n };\n\n for (i = 0, ilen = values.length; i < ilen; ++i) {\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n\n prev = undefined;\n\n for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) {\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n\n return min;\n}\n\nfunction computeFitCategoryTraits(index, ruler, options, stackCount) {\n var thickness = options.barThickness;\n var size, ratio;\n\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\n return {\n chunk: size / stackCount,\n ratio: ratio,\n start: ruler.pixels[index] - size / 2\n };\n}\n\nfunction computeFlexCategoryTraits(index, ruler, options, stackCount) {\n var pixels = ruler.pixels;\n var curr = pixels[index];\n var prev = index > 0 ? pixels[index - 1] : null;\n var next = index < pixels.length - 1 ? pixels[index + 1] : null;\n var percent = options.categoryPercentage;\n\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n\n if (next === null) {\n next = curr + curr - prev;\n }\n\n var start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n var size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start: start\n };\n}\n\nfunction parseFloatBar(entry, item, vScale, i) {\n var startValue = vScale.parse(entry[0], i);\n var endValue = vScale.parse(entry[1], i);\n var min = Math.min(startValue, endValue);\n var max = Math.max(startValue, endValue);\n var barStart = min;\n var barEnd = max;\n\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart: barStart,\n barEnd: barEnd,\n start: startValue,\n end: endValue,\n min: min,\n max: max\n };\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\n return item;\n}\n\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n var iScale = meta.iScale;\n var vScale = meta.vScale;\n var labels = iScale.getLabels();\n var singleScale = iScale === vScale;\n var parsed = [];\n var i, ilen, item, entry;\n\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\n return parsed;\n}\n\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\n\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\n\nfunction borderProps(properties) {\n var reverse, start, end, top, bottom;\n\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\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n\n return {\n start: start,\n end: end,\n reverse: reverse,\n top: top,\n bottom: bottom\n };\n}\n\nfunction setBorderSkipped(properties, options, stack, index) {\n var edge = options.borderSkipped;\n var res = {};\n\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n\n if (edge === true) {\n properties.borderSkipped = {\n top: true,\n right: true,\n bottom: true,\n left: true\n };\n return;\n }\n\n var _borderProps = borderProps(properties),\n start = _borderProps.start,\n end = _borderProps.end,\n reverse = _borderProps.reverse,\n top = _borderProps.top,\n bottom = _borderProps.bottom;\n\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n\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\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\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\n return edge;\n}\n\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\n\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\n\nfunction setInflateAmount(properties, _ref4, ratio) {\n var inflateAmount = _ref4.inflateAmount;\n properties.inflateAmount = inflateAmount === 'auto' ? ratio === 1 ? 0.33 : 0 : inflateAmount;\n}\n\nvar BarController = /*#__PURE__*/function (_DatasetController) {\n _inherits(BarController, _DatasetController);\n\n var _super = _createSuper(BarController);\n\n function BarController() {\n _classCallCheck(this, BarController);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(BarController, [{\n key: \"parsePrimitiveData\",\n value: function parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n }, {\n key: \"parseArrayData\",\n value: function parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n }, {\n key: \"parseObjectData\",\n value: function parseObjectData(meta, data, start, count) {\n var iScale = meta.iScale,\n vScale = meta.vScale;\n var _this$_parsing2 = this._parsing,\n _this$_parsing2$xAxis = _this$_parsing2.xAxisKey,\n xAxisKey = _this$_parsing2$xAxis === void 0 ? 'x' : _this$_parsing2$xAxis,\n _this$_parsing2$yAxis = _this$_parsing2.yAxisKey,\n yAxisKey = _this$_parsing2$yAxis === void 0 ? 'y' : _this$_parsing2$yAxis;\n var iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n var vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n var parsed = [];\n var i, ilen, item, obj;\n\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\n return parsed;\n }\n }, {\n key: \"updateRangeFromParsed\",\n value: function updateRangeFromParsed(range, scale, parsed, stack) {\n _get(_getPrototypeOf(BarController.prototype), \"updateRangeFromParsed\", this).call(this, range, scale, parsed, stack);\n\n var custom = parsed._custom;\n\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 }, {\n key: \"getMaxOverflow\",\n value: function getMaxOverflow() {\n return 0;\n }\n }, {\n key: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var meta = this._cachedMeta;\n var iScale = meta.iScale,\n vScale = meta.vScale;\n var parsed = this.getParsed(index);\n var custom = parsed._custom;\n var value = isFloatBar(custom) ? '[' + custom.start + ', ' + custom.end + ']' : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value: value\n };\n }\n }, {\n key: \"initialize\",\n value: function initialize() {\n this.enableOptionSharing = true;\n\n _get(_getPrototypeOf(BarController.prototype), \"initialize\", this).call(this);\n\n var meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(bars, start, count, mode) {\n var reset = mode === 'reset';\n var index = this.index,\n vScale = this._cachedMeta.vScale;\n var base = vScale.getBasePixel();\n var horizontal = vScale.isHorizontal();\n\n var ruler = this._getRuler();\n\n var _this$_getSharedOptio = this._getSharedOptions(start, mode),\n sharedOptions = _this$_getSharedOptio.sharedOptions,\n includeOptions = _this$_getSharedOptio.includeOptions;\n\n for (var i = start; i < start + count; i++) {\n var parsed = this.getParsed(i);\n var vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {\n base: base,\n head: base\n } : this._calculateBarValuePixels(i);\n\n var ipixels = this._calculateBarIndexPixels(i, ruler);\n\n var stack = (parsed._stacks || {})[vScale.axis];\n var properties = {\n horizontal: 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\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n\n var 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 }, {\n key: \"_getStacks\",\n value: function _getStacks(last, dataIndex) {\n var iScale = this._cachedMeta.iScale;\n var metasets = iScale.getMatchingVisibleMetas(this._type).filter(function (meta) {\n return meta.controller.options.grouped;\n });\n var stacked = iScale.options.stacked;\n var stacks = [];\n\n var skipNull = function skipNull(meta) {\n var parsed = meta.controller.getParsed(dataIndex);\n var val = parsed && parsed[meta.vScale.axis];\n\n if (isNullOrUndef(val) || isNaN(val)) {\n return true;\n }\n };\n\n var _iterator5 = _createForOfIteratorHelper(metasets),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var meta = _step5.value;\n\n if (dataIndex !== undefined && skipNull(meta)) {\n continue;\n }\n\n if (stacked === false || stacks.indexOf(meta.stack) === -1 || stacked === undefined && meta.stack === undefined) {\n stacks.push(meta.stack);\n }\n\n if (meta.index === last) {\n break;\n }\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n if (!stacks.length) {\n stacks.push(undefined);\n }\n\n return stacks;\n }\n }, {\n key: \"_getStackCount\",\n value: function _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n }, {\n key: \"_getStackIndex\",\n value: function _getStackIndex(datasetIndex, name, dataIndex) {\n var stacks = this._getStacks(datasetIndex, dataIndex);\n\n var index = name !== undefined ? stacks.indexOf(name) : -1;\n return index === -1 ? stacks.length - 1 : index;\n }\n }, {\n key: \"_getRuler\",\n value: function _getRuler() {\n var opts = this.options;\n var meta = this._cachedMeta;\n var iScale = meta.iScale;\n var pixels = [];\n var i, ilen;\n\n for (i = 0, ilen = meta.data.length; i < ilen; ++i) {\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n\n var barThickness = opts.barThickness;\n var min = barThickness || computeMinSampleSize(meta);\n return {\n min: min,\n pixels: 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 }, {\n key: \"_calculateBarValuePixels\",\n value: function _calculateBarValuePixels(index) {\n var _this$_cachedMeta = this._cachedMeta,\n vScale = _this$_cachedMeta.vScale,\n _stacked = _this$_cachedMeta._stacked,\n _this$options = this.options,\n baseValue = _this$options.base,\n minBarLength = _this$options.minBarLength;\n var actualBase = baseValue || 0;\n var parsed = this.getParsed(index);\n var custom = parsed._custom;\n var floating = isFloatBar(custom);\n var value = parsed[vScale.axis];\n var start = 0;\n var length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n var head, size;\n\n if (length !== value) {\n start = length - value;\n length = value;\n }\n\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n\n start += value;\n }\n\n var startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n var base = vScale.getPixelForValue(startValue);\n\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n\n size = head - base;\n\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n\n if (value === actualBase) {\n base -= size / 2;\n }\n\n var startPixel = vScale.getPixelForDecimal(0);\n var endPixel = vScale.getPixelForDecimal(1);\n var min = Math.min(startPixel, endPixel);\n var max = Math.max(startPixel, endPixel);\n base = Math.max(Math.min(base, max), min);\n head = base + size;\n }\n\n if (base === vScale.getPixelForValue(actualBase)) {\n var halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n\n return {\n size: size,\n base: base,\n head: head,\n center: head + size / 2\n };\n }\n }, {\n key: \"_calculateBarIndexPixels\",\n value: function _calculateBarIndexPixels(index, ruler) {\n var scale = ruler.scale;\n var options = this.options;\n var skipNull = options.skipNull;\n var maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n var center, size;\n\n if (ruler.grouped) {\n var stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n var range = options.barThickness === 'flex' ? computeFlexCategoryTraits(index, ruler, options, stackCount) : computeFitCategoryTraits(index, ruler, options, stackCount);\n\n var stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined);\n\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\n return {\n base: center - size / 2,\n head: center + size / 2,\n center: center,\n size: size\n };\n }\n }, {\n key: \"draw\",\n value: function draw() {\n var meta = this._cachedMeta;\n var vScale = meta.vScale;\n var rects = meta.data;\n var ilen = rects.length;\n var i = 0;\n\n for (; i < ilen; ++i) {\n if (this.getParsed(i)[vScale.axis] !== null) {\n rects[i].draw(this._ctx);\n }\n }\n }\n }]);\n\n return BarController;\n}(DatasetController);\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\nvar BubbleController = /*#__PURE__*/function (_DatasetController2) {\n _inherits(BubbleController, _DatasetController2);\n\n var _super2 = _createSuper(BubbleController);\n\n function BubbleController() {\n _classCallCheck(this, BubbleController);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(BubbleController, [{\n key: \"initialize\",\n value: function initialize() {\n this.enableOptionSharing = true;\n\n _get(_getPrototypeOf(BubbleController.prototype), \"initialize\", this).call(this);\n }\n }, {\n key: \"parsePrimitiveData\",\n value: function parsePrimitiveData(meta, data, start, count) {\n var parsed = _get(_getPrototypeOf(BubbleController.prototype), \"parsePrimitiveData\", this).call(this, meta, data, start, count);\n\n for (var i = 0; i < parsed.length; i++) {\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n\n return parsed;\n }\n }, {\n key: \"parseArrayData\",\n value: function parseArrayData(meta, data, start, count) {\n var parsed = _get(_getPrototypeOf(BubbleController.prototype), \"parseArrayData\", this).call(this, meta, data, start, count);\n\n for (var i = 0; i < parsed.length; i++) {\n var item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n\n return parsed;\n }\n }, {\n key: \"parseObjectData\",\n value: function parseObjectData(meta, data, start, count) {\n var parsed = _get(_getPrototypeOf(BubbleController.prototype), \"parseObjectData\", this).call(this, meta, data, start, count);\n\n for (var i = 0; i < parsed.length; i++) {\n var item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n\n return parsed;\n }\n }, {\n key: \"getMaxOverflow\",\n value: function getMaxOverflow() {\n var data = this._cachedMeta.data;\n var max = 0;\n\n for (var i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n\n return max > 0 && max;\n }\n }, {\n key: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var meta = this._cachedMeta;\n var xScale = meta.xScale,\n yScale = meta.yScale;\n var parsed = this.getParsed(index);\n var x = xScale.getLabelForValue(parsed.x);\n var y = yScale.getLabelForValue(parsed.y);\n var r = parsed._custom;\n return {\n label: meta.label,\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(points, start, count, mode) {\n var reset = mode === 'reset';\n var _this$_cachedMeta2 = this._cachedMeta,\n iScale = _this$_cachedMeta2.iScale,\n vScale = _this$_cachedMeta2.vScale;\n\n var _this$_getSharedOptio2 = this._getSharedOptions(start, mode),\n sharedOptions = _this$_getSharedOptio2.sharedOptions,\n includeOptions = _this$_getSharedOptio2.includeOptions;\n\n var iAxis = iScale.axis;\n var vAxis = vScale.axis;\n\n for (var i = start; i < start + count; i++) {\n var point = points[i];\n var parsed = !reset && this.getParsed(i);\n var properties = {};\n var iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n var vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n\n if (reset) {\n properties.options.radius = 0;\n }\n }\n\n this.updateElement(point, i, properties, mode);\n }\n }\n }, {\n key: \"resolveDataElementOptions\",\n value: function resolveDataElementOptions(index, mode) {\n var parsed = this.getParsed(index);\n\n var values = _get(_getPrototypeOf(BubbleController.prototype), \"resolveDataElementOptions\", this).call(this, index, mode);\n\n if (values.$shared) {\n values = Object.assign({}, values, {\n $shared: false\n });\n }\n\n var radius = values.radius;\n\n if (mode !== 'active') {\n values.radius = 0;\n }\n\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n }]);\n\n return BubbleController;\n}(DatasetController);\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: function title() {\n return '';\n }\n }\n }\n }\n};\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n var ratioX = 1;\n var ratioY = 1;\n var offsetX = 0;\n var offsetY = 0;\n\n if (circumference < TAU) {\n var startAngle = rotation;\n var endAngle = startAngle + circumference;\n var startX = Math.cos(startAngle);\n var startY = Math.sin(startAngle);\n var endX = Math.cos(endAngle);\n var endY = Math.sin(endAngle);\n\n var calcMax = function calcMax(angle, a, b) {\n return _angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n };\n\n var calcMin = function calcMin(angle, a, b) {\n return _angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n };\n\n var maxX = calcMax(0, startX, endX);\n var maxY = calcMax(HALF_PI, startY, endY);\n var minX = calcMin(PI, startX, endX);\n var 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\n return {\n ratioX: ratioX,\n ratioY: ratioY,\n offsetX: offsetX,\n offsetY: offsetY\n };\n}\n\nvar DoughnutController = /*#__PURE__*/function (_DatasetController3) {\n _inherits(DoughnutController, _DatasetController3);\n\n var _super3 = _createSuper(DoughnutController);\n\n function DoughnutController(chart, datasetIndex) {\n var _this4;\n\n _classCallCheck(this, DoughnutController);\n\n _this4 = _super3.call(this, chart, datasetIndex);\n _this4.enableOptionSharing = true;\n _this4.innerRadius = undefined;\n _this4.outerRadius = undefined;\n _this4.offsetX = undefined;\n _this4.offsetY = undefined;\n return _this4;\n }\n\n _createClass(DoughnutController, [{\n key: \"linkScales\",\n value: function linkScales() {}\n }, {\n key: \"parse\",\n value: function parse(start, count) {\n var data = this.getDataset().data;\n var meta = this._cachedMeta;\n\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n var getter = function getter(i) {\n return +data[i];\n };\n\n if (isObject(data[start])) {\n var _this$_parsing$key = this._parsing.key,\n key = _this$_parsing$key === void 0 ? 'value' : _this$_parsing$key;\n\n getter = function getter(i) {\n return +resolveObjectKey(data[i], key);\n };\n }\n\n var i, ilen;\n\n for (i = start, ilen = start + count; i < ilen; ++i) {\n meta._parsed[i] = getter(i);\n }\n }\n }\n }, {\n key: \"_getRotation\",\n value: function _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n }, {\n key: \"_getCircumference\",\n value: function _getCircumference() {\n return toRadians(this.options.circumference);\n }\n }, {\n key: \"_getRotationExtents\",\n value: function _getRotationExtents() {\n var min = TAU;\n var max = -TAU;\n\n for (var i = 0; i < this.chart.data.datasets.length; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n var controller = this.chart.getDatasetMeta(i).controller;\n\n var rotation = controller._getRotation();\n\n var circumference = controller._getCircumference();\n\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n\n return {\n rotation: min,\n circumference: max - min\n };\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var chart = this.chart;\n var chartArea = chart.chartArea;\n var meta = this._cachedMeta;\n var arcs = meta.data;\n var spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n var maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n var cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n\n var chartWeight = this._getRingWeight(this.index);\n\n var _this$_getRotationExt = this._getRotationExtents(),\n circumference = _this$_getRotationExt.circumference,\n rotation = _this$_getRotationExt.rotation;\n\n var _getRatioAndOffset = getRatioAndOffset(rotation, circumference, cutout),\n ratioX = _getRatioAndOffset.ratioX,\n ratioY = _getRatioAndOffset.ratioY,\n offsetX = _getRatioAndOffset.offsetX,\n offsetY = _getRatioAndOffset.offsetY;\n\n var maxWidth = (chartArea.width - spacing) / ratioX;\n var maxHeight = (chartArea.height - spacing) / ratioY;\n var maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n var outerRadius = toDimension(this.options.radius, maxRadius);\n var innerRadius = Math.max(outerRadius * cutout, 0);\n\n var radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n\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 }, {\n key: \"_circumference\",\n value: function _circumference(i, reset) {\n var opts = this.options;\n var meta = this._cachedMeta;\n\n var circumference = this._getCircumference();\n\n if (reset && opts.animation.animateRotate || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(arcs, start, count, mode) {\n var reset = mode === 'reset';\n var chart = this.chart;\n var chartArea = chart.chartArea;\n var opts = chart.options;\n var animationOpts = opts.animation;\n var centerX = (chartArea.left + chartArea.right) / 2;\n var centerY = (chartArea.top + chartArea.bottom) / 2;\n var animateScale = reset && animationOpts.animateScale;\n var innerRadius = animateScale ? 0 : this.innerRadius;\n var outerRadius = animateScale ? 0 : this.outerRadius;\n\n var _this$_getSharedOptio3 = this._getSharedOptions(start, mode),\n sharedOptions = _this$_getSharedOptio3.sharedOptions,\n includeOptions = _this$_getSharedOptio3.includeOptions;\n\n var startAngle = this._getRotation();\n\n var i;\n\n for (i = 0; i < start; ++i) {\n startAngle += this._circumference(i, reset);\n }\n\n for (i = start; i < start + count; ++i) {\n var circumference = this._circumference(i, reset);\n\n var arc = arcs[i];\n var properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle: startAngle,\n endAngle: startAngle + circumference,\n circumference: circumference,\n outerRadius: outerRadius,\n innerRadius: innerRadius\n };\n\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n }\n }, {\n key: \"calculateTotal\",\n value: function calculateTotal() {\n var meta = this._cachedMeta;\n var metaData = meta.data;\n var total = 0;\n var i;\n\n for (i = 0; i < metaData.length; i++) {\n var value = meta._parsed[i];\n\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n\n return total;\n }\n }, {\n key: \"calculateCircumference\",\n value: function calculateCircumference(value) {\n var total = this._cachedMeta.total;\n\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n\n return 0;\n }\n }, {\n key: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var meta = this._cachedMeta;\n var chart = this.chart;\n var labels = chart.data.labels || [];\n var value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value: value\n };\n }\n }, {\n key: \"getMaxBorderWidth\",\n value: function getMaxBorderWidth(arcs) {\n var max = 0;\n var chart = this.chart;\n var i, ilen, meta, controller, options;\n\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\n if (!arcs) {\n return 0;\n }\n\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n options = controller.resolveDataElementOptions(i);\n\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n\n return max;\n }\n }, {\n key: \"getMaxOffset\",\n value: function getMaxOffset(arcs) {\n var max = 0;\n\n for (var i = 0, ilen = arcs.length; i < ilen; ++i) {\n var options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n\n return max;\n }\n }, {\n key: \"_getRingWeightOffset\",\n value: function _getRingWeightOffset(datasetIndex) {\n var ringWeightOffset = 0;\n\n for (var i = 0; i < datasetIndex; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n\n return ringWeightOffset;\n }\n }, {\n key: \"_getRingWeight\",\n value: function _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n }, {\n key: \"_getVisibleDatasetWeightTotal\",\n value: function _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n }]);\n\n return DoughnutController;\n}(DatasetController);\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: function _scriptable(name) {\n return name !== 'spacing';\n },\n _indexable: function _indexable(name) {\n return name !== 'spacing';\n }\n};\nDoughnutController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels: function generateLabels(chart) {\n var data = chart.data;\n\n if (data.labels.length && data.datasets.length) {\n var pointStyle = chart.legend.options.labels.pointStyle;\n return data.labels.map(function (label, i) {\n var meta = chart.getDatasetMeta(0);\n var 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\n return [];\n }\n },\n onClick: function onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title: function title() {\n return '';\n },\n label: function label(tooltipItem) {\n var dataLabel = tooltipItem.label;\n var value = ': ' + tooltipItem.formattedValue;\n\n if (isArray(dataLabel)) {\n dataLabel = dataLabel.slice();\n dataLabel[0] += value;\n } else {\n dataLabel += value;\n }\n\n return dataLabel;\n }\n }\n }\n }\n};\n\nvar LineController = /*#__PURE__*/function (_DatasetController4) {\n _inherits(LineController, _DatasetController4);\n\n var _super4 = _createSuper(LineController);\n\n function LineController() {\n _classCallCheck(this, LineController);\n\n return _super4.apply(this, arguments);\n }\n\n _createClass(LineController, [{\n key: \"initialize\",\n value: function initialize() {\n this.enableOptionSharing = true;\n this.supportsDecimation = true;\n\n _get(_getPrototypeOf(LineController.prototype), \"initialize\", this).call(this);\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var meta = this._cachedMeta;\n var line = meta.dataset,\n _meta$data = meta.data,\n points = _meta$data === void 0 ? [] : _meta$data,\n _dataset = meta._dataset;\n var animationsDisabled = this.chart._animationsDisabled;\n\n var _getStartAndCountOfVi = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled),\n start = _getStartAndCountOfVi.start,\n count = _getStartAndCountOfVi.count;\n\n this._drawStart = start;\n this._drawCount = count;\n\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n var options = this.resolveDatasetElementOptions(mode);\n\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options: options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(points, start, count, mode) {\n var reset = mode === 'reset';\n var _this$_cachedMeta3 = this._cachedMeta,\n iScale = _this$_cachedMeta3.iScale,\n vScale = _this$_cachedMeta3.vScale,\n _stacked = _this$_cachedMeta3._stacked,\n _dataset = _this$_cachedMeta3._dataset;\n\n var _this$_getSharedOptio4 = this._getSharedOptions(start, mode),\n sharedOptions = _this$_getSharedOptio4.sharedOptions,\n includeOptions = _this$_getSharedOptio4.includeOptions;\n\n var iAxis = iScale.axis;\n var vAxis = vScale.axis;\n var _this$options2 = this.options,\n spanGaps = _this$options2.spanGaps,\n segment = _this$options2.segment;\n var maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n var directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n var prevParsed = start > 0 && this.getParsed(start - 1);\n\n for (var i = start; i < start + count; ++i) {\n var point = points[i];\n var parsed = this.getParsed(i);\n var properties = directUpdate ? point : {};\n var nullData = isNullOrUndef(parsed[vAxis]);\n var iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n var 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\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n\n prevParsed = parsed;\n }\n }\n }, {\n key: \"getMaxOverflow\",\n value: function getMaxOverflow() {\n var meta = this._cachedMeta;\n var dataset = meta.dataset;\n var border = dataset.options && dataset.options.borderWidth || 0;\n var data = meta.data || [];\n\n if (!data.length) {\n return border;\n }\n\n var firstPoint = data[0].size(this.resolveDataElementOptions(0));\n var lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n }, {\n key: \"draw\",\n value: function draw() {\n var meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n\n _get(_getPrototypeOf(LineController.prototype), \"draw\", this).call(this);\n }\n }]);\n\n return LineController;\n}(DatasetController);\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\nvar PolarAreaController = /*#__PURE__*/function (_DatasetController5) {\n _inherits(PolarAreaController, _DatasetController5);\n\n var _super5 = _createSuper(PolarAreaController);\n\n function PolarAreaController(chart, datasetIndex) {\n var _this5;\n\n _classCallCheck(this, PolarAreaController);\n\n _this5 = _super5.call(this, chart, datasetIndex);\n _this5.innerRadius = undefined;\n _this5.outerRadius = undefined;\n return _this5;\n }\n\n _createClass(PolarAreaController, [{\n key: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var meta = this._cachedMeta;\n var chart = this.chart;\n var labels = chart.data.labels || [];\n var value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value: value\n };\n }\n }, {\n key: \"parseObjectData\",\n value: function parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var arcs = this._cachedMeta.data;\n\n this._updateRadius();\n\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n }, {\n key: \"getMinMax\",\n value: function getMinMax() {\n var _this6 = this;\n\n var meta = this._cachedMeta;\n var range = {\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY\n };\n meta.data.forEach(function (element, index) {\n var parsed = _this6.getParsed(index).r;\n\n if (!isNaN(parsed) && _this6.chart.getDataVisibility(index)) {\n if (parsed < range.min) {\n range.min = parsed;\n }\n\n if (parsed > range.max) {\n range.max = parsed;\n }\n }\n });\n return range;\n }\n }, {\n key: \"_updateRadius\",\n value: function _updateRadius() {\n var chart = this.chart;\n var chartArea = chart.chartArea;\n var opts = chart.options;\n var minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n var outerRadius = Math.max(minSize / 2, 0);\n var innerRadius = Math.max(opts.cutoutPercentage ? outerRadius / 100 * opts.cutoutPercentage : 1, 0);\n var radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - radiusLength * this.index;\n this.innerRadius = this.outerRadius - radiusLength;\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(arcs, start, count, mode) {\n var reset = mode === 'reset';\n var chart = this.chart;\n var opts = chart.options;\n var animationOpts = opts.animation;\n var scale = this._cachedMeta.rScale;\n var centerX = scale.xCenter;\n var centerY = scale.yCenter;\n var datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n var angle = datasetStartAngle;\n var i;\n var defaultAngle = 360 / this.countVisibleElements();\n\n for (i = 0; i < start; ++i) {\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n\n for (i = start; i < start + count; i++) {\n var arc = arcs[i];\n var startAngle = angle;\n\n var endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n\n var outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(this.getParsed(i).r) : 0;\n angle = endAngle;\n\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n\n var properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n }, {\n key: \"countVisibleElements\",\n value: function countVisibleElements() {\n var _this7 = this;\n\n var meta = this._cachedMeta;\n var count = 0;\n meta.data.forEach(function (element, index) {\n if (!isNaN(_this7.getParsed(index).r) && _this7.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n }, {\n key: \"_computeAngle\",\n value: function _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index) ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle) : 0;\n }\n }]);\n\n return PolarAreaController;\n}(DatasetController);\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: function generateLabels(chart) {\n var data = chart.data;\n\n if (data.labels.length && data.datasets.length) {\n var pointStyle = chart.legend.options.labels.pointStyle;\n return data.labels.map(function (label, i) {\n var meta = chart.getDatasetMeta(0);\n var 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\n return [];\n }\n },\n onClick: function onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title: function title() {\n return '';\n },\n label: function 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\nvar PieController = /*#__PURE__*/function (_DoughnutController) {\n _inherits(PieController, _DoughnutController);\n\n var _super6 = _createSuper(PieController);\n\n function PieController() {\n _classCallCheck(this, PieController);\n\n return _super6.apply(this, arguments);\n }\n\n return PieController;\n}(DoughnutController);\n\nPieController.id = 'pie';\nPieController.defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n};\n\nvar RadarController = /*#__PURE__*/function (_DatasetController6) {\n _inherits(RadarController, _DatasetController6);\n\n var _super7 = _createSuper(RadarController);\n\n function RadarController() {\n _classCallCheck(this, RadarController);\n\n return _super7.apply(this, arguments);\n }\n\n _createClass(RadarController, [{\n key: \"getLabelAndValue\",\n value: function getLabelAndValue(index) {\n var vScale = this._cachedMeta.vScale;\n var parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n }, {\n key: \"parseObjectData\",\n value: function parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var meta = this._cachedMeta;\n var line = meta.dataset;\n var points = meta.data || [];\n var labels = meta.iScale.getLabels();\n line.points = points;\n\n if (mode !== 'resize') {\n var options = this.resolveDatasetElementOptions(mode);\n\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n\n var properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options: options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n\n this.updateElements(points, 0, points.length, mode);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(points, start, count, mode) {\n var scale = this._cachedMeta.rScale;\n var reset = mode === 'reset';\n\n for (var i = start; i < start + count; i++) {\n var point = points[i];\n var options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n var pointPosition = scale.getPointPositionForValue(i, this.getParsed(i).r);\n var x = reset ? scale.xCenter : pointPosition.x;\n var y = reset ? scale.yCenter : pointPosition.y;\n var properties = {\n x: x,\n y: y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options: options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n }]);\n\n return RadarController;\n}(DatasetController);\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\nvar Element = /*#__PURE__*/function () {\n function Element() {\n _classCallCheck(this, Element);\n\n this.x = undefined;\n this.y = undefined;\n this.active = false;\n this.options = undefined;\n this.$animations = undefined;\n }\n\n _createClass(Element, [{\n key: \"tooltipPosition\",\n value: function tooltipPosition(useFinalPosition) {\n var _this$getProps = this.getProps(['x', 'y'], useFinalPosition),\n x = _this$getProps.x,\n y = _this$getProps.y;\n\n return {\n x: x,\n y: y\n };\n }\n }, {\n key: \"hasValue\",\n value: function hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n }, {\n key: \"getProps\",\n value: function getProps(props, _final) {\n var _this8 = this;\n\n var anims = this.$animations;\n\n if (!_final || !anims) {\n return this;\n }\n\n var ret = {};\n props.forEach(function (prop) {\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : _this8[prop];\n });\n return ret;\n }\n }]);\n\n return Element;\n}();\n\nElement.defaults = {};\nElement.defaultRoutes = undefined;\nvar formatters = {\n values: function values(value) {\n return isArray(value) ? value : '' + value;\n },\n numeric: function numeric(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n\n var locale = this.chart.options.locale;\n var notation;\n var delta = tickValue;\n\n if (ticks.length > 1) {\n var maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n\n delta = calculateDelta(tickValue, ticks);\n }\n\n var logDelta = log10(Math.abs(delta));\n var numDecimal = Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n var options = {\n notation: notation,\n minimumFractionDigits: numDecimal,\n maximumFractionDigits: numDecimal\n };\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic: function logarithmic(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n\n var remain = tickValue / Math.pow(10, Math.floor(log10(tickValue)));\n\n if (remain === 1 || remain === 2 || remain === 5) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n\n return '';\n }\n};\n\nfunction calculateDelta(tickValue, ticks) {\n var delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n\n return delta;\n}\n\nvar Ticks = {\n formatters: 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: function tickWidth(_ctx, options) {\n return options.lineWidth;\n },\n tickColor: function tickColor(_ctx, options) {\n return options.color;\n },\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: function _scriptable(name) {\n return !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser';\n },\n _indexable: function _indexable(name) {\n return name !== 'borderDash' && name !== 'tickBorderDash';\n }\n});\ndefaults.describe('scales', {\n _fallback: 'scale'\n});\ndefaults.describe('scale.ticks', {\n _scriptable: function _scriptable(name) {\n return name !== 'backdropPadding' && name !== 'callback';\n },\n _indexable: function _indexable(name) {\n return name !== 'backdropPadding';\n }\n});\n\nfunction autoSkip(scale, ticks) {\n var tickOpts = scale.options.ticks;\n var ticksLimit = tickOpts.maxTicksLimit || determineMaxTicks(scale);\n var majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n var numMajorIndices = majorIndices.length;\n var first = majorIndices[0];\n var last = majorIndices[numMajorIndices - 1];\n var newTicks = [];\n\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n\n var spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n\n if (numMajorIndices > 0) {\n var i, ilen;\n var avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n\n for (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\n\nfunction determineMaxTicks(scale) {\n var offset = scale.options.offset;\n\n var tickLength = scale._tickSize();\n\n var maxScale = scale._length / tickLength + (offset ? 0 : 1);\n var maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\n\nfunction calculateSpacing(majorIndices, ticks, ticksLimit) {\n var evenMajorSpacing = getEvenSpacing(majorIndices);\n var spacing = ticks.length / ticksLimit;\n\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n\n var factors = _factorize(evenMajorSpacing);\n\n for (var i = 0, ilen = factors.length - 1; i < ilen; i++) {\n var factor = factors[i];\n\n if (factor > spacing) {\n return factor;\n }\n }\n\n return Math.max(spacing, 1);\n}\n\nfunction getMajorIndices(ticks) {\n var result = [];\n var i, ilen;\n\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (ticks[i].major) {\n result.push(i);\n }\n }\n\n return result;\n}\n\nfunction skipMajors(ticks, newTicks, majorIndices, spacing) {\n var count = 0;\n var next = majorIndices[0];\n var i;\n spacing = Math.ceil(spacing);\n\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}\n\nfunction skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n var start = valueOrDefault(majorStart, 0);\n var end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n var count = 0;\n var length, i, next;\n spacing = Math.ceil(spacing);\n\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n\n next = start;\n\n while (next < 0) {\n count++;\n next = Math.round(start + count * spacing);\n }\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}\n\nfunction getEvenSpacing(arr) {\n var len = arr.length;\n var i, diff;\n\n if (len < 2) {\n return false;\n }\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\n return diff;\n}\n\nvar reverseAlign = function reverseAlign(align) {\n return align === 'left' ? 'right' : align === 'right' ? 'left' : align;\n};\n\nvar offsetFromEdge = function offsetFromEdge(scale, edge, offset) {\n return edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\n};\n\nfunction sample(arr, numItems) {\n var result = [];\n var increment = arr.length / numItems;\n var len = arr.length;\n var i = 0;\n\n for (; i < len; i += increment) {\n result.push(arr[Math.floor(i)]);\n }\n\n return result;\n}\n\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n var length = scale.ticks.length;\n var validIndex = Math.min(index, length - 1);\n var start = scale._startPixel;\n var end = scale._endPixel;\n var epsilon = 1e-6;\n var lineValue = scale.getPixelForTick(validIndex);\n var offset;\n\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\n lineValue += validIndex < index ? offset : -offset;\n\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n\n return lineValue;\n}\n\nfunction garbageCollect(caches, length) {\n each(caches, function (cache) {\n var gc = cache.gc;\n var gcLen = gc.length / 2;\n var i;\n\n if (gcLen > length) {\n for (i = 0; i < gcLen; ++i) {\n delete cache.data[gc[i]];\n }\n\n gc.splice(0, gcLen);\n }\n });\n}\n\nfunction getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\n\nfunction getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n\n var font = toFont(options.font, fallback);\n var padding = toPadding(options.padding);\n var lines = isArray(options.text) ? options.text.length : 1;\n return lines * font.lineHeight + padding.height;\n}\n\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale: scale,\n type: 'scale'\n });\n}\n\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick: tick,\n index: index,\n type: 'tick'\n });\n}\n\nfunction titleAlign(align, position, reverse) {\n var ret = _toLeftRightCenter(align);\n\n if (reverse && position !== 'right' || !reverse && position === 'right') {\n ret = reverseAlign(ret);\n }\n\n return ret;\n}\n\nfunction titleArgs(scale, offset, position, align) {\n var top = scale.top,\n left = scale.left,\n bottom = scale.bottom,\n right = scale.right,\n chart = scale.chart;\n var chartArea = chart.chartArea,\n scales = chart.scales;\n var rotation = 0;\n var maxWidth, titleX, titleY;\n var height = bottom - top;\n var width = right - left;\n\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n\n if (isObject(position)) {\n var positionAxisID = Object.keys(position)[0];\n var 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\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n var _positionAxisID = Object.keys(position)[0];\n var _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\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n\n return {\n titleX: titleX,\n titleY: titleY,\n maxWidth: maxWidth,\n rotation: rotation\n };\n}\n\nvar Scale = /*#__PURE__*/function (_Element) {\n _inherits(Scale, _Element);\n\n var _super8 = _createSuper(Scale);\n\n function Scale(cfg) {\n var _this9;\n\n _classCallCheck(this, Scale);\n\n _this9 = _super8.call(this);\n _this9.id = cfg.id;\n _this9.type = cfg.type;\n _this9.options = undefined;\n _this9.ctx = cfg.ctx;\n _this9.chart = cfg.chart;\n _this9.top = undefined;\n _this9.bottom = undefined;\n _this9.left = undefined;\n _this9.right = undefined;\n _this9.width = undefined;\n _this9.height = undefined;\n _this9._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n _this9.maxWidth = undefined;\n _this9.maxHeight = undefined;\n _this9.paddingTop = undefined;\n _this9.paddingBottom = undefined;\n _this9.paddingLeft = undefined;\n _this9.paddingRight = undefined;\n _this9.axis = undefined;\n _this9.labelRotation = undefined;\n _this9.min = undefined;\n _this9.max = undefined;\n _this9._range = undefined;\n _this9.ticks = [];\n _this9._gridLineItems = null;\n _this9._labelItems = null;\n _this9._labelSizes = null;\n _this9._length = 0;\n _this9._maxLength = 0;\n _this9._longestTextCache = {};\n _this9._startPixel = undefined;\n _this9._endPixel = undefined;\n _this9._reversePixels = false;\n _this9._userMax = undefined;\n _this9._userMin = undefined;\n _this9._suggestedMax = undefined;\n _this9._suggestedMin = undefined;\n _this9._ticksLength = 0;\n _this9._borderValue = 0;\n _this9._cache = {};\n _this9._dataLimitsCached = false;\n _this9.$context = undefined;\n return _this9;\n }\n\n _createClass(Scale, [{\n key: \"init\",\n value: function 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 }, {\n key: \"parse\",\n value: function parse(raw, index) {\n return raw;\n }\n }, {\n key: \"getUserBounds\",\n value: function getUserBounds() {\n var _userMin = this._userMin,\n _userMax = this._userMax,\n _suggestedMin = this._suggestedMin,\n _suggestedMax = this._suggestedMax;\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 }, {\n key: \"getMinMax\",\n value: function getMinMax(canStack) {\n var _this$getUserBounds = this.getUserBounds(),\n min = _this$getUserBounds.min,\n max = _this$getUserBounds.max,\n minDefined = _this$getUserBounds.minDefined,\n maxDefined = _this$getUserBounds.maxDefined;\n\n var range;\n\n if (minDefined && maxDefined) {\n return {\n min: min,\n max: max\n };\n }\n\n var metas = this.getMatchingVisibleMetas();\n\n for (var i = 0, ilen = metas.length; i < ilen; ++i) {\n range = metas[i].controller.getMinMax(this, canStack);\n\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\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 }, {\n key: \"getPadding\",\n value: function 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 }, {\n key: \"getTicks\",\n value: function getTicks() {\n return this.ticks;\n }\n }, {\n key: \"getLabels\",\n value: function getLabels() {\n var data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n }, {\n key: \"beforeLayout\",\n value: function beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n }, {\n key: \"beforeUpdate\",\n value: function beforeUpdate() {\n callback(this.options.beforeUpdate, [this]);\n }\n }, {\n key: \"update\",\n value: function update(maxWidth, maxHeight, margins) {\n var _this$options3 = this.options,\n beginAtZero = _this$options3.beginAtZero,\n grace = _this$options3.grace,\n tickOpts = _this$options3.ticks;\n var 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() ? this.width + margins.left + margins.right : this.height + margins.top + margins.bottom;\n\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\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n var samplingEnabled = sampleSize < this.ticks.length;\n\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n\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\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n }, {\n key: \"configure\",\n value: function configure() {\n var reversePixels = this.options.reverse;\n var startPixel, endPixel;\n\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\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 }, {\n key: \"afterUpdate\",\n value: function afterUpdate() {\n callback(this.options.afterUpdate, [this]);\n }\n }, {\n key: \"beforeSetDimensions\",\n value: function beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [this]);\n }\n }, {\n key: \"setDimensions\",\n value: function 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\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n }, {\n key: \"afterSetDimensions\",\n value: function afterSetDimensions() {\n callback(this.options.afterSetDimensions, [this]);\n }\n }, {\n key: \"_callHooks\",\n value: function _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n callback(this.options[name], [this]);\n }\n }, {\n key: \"beforeDataLimits\",\n value: function beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n }, {\n key: \"determineDataLimits\",\n value: function determineDataLimits() {}\n }, {\n key: \"afterDataLimits\",\n value: function afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n }, {\n key: \"beforeBuildTicks\",\n value: function beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n }, {\n key: \"buildTicks\",\n value: function buildTicks() {\n return [];\n }\n }, {\n key: \"afterBuildTicks\",\n value: function afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n }, {\n key: \"beforeTickToLabelConversion\",\n value: function beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [this]);\n }\n }, {\n key: \"generateTickLabels\",\n value: function generateTickLabels(ticks) {\n var tickOpts = this.options.ticks;\n var i, ilen, tick;\n\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 }, {\n key: \"afterTickToLabelConversion\",\n value: function afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [this]);\n }\n }, {\n key: \"beforeCalculateLabelRotation\",\n value: function beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [this]);\n }\n }, {\n key: \"calculateLabelRotation\",\n value: function calculateLabelRotation() {\n var options = this.options;\n var tickOpts = options.ticks;\n var numTicks = this.ticks.length;\n var minRotation = tickOpts.minRotation || 0;\n var maxRotation = tickOpts.maxRotation;\n var labelRotation = minRotation;\n var tickWidth, maxHeight, maxLabelDiagonal;\n\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n\n var labelSizes = this._getLabelSizes();\n\n var maxLabelWidth = labelSizes.widest.width;\n var maxLabelHeight = labelSizes.highest.height;\n\n var maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid) - tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)), Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n\n this.labelRotation = labelRotation;\n }\n }, {\n key: \"afterCalculateLabelRotation\",\n value: function afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [this]);\n }\n }, {\n key: \"afterAutoSkip\",\n value: function afterAutoSkip() {}\n }, {\n key: \"beforeFit\",\n value: function beforeFit() {\n callback(this.options.beforeFit, [this]);\n }\n }, {\n key: \"fit\",\n value: function fit() {\n var minSize = {\n width: 0,\n height: 0\n };\n var chart = this.chart,\n _this$options4 = this.options,\n tickOpts = _this$options4.ticks,\n titleOpts = _this$options4.title,\n gridOpts = _this$options4.grid;\n\n var display = this._isVisible();\n\n var isHorizontal = this.isHorizontal();\n\n if (display) {\n var titleHeight = getTitleHeight(titleOpts, chart.options.font);\n\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\n if (tickOpts.display && this.ticks.length) {\n var _this$_getLabelSizes = this._getLabelSizes(),\n first = _this$_getLabelSizes.first,\n last = _this$_getLabelSizes.last,\n widest = _this$_getLabelSizes.widest,\n highest = _this$_getLabelSizes.highest;\n\n var tickPadding = tickOpts.padding * 2;\n var angleRadians = toRadians(this.labelRotation);\n var cos = Math.cos(angleRadians);\n var sin = Math.sin(angleRadians);\n\n if (isHorizontal) {\n var labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n var labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n\n this._calculatePadding(first, last, sin, cos);\n }\n }\n\n this._handleMargins();\n\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 }, {\n key: \"_calculatePadding\",\n value: function _calculatePadding(first, last, sin, cos) {\n var _this$options5 = this.options,\n _this$options5$ticks = _this$options5.ticks,\n align = _this$options5$ticks.align,\n padding = _this$options5$ticks.padding,\n position = _this$options5.position;\n var isRotated = this.labelRotation !== 0;\n var labelsBelowTicks = position !== 'top' && this.axis === 'x';\n\n if (this.isHorizontal()) {\n var offsetLeft = this.getPixelForTick(0) - this.left;\n var offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n var paddingLeft = 0;\n var paddingRight = 0;\n\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\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 var paddingTop = last.height / 2;\n var paddingBottom = first.height / 2;\n\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\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n }, {\n key: \"_handleMargins\",\n value: function _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 }, {\n key: \"afterFit\",\n value: function afterFit() {\n callback(this.options.afterFit, [this]);\n }\n }, {\n key: \"isHorizontal\",\n value: function isHorizontal() {\n var _this$options6 = this.options,\n axis = _this$options6.axis,\n position = _this$options6.position;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n }, {\n key: \"isFullSize\",\n value: function isFullSize() {\n return this.options.fullSize;\n }\n }, {\n key: \"_convertTicksToLabels\",\n value: function _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n var i, ilen;\n\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\n this.afterTickToLabelConversion();\n }\n }, {\n key: \"_getLabelSizes\",\n value: function _getLabelSizes() {\n var labelSizes = this._labelSizes;\n\n if (!labelSizes) {\n var sampleSize = this.options.ticks.sampleSize;\n var ticks = this.ticks;\n\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length);\n }\n\n return labelSizes;\n }\n }, {\n key: \"_computeLabelSizes\",\n value: function _computeLabelSizes(ticks, length) {\n var ctx = this.ctx,\n caches = this._longestTextCache;\n var widths = [];\n var heights = [];\n var widestLabelSize = 0;\n var highestLabelSize = 0;\n var i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n\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] || {\n data: {},\n gc: []\n };\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n\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\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\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\n garbageCollect(caches, length);\n var widest = widths.indexOf(widestLabelSize);\n var highest = heights.indexOf(highestLabelSize);\n\n var valueAt = function valueAt(idx) {\n return {\n width: widths[idx] || 0,\n height: heights[idx] || 0\n };\n };\n\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths: widths,\n heights: heights\n };\n }\n }, {\n key: \"getLabelForValue\",\n value: function getLabelForValue(value) {\n return value;\n }\n }, {\n key: \"getPixelForValue\",\n value: function getPixelForValue(value, index) {\n return NaN;\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {}\n }, {\n key: \"getPixelForTick\",\n value: function getPixelForTick(index) {\n var ticks = this.ticks;\n\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n\n return this.getPixelForValue(ticks[index].value);\n }\n }, {\n key: \"getPixelForDecimal\",\n value: function getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n\n var pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n }, {\n key: \"getDecimalForPixel\",\n value: function getDecimalForPixel(pixel) {\n var decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n }, {\n key: \"getBasePixel\",\n value: function getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n }, {\n key: \"getBaseValue\",\n value: function getBaseValue() {\n var min = this.min,\n max = this.max;\n return min < 0 && max < 0 ? max : min > 0 && max > 0 ? min : 0;\n }\n }, {\n key: \"getContext\",\n value: function getContext(index) {\n var ticks = this.ticks || [];\n\n if (index >= 0 && index < ticks.length) {\n var tick = ticks[index];\n return tick.$context || (tick.$context = createTickContext(this.getContext(), index, tick));\n }\n\n return this.$context || (this.$context = createScaleContext(this.chart.getContext(), this));\n }\n }, {\n key: \"_tickSize\",\n value: function _tickSize() {\n var optionTicks = this.options.ticks;\n var rot = toRadians(this.labelRotation);\n var cos = Math.abs(Math.cos(rot));\n var sin = Math.abs(Math.sin(rot));\n\n var labelSizes = this._getLabelSizes();\n\n var padding = optionTicks.autoSkipPadding || 0;\n var w = labelSizes ? labelSizes.widest.width + padding : 0;\n var h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal() ? h * cos > w * sin ? w / cos : h / sin : h * sin < w * cos ? h / cos : w / sin;\n }\n }, {\n key: \"_isVisible\",\n value: function _isVisible() {\n var display = this.options.display;\n\n if (display !== 'auto') {\n return !!display;\n }\n\n return this.getMatchingVisibleMetas().length > 0;\n }\n }, {\n key: \"_computeGridLineItems\",\n value: function _computeGridLineItems(chartArea) {\n var axis = this.axis;\n var chart = this.chart;\n var options = this.options;\n var grid = options.grid,\n position = options.position;\n var offset = grid.offset;\n var isHorizontal = this.isHorizontal();\n var ticks = this.ticks;\n var ticksLength = ticks.length + (offset ? 1 : 0);\n var tl = getTickMarkLength(grid);\n var items = [];\n var borderOpts = grid.setContext(this.getContext());\n var axisWidth = borderOpts.drawBorder ? borderOpts.borderWidth : 0;\n var axisHalfWidth = axisWidth / 2;\n\n var alignBorderValue = function alignBorderValue(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n\n var borderValue, i, lineValue, alignedLineValue;\n var tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n\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 var positionAxisID = Object.keys(position)[0];\n var value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\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 var _positionAxisID2 = Object.keys(position)[0];\n var _value2 = position[_positionAxisID2];\n borderValue = alignBorderValue(this.chart.scales[_positionAxisID2].getPixelForValue(_value2));\n }\n\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n\n var limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n var step = Math.max(1, Math.ceil(ticksLength / limit));\n\n for (i = 0; i < ticksLength; i += step) {\n var optsAtIndex = grid.setContext(this.getContext(i));\n var lineWidth = optsAtIndex.lineWidth;\n var lineColor = optsAtIndex.color;\n var borderDash = optsAtIndex.borderDash || [];\n var borderDashOffset = optsAtIndex.borderDashOffset;\n var tickWidth = optsAtIndex.tickWidth;\n var tickColor = optsAtIndex.tickColor;\n var tickBorderDash = optsAtIndex.tickBorderDash || [];\n var tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n\n if (lineValue === undefined) {\n continue;\n }\n\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n\n items.push({\n tx1: tx1,\n ty1: ty1,\n tx2: tx2,\n ty2: ty2,\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n width: lineWidth,\n color: lineColor,\n borderDash: borderDash,\n borderDashOffset: borderDashOffset,\n tickWidth: tickWidth,\n tickColor: tickColor,\n tickBorderDash: tickBorderDash,\n tickBorderDashOffset: tickBorderDashOffset\n });\n }\n\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n }, {\n key: \"_computeLabelItems\",\n value: function _computeLabelItems(chartArea) {\n var axis = this.axis;\n var options = this.options;\n var position = options.position,\n optionTicks = options.ticks;\n var isHorizontal = this.isHorizontal();\n var ticks = this.ticks;\n var align = optionTicks.align,\n crossAlign = optionTicks.crossAlign,\n padding = optionTicks.padding,\n mirror = optionTicks.mirror;\n var tl = getTickMarkLength(options.grid);\n var tickAndPadding = tl + padding;\n var hTickAndPadding = mirror ? -padding : tickAndPadding;\n var rotation = -toRadians(this.labelRotation);\n var items = [];\n var i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n var textBaseline = 'middle';\n\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 var ret = this._getYAxisLabelAlignment(tl);\n\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n var _ret = this._getYAxisLabelAlignment(tl);\n\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 var positionAxisID = Object.keys(position)[0];\n var value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\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 var _positionAxisID3 = Object.keys(position)[0];\n var _value3 = position[_positionAxisID3];\n x = this.chart.scales[_positionAxisID3].getPixelForValue(_value3);\n }\n\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n\n var labelSizes = this._getLabelSizes();\n\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n label = tick.label;\n var 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 var halfCount = lineCount / 2;\n var color = optsAtIndex.color;\n var strokeColor = optsAtIndex.textStrokeColor;\n var strokeWidth = optsAtIndex.textStrokeWidth;\n var tickTextAlign = textAlign;\n\n if (isHorizontal) {\n x = pixel;\n\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\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\n if (mirror) {\n textOffset *= -1;\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n\n var backdrop = void 0;\n\n if (optsAtIndex.showLabelBackdrop) {\n var labelPadding = toPadding(optsAtIndex.backdropPadding);\n var height = labelSizes.heights[i];\n var width = labelSizes.widths[i];\n var top = y + textOffset - labelPadding.top;\n var left = x - labelPadding.left;\n\n switch (textBaseline) {\n case 'middle':\n top -= height / 2;\n break;\n\n case 'bottom':\n top -= height;\n break;\n }\n\n switch (textAlign) {\n case 'center':\n left -= width / 2;\n break;\n\n case 'right':\n left -= width;\n break;\n }\n\n backdrop = {\n left: left,\n top: top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor\n };\n }\n\n items.push({\n rotation: rotation,\n label: label,\n font: font,\n color: color,\n strokeColor: strokeColor,\n strokeWidth: strokeWidth,\n textOffset: textOffset,\n textAlign: tickTextAlign,\n textBaseline: textBaseline,\n translation: [x, y],\n backdrop: backdrop\n });\n }\n\n return items;\n }\n }, {\n key: \"_getXAxisLabelAlignment\",\n value: function _getXAxisLabelAlignment() {\n var _this$options7 = this.options,\n position = _this$options7.position,\n ticks = _this$options7.ticks;\n var rotation = -toRadians(this.labelRotation);\n\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n\n var align = 'center';\n\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\n return align;\n }\n }, {\n key: \"_getYAxisLabelAlignment\",\n value: function _getYAxisLabelAlignment(tl) {\n var _this$options8 = this.options,\n position = _this$options8.position,\n _this$options8$ticks = _this$options8.ticks,\n crossAlign = _this$options8$ticks.crossAlign,\n mirror = _this$options8$ticks.mirror,\n padding = _this$options8$ticks.padding;\n\n var labelSizes = this._getLabelSizes();\n\n var tickAndPadding = tl + padding;\n var widest = labelSizes.widest.width;\n var textAlign;\n var x;\n\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n\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\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\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\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\n return {\n textAlign: textAlign,\n x: x\n };\n }\n }, {\n key: \"_computeLabelArea\",\n value: function _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n\n var chart = this.chart;\n var position = this.options.position;\n\n if (position === 'left' || position === 'right') {\n return {\n top: 0,\n left: this.left,\n bottom: chart.height,\n right: this.right\n };\n }\n\n if (position === 'top' || position === 'bottom') {\n return {\n top: this.top,\n left: 0,\n bottom: this.bottom,\n right: chart.width\n };\n }\n }\n }, {\n key: \"drawBackground\",\n value: function drawBackground() {\n var ctx = this.ctx,\n backgroundColor = this.options.backgroundColor,\n left = this.left,\n top = this.top,\n width = this.width,\n height = this.height;\n\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n }, {\n key: \"getLineWidthForValue\",\n value: function getLineWidthForValue(value) {\n var grid = this.options.grid;\n\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n\n var ticks = this.ticks;\n var index = ticks.findIndex(function (t) {\n return t.value === value;\n });\n\n if (index >= 0) {\n var opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n\n return 0;\n }\n }, {\n key: \"drawGrid\",\n value: function drawGrid(chartArea) {\n var grid = this.options.grid;\n var ctx = this.ctx;\n\n var items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n\n var i, ilen;\n\n var drawLine = function drawLine(p1, p2, style) {\n if (!style.width || !style.color) {\n return;\n }\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\n if (grid.display) {\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n var item = items[i];\n\n if (grid.drawOnChartArea) {\n drawLine({\n x: item.x1,\n y: item.y1\n }, {\n x: item.x2,\n y: item.y2\n }, item);\n }\n\n if (grid.drawTicks) {\n drawLine({\n x: item.tx1,\n y: item.ty1\n }, {\n x: item.tx2,\n 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 key: \"drawBorder\",\n value: function drawBorder() {\n var chart = this.chart,\n ctx = this.ctx,\n grid = this.options.grid;\n var borderOpts = grid.setContext(this.getContext());\n var axisWidth = grid.drawBorder ? borderOpts.borderWidth : 0;\n\n if (!axisWidth) {\n return;\n }\n\n var lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n var borderValue = this._borderValue;\n var x1, x2, y1, y2;\n\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\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 }, {\n key: \"drawLabels\",\n value: function drawLabels(chartArea) {\n var optionTicks = this.options.ticks;\n\n if (!optionTicks.display) {\n return;\n }\n\n var ctx = this.ctx;\n\n var area = this._computeLabelArea();\n\n if (area) {\n clipArea(ctx, area);\n }\n\n var items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n\n var i, ilen;\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n var item = items[i];\n var tickFont = item.font;\n var label = item.label;\n\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\n var y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, item);\n }\n\n if (area) {\n unclipArea(ctx);\n }\n }\n }, {\n key: \"drawTitle\",\n value: function drawTitle() {\n var ctx = this.ctx,\n _this$options9 = this.options,\n position = _this$options9.position,\n title = _this$options9.title,\n reverse = _this$options9.reverse;\n\n if (!title.display) {\n return;\n }\n\n var font = toFont(title.font);\n var padding = toPadding(title.padding);\n var align = title.align;\n var offset = font.lineHeight / 2;\n\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n\n var _titleArgs = titleArgs(this, offset, position, align),\n titleX = _titleArgs.titleX,\n titleY = _titleArgs.titleY,\n maxWidth = _titleArgs.maxWidth,\n rotation = _titleArgs.rotation;\n\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth: maxWidth,\n rotation: rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [titleX, titleY]\n });\n }\n }, {\n key: \"draw\",\n value: function draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n }, {\n key: \"_layers\",\n value: function _layers() {\n var _this10 = this;\n\n var opts = this.options;\n var tz = opts.ticks && opts.ticks.z || 0;\n var gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [{\n z: tz,\n draw: function draw(chartArea) {\n _this10.draw(chartArea);\n }\n }];\n }\n\n return [{\n z: gz,\n draw: function draw(chartArea) {\n _this10.drawBackground();\n\n _this10.drawGrid(chartArea);\n\n _this10.drawTitle();\n }\n }, {\n z: gz + 1,\n draw: function draw() {\n _this10.drawBorder();\n }\n }, {\n z: tz,\n draw: function draw(chartArea) {\n _this10.drawLabels(chartArea);\n }\n }];\n }\n }, {\n key: \"getMatchingVisibleMetas\",\n value: function getMatchingVisibleMetas(type) {\n var metas = this.chart.getSortedVisibleDatasetMetas();\n var axisID = this.axis + 'AxisID';\n var result = [];\n var i, ilen;\n\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n var meta = metas[i];\n\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n\n return result;\n }\n }, {\n key: \"_resolveTickFontOptions\",\n value: function _resolveTickFontOptions(index) {\n var opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n }, {\n key: \"_maxDigits\",\n value: function _maxDigits() {\n var fontSize = this._resolveTickFontOptions(0).lineHeight;\n\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n }]);\n\n return Scale;\n}(Element);\n\nvar TypedRegistry = /*#__PURE__*/function () {\n function TypedRegistry(type, scope, override) {\n _classCallCheck(this, TypedRegistry);\n\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n\n _createClass(TypedRegistry, [{\n key: \"isForType\",\n value: function isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n }, {\n key: \"register\",\n value: function register(item) {\n var proto = Object.getPrototypeOf(item);\n var parentScope;\n\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n\n var items = this.items;\n var id = item.id;\n var scope = this.scope + '.' + id;\n\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n\n if (id in items) {\n return scope;\n }\n\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n\n return scope;\n }\n }, {\n key: \"get\",\n value: function get(id) {\n return this.items[id];\n }\n }, {\n key: \"unregister\",\n value: function unregister(item) {\n var items = this.items;\n var id = item.id;\n var scope = this.scope;\n\n if (id in items) {\n delete items[id];\n }\n\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n }]);\n\n return TypedRegistry;\n}();\n\nfunction registerDefaults(item, scope, parentScope) {\n var itemDefaults = merge(Object.create(null), [parentScope ? defaults.get(parentScope) : {}, defaults.get(scope), item.defaults]);\n defaults.set(scope, itemDefaults);\n\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\n\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach(function (property) {\n var propertyParts = property.split('.');\n var sourceName = propertyParts.pop();\n var sourceScope = [scope].concat(propertyParts).join('.');\n var parts = routes[property].split('.');\n var targetName = parts.pop();\n var targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\n\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nvar Registry = /*#__PURE__*/function () {\n function Registry() {\n _classCallCheck(this, Registry);\n\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\n _createClass(Registry, [{\n key: \"add\",\n value: function add() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this._each('register', args);\n }\n }, {\n key: \"remove\",\n value: function remove() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n this._each('unregister', args);\n }\n }, {\n key: \"addControllers\",\n value: function addControllers() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n this._each('register', args, this.controllers);\n }\n }, {\n key: \"addElements\",\n value: function addElements() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n this._each('register', args, this.elements);\n }\n }, {\n key: \"addPlugins\",\n value: function addPlugins() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n this._each('register', args, this.plugins);\n }\n }, {\n key: \"addScales\",\n value: function addScales() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n this._each('register', args, this.scales);\n }\n }, {\n key: \"getController\",\n value: function getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n }, {\n key: \"getElement\",\n value: function getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n }, {\n key: \"getPlugin\",\n value: function getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n }, {\n key: \"getScale\",\n value: function getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n }, {\n key: \"removeControllers\",\n value: function removeControllers() {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n this._each('unregister', args, this.controllers);\n }\n }, {\n key: \"removeElements\",\n value: function removeElements() {\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n args[_key8] = arguments[_key8];\n }\n\n this._each('unregister', args, this.elements);\n }\n }, {\n key: \"removePlugins\",\n value: function removePlugins() {\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n this._each('unregister', args, this.plugins);\n }\n }, {\n key: \"removeScales\",\n value: function removeScales() {\n for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n args[_key10] = arguments[_key10];\n }\n\n this._each('unregister', args, this.scales);\n }\n }, {\n key: \"_each\",\n value: function _each(method, args, typedRegistry) {\n var _this11 = this;\n\n _toConsumableArray(args).forEach(function (arg) {\n var reg = typedRegistry || _this11._getRegistryForType(arg);\n\n if (typedRegistry || reg.isForType(arg) || reg === _this11.plugins && arg.id) {\n _this11._exec(method, reg, arg);\n } else {\n each(arg, function (item) {\n var itemReg = typedRegistry || _this11._getRegistryForType(item);\n\n _this11._exec(method, itemReg, item);\n });\n }\n });\n }\n }, {\n key: \"_exec\",\n value: function _exec(method, registry, component) {\n var camelMethod = _capitalize(method);\n\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n }, {\n key: \"_getRegistryForType\",\n value: function _getRegistryForType(type) {\n for (var i = 0; i < this._typedRegistries.length; i++) {\n var reg = this._typedRegistries[i];\n\n if (reg.isForType(type)) {\n return reg;\n }\n }\n\n return this.plugins;\n }\n }, {\n key: \"_get\",\n value: function _get(id, typedRegistry, type) {\n var item = typedRegistry.get(id);\n\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n\n return item;\n }\n }]);\n\n return Registry;\n}();\n\nvar registry = new Registry();\n\nvar ScatterController = /*#__PURE__*/function (_DatasetController7) {\n _inherits(ScatterController, _DatasetController7);\n\n var _super9 = _createSuper(ScatterController);\n\n function ScatterController() {\n _classCallCheck(this, ScatterController);\n\n return _super9.apply(this, arguments);\n }\n\n _createClass(ScatterController, [{\n key: \"update\",\n value: function update(mode) {\n var meta = this._cachedMeta;\n var _meta$data2 = meta.data,\n points = _meta$data2 === void 0 ? [] : _meta$data2;\n var animationsDisabled = this.chart._animationsDisabled;\n\n var _getStartAndCountOfVi2 = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled),\n start = _getStartAndCountOfVi2.start,\n count = _getStartAndCountOfVi2.count;\n\n this._drawStart = start;\n this._drawCount = count;\n\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n\n if (this.options.showLine) {\n var line = meta.dataset,\n _dataset = meta._dataset;\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n var options = this.resolveDatasetElementOptions(mode);\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options: options\n }, mode);\n }\n\n this.updateElements(points, start, count, mode);\n }\n }, {\n key: \"addElements\",\n value: function addElements() {\n var showLine = this.options.showLine;\n\n if (!this.datasetElementType && showLine) {\n this.datasetElementType = registry.getElement('line');\n }\n\n _get(_getPrototypeOf(ScatterController.prototype), \"addElements\", this).call(this);\n }\n }, {\n key: \"updateElements\",\n value: function updateElements(points, start, count, mode) {\n var reset = mode === 'reset';\n var _this$_cachedMeta4 = this._cachedMeta,\n iScale = _this$_cachedMeta4.iScale,\n vScale = _this$_cachedMeta4.vScale,\n _stacked = _this$_cachedMeta4._stacked,\n _dataset = _this$_cachedMeta4._dataset;\n var firstOpts = this.resolveDataElementOptions(start, mode);\n var sharedOptions = this.getSharedOptions(firstOpts);\n var includeOptions = this.includeOptions(mode, sharedOptions);\n var iAxis = iScale.axis;\n var vAxis = vScale.axis;\n var _this$options10 = this.options,\n spanGaps = _this$options10.spanGaps,\n segment = _this$options10.segment;\n var maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n var directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n var prevParsed = start > 0 && this.getParsed(start - 1);\n\n for (var i = start; i < start + count; ++i) {\n var point = points[i];\n var parsed = this.getParsed(i);\n var properties = directUpdate ? point : {};\n var nullData = isNullOrUndef(parsed[vAxis]);\n var iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n var 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\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n\n prevParsed = parsed;\n }\n\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n }, {\n key: \"getMaxOverflow\",\n value: function getMaxOverflow() {\n var meta = this._cachedMeta;\n var data = meta.data || [];\n\n if (!this.options.showLine) {\n var max = 0;\n\n for (var i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n\n return max > 0 && max;\n }\n\n var dataset = meta.dataset;\n var border = dataset.options && dataset.options.borderWidth || 0;\n\n if (!data.length) {\n return border;\n }\n\n var firstPoint = data[0].size(this.resolveDataElementOptions(0));\n var lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n }]);\n\n return ScatterController;\n}(DatasetController);\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: function title() {\n return '';\n },\n label: function 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};\nvar controllers = /*#__PURE__*/Object.freeze({\n __proto__: null,\n BarController: BarController,\n BubbleController: BubbleController,\n DoughnutController: DoughnutController,\n LineController: LineController,\n PolarAreaController: PolarAreaController,\n PieController: PieController,\n RadarController: RadarController,\n ScatterController: ScatterController\n});\n\nfunction _abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\n\nvar DateAdapter = /*#__PURE__*/function () {\n function DateAdapter(options) {\n _classCallCheck(this, DateAdapter);\n\n this.options = options || {};\n }\n\n _createClass(DateAdapter, [{\n key: \"init\",\n value: function init(chartOptions) {}\n }, {\n key: \"formats\",\n value: function formats() {\n return _abstract();\n }\n }, {\n key: \"parse\",\n value: function parse(value, format) {\n return _abstract();\n }\n }, {\n key: \"format\",\n value: function format(timestamp, _format) {\n return _abstract();\n }\n }, {\n key: \"add\",\n value: function add(timestamp, amount, unit) {\n return _abstract();\n }\n }, {\n key: \"diff\",\n value: function diff(a, b, unit) {\n return _abstract();\n }\n }, {\n key: \"startOf\",\n value: function startOf(timestamp, unit, weekday) {\n return _abstract();\n }\n }, {\n key: \"endOf\",\n value: function endOf(timestamp, unit) {\n return _abstract();\n }\n }]);\n\n return DateAdapter;\n}();\n\nDateAdapter.override = function (members) {\n Object.assign(DateAdapter.prototype, members);\n};\n\nvar adapters = {\n _date: DateAdapter\n};\n\nfunction binarySearch(metaset, axis, value, intersect) {\n var controller = metaset.controller,\n data = metaset.data,\n _sorted = metaset._sorted;\n var iScale = controller._cachedMeta.iScale;\n\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n var lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n\n if (!intersect) {\n return lookupMethod(data, axis, value);\n } else if (controller._sharedOptions) {\n var el = data[0];\n var range = typeof el.getRange === 'function' && el.getRange(axis);\n\n if (range) {\n var start = lookupMethod(data, axis, value - range);\n var end = lookupMethod(data, axis, value + range);\n return {\n lo: start.lo,\n hi: end.hi\n };\n }\n }\n }\n\n return {\n lo: 0,\n hi: data.length - 1\n };\n}\n\nfunction evaluateInteractionItems(chart, axis, position, handler, intersect) {\n var metasets = chart.getSortedVisibleDatasetMetas();\n var value = position[axis];\n\n for (var i = 0, ilen = metasets.length; i < ilen; ++i) {\n var _metasets$i = metasets[i],\n _index2 = _metasets$i.index,\n data = _metasets$i.data;\n\n var _binarySearch = binarySearch(metasets[i], axis, value, intersect),\n lo = _binarySearch.lo,\n hi = _binarySearch.hi;\n\n for (var j = lo; j <= hi; ++j) {\n var element = data[j];\n\n if (!element.skip) {\n handler(element, _index2, j);\n }\n }\n }\n}\n\nfunction getDistanceMetricForAxis(axis) {\n var useX = axis.indexOf('x') !== -1;\n var useY = axis.indexOf('y') !== -1;\n return function (pt1, pt2) {\n var deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n var deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\n\nfunction getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n var items = [];\n\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return items;\n }\n\n var evaluationFunc = function evaluationFunc(element, datasetIndex, index) {\n if (!includeInvisible && !_isPointInArea(element, chart.chartArea, 0)) {\n return;\n }\n\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({\n element: element,\n datasetIndex: datasetIndex,\n index: index\n });\n }\n };\n\n evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\n\nfunction getNearestRadialItems(chart, position, axis, useFinalPosition) {\n var items = [];\n\n function evaluationFunc(element, datasetIndex, index) {\n var _element$getProps = element.getProps(['startAngle', 'endAngle'], useFinalPosition),\n startAngle = _element$getProps.startAngle,\n endAngle = _element$getProps.endAngle;\n\n var _getAngleFromPoint = getAngleFromPoint(element, {\n x: position.x,\n y: position.y\n }),\n angle = _getAngleFromPoint.angle;\n\n if (_angleBetween(angle, startAngle, endAngle)) {\n items.push({\n element: element,\n datasetIndex: datasetIndex,\n index: index\n });\n }\n }\n\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n\nfunction getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n var items = [];\n var distanceMetric = getDistanceMetricForAxis(axis);\n var minDistance = Number.POSITIVE_INFINITY;\n\n function evaluationFunc(element, datasetIndex, index) {\n var inRange = element.inRange(position.x, position.y, useFinalPosition);\n\n if (intersect && !inRange) {\n return;\n }\n\n var center = element.getCenterPoint(useFinalPosition);\n var pointInArea = !!includeInvisible || chart.isPointInArea(center);\n\n if (!pointInArea && !inRange) {\n return;\n }\n\n var distance = distanceMetric(position, center);\n\n if (distance < minDistance) {\n items = [{\n element: element,\n datasetIndex: datasetIndex,\n index: index\n }];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({\n element: element,\n datasetIndex: datasetIndex,\n index: index\n });\n }\n }\n\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return [];\n }\n\n return axis === 'r' && !intersect ? getNearestRadialItems(chart, position, axis, useFinalPosition) : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\n\nfunction getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n var items = [];\n var rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n var intersectsItem = false;\n evaluateInteractionItems(chart, axis, position, function (element, datasetIndex, index) {\n if (element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({\n element: element,\n datasetIndex: datasetIndex,\n index: index\n });\n intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n }\n });\n\n if (intersect && !intersectsItem) {\n return [];\n }\n\n return items;\n}\n\nvar Interaction = {\n evaluateInteractionItems: evaluateInteractionItems,\n modes: {\n index: function index(chart, e, options, useFinalPosition) {\n var position = getRelativePosition(e, chart);\n var axis = options.axis || 'x';\n var includeInvisible = options.includeInvisible || false;\n var items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n var elements = [];\n\n if (!items.length) {\n return [];\n }\n\n chart.getSortedVisibleDatasetMetas().forEach(function (meta) {\n var index = items[0].index;\n var element = meta.data[index];\n\n if (element && !element.skip) {\n elements.push({\n element: element,\n datasetIndex: meta.index,\n index: index\n });\n }\n });\n return elements;\n },\n dataset: function dataset(chart, e, options, useFinalPosition) {\n var position = getRelativePosition(e, chart);\n var axis = options.axis || 'xy';\n var includeInvisible = options.includeInvisible || false;\n var items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n\n if (items.length > 0) {\n var datasetIndex = items[0].datasetIndex;\n var data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n\n for (var i = 0; i < data.length; ++i) {\n items.push({\n element: data[i],\n datasetIndex: datasetIndex,\n index: i\n });\n }\n }\n\n return items;\n },\n point: function point(chart, e, options, useFinalPosition) {\n var position = getRelativePosition(e, chart);\n var axis = options.axis || 'xy';\n var includeInvisible = options.includeInvisible || false;\n return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n },\n nearest: function nearest(chart, e, options, useFinalPosition) {\n var position = getRelativePosition(e, chart);\n var axis = options.axis || 'xy';\n var includeInvisible = options.includeInvisible || false;\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n },\n x: function x(chart, e, options, useFinalPosition) {\n var position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n },\n y: function y(chart, e, options, useFinalPosition) {\n var position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n }\n }\n};\nvar STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];\n\nfunction filterByPosition(array, position) {\n return array.filter(function (v) {\n return v.pos === position;\n });\n}\n\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter(function (v) {\n return STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis;\n });\n}\n\nfunction sortByWeight(array, reverse) {\n return array.sort(function (a, b) {\n var v0 = reverse ? b : a;\n var v1 = reverse ? a : b;\n return v0.weight === v1.weight ? v0.index - v1.index : v0.weight - v1.weight;\n });\n}\n\nfunction wrapBoxes(boxes) {\n var layoutBoxes = [];\n var i, ilen, box, pos, stack, stackWeight;\n\n for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n box = boxes[i];\n var _box = box;\n pos = _box.position;\n var _box$options = _box.options;\n stack = _box$options.stack;\n var _box$options$stackWei = _box$options.stackWeight;\n stackWeight = _box$options$stackWei === void 0 ? 1 : _box$options$stackWei;\n layoutBoxes.push({\n index: i,\n box: box,\n pos: pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && pos + stack,\n stackWeight: stackWeight\n });\n }\n\n return layoutBoxes;\n}\n\nfunction buildStacks(layouts) {\n var stacks = {};\n\n var _iterator6 = _createForOfIteratorHelper(layouts),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var wrap = _step6.value;\n var stack = wrap.stack,\n pos = wrap.pos,\n stackWeight = wrap.stackWeight;\n\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n\n var _stack = stacks[stack] || (stacks[stack] = {\n count: 0,\n placed: 0,\n weight: 0,\n size: 0\n });\n\n _stack.count++;\n _stack.weight += stackWeight;\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n\n return stacks;\n}\n\nfunction setLayoutDims(layouts, params) {\n var stacks = buildStacks(layouts);\n var vBoxMaxWidth = params.vBoxMaxWidth,\n hBoxMaxHeight = params.hBoxMaxHeight;\n var i, ilen, layout;\n\n for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n layout = layouts[i];\n var fullSize = layout.box.fullSize;\n var stack = stacks[layout.stack];\n var factor = stack && layout.stackWeight / stack.weight;\n\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\n return stacks;\n}\n\nfunction buildLayoutBoxes(boxes) {\n var layoutBoxes = wrapBoxes(boxes);\n var fullSize = sortByWeight(layoutBoxes.filter(function (wrap) {\n return wrap.box.fullSize;\n }), true);\n var left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n var right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n var top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n var bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n var centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n var centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize: 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}\n\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\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}\n\nfunction updateDims(chartArea, params, layout, stacks) {\n var pos = layout.pos,\n box = layout.box;\n var maxPadding = chartArea.maxPadding;\n\n if (!isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n\n var stack = stacks[layout.stack] || {\n size: 0,\n count: 1\n };\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\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n\n var newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n var newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n var widthChanged = newWidth !== chartArea.w;\n var heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal ? {\n same: widthChanged,\n other: heightChanged\n } : {\n same: heightChanged,\n other: widthChanged\n };\n}\n\nfunction handleMaxPadding(chartArea) {\n var maxPadding = chartArea.maxPadding;\n\n function updatePos(pos) {\n var change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\n\nfunction getMargins(horizontal, chartArea) {\n var maxPadding = chartArea.maxPadding;\n\n function marginForPositions(positions) {\n var margin = {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n };\n positions.forEach(function (pos) {\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n\n return horizontal ? marginForPositions(['left', 'right']) : marginForPositions(['top', 'bottom']);\n}\n\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n var refitBoxes = [];\n var i, ilen, layout, box, refit, changed;\n\n for (i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n box.update(layout.width || chartArea.w, layout.height || chartArea.h, getMargins(layout.horizontal, chartArea));\n\n var _updateDims = updateDims(chartArea, params, layout, stacks),\n same = _updateDims.same,\n other = _updateDims.other;\n\n refit |= same && refitBoxes.length;\n changed = changed || other;\n\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\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}\n\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n var userPadding = params.padding;\n var x = chartArea.x,\n y = chartArea.y;\n\n var _iterator7 = _createForOfIteratorHelper(boxes),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var layout = _step7.value;\n var box = layout.box;\n var stack = stacks[layout.stack] || {\n count: 1,\n placed: 0,\n weight: 1\n };\n var weight = layout.stackWeight / stack.weight || 1;\n\n if (layout.horizontal) {\n var width = chartArea.w * weight;\n var height = stack.size || box.height;\n\n if (defined(stack.start)) {\n y = stack.start;\n }\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\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n var _height = chartArea.h * weight;\n\n var _width = stack.size || box.width;\n\n if (defined(stack.start)) {\n x = stack.start;\n }\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\n stack.start = x;\n stack.placed += _height;\n x = box.right;\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n\n chartArea.x = x;\n chartArea.y = y;\n}\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: function addBox(chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n\n item._layers = item._layers || function () {\n return [{\n z: 0,\n draw: function draw(chartArea) {\n item.draw(chartArea);\n }\n }];\n };\n\n chart.boxes.push(item);\n },\n removeBox: function removeBox(chart, layoutItem) {\n var index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure: function configure(chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update: function update(chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n\n var padding = toPadding(chart.options.layout.padding);\n var availableWidth = Math.max(width - padding.width, 0);\n var availableHeight = Math.max(height - padding.height, 0);\n var boxes = buildLayoutBoxes(chart.boxes);\n var verticalBoxes = boxes.vertical;\n var horizontalBoxes = boxes.horizontal;\n each(chart.boxes, function (box) {\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n var visibleVerticalBoxCount = verticalBoxes.reduce(function (total, wrap) {\n return wrap.box.options && wrap.box.options.display === false ? total : total + 1;\n }, 0) || 1;\n var params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding: padding,\n availableWidth: availableWidth,\n availableHeight: availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n var maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n var chartArea = Object.assign({\n maxPadding: maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n var stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\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, function (layout) {\n var box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n });\n });\n }\n};\n\nvar BasePlatform = /*#__PURE__*/function () {\n function BasePlatform() {\n _classCallCheck(this, BasePlatform);\n }\n\n _createClass(BasePlatform, [{\n key: \"acquireContext\",\n value: function acquireContext(canvas, aspectRatio) {}\n }, {\n key: \"releaseContext\",\n value: function releaseContext(context) {\n return false;\n }\n }, {\n key: \"addEventListener\",\n value: function addEventListener(chart, type, listener) {}\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(chart, type, listener) {}\n }, {\n key: \"getDevicePixelRatio\",\n value: function getDevicePixelRatio() {\n return 1;\n }\n }, {\n key: \"getMaximumSize\",\n value: function getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width: width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n }, {\n key: \"isAttached\",\n value: function isAttached(canvas) {\n return true;\n }\n }, {\n key: \"updateConfig\",\n value: function updateConfig(config) {}\n }]);\n\n return BasePlatform;\n}();\n\nvar BasicPlatform = /*#__PURE__*/function (_BasePlatform) {\n _inherits(BasicPlatform, _BasePlatform);\n\n var _super10 = _createSuper(BasicPlatform);\n\n function BasicPlatform() {\n _classCallCheck(this, BasicPlatform);\n\n return _super10.apply(this, arguments);\n }\n\n _createClass(BasicPlatform, [{\n key: \"acquireContext\",\n value: function acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n }, {\n key: \"updateConfig\",\n value: function updateConfig(config) {\n config.options.animation = false;\n }\n }]);\n\n return BasicPlatform;\n}(BasePlatform);\n\nvar EXPANDO_KEY = '$chartjs';\nvar 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};\n\nvar isNullOrEmpty = function isNullOrEmpty(value) {\n return value === null || value === '';\n};\n\nfunction initCanvas(canvas, aspectRatio) {\n var style = canvas.style;\n var renderHeight = canvas.getAttribute('height');\n var 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\n if (isNullOrEmpty(renderWidth)) {\n var displayWidth = readUsedSize(canvas, 'width');\n\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n var displayHeight = readUsedSize(canvas, 'height');\n\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n\n return canvas;\n}\n\nvar eventListenerOptions = supportsEventListenerOptions ? {\n passive: true\n} : false;\n\nfunction addListener(node, type, listener) {\n node.addEventListener(type, listener, eventListenerOptions);\n}\n\nfunction removeListener(chart, type, listener) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n}\n\nfunction fromNativeEvent(event, chart) {\n var type = EVENT_TYPES[event.type] || event.type;\n\n var _getRelativePosition = getRelativePosition(event, chart),\n x = _getRelativePosition.x,\n y = _getRelativePosition.y;\n\n return {\n type: type,\n chart: chart,\n \"native\": event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null\n };\n}\n\nfunction nodeListContains(nodeList, canvas) {\n var _iterator8 = _createForOfIteratorHelper(nodeList),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var node = _step8.value;\n\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n}\n\nfunction createAttachObserver(chart, type, listener) {\n var canvas = chart.canvas;\n var observer = new MutationObserver(function (entries) {\n var trigger = false;\n\n var _iterator9 = _createForOfIteratorHelper(entries),\n _step9;\n\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var entry = _step9.value;\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\n\nfunction createDetachObserver(chart, type, listener) {\n var canvas = chart.canvas;\n var observer = new MutationObserver(function (entries) {\n var trigger = false;\n\n var _iterator10 = _createForOfIteratorHelper(entries),\n _step10;\n\n try {\n for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n var entry = _step10.value;\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n } catch (err) {\n _iterator10.e(err);\n } finally {\n _iterator10.f();\n }\n\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\n\nvar drpListeningCharts = new Map();\nvar oldDevicePixelRatio = 0;\n\nfunction onWindowResize() {\n var dpr = window.devicePixelRatio;\n\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach(function (resize, chart) {\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\n\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n\n drpListeningCharts.set(chart, resize);\n}\n\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts[\"delete\"](chart);\n\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\n\nfunction createResizeObserver(chart, type, listener) {\n var canvas = chart.canvas;\n\n var container = canvas && _getParentNode(canvas);\n\n if (!container) {\n return;\n }\n\n var resize = throttled(function (width, height) {\n var w = container.clientWidth;\n listener(width, height);\n\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n var observer = new ResizeObserver(function (entries) {\n var entry = entries[0];\n var width = entry.contentRect.width;\n var height = entry.contentRect.height;\n\n if (width === 0 && height === 0) {\n return;\n }\n\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\n\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\n\nfunction createProxyAndListen(chart, type, listener) {\n var canvas = chart.canvas;\n var proxy = throttled(function (event) {\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart, function (args) {\n var event = args[0];\n return [event, event.offsetX, event.offsetY];\n });\n addListener(canvas, type, proxy);\n return proxy;\n}\n\nvar DomPlatform = /*#__PURE__*/function (_BasePlatform2) {\n _inherits(DomPlatform, _BasePlatform2);\n\n var _super11 = _createSuper(DomPlatform);\n\n function DomPlatform() {\n _classCallCheck(this, DomPlatform);\n\n return _super11.apply(this, arguments);\n }\n\n _createClass(DomPlatform, [{\n key: \"acquireContext\",\n value: function acquireContext(canvas, aspectRatio) {\n var context = canvas && canvas.getContext && canvas.getContext('2d');\n\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n\n return null;\n }\n }, {\n key: \"releaseContext\",\n value: function releaseContext(context) {\n var canvas = context.canvas;\n\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n\n var initial = canvas[EXPANDO_KEY].initial;\n ['height', 'width'].forEach(function (prop) {\n var value = initial[prop];\n\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n var style = initial.style || {};\n Object.keys(style).forEach(function (key) {\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n }, {\n key: \"addEventListener\",\n value: function addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n var proxies = chart.$proxies || (chart.$proxies = {});\n var handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n var handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(chart, type) {\n var proxies = chart.$proxies || (chart.$proxies = {});\n var proxy = proxies[type];\n\n if (!proxy) {\n return;\n }\n\n var handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n var handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n }, {\n key: \"getDevicePixelRatio\",\n value: function getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n }, {\n key: \"getMaximumSize\",\n value: function getMaximumSize(canvas, width, height, aspectRatio) {\n return _getMaximumSize(canvas, width, height, aspectRatio);\n }\n }, {\n key: \"isAttached\",\n value: function isAttached(canvas) {\n var container = _getParentNode(canvas);\n\n return !!(container && container.isConnected);\n }\n }]);\n\n return DomPlatform;\n}(BasePlatform);\n\nfunction _detectPlatform(canvas) {\n if (!_isDomSupported() || typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas) {\n return BasicPlatform;\n }\n\n return DomPlatform;\n}\n\nvar PluginService = /*#__PURE__*/function () {\n function PluginService() {\n _classCallCheck(this, PluginService);\n\n this._init = [];\n }\n\n _createClass(PluginService, [{\n key: \"notify\",\n value: function notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n\n this._notify(this._init, chart, 'install');\n }\n\n var descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n\n var result = this._notify(descriptors, chart, hook, args);\n\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n\n this._notify(this._init, chart, 'uninstall');\n }\n\n return result;\n }\n }, {\n key: \"_notify\",\n value: function _notify(descriptors, chart, hook, args) {\n args = args || {};\n\n var _iterator11 = _createForOfIteratorHelper(descriptors),\n _step11;\n\n try {\n for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n var descriptor = _step11.value;\n var plugin = descriptor.plugin;\n var method = plugin[hook];\n var params = [chart, args, descriptor.options];\n\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n } catch (err) {\n _iterator11.e(err);\n } finally {\n _iterator11.f();\n }\n\n return true;\n }\n }, {\n key: \"invalidate\",\n value: function invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n }, {\n key: \"_descriptors\",\n value: function _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n\n var descriptors = this._cache = this._createDescriptors(chart);\n\n this._notifyStateChanges(chart);\n\n return descriptors;\n }\n }, {\n key: \"_createDescriptors\",\n value: function _createDescriptors(chart, all) {\n var config = chart && chart.config;\n var options = valueOrDefault(config.options && config.options.plugins, {});\n var plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n }, {\n key: \"_notifyStateChanges\",\n value: function _notifyStateChanges(chart) {\n var previousDescriptors = this._oldCache || [];\n var descriptors = this._cache;\n\n var diff = function diff(a, b) {\n return a.filter(function (x) {\n return !b.some(function (y) {\n return x.plugin.id === y.plugin.id;\n });\n });\n };\n\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n }]);\n\n return PluginService;\n}();\n\nfunction allPlugins(config) {\n var localIds = {};\n var plugins = [];\n var keys = Object.keys(registry.plugins.items);\n\n for (var i = 0; i < keys.length; i++) {\n plugins.push(registry.getPlugin(keys[i]));\n }\n\n var local = config.plugins || [];\n\n for (var _i2 = 0; _i2 < local.length; _i2++) {\n var plugin = local[_i2];\n\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n localIds[plugin.id] = true;\n }\n }\n\n return {\n plugins: plugins,\n localIds: localIds\n };\n}\n\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n\n if (options === true) {\n return {};\n }\n\n return options;\n}\n\nfunction createDescriptors(chart, _ref5, options, all) {\n var plugins = _ref5.plugins,\n localIds = _ref5.localIds;\n var result = [];\n var context = chart.getContext();\n\n var _iterator12 = _createForOfIteratorHelper(plugins),\n _step12;\n\n try {\n for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n var plugin = _step12.value;\n var id = plugin.id;\n var opts = getOpts(options[id], all);\n\n if (opts === null) {\n continue;\n }\n\n result.push({\n plugin: plugin,\n options: pluginOpts(chart.config, {\n plugin: plugin,\n local: localIds[id]\n }, opts, context)\n });\n }\n } catch (err) {\n _iterator12.e(err);\n } finally {\n _iterator12.f();\n }\n\n return result;\n}\n\nfunction pluginOpts(config, _ref6, opts, context) {\n var plugin = _ref6.plugin,\n local = _ref6.local;\n var keys = config.pluginScopeKeys(plugin);\n var scopes = config.getOptionScopes(opts, keys);\n\n if (local && plugin.defaults) {\n scopes.push(plugin.defaults);\n }\n\n return config.createResolver(scopes, context, [''], {\n scriptable: false,\n indexable: false,\n allKeys: true\n });\n}\n\nfunction getIndexAxis(type, options) {\n var datasetDefaults = defaults.datasets[type] || {};\n var datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\n\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n var axis = id;\n\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n\n return axis;\n}\n\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\n\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\n\nfunction determineAxis(id, scaleOptions) {\n if (id === 'x' || id === 'y') {\n return id;\n }\n\n return scaleOptions.axis || axisFromPosition(scaleOptions.position) || id.charAt(0).toLowerCase();\n}\n\nfunction mergeScaleConfig(config, options) {\n var chartDefaults = overrides[config.type] || {\n scales: {}\n };\n var configScales = options.scales || {};\n var chartIndexAxis = getIndexAxis(config.type, options);\n var firstIDs = Object.create(null);\n var scales = Object.create(null);\n Object.keys(configScales).forEach(function (id) {\n var scaleConf = configScales[id];\n\n if (!isObject(scaleConf)) {\n return console.error(\"Invalid scale configuration for scale: \".concat(id));\n }\n\n if (scaleConf._proxy) {\n return console.warn(\"Ignoring resolver passed as options for scale: \".concat(id));\n }\n\n var axis = determineAxis(id, scaleConf);\n var defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n var defaultScaleOptions = chartDefaults.scales || {};\n firstIDs[axis] = firstIDs[axis] || id;\n scales[id] = mergeIf(Object.create(null), [{\n axis: axis\n }, scaleConf, defaultScaleOptions[axis], defaultScaleOptions[defaultId]]);\n });\n config.data.datasets.forEach(function (dataset) {\n var type = dataset.type || config.type;\n var indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n var datasetDefaults = overrides[type] || {};\n var defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach(function (defaultID) {\n var axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n var id = dataset[axis + 'AxisID'] || firstIDs[axis] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [{\n axis: axis\n }, configScales[id], defaultScaleOptions[defaultID]]);\n });\n });\n Object.keys(scales).forEach(function (key) {\n var scale = scales[key];\n mergeIf(scale, [defaults.scales[scale.type], defaults.scale]);\n });\n return scales;\n}\n\nfunction initOptions(config) {\n var options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\n\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\n\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\n\nvar keyCache = new Map();\nvar keysCached = new Set();\n\nfunction cachedKeys(cacheKey, generate) {\n var keys = keyCache.get(cacheKey);\n\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n\n return keys;\n}\n\nvar addIfFound = function addIfFound(set, obj, key) {\n var opts = resolveObjectKey(obj, key);\n\n if (opts !== undefined) {\n set.add(opts);\n }\n};\n\nvar Config = /*#__PURE__*/function () {\n function Config(config) {\n _classCallCheck(this, Config);\n\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n\n _createClass(Config, [{\n key: \"platform\",\n get: function get() {\n return this._config.platform;\n }\n }, {\n key: \"type\",\n get: function get() {\n return this._config.type;\n },\n set: function set(type) {\n this._config.type = type;\n }\n }, {\n key: \"data\",\n get: function get() {\n return this._config.data;\n },\n set: function set(data) {\n this._config.data = initData(data);\n }\n }, {\n key: \"options\",\n get: function get() {\n return this._config.options;\n },\n set: function set(options) {\n this._config.options = options;\n }\n }, {\n key: \"plugins\",\n get: function get() {\n return this._config.plugins;\n }\n }, {\n key: \"update\",\n value: function update() {\n var config = this._config;\n this.clearCache();\n initOptions(config);\n }\n }, {\n key: \"clearCache\",\n value: function clearCache() {\n this._scopeCache.clear();\n\n this._resolverCache.clear();\n }\n }, {\n key: \"datasetScopeKeys\",\n value: function datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType, function () {\n return [[\"datasets.\".concat(datasetType), '']];\n });\n }\n }, {\n key: \"datasetAnimationScopeKeys\",\n value: function datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(\"\".concat(datasetType, \".transition.\").concat(transition), function () {\n return [[\"datasets.\".concat(datasetType, \".transitions.\").concat(transition), \"transitions.\".concat(transition)], [\"datasets.\".concat(datasetType), '']];\n });\n }\n }, {\n key: \"datasetElementScopeKeys\",\n value: function datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(\"\".concat(datasetType, \"-\").concat(elementType), function () {\n return [[\"datasets.\".concat(datasetType, \".elements.\").concat(elementType), \"datasets.\".concat(datasetType), \"elements.\".concat(elementType), '']];\n });\n }\n }, {\n key: \"pluginScopeKeys\",\n value: function pluginScopeKeys(plugin) {\n var id = plugin.id;\n var type = this.type;\n return cachedKeys(\"\".concat(type, \"-plugin-\").concat(id), function () {\n return [[\"plugins.\".concat(id)].concat(_toConsumableArray(plugin.additionalOptionScopes || []))];\n });\n }\n }, {\n key: \"_cachedScopes\",\n value: function _cachedScopes(mainScope, resetCache) {\n var _scopeCache = this._scopeCache;\n\n var cache = _scopeCache.get(mainScope);\n\n if (!cache || resetCache) {\n cache = new Map();\n\n _scopeCache.set(mainScope, cache);\n }\n\n return cache;\n }\n }, {\n key: \"getOptionScopes\",\n value: function getOptionScopes(mainScope, keyLists, resetCache) {\n var options = this.options,\n type = this.type;\n\n var cache = this._cachedScopes(mainScope, resetCache);\n\n var cached = cache.get(keyLists);\n\n if (cached) {\n return cached;\n }\n\n var scopes = new Set();\n keyLists.forEach(function (keys) {\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach(function (key) {\n return addIfFound(scopes, mainScope, key);\n });\n }\n\n keys.forEach(function (key) {\n return addIfFound(scopes, options, key);\n });\n keys.forEach(function (key) {\n return addIfFound(scopes, overrides[type] || {}, key);\n });\n keys.forEach(function (key) {\n return addIfFound(scopes, defaults, key);\n });\n keys.forEach(function (key) {\n return addIfFound(scopes, descriptors, key);\n });\n });\n var array = Array.from(scopes);\n\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n\n return array;\n }\n }, {\n key: \"chartOptionScopes\",\n value: function chartOptionScopes() {\n var options = this.options,\n type = this.type;\n return [options, overrides[type] || {}, defaults.datasets[type] || {}, {\n type: type\n }, defaults, descriptors];\n }\n }, {\n key: \"resolveNamedOptions\",\n value: function resolveNamedOptions(scopes, names, context) {\n var prefixes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [''];\n var result = {\n $shared: true\n };\n\n var _getResolver = getResolver(this._resolverCache, scopes, prefixes),\n resolver = _getResolver.resolver,\n subPrefixes = _getResolver.subPrefixes;\n\n var options = resolver;\n\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n var subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n\n var _iterator13 = _createForOfIteratorHelper(names),\n _step13;\n\n try {\n for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n var prop = _step13.value;\n result[prop] = options[prop];\n }\n } catch (err) {\n _iterator13.e(err);\n } finally {\n _iterator13.f();\n }\n\n return result;\n }\n }, {\n key: \"createResolver\",\n value: function createResolver(scopes, context) {\n var prefixes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [''];\n var descriptorDefaults = arguments.length > 3 ? arguments[3] : undefined;\n\n var _getResolver2 = getResolver(this._resolverCache, scopes, prefixes),\n resolver = _getResolver2.resolver;\n\n return isObject(context) ? _attachContext(resolver, context, undefined, descriptorDefaults) : resolver;\n }\n }]);\n\n return Config;\n}();\n\nfunction getResolver(resolverCache, scopes, prefixes) {\n var cache = resolverCache.get(scopes);\n\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n\n var cacheKey = prefixes.join();\n var cached = cache.get(cacheKey);\n\n if (!cached) {\n var resolver = _createResolver(scopes, prefixes);\n\n cached = {\n resolver: resolver,\n subPrefixes: prefixes.filter(function (p) {\n return !p.toLowerCase().includes('hover');\n })\n };\n cache.set(cacheKey, cached);\n }\n\n return cached;\n}\n\nvar hasFunction = function hasFunction(value) {\n return isObject(value) && Object.getOwnPropertyNames(value).reduce(function (acc, key) {\n return acc || isFunction(value[key]);\n }, false);\n};\n\nfunction needContext(proxy, names) {\n var _descriptors2 = _descriptors(proxy),\n isScriptable = _descriptors2.isScriptable,\n isIndexable = _descriptors2.isIndexable;\n\n var _iterator14 = _createForOfIteratorHelper(names),\n _step14;\n\n try {\n for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {\n var prop = _step14.value;\n var scriptable = isScriptable(prop);\n var indexable = isIndexable(prop);\n var value = (indexable || scriptable) && proxy[prop];\n\n if (scriptable && (isFunction(value) || hasFunction(value)) || indexable && isArray(value)) {\n return true;\n }\n }\n } catch (err) {\n _iterator14.e(err);\n } finally {\n _iterator14.f();\n }\n\n return false;\n}\n\nvar version = \"3.9.1\";\nvar KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];\n\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x';\n}\n\nfunction compare2Level(l1, l2) {\n return function (a, b) {\n return a[l1] === b[l1] ? a[l2] - b[l2] : a[l1] - b[l1];\n };\n}\n\nfunction onAnimationsComplete(context) {\n var chart = context.chart;\n var animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [context], chart);\n}\n\nfunction onAnimationProgress(context) {\n var chart = context.chart;\n var animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [context], chart);\n}\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\n if (item && item.canvas) {\n item = item.canvas;\n }\n\n return item;\n}\n\nvar instances = {};\n\nvar getChart = function getChart(key) {\n var canvas = getCanvas(key);\n return Object.values(instances).filter(function (c) {\n return c.canvas === canvas;\n }).pop();\n};\n\nfunction moveNumericKeys(obj, start, move) {\n var keys = Object.keys(obj);\n\n for (var _i3 = 0, _keys = keys; _i3 < _keys.length; _i3++) {\n var key = _keys[_i3];\n var intKey = +key;\n\n if (intKey >= start) {\n var value = obj[key];\n delete obj[key];\n\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\n\nfunction determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n\n if (isClick) {\n return lastEvent;\n }\n\n return e;\n}\n\nvar Chart = /*#__PURE__*/function () {\n function Chart(item, userConfig) {\n var _this12 = this;\n\n _classCallCheck(this, Chart);\n\n var config = this.config = new Config(userConfig);\n var initialCanvas = getCanvas(item);\n var existingChart = getChart(initialCanvas);\n\n if (existingChart) {\n throw new Error('Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' + ' must be destroyed before the canvas with ID \\'' + existingChart.canvas.id + '\\' can be reused.');\n }\n\n var options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n var context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n var canvas = context && context.canvas;\n var height = canvas && canvas.height;\n var 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(function (mode) {\n return _this12.update(mode);\n }, options.resizeDelay || 0);\n this._dataChanges = [];\n instances[this.id] = this;\n\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n\n this._initialize();\n\n if (this.attached) {\n this.update();\n }\n }\n\n _createClass(Chart, [{\n key: \"aspectRatio\",\n get: function get() {\n var _this$options11 = this.options,\n aspectRatio = _this$options11.aspectRatio,\n maintainAspectRatio = _this$options11.maintainAspectRatio,\n width = this.width,\n height = this.height,\n _aspectRatio = this._aspectRatio;\n\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n\n return height ? width / height : null;\n }\n }, {\n key: \"data\",\n get: function get() {\n return this.config.data;\n },\n set: function set(data) {\n this.config.data = data;\n }\n }, {\n key: \"options\",\n get: function get() {\n return this._options;\n },\n set: function set(options) {\n this.config.options = options;\n }\n }, {\n key: \"_initialize\",\n value: function _initialize() {\n this.notifyPlugins('beforeInit');\n\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n }, {\n key: \"stop\",\n value: function stop() {\n animator.stop(this);\n return this;\n }\n }, {\n key: \"resize\",\n value: function resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {\n width: width,\n height: height\n };\n }\n }\n }, {\n key: \"_resize\",\n value: function _resize(width, height) {\n var options = this.options;\n var canvas = this.canvas;\n var aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n var newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n var newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n var mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n\n this.notifyPlugins('resize', {\n size: newSize\n });\n callback(options.onResize, [this, newSize], this);\n\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n }, {\n key: \"ensureScalesHaveIDs\",\n value: function ensureScalesHaveIDs() {\n var options = this.options;\n var scalesOptions = options.scales || {};\n each(scalesOptions, function (axisOptions, axisID) {\n axisOptions.id = axisID;\n });\n }\n }, {\n key: \"buildOrUpdateScales\",\n value: function buildOrUpdateScales() {\n var _this13 = this;\n\n var options = this.options;\n var scaleOpts = options.scales;\n var scales = this.scales;\n var updated = Object.keys(scales).reduce(function (obj, id) {\n obj[id] = false;\n return obj;\n }, {});\n var items = [];\n\n if (scaleOpts) {\n items = items.concat(Object.keys(scaleOpts).map(function (id) {\n var scaleOptions = scaleOpts[id];\n var axis = determineAxis(id, scaleOptions);\n var isRadial = axis === 'r';\n var 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, function (item) {\n var scaleOptions = item.options;\n var id = scaleOptions.id;\n var axis = determineAxis(id, scaleOptions);\n var scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n\n updated[id] = true;\n var scale = null;\n\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n var scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id: id,\n type: scaleType,\n ctx: _this13.ctx,\n chart: _this13\n });\n scales[scale.id] = scale;\n }\n\n scale.init(scaleOptions, options);\n });\n each(updated, function (hasUpdated, id) {\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, function (scale) {\n layouts.configure(_this13, scale, scale.options);\n layouts.addBox(_this13, scale);\n });\n }\n }, {\n key: \"_updateMetasets\",\n value: function _updateMetasets() {\n var metasets = this._metasets;\n var numData = this.data.datasets.length;\n var numMeta = metasets.length;\n metasets.sort(function (a, b) {\n return a.index - b.index;\n });\n\n if (numMeta > numData) {\n for (var i = numData; i < numMeta; ++i) {\n this._destroyDatasetMeta(i);\n }\n\n metasets.splice(numData, numMeta - numData);\n }\n\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n }, {\n key: \"_removeUnreferencedMetasets\",\n value: function _removeUnreferencedMetasets() {\n var _this14 = this;\n\n var metasets = this._metasets,\n datasets = this.data.datasets;\n\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n\n metasets.forEach(function (meta, index) {\n if (datasets.filter(function (x) {\n return x === meta._dataset;\n }).length === 0) {\n _this14._destroyDatasetMeta(index);\n }\n });\n }\n }, {\n key: \"buildOrUpdateControllers\",\n value: function buildOrUpdateControllers() {\n var newControllers = [];\n var datasets = this.data.datasets;\n var i, ilen;\n\n this._removeUnreferencedMetasets();\n\n for (i = 0, ilen = datasets.length; i < ilen; i++) {\n var dataset = datasets[i];\n var meta = this.getDatasetMeta(i);\n var type = dataset.type || this.config.type;\n\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n\n meta = this.getDatasetMeta(i);\n }\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\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n var ControllerClass = registry.getController(type);\n var _defaults$datasets$ty = defaults.datasets[type],\n datasetElementType = _defaults$datasets$ty.datasetElementType,\n dataElementType = _defaults$datasets$ty.dataElementType;\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\n this._updateMetasets();\n\n return newControllers;\n }\n }, {\n key: \"_resetElements\",\n value: function _resetElements() {\n var _this15 = this;\n\n each(this.data.datasets, function (dataset, datasetIndex) {\n _this15.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this._resetElements();\n\n this.notifyPlugins('reset');\n }\n }, {\n key: \"update\",\n value: function update(mode) {\n var config = this.config;\n config.update();\n var options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n var animsDisabled = this._animationsDisabled = !options.animation;\n\n this._updateScales();\n\n this._checkEventBindings();\n\n this._updateHiddenIndices();\n\n this._plugins.invalidate();\n\n if (this.notifyPlugins('beforeUpdate', {\n mode: mode,\n cancelable: true\n }) === false) {\n return;\n }\n\n var newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n var minPadding = 0;\n\n for (var i = 0, ilen = this.data.datasets.length; i < ilen; i++) {\n var _this$getDatasetMeta = this.getDatasetMeta(i),\n controller = _this$getDatasetMeta.controller;\n\n var reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n\n this._updateLayout(minPadding);\n\n if (!animsDisabled) {\n each(newControllers, function (controller) {\n controller.reset();\n });\n }\n\n this._updateDatasets(mode);\n\n this.notifyPlugins('afterUpdate', {\n mode: mode\n });\n\n this._layers.sort(compare2Level('z', '_idx'));\n\n var _active = this._active,\n _lastEvent = this._lastEvent;\n\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n\n this.render();\n }\n }, {\n key: \"_updateScales\",\n value: function _updateScales() {\n var _this16 = this;\n\n each(this.scales, function (scale) {\n layouts.removeBox(_this16, scale);\n });\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n }, {\n key: \"_checkEventBindings\",\n value: function _checkEventBindings() {\n var options = this.options;\n var existingEvents = new Set(Object.keys(this._listeners));\n var newEvents = new Set(options.events);\n\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n }\n }, {\n key: \"_updateHiddenIndices\",\n value: function _updateHiddenIndices() {\n var _hiddenIndices = this._hiddenIndices;\n var changes = this._getUniformDataChanges() || [];\n\n var _iterator15 = _createForOfIteratorHelper(changes),\n _step15;\n\n try {\n for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {\n var _ref8 = _step15.value;\n var method = _ref8.method;\n var start = _ref8.start;\n var count = _ref8.count;\n var move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n } catch (err) {\n _iterator15.e(err);\n } finally {\n _iterator15.f();\n }\n }\n }, {\n key: \"_getUniformDataChanges\",\n value: function _getUniformDataChanges() {\n var _dataChanges = this._dataChanges;\n\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n\n this._dataChanges = [];\n var datasetCount = this.data.datasets.length;\n\n var makeSet = function makeSet(idx) {\n return new Set(_dataChanges.filter(function (c) {\n return c[0] === idx;\n }).map(function (c, i) {\n return i + ',' + c.splice(1).join(',');\n }));\n };\n\n var changeSet = makeSet(0);\n\n for (var i = 1; i < datasetCount; i++) {\n if (!setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n\n return Array.from(changeSet).map(function (c) {\n return c.split(',');\n }).map(function (a) {\n return {\n method: a[1],\n start: +a[2],\n count: +a[3]\n };\n });\n }\n }, {\n key: \"_updateLayout\",\n value: function _updateLayout(minPadding) {\n var _this17 = this;\n\n if (this.notifyPlugins('beforeLayout', {\n cancelable: true\n }) === false) {\n return;\n }\n\n layouts.update(this, this.width, this.height, minPadding);\n var area = this.chartArea;\n var noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n each(this.boxes, function (box) {\n var _this17$_layers;\n\n if (noArea && box.position === 'chartArea') {\n return;\n }\n\n if (box.configure) {\n box.configure();\n }\n\n (_this17$_layers = _this17._layers).push.apply(_this17$_layers, _toConsumableArray(box._layers()));\n }, this);\n\n this._layers.forEach(function (item, index) {\n item._idx = index;\n });\n\n this.notifyPlugins('afterLayout');\n }\n }, {\n key: \"_updateDatasets\",\n value: function _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {\n mode: mode,\n cancelable: true\n }) === false) {\n return;\n }\n\n for (var i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this.getDatasetMeta(i).controller.configure();\n }\n\n for (var _i4 = 0, _ilen = this.data.datasets.length; _i4 < _ilen; ++_i4) {\n this._updateDataset(_i4, isFunction(mode) ? mode({\n datasetIndex: _i4\n }) : mode);\n }\n\n this.notifyPlugins('afterDatasetsUpdate', {\n mode: mode\n });\n }\n }, {\n key: \"_updateDataset\",\n value: function _updateDataset(index, mode) {\n var meta = this.getDatasetMeta(index);\n var args = {\n meta: meta,\n index: index,\n mode: mode,\n cancelable: true\n };\n\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n\n meta.controller._update(mode);\n\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n }, {\n key: \"render\",\n value: function render() {\n if (this.notifyPlugins('beforeRender', {\n cancelable: true\n }) === false) {\n return;\n }\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({\n chart: this\n });\n }\n }\n }, {\n key: \"draw\",\n value: function draw() {\n var i;\n\n if (this._resizeBeforeDraw) {\n var _this$_resizeBeforeDr = this._resizeBeforeDraw,\n width = _this$_resizeBeforeDr.width,\n height = _this$_resizeBeforeDr.height;\n\n this._resize(width, height);\n\n this._resizeBeforeDraw = null;\n }\n\n this.clear();\n\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n\n if (this.notifyPlugins('beforeDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n\n var layers = this._layers;\n\n for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n layers[i].draw(this.chartArea);\n }\n\n this._drawDatasets();\n\n for (; i < layers.length; ++i) {\n layers[i].draw(this.chartArea);\n }\n\n this.notifyPlugins('afterDraw');\n }\n }, {\n key: \"_getSortedDatasetMetas\",\n value: function _getSortedDatasetMetas(filterVisible) {\n var metasets = this._sortedMetasets;\n var result = [];\n var i, ilen;\n\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n var meta = metasets[i];\n\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n\n return result;\n }\n }, {\n key: \"getSortedVisibleDatasetMetas\",\n value: function getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n }, {\n key: \"_drawDatasets\",\n value: function _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n\n var metasets = this.getSortedVisibleDatasetMetas();\n\n for (var i = metasets.length - 1; i >= 0; --i) {\n this._drawDataset(metasets[i]);\n }\n\n this.notifyPlugins('afterDatasetsDraw');\n }\n }, {\n key: \"_drawDataset\",\n value: function _drawDataset(meta) {\n var ctx = this.ctx;\n var clip = meta._clip;\n var useClip = !clip.disabled;\n var area = this.chartArea;\n var args = {\n meta: meta,\n index: meta.index,\n cancelable: true\n };\n\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\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\n meta.controller.draw();\n\n if (useClip) {\n unclipArea(ctx);\n }\n\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n }, {\n key: \"isPointInArea\",\n value: function isPointInArea(point) {\n return _isPointInArea(point, this.chartArea, this._minPadding);\n }\n }, {\n key: \"getElementsAtEventForMode\",\n value: function getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n var method = Interaction.modes[mode];\n\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n\n return [];\n }\n }, {\n key: \"getDatasetMeta\",\n value: function getDatasetMeta(datasetIndex) {\n var dataset = this.data.datasets[datasetIndex];\n var metasets = this._metasets;\n var meta = metasets.filter(function (x) {\n return x && x._dataset === dataset;\n }).pop();\n\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\n return meta;\n }\n }, {\n key: \"getContext\",\n value: function getContext() {\n return this.$context || (this.$context = createContext(null, {\n chart: this,\n type: 'chart'\n }));\n }\n }, {\n key: \"getVisibleDatasetCount\",\n value: function getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n }, {\n key: \"isDatasetVisible\",\n value: function isDatasetVisible(datasetIndex) {\n var dataset = this.data.datasets[datasetIndex];\n\n if (!dataset) {\n return false;\n }\n\n var meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n }, {\n key: \"setDatasetVisibility\",\n value: function setDatasetVisibility(datasetIndex, visible) {\n var meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n }, {\n key: \"toggleDataVisibility\",\n value: function toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n }, {\n key: \"getDataVisibility\",\n value: function getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n }, {\n key: \"_updateVisibility\",\n value: function _updateVisibility(datasetIndex, dataIndex, visible) {\n var mode = visible ? 'show' : 'hide';\n var meta = this.getDatasetMeta(datasetIndex);\n\n var anims = meta.controller._resolveAnimations(undefined, mode);\n\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {\n visible: visible\n });\n this.update(function (ctx) {\n return ctx.datasetIndex === datasetIndex ? mode : undefined;\n });\n }\n }\n }, {\n key: \"hide\",\n value: function hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n }, {\n key: \"show\",\n value: function show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n }, {\n key: \"_destroyDatasetMeta\",\n value: function _destroyDatasetMeta(datasetIndex) {\n var meta = this._metasets[datasetIndex];\n\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n\n delete this._metasets[datasetIndex];\n }\n }, {\n key: \"_stop\",\n value: function _stop() {\n var i, ilen;\n this.stop();\n animator.remove(this);\n\n for (i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._destroyDatasetMeta(i);\n }\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.notifyPlugins('beforeDestroy');\n var canvas = this.canvas,\n ctx = this.ctx;\n\n this._stop();\n\n this.config.clearCache();\n\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\n this.notifyPlugins('destroy');\n delete instances[this.id];\n this.notifyPlugins('afterDestroy');\n }\n }, {\n key: \"toBase64Image\",\n value: function toBase64Image() {\n var _this$canvas;\n\n return (_this$canvas = this.canvas).toDataURL.apply(_this$canvas, arguments);\n }\n }, {\n key: \"bindEvents\",\n value: function bindEvents() {\n this.bindUserEvents();\n\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n }, {\n key: \"bindUserEvents\",\n value: function bindUserEvents() {\n var _this18 = this;\n\n var listeners = this._listeners;\n var platform = this.platform;\n\n var _add = function _add(type, listener) {\n platform.addEventListener(_this18, type, listener);\n listeners[type] = listener;\n };\n\n var listener = function listener(e, x, y) {\n e.offsetX = x;\n e.offsetY = y;\n\n _this18._eventHandler(e);\n };\n\n each(this.options.events, function (type) {\n return _add(type, listener);\n });\n }\n }, {\n key: \"bindResponsiveEvents\",\n value: function bindResponsiveEvents() {\n var _this19 = this;\n\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n\n var listeners = this._responsiveListeners;\n var platform = this.platform;\n\n var _add = function _add(type, listener) {\n platform.addEventListener(_this19, type, listener);\n listeners[type] = listener;\n };\n\n var _remove = function _remove(type, listener) {\n if (listeners[type]) {\n platform.removeEventListener(_this19, type, listener);\n delete listeners[type];\n }\n };\n\n var listener = function listener(width, height) {\n if (_this19.canvas) {\n _this19.resize(width, height);\n }\n };\n\n var detached;\n\n var attached = function attached() {\n _remove('attach', attached);\n\n _this19.attached = true;\n\n _this19.resize();\n\n _add('resize', listener);\n\n _add('detach', detached);\n };\n\n detached = function detached() {\n _this19.attached = false;\n\n _remove('resize', listener);\n\n _this19._stop();\n\n _this19._resize(0, 0);\n\n _add('attach', attached);\n };\n\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n }, {\n key: \"unbindEvents\",\n value: function unbindEvents() {\n var _this20 = this;\n\n each(this._listeners, function (listener, type) {\n _this20.platform.removeEventListener(_this20, type, listener);\n });\n this._listeners = {};\n each(this._responsiveListeners, function (listener, type) {\n _this20.platform.removeEventListener(_this20, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n }, {\n key: \"updateHoverStyle\",\n value: function updateHoverStyle(items, mode, enabled) {\n var prefix = enabled ? 'set' : 'remove';\n var meta, item, i, ilen;\n\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n item = items[i];\n var controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n }, {\n key: \"getActiveElements\",\n value: function getActiveElements() {\n return this._active || [];\n }\n }, {\n key: \"setActiveElements\",\n value: function setActiveElements(activeElements) {\n var _this21 = this;\n\n var lastActive = this._active || [];\n var active = activeElements.map(function (_ref9) {\n var datasetIndex = _ref9.datasetIndex,\n index = _ref9.index;\n\n var meta = _this21.getDatasetMeta(datasetIndex);\n\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n\n return {\n datasetIndex: datasetIndex,\n element: meta.data[index],\n index: index\n };\n });\n var changed = !_elementsEqual(active, lastActive);\n\n if (changed) {\n this._active = active;\n this._lastEvent = null;\n\n this._updateHoverStyles(active, lastActive);\n }\n }\n }, {\n key: \"notifyPlugins\",\n value: function notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n }, {\n key: \"_updateHoverStyles\",\n value: function _updateHoverStyles(active, lastActive, replay) {\n var hoverOptions = this.options.hover;\n\n var diff = function diff(a, b) {\n return a.filter(function (x) {\n return !b.some(function (y) {\n return x.datasetIndex === y.datasetIndex && x.index === y.index;\n });\n });\n };\n\n var deactivated = diff(lastActive, active);\n var activated = replay ? active : diff(active, lastActive);\n\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n }, {\n key: \"_eventHandler\",\n value: function _eventHandler(e, replay) {\n var _this22 = this;\n\n var args = {\n event: e,\n replay: replay,\n cancelable: true,\n inChartArea: this.isPointInArea(e)\n };\n\n var eventFilter = function eventFilter(plugin) {\n return (plugin.options.events || _this22.options.events).includes(e[\"native\"].type);\n };\n\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n\n var changed = this._handleEvent(e, replay, args.inChartArea);\n\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n\n if (changed || args.changed) {\n this.render();\n }\n\n return this;\n }\n }, {\n key: \"_handleEvent\",\n value: function _handleEvent(e, replay, inChartArea) {\n var _this$_active = this._active,\n lastActive = _this$_active === void 0 ? [] : _this$_active,\n options = this.options;\n var useFinalPosition = replay;\n\n var active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n\n var isClick = _isClickEvent(e);\n\n var lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n\n if (inChartArea) {\n this._lastEvent = null;\n callback(options.onHover, [e, active, this], this);\n\n if (isClick) {\n callback(options.onClick, [e, active, this], this);\n }\n }\n\n var changed = !_elementsEqual(active, lastActive);\n\n if (changed || replay) {\n this._active = active;\n\n this._updateHoverStyles(active, lastActive, replay);\n }\n\n this._lastEvent = lastEvent;\n return changed;\n }\n }, {\n key: \"_getActiveElements\",\n value: function _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n\n if (!inChartArea) {\n return lastActive;\n }\n\n var hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n }]);\n\n return Chart;\n}();\n\nvar invalidatePlugins = function invalidatePlugins() {\n return each(Chart.instances, function (chart) {\n return chart._plugins.invalidate();\n });\n};\n\nvar enumerable = true;\nObject.defineProperties(Chart, {\n defaults: {\n enumerable: enumerable,\n value: defaults\n },\n instances: {\n enumerable: enumerable,\n value: instances\n },\n overrides: {\n enumerable: enumerable,\n value: overrides\n },\n registry: {\n enumerable: enumerable,\n value: registry\n },\n version: {\n enumerable: enumerable,\n value: version\n },\n getChart: {\n enumerable: enumerable,\n value: getChart\n },\n register: {\n enumerable: enumerable,\n value: function value() {\n registry.add.apply(registry, arguments);\n invalidatePlugins();\n }\n },\n unregister: {\n enumerable: enumerable,\n value: function value() {\n registry.remove.apply(registry, arguments);\n invalidatePlugins();\n }\n }\n});\n\nfunction clipArc(ctx, element, endAngle) {\n var startAngle = element.startAngle,\n pixelMargin = element.pixelMargin,\n x = element.x,\n y = element.y,\n outerRadius = element.outerRadius,\n innerRadius = element.innerRadius;\n var angleMargin = pixelMargin / outerRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n\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\n ctx.closePath();\n ctx.clip();\n}\n\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);\n}\n\nfunction parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n var o = toRadiusCorners(arc.options.borderRadius);\n var halfThickness = (outerRadius - innerRadius) / 2;\n var innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n\n var computeOuterLimit = function computeOuterLimit(val) {\n var outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\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}\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}\n\nfunction pathArc(ctx, element, offset, spacing, end, circular) {\n var x = element.x,\n y = element.y,\n start = element.startAngle,\n pixelMargin = element.pixelMargin,\n innerR = element.innerRadius;\n var outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n var innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n var spacingOffset = 0;\n var alpha = end - start;\n\n if (spacing) {\n var noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n var noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n var avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n var adjustedAngle = avNogSpacingRadius !== 0 ? alpha * avNogSpacingRadius / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n\n var beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n var angleOffset = (alpha - beta) / 2;\n var startAngle = start + angleOffset + spacingOffset;\n var endAngle = end - angleOffset - spacingOffset;\n\n var _parseBorderRadius$ = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle),\n outerStart = _parseBorderRadius$.outerStart,\n outerEnd = _parseBorderRadius$.outerEnd,\n innerStart = _parseBorderRadius$.innerStart,\n innerEnd = _parseBorderRadius$.innerEnd;\n\n var outerStartAdjustedRadius = outerRadius - outerStart;\n var outerEndAdjustedRadius = outerRadius - outerEnd;\n var outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n var outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n var innerStartAdjustedRadius = innerRadius + innerStart;\n var innerEndAdjustedRadius = innerRadius + innerEnd;\n var innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n var innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n\n if (circular) {\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerEndAdjustedAngle);\n\n if (outerEnd > 0) {\n var pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n\n var p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n\n if (innerEnd > 0) {\n var _pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n\n ctx.arc(_pCenter.x, _pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n\n ctx.arc(x, y, innerRadius, endAngle - innerEnd / innerRadius, startAngle + innerStart / innerRadius, true);\n\n if (innerStart > 0) {\n var _pCenter2 = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n\n ctx.arc(_pCenter2.x, _pCenter2.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n\n var p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n\n if (outerStart > 0) {\n var _pCenter3 = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n\n ctx.arc(_pCenter3.x, _pCenter3.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n } else {\n ctx.moveTo(x, y);\n var outerStartX = Math.cos(outerStartAdjustedAngle) * outerRadius + x;\n var outerStartY = Math.sin(outerStartAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerStartX, outerStartY);\n var outerEndX = Math.cos(outerEndAdjustedAngle) * outerRadius + x;\n var outerEndY = Math.sin(outerEndAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerEndX, outerEndY);\n }\n\n ctx.closePath();\n}\n\nfunction drawArc(ctx, element, offset, spacing, circular) {\n var fullCircles = element.fullCircles,\n startAngle = element.startAngle,\n circumference = element.circumference;\n var endAngle = element.endAngle;\n\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, startAngle + TAU, circular);\n\n for (var i = 0; i < fullCircles; ++i) {\n ctx.fill();\n }\n\n if (!isNaN(circumference)) {\n endAngle = startAngle + circumference % TAU;\n\n if (circumference % TAU === 0) {\n endAngle += TAU;\n }\n }\n }\n\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.fill();\n return endAngle;\n}\n\nfunction drawFullCircleBorders(ctx, element, inner) {\n var x = element.x,\n y = element.y,\n startAngle = element.startAngle,\n pixelMargin = element.pixelMargin,\n fullCircles = element.fullCircles;\n var outerRadius = Math.max(element.outerRadius - pixelMargin, 0);\n var innerRadius = element.innerRadius + pixelMargin;\n var i;\n\n if (inner) {\n clipArc(ctx, element, startAngle + TAU);\n }\n\n ctx.beginPath();\n ctx.arc(x, y, innerRadius, startAngle + TAU, startAngle, true);\n\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle, startAngle + TAU);\n\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n}\n\nfunction drawBorder(ctx, element, offset, spacing, endAngle, circular) {\n var options = element.options;\n var borderWidth = options.borderWidth,\n borderJoinStyle = options.borderJoinStyle;\n var inner = options.borderAlign === 'inner';\n\n if (!borderWidth) {\n return;\n }\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\n if (element.fullCircles) {\n drawFullCircleBorders(ctx, element, inner);\n }\n\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.stroke();\n}\n\nvar ArcElement = /*#__PURE__*/function (_Element2) {\n _inherits(ArcElement, _Element2);\n\n var _super12 = _createSuper(ArcElement);\n\n function ArcElement(cfg) {\n var _this23;\n\n _classCallCheck(this, ArcElement);\n\n _this23 = _super12.call(this);\n _this23.options = undefined;\n _this23.circumference = undefined;\n _this23.startAngle = undefined;\n _this23.endAngle = undefined;\n _this23.innerRadius = undefined;\n _this23.outerRadius = undefined;\n _this23.pixelMargin = 0;\n _this23.fullCircles = 0;\n\n if (cfg) {\n Object.assign(_assertThisInitialized(_this23), cfg);\n }\n\n return _this23;\n }\n\n _createClass(ArcElement, [{\n key: \"inRange\",\n value: function inRange(chartX, chartY, useFinalPosition) {\n var point = this.getProps(['x', 'y'], useFinalPosition);\n\n var _getAngleFromPoint2 = getAngleFromPoint(point, {\n x: chartX,\n y: chartY\n }),\n angle = _getAngleFromPoint2.angle,\n distance = _getAngleFromPoint2.distance;\n\n var _this$getProps2 = this.getProps(['startAngle', 'endAngle', 'innerRadius', 'outerRadius', 'circumference'], useFinalPosition),\n startAngle = _this$getProps2.startAngle,\n endAngle = _this$getProps2.endAngle,\n innerRadius = _this$getProps2.innerRadius,\n outerRadius = _this$getProps2.outerRadius,\n circumference = _this$getProps2.circumference;\n\n var rAdjust = this.options.spacing / 2;\n\n var _circumference = valueOrDefault(circumference, endAngle - startAngle);\n\n var betweenAngles = _circumference >= TAU || _angleBetween(angle, startAngle, endAngle);\n\n var withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n\n return betweenAngles && withinRadius;\n }\n }, {\n key: \"getCenterPoint\",\n value: function getCenterPoint(useFinalPosition) {\n var _this$getProps3 = this.getProps(['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius', 'circumference'], useFinalPosition),\n x = _this$getProps3.x,\n y = _this$getProps3.y,\n startAngle = _this$getProps3.startAngle,\n endAngle = _this$getProps3.endAngle,\n innerRadius = _this$getProps3.innerRadius,\n outerRadius = _this$getProps3.outerRadius;\n\n var _this$options12 = this.options,\n offset = _this$options12.offset,\n spacing = _this$options12.spacing;\n var halfAngle = (startAngle + endAngle) / 2;\n var 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 }, {\n key: \"tooltipPosition\",\n value: function tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n }, {\n key: \"draw\",\n value: function draw(ctx) {\n var options = this.options,\n circumference = this.circumference;\n var offset = (options.offset || 0) / 2;\n var spacing = (options.spacing || 0) / 2;\n var circular = options.circular;\n this.pixelMargin = options.borderAlign === 'inner' ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n\n ctx.save();\n var radiusOffset = 0;\n\n if (offset) {\n radiusOffset = offset / 2;\n var halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * radiusOffset, Math.sin(halfAngle) * radiusOffset);\n\n if (this.circumference >= PI) {\n radiusOffset = offset;\n }\n }\n\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n var endAngle = drawArc(ctx, this, radiusOffset, spacing, circular);\n drawBorder(ctx, this, radiusOffset, spacing, endAngle, circular);\n ctx.restore();\n }\n }]);\n\n return ArcElement;\n}(Element);\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) {\n var style = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 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}\n\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\n\nfunction getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n\n return lineTo;\n}\n\nfunction pathVars(points, segment) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var count = points.length;\n var _params$start = params.start,\n paramsStart = _params$start === void 0 ? 0 : _params$start,\n _params$end = params.end,\n paramsEnd = _params$end === void 0 ? count - 1 : _params$end;\n var segmentStart = segment.start,\n segmentEnd = segment.end;\n var start = Math.max(paramsStart, segmentStart);\n var end = Math.min(paramsEnd, segmentEnd);\n var outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count: count,\n start: start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\n\nfunction pathSegment(ctx, line, segment, params) {\n var points = line.points,\n options = line.options;\n\n var _pathVars = pathVars(points, segment, params),\n count = _pathVars.count,\n start = _pathVars.start,\n loop = _pathVars.loop,\n ilen = _pathVars.ilen;\n\n var lineMethod = getLineMethod(options);\n\n var _ref10 = params || {},\n _ref10$move = _ref10.move,\n move = _ref10$move === void 0 ? true : _ref10$move,\n reverse = _ref10.reverse;\n\n var i, point, prev;\n\n for (i = 0; i <= ilen; ++i) {\n point = points[(start + (reverse ? ilen - i : i)) % count];\n\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\n prev = point;\n }\n\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n\n return !!loop;\n}\n\nfunction fastPathSegment(ctx, line, segment, params) {\n var points = line.points;\n\n var _pathVars2 = pathVars(points, segment, params),\n count = _pathVars2.count,\n start = _pathVars2.start,\n ilen = _pathVars2.ilen;\n\n var _ref11 = params || {},\n _ref11$move = _ref11.move,\n move = _ref11$move === void 0 ? true : _ref11$move,\n reverse = _ref11.reverse;\n\n var avgX = 0;\n var countX = 0;\n var i, point, prevX, minY, maxY, lastY;\n\n var pointIndex = function pointIndex(index) {\n return (start + (reverse ? ilen - index : index)) % count;\n };\n\n var drawX = function drawX() {\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n\n for (i = 0; i <= ilen; ++i) {\n point = points[pointIndex(i)];\n\n if (point.skip) {\n continue;\n }\n\n var x = point.x;\n var y = point.y;\n var truncX = x | 0;\n\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\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\n lastY = y;\n }\n\n drawX();\n}\n\nfunction _getSegmentMethod(line) {\n var opts = line.options;\n var borderDash = opts.borderDash && opts.borderDash.length;\n var useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\n\nfunction _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n\n return _pointInLine;\n}\n\nfunction strokePathWithCache(ctx, line, start, count) {\n var path = line._path;\n\n if (!path) {\n path = line._path = new Path2D();\n\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\n\nfunction strokePathDirect(ctx, line, start, count) {\n var segments = line.segments,\n options = line.options;\n\n var segmentMethod = _getSegmentMethod(line);\n\n var _iterator16 = _createForOfIteratorHelper(segments),\n _step16;\n\n try {\n for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {\n var segment = _step16.value;\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n\n if (segmentMethod(ctx, line, segment, {\n start: start,\n end: start + count - 1\n })) {\n ctx.closePath();\n }\n\n ctx.stroke();\n }\n } catch (err) {\n _iterator16.e(err);\n } finally {\n _iterator16.f();\n }\n}\n\nvar usePath2D = typeof Path2D === 'function';\n\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}\n\nvar LineElement = /*#__PURE__*/function (_Element3) {\n _inherits(LineElement, _Element3);\n\n var _super13 = _createSuper(LineElement);\n\n function LineElement(cfg) {\n var _this24;\n\n _classCallCheck(this, LineElement);\n\n _this24 = _super13.call(this);\n _this24.animated = true;\n _this24.options = undefined;\n _this24._chart = undefined;\n _this24._loop = undefined;\n _this24._fullLoop = undefined;\n _this24._path = undefined;\n _this24._points = undefined;\n _this24._segments = undefined;\n _this24._decimated = false;\n _this24._pointsUpdated = false;\n _this24._datasetIndex = undefined;\n\n if (cfg) {\n Object.assign(_assertThisInitialized(_this24), cfg);\n }\n\n return _this24;\n }\n\n _createClass(LineElement, [{\n key: \"updateControlPoints\",\n value: function updateControlPoints(chartArea, indexAxis) {\n var options = this.options;\n\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n var loop = options.spanGaps ? this._loop : this._fullLoop;\n\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n\n this._pointsUpdated = true;\n }\n }\n }, {\n key: \"points\",\n get: function get() {\n return this._points;\n },\n set: function set(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n }, {\n key: \"segments\",\n get: function get() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n }, {\n key: \"first\",\n value: function first() {\n var segments = this.segments;\n var points = this.points;\n return segments.length && points[segments[0].start];\n }\n }, {\n key: \"last\",\n value: function last() {\n var segments = this.segments;\n var points = this.points;\n var count = segments.length;\n return count && points[segments[count - 1].end];\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(point, property) {\n var options = this.options;\n var value = point[property];\n var points = this.points;\n\n var segments = _boundSegments(this, {\n property: property,\n start: value,\n end: value\n });\n\n if (!segments.length) {\n return;\n }\n\n var result = [];\n\n var _interpolate = _getInterpolationMethod(options);\n\n var i, ilen;\n\n for (i = 0, ilen = segments.length; i < ilen; ++i) {\n var _segments$i = segments[i],\n start = _segments$i.start,\n end = _segments$i.end;\n var p1 = points[start];\n var p2 = points[end];\n\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n\n var t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n\n var interpolated = _interpolate(p1, p2, t, options.stepped);\n\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n\n return result.length === 1 ? result[0] : result;\n }\n }, {\n key: \"pathSegment\",\n value: function pathSegment(ctx, segment, params) {\n var segmentMethod = _getSegmentMethod(this);\n\n return segmentMethod(ctx, this, segment, params);\n }\n }, {\n key: \"path\",\n value: function path(ctx, start, count) {\n var segments = this.segments;\n\n var segmentMethod = _getSegmentMethod(this);\n\n var loop = this._loop;\n start = start || 0;\n count = count || this.points.length - start;\n\n var _iterator17 = _createForOfIteratorHelper(segments),\n _step17;\n\n try {\n for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {\n var segment = _step17.value;\n loop &= segmentMethod(ctx, this, segment, {\n start: start,\n end: start + count - 1\n });\n }\n } catch (err) {\n _iterator17.e(err);\n } finally {\n _iterator17.f();\n }\n\n return !!loop;\n }\n }, {\n key: \"draw\",\n value: function draw(ctx, chartArea, start, count) {\n var options = this.options || {};\n var points = this.points || [];\n\n if (points.length && options.borderWidth) {\n ctx.save();\n\n _draw(ctx, this, start, count);\n\n ctx.restore();\n }\n\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n }]);\n\n return LineElement;\n}(Element);\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: function _indexable(name) {\n return name !== 'borderDash' && name !== 'fill';\n }\n};\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n var options = el.options;\n\n var _el$getProps = el.getProps([axis], useFinalPosition),\n value = _el$getProps[axis];\n\n return Math.abs(pos - value) < options.radius + options.hitRadius;\n}\n\nvar PointElement = /*#__PURE__*/function (_Element4) {\n _inherits(PointElement, _Element4);\n\n var _super14 = _createSuper(PointElement);\n\n function PointElement(cfg) {\n var _this25;\n\n _classCallCheck(this, PointElement);\n\n _this25 = _super14.call(this);\n _this25.options = undefined;\n _this25.parsed = undefined;\n _this25.skip = undefined;\n _this25.stop = undefined;\n\n if (cfg) {\n Object.assign(_assertThisInitialized(_this25), cfg);\n }\n\n return _this25;\n }\n\n _createClass(PointElement, [{\n key: \"inRange\",\n value: function inRange(mouseX, mouseY, useFinalPosition) {\n var options = this.options;\n\n var _this$getProps4 = this.getProps(['x', 'y'], useFinalPosition),\n x = _this$getProps4.x,\n y = _this$getProps4.y;\n\n return Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2) < Math.pow(options.hitRadius + options.radius, 2);\n }\n }, {\n key: \"inXRange\",\n value: function inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n }, {\n key: \"inYRange\",\n value: function inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n }, {\n key: \"getCenterPoint\",\n value: function getCenterPoint(useFinalPosition) {\n var _this$getProps5 = this.getProps(['x', 'y'], useFinalPosition),\n x = _this$getProps5.x,\n y = _this$getProps5.y;\n\n return {\n x: x,\n y: y\n };\n }\n }, {\n key: \"size\",\n value: function size(options) {\n options = options || this.options || {};\n var radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n var borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n }, {\n key: \"draw\",\n value: function draw(ctx, area) {\n var options = this.options;\n\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\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 }, {\n key: \"getRange\",\n value: function getRange() {\n var options = this.options || {};\n return options.radius + options.hitRadius;\n }\n }]);\n\n return PointElement;\n}(Element);\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 var _bar$getProps = bar.getProps(['x', 'y', 'base', 'width', 'height'], useFinalPosition),\n x = _bar$getProps.x,\n y = _bar$getProps.y,\n base = _bar$getProps.base,\n width = _bar$getProps.width,\n height = _bar$getProps.height;\n\n var left, right, top, bottom, half;\n\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\n return {\n left: left,\n top: top,\n right: right,\n bottom: bottom\n };\n}\n\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\n\nfunction parseBorderWidth(bar, maxW, maxH) {\n var value = bar.options.borderWidth;\n var skip = bar.borderSkipped;\n var 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}\n\nfunction parseBorderRadius(bar, maxW, maxH) {\n var _bar$getProps2 = bar.getProps(['enableBorderRadius']),\n enableBorderRadius = _bar$getProps2.enableBorderRadius;\n\n var value = bar.options.borderRadius;\n var o = toTRBLCorners(value);\n var maxR = Math.min(maxW, maxH);\n var skip = bar.borderSkipped;\n var 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}\n\nfunction boundingRects(bar) {\n var bounds = getBarBounds(bar);\n var width = bounds.right - bounds.left;\n var height = bounds.bottom - bounds.top;\n var border = parseBorderWidth(bar, width / 2, height / 2);\n var 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: 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}\n\nfunction _inRange(bar, x, y, useFinalPosition) {\n var skipX = x === null;\n var skipY = y === null;\n var skipBoth = skipX && skipY;\n var bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds && (skipX || _isBetween(x, bounds.left, bounds.right)) && (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\n\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\n\nfunction addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\n\nfunction inflateRect(rect, amount) {\n var refRect = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var x = rect.x !== refRect.x ? -amount : 0;\n var y = rect.y !== refRect.y ? -amount : 0;\n var w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n var 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}\n\nvar BarElement = /*#__PURE__*/function (_Element5) {\n _inherits(BarElement, _Element5);\n\n var _super15 = _createSuper(BarElement);\n\n function BarElement(cfg) {\n var _this26;\n\n _classCallCheck(this, BarElement);\n\n _this26 = _super15.call(this);\n _this26.options = undefined;\n _this26.horizontal = undefined;\n _this26.base = undefined;\n _this26.width = undefined;\n _this26.height = undefined;\n _this26.inflateAmount = undefined;\n\n if (cfg) {\n Object.assign(_assertThisInitialized(_this26), cfg);\n }\n\n return _this26;\n }\n\n _createClass(BarElement, [{\n key: \"draw\",\n value: function draw(ctx) {\n var inflateAmount = this.inflateAmount,\n _this$options13 = this.options,\n borderColor = _this$options13.borderColor,\n backgroundColor = _this$options13.backgroundColor;\n\n var _boundingRects = boundingRects(this),\n inner = _boundingRects.inner,\n outer = _boundingRects.outer;\n\n var addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n\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\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }, {\n key: \"inRange\",\n value: function inRange(mouseX, mouseY, useFinalPosition) {\n return _inRange(this, mouseX, mouseY, useFinalPosition);\n }\n }, {\n key: \"inXRange\",\n value: function inXRange(mouseX, useFinalPosition) {\n return _inRange(this, mouseX, null, useFinalPosition);\n }\n }, {\n key: \"inYRange\",\n value: function inYRange(mouseY, useFinalPosition) {\n return _inRange(this, null, mouseY, useFinalPosition);\n }\n }, {\n key: \"getCenterPoint\",\n value: function getCenterPoint(useFinalPosition) {\n var _this$getProps6 = this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition),\n x = _this$getProps6.x,\n y = _this$getProps6.y,\n base = _this$getProps6.base,\n horizontal = _this$getProps6.horizontal;\n\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n }, {\n key: \"getRange\",\n value: function getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n }]);\n\n return BarElement;\n}(Element);\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};\nvar elements = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ArcElement: ArcElement,\n LineElement: LineElement,\n PointElement: PointElement,\n BarElement: BarElement\n});\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n var samples = options.samples || availableWidth;\n\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n\n var decimated = [];\n var bucketWidth = (count - 2) / (samples - 2);\n var sampledIndex = 0;\n var endIndex = start + count - 1;\n var a = start;\n var i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n\n for (i = 0; i < samples - 2; i++) {\n var avgX = 0;\n var avgY = 0;\n var j = void 0;\n var avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n var avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n var avgRangeLength = avgRangeEnd - avgRangeStart;\n\n for (j = avgRangeStart; j < avgRangeEnd; j++) {\n avgX += data[j].x;\n avgY += data[j].y;\n }\n\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n var rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n var rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n var _data$a = data[a],\n pointAx = _data$a.x,\n pointAy = _data$a.y;\n maxArea = area = -1;\n\n for (j = rangeOffs; j < rangeTo; j++) {\n area = 0.5 * Math.abs((pointAx - avgX) * (data[j].y - pointAy) - (pointAx - data[j].x) * (avgY - pointAy));\n\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\n\nfunction minMaxDecimation(data, start, count, availableWidth) {\n var avgX = 0;\n var countX = 0;\n var i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n var decimated = [];\n var endIndex = start + count - 1;\n var xMin = data[start].x;\n var xMax = data[endIndex].x;\n var dx = xMax - xMin;\n\n for (i = start; i < start + count; ++i) {\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n var truncX = x | 0;\n\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\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n var lastIndex = i - 1;\n\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n var intermediateIndex1 = Math.min(minIndex, maxIndex);\n var intermediateIndex2 = Math.max(minIndex, maxIndex);\n\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push(_objectSpread(_objectSpread({}, data[intermediateIndex1]), {}, {\n x: avgX\n }));\n }\n\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push(_objectSpread(_objectSpread({}, data[intermediateIndex2]), {}, {\n x: avgX\n }));\n }\n }\n\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n\n return decimated;\n}\n\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n var data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {\n value: data\n });\n }\n}\n\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach(function (dataset) {\n cleanDecimatedDataset(dataset);\n });\n}\n\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n var pointCount = points.length;\n var start = 0;\n var count;\n var iScale = meta.iScale;\n\n var _iScale$getUserBounds = iScale.getUserBounds(),\n min = _iScale$getUserBounds.min,\n max = _iScale$getUserBounds.max,\n minDefined = _iScale$getUserBounds.minDefined,\n maxDefined = _iScale$getUserBounds.maxDefined;\n\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\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\n return {\n start: start,\n count: count\n };\n}\n\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false\n },\n beforeElementsUpdate: function beforeElementsUpdate(chart, args, options) {\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n\n var availableWidth = chart.width;\n chart.data.datasets.forEach(function (dataset, datasetIndex) {\n var _data = dataset._data,\n indexAxis = dataset.indexAxis;\n var meta = chart.getDatasetMeta(datasetIndex);\n var data = _data || dataset.data;\n\n if (resolve([indexAxis, chart.options.indexAxis]) === 'y') {\n return;\n }\n\n if (!meta.controller.supportsDecimation) {\n return;\n }\n\n var xAxis = chart.scales[meta.xAxisID];\n\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n\n if (chart.options.parsing) {\n return;\n }\n\n var _getStartAndCountOfVi3 = getStartAndCountOfVisiblePointsSimplified(meta, data),\n start = _getStartAndCountOfVi3.start,\n count = _getStartAndCountOfVi3.count;\n\n var threshold = options.threshold || 4 * availableWidth;\n\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\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 get() {\n return this._decimated;\n },\n set: function set(d) {\n this._data = d;\n }\n });\n }\n\n var decimated;\n\n switch (options.algorithm) {\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n\n default:\n throw new Error(\"Unsupported decimation algorithm '\".concat(options.algorithm, \"'\"));\n }\n\n dataset._decimated = decimated;\n });\n },\n destroy: function destroy(chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction _segments(line, target, property) {\n var segments = line.segments;\n var points = line.points;\n var tpoints = target.points;\n var parts = [];\n\n var _iterator18 = _createForOfIteratorHelper(segments),\n _step18;\n\n try {\n for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {\n var segment = _step18.value;\n var start = segment.start,\n end = segment.end;\n end = _findSegmentEnd(start, end, points);\n\n var bounds = _getBounds(property, points[start], points[end], segment.loop);\n\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\n var targetSegments = _boundSegments(target, bounds);\n\n var _iterator19 = _createForOfIteratorHelper(targetSegments),\n _step19;\n\n try {\n for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {\n var tgt = _step19.value;\n\n var subBounds = _getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n\n var fillSources = _boundSegment(segment, points, subBounds);\n\n var _iterator20 = _createForOfIteratorHelper(fillSources),\n _step20;\n\n try {\n for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {\n var fillSource = _step20.value;\n parts.push({\n source: fillSource,\n target: tgt,\n start: _defineProperty({}, property, _getEdge(bounds, subBounds, 'start', Math.max)),\n end: _defineProperty({}, property, _getEdge(bounds, subBounds, 'end', Math.min))\n });\n }\n } catch (err) {\n _iterator20.e(err);\n } finally {\n _iterator20.f();\n }\n }\n } catch (err) {\n _iterator19.e(err);\n } finally {\n _iterator19.f();\n }\n }\n } catch (err) {\n _iterator18.e(err);\n } finally {\n _iterator18.f();\n }\n\n return parts;\n}\n\nfunction _getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n\n var start = first[property];\n var end = last[property];\n\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n\n return {\n property: property,\n start: start,\n end: end\n };\n}\n\nfunction _pointsFromSegments(boundary, line) {\n var _ref12 = boundary || {},\n _ref12$x = _ref12.x,\n x = _ref12$x === void 0 ? null : _ref12$x,\n _ref12$y = _ref12.y,\n y = _ref12$y === void 0 ? null : _ref12$y;\n\n var linePoints = line.points;\n var points = [];\n line.segments.forEach(function (_ref13) {\n var start = _ref13.start,\n end = _ref13.end;\n end = _findSegmentEnd(start, end, linePoints);\n var first = linePoints[start];\n var last = linePoints[end];\n\n if (y !== null) {\n points.push({\n x: first.x,\n y: y\n });\n points.push({\n x: last.x,\n y: y\n });\n } else if (x !== null) {\n points.push({\n x: x,\n y: first.y\n });\n points.push({\n x: x,\n y: last.y\n });\n }\n });\n return points;\n}\n\nfunction _findSegmentEnd(start, end, points) {\n for (; end > start; end--) {\n var point = points[end];\n\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n\n return end;\n}\n\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n\n return a ? a[prop] : b ? b[prop] : 0;\n}\n\nfunction _createBoundaryLine(boundary, line) {\n var points = [];\n var _loop = false;\n\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = _pointsFromSegments(boundary, line);\n }\n\n return points.length ? new LineElement({\n points: points,\n options: {\n tension: 0\n },\n _loop: _loop,\n _fullLoop: _loop\n }) : null;\n}\n\nfunction _shouldApplyFill(source) {\n return source && source.fill !== false;\n}\n\nfunction _resolveTarget(sources, index, propagate) {\n var source = sources[index];\n var fill = source.fill;\n var visited = [index];\n var target;\n\n if (!propagate) {\n return fill;\n }\n\n while (fill !== false && visited.indexOf(fill) === -1) {\n if (!isNumberFinite(fill)) {\n return fill;\n }\n\n target = sources[fill];\n\n if (!target) {\n return false;\n }\n\n if (target.visible) {\n return fill;\n }\n\n visited.push(fill);\n fill = target.fill;\n }\n\n return false;\n}\n\nfunction _decodeFill(line, index, count) {\n var fill = parseFillOption(line);\n\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n\n var target = parseFloat(fill);\n\n if (isNumberFinite(target) && Math.floor(target) === target) {\n return decodeTargetIndex(fill[0], index, target, count);\n }\n\n return ['origin', 'start', 'end', 'stack', 'shape'].indexOf(fill) >= 0 && fill;\n}\n\nfunction decodeTargetIndex(firstCh, index, target, count) {\n if (firstCh === '-' || firstCh === '+') {\n target = index + target;\n }\n\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n\n return target;\n}\n\nfunction _getTargetPixel(fill, scale) {\n var pixel = null;\n\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\n return pixel;\n}\n\nfunction _getTargetValue(fill, scale, startValue) {\n var value;\n\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\n return value;\n}\n\nfunction parseFillOption(line) {\n var options = line.options;\n var fillOption = options.fill;\n var fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n\n if (fill === false || fill === null) {\n return false;\n }\n\n if (fill === true) {\n return 'origin';\n }\n\n return fill;\n}\n\nfunction _buildStackLine(source) {\n var scale = source.scale,\n index = source.index,\n line = source.line;\n var points = [];\n var segments = line.segments;\n var sourcePoints = line.points;\n var linesBelow = getLinesBelow(scale, index);\n linesBelow.push(_createBoundaryLine({\n x: null,\n y: scale.bottom\n }, line));\n\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n\n for (var j = segment.start; j <= segment.end; j++) {\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n\n return new LineElement({\n points: points,\n options: {}\n });\n}\n\nfunction getLinesBelow(scale, index) {\n var below = [];\n var metas = scale.getMatchingVisibleMetas('line');\n\n for (var i = 0; i < metas.length; i++) {\n var meta = metas[i];\n\n if (meta.index === index) {\n break;\n }\n\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n\n return below;\n}\n\nfunction addPointsBelow(points, sourcePoint, linesBelow) {\n var postponed = [];\n\n for (var j = 0; j < linesBelow.length; j++) {\n var line = linesBelow[j];\n\n var _findPoint = findPoint(line, sourcePoint, 'x'),\n first = _findPoint.first,\n last = _findPoint.last,\n point = _findPoint.point;\n\n if (!point || first && last) {\n continue;\n }\n\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n\n if (!last) {\n break;\n }\n }\n }\n\n points.push.apply(points, postponed);\n}\n\nfunction findPoint(line, sourcePoint, property) {\n var point = line.interpolate(sourcePoint, property);\n\n if (!point) {\n return {};\n }\n\n var pointValue = point[property];\n var segments = line.segments;\n var linePoints = line.points;\n var first = false;\n var last = false;\n\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n var firstValue = linePoints[segment.start][property];\n var lastValue = linePoints[segment.end][property];\n\n if (_isBetween(pointValue, firstValue, lastValue)) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n\n return {\n first: first,\n last: last,\n point: point\n };\n}\n\nvar simpleArc = /*#__PURE__*/function () {\n function simpleArc(opts) {\n _classCallCheck(this, simpleArc);\n\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n\n _createClass(simpleArc, [{\n key: \"pathSegment\",\n value: function pathSegment(ctx, bounds, opts) {\n var x = this.x,\n y = this.y,\n radius = this.radius;\n bounds = bounds || {\n start: 0,\n end: TAU\n };\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(point) {\n var x = this.x,\n y = this.y,\n radius = this.radius;\n var angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle: angle\n };\n }\n }]);\n\n return simpleArc;\n}();\n\nfunction _getTarget(source) {\n var chart = source.chart,\n fill = source.fill,\n line = source.line;\n\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n\n if (fill === 'stack') {\n return _buildStackLine(source);\n }\n\n if (fill === 'shape') {\n return true;\n }\n\n var boundary = computeBoundary(source);\n\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n\n return _createBoundaryLine(boundary, line);\n}\n\nfunction getLineByIndex(chart, index) {\n var meta = chart.getDatasetMeta(index);\n var visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\n\nfunction computeBoundary(source) {\n var scale = source.scale || {};\n\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n\n return computeLinearBoundary(source);\n}\n\nfunction computeLinearBoundary(source) {\n var _source$scale = source.scale,\n scale = _source$scale === void 0 ? {} : _source$scale,\n fill = source.fill;\n\n var pixel = _getTargetPixel(fill, scale);\n\n if (isNumberFinite(pixel)) {\n var horizontal = scale.isHorizontal();\n return {\n x: horizontal ? pixel : null,\n y: horizontal ? null : pixel\n };\n }\n\n return null;\n}\n\nfunction computeCircularBoundary(source) {\n var scale = source.scale,\n fill = source.fill;\n var options = scale.options;\n var length = scale.getLabels().length;\n var start = options.reverse ? scale.max : scale.min;\n\n var value = _getTargetValue(fill, scale, start);\n\n var target = [];\n\n if (options.grid.circular) {\n var 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\n for (var i = 0; i < length; ++i) {\n target.push(scale.getPointPositionForValue(i, value));\n }\n\n return target;\n}\n\nfunction _drawfill(ctx, source, area) {\n var target = _getTarget(source);\n\n var line = source.line,\n scale = source.scale,\n axis = source.axis;\n var lineOpts = line.options;\n var fillOption = lineOpts.fill;\n var color = lineOpts.backgroundColor;\n\n var _ref14 = fillOption || {},\n _ref14$above = _ref14.above,\n above = _ref14$above === void 0 ? color : _ref14$above,\n _ref14$below = _ref14.below,\n below = _ref14$below === void 0 ? color : _ref14$below;\n\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {\n line: line,\n target: target,\n above: above,\n below: below,\n area: area,\n scale: scale,\n axis: axis\n });\n unclipArea(ctx);\n }\n}\n\nfunction doFill(ctx, cfg) {\n var line = cfg.line,\n target = cfg.target,\n above = cfg.above,\n below = cfg.below,\n area = cfg.area,\n scale = cfg.scale;\n var property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n\n if (property === 'x' && below !== above) {\n clipVertical(ctx, target, area.top);\n fill(ctx, {\n line: line,\n target: target,\n color: above,\n scale: scale,\n property: property\n });\n ctx.restore();\n ctx.save();\n clipVertical(ctx, target, area.bottom);\n }\n\n fill(ctx, {\n line: line,\n target: target,\n color: below,\n scale: scale,\n property: property\n });\n ctx.restore();\n}\n\nfunction clipVertical(ctx, target, clipY) {\n var segments = target.segments,\n points = target.points;\n var first = true;\n var lineLoop = false;\n ctx.beginPath();\n\n var _iterator21 = _createForOfIteratorHelper(segments),\n _step21;\n\n try {\n for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {\n var segment = _step21.value;\n var start = segment.start,\n end = segment.end;\n var firstPoint = points[start];\n\n var lastPoint = points[_findSegmentEnd(start, end, points)];\n\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\n lineLoop = !!target.pathSegment(ctx, segment, {\n move: lineLoop\n });\n\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(lastPoint.x, clipY);\n }\n }\n } catch (err) {\n _iterator21.e(err);\n } finally {\n _iterator21.f();\n }\n\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\n\nfunction fill(ctx, cfg) {\n var line = cfg.line,\n target = cfg.target,\n property = cfg.property,\n color = cfg.color,\n scale = cfg.scale;\n\n var segments = _segments(line, target, property);\n\n var _iterator22 = _createForOfIteratorHelper(segments),\n _step22;\n\n try {\n for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {\n var _ref16 = _step22.value;\n var src = _ref16.source;\n var tgt = _ref16.target;\n var start = _ref16.start;\n var end = _ref16.end;\n var _src$style = src.style;\n _src$style = _src$style === void 0 ? {} : _src$style;\n var _src$style$background = _src$style.backgroundColor,\n backgroundColor = _src$style$background === void 0 ? color : _src$style$background;\n var notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, notShape && _getBounds(property, start, end));\n ctx.beginPath();\n var lineLoop = !!line.pathSegment(ctx, src);\n var loop = void 0;\n\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n\n var targetLoop = !!target.pathSegment(ctx, tgt, {\n move: lineLoop,\n reverse: true\n });\n loop = lineLoop && targetLoop;\n\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n } catch (err) {\n _iterator22.e(err);\n } finally {\n _iterator22.f();\n }\n}\n\nfunction clipBounds(ctx, scale, bounds) {\n var _scale$chart$chartAre = scale.chart.chartArea,\n top = _scale$chart$chartAre.top,\n bottom = _scale$chart$chartAre.bottom;\n\n var _ref17 = bounds || {},\n property = _ref17.property,\n start = _ref17.start,\n end = _ref17.end;\n\n if (property === 'x') {\n ctx.beginPath();\n ctx.rect(start, top, end - start, bottom - top);\n ctx.clip();\n }\n}\n\nfunction interpolatedLineTo(ctx, target, point, property) {\n var interpolatedPoint = target.interpolate(point, property);\n\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\n\nvar index = {\n id: 'filler',\n afterDatasetsUpdate: function afterDatasetsUpdate(chart, _args, options) {\n var count = (chart.data.datasets || []).length;\n var sources = [];\n var meta, i, line, source;\n\n for (i = 0; i < count; ++i) {\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n\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: chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line: line\n };\n }\n\n meta.$filler = source;\n sources.push(source);\n }\n\n for (i = 0; i < count; ++i) {\n source = sources[i];\n\n if (!source || source.fill === false) {\n continue;\n }\n\n source.fill = _resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw: function beforeDraw(chart, _args, options) {\n var draw = options.drawTime === 'beforeDraw';\n var metasets = chart.getSortedVisibleDatasetMetas();\n var area = chart.chartArea;\n\n for (var i = metasets.length - 1; i >= 0; --i) {\n var source = metasets[i].$filler;\n\n if (!source) {\n continue;\n }\n\n source.line.updateControlPoints(area, source.axis);\n\n if (draw && source.fill) {\n _drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw: function beforeDatasetsDraw(chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n\n var metasets = chart.getSortedVisibleDatasetMetas();\n\n for (var i = metasets.length - 1; i >= 0; --i) {\n var source = metasets[i].$filler;\n\n if (_shouldApplyFill(source)) {\n _drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw: function beforeDatasetDraw(chart, args, options) {\n var source = args.meta.$filler;\n\n if (!_shouldApplyFill(source) || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n\n _drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nvar getBoxSize = function getBoxSize(labelOpts, fontSize) {\n var _labelOpts$boxHeight = labelOpts.boxHeight,\n boxHeight = _labelOpts$boxHeight === void 0 ? fontSize : _labelOpts$boxHeight,\n _labelOpts$boxWidth = labelOpts.boxWidth,\n boxWidth = _labelOpts$boxWidth === void 0 ? fontSize : _labelOpts$boxWidth;\n\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = labelOpts.pointStyleWidth || Math.min(boxWidth, fontSize);\n }\n\n return {\n boxWidth: boxWidth,\n boxHeight: boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\n\nvar itemsEqual = function itemsEqual(a, b) {\n return a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\n};\n\nvar Legend = /*#__PURE__*/function (_Element6) {\n _inherits(Legend, _Element6);\n\n var _super16 = _createSuper(Legend);\n\n function Legend(config) {\n var _this27;\n\n _classCallCheck(this, Legend);\n\n _this27 = _super16.call(this);\n _this27._added = false;\n _this27.legendHitBoxes = [];\n _this27._hoveredItem = null;\n _this27.doughnutMode = false;\n _this27.chart = config.chart;\n _this27.options = config.options;\n _this27.ctx = config.ctx;\n _this27.legendItems = undefined;\n _this27.columnSizes = undefined;\n _this27.lineWidths = undefined;\n _this27.maxHeight = undefined;\n _this27.maxWidth = undefined;\n _this27.top = undefined;\n _this27.bottom = undefined;\n _this27.left = undefined;\n _this27.right = undefined;\n _this27.height = undefined;\n _this27.width = undefined;\n _this27._margins = undefined;\n _this27.position = undefined;\n _this27.weight = undefined;\n _this27.fullSize = undefined;\n return _this27;\n }\n\n _createClass(Legend, [{\n key: \"update\",\n value: function 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 }, {\n key: \"setDimensions\",\n value: function 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 }, {\n key: \"buildLabels\",\n value: function buildLabels() {\n var _this28 = this;\n\n var labelOpts = this.options.labels || {};\n var legendItems = callback(labelOpts.generateLabels, [this.chart], this) || [];\n\n if (labelOpts.filter) {\n legendItems = legendItems.filter(function (item) {\n return labelOpts.filter(item, _this28.chart.data);\n });\n }\n\n if (labelOpts.sort) {\n legendItems = legendItems.sort(function (a, b) {\n return labelOpts.sort(a, b, _this28.chart.data);\n });\n }\n\n if (this.options.reverse) {\n legendItems.reverse();\n }\n\n this.legendItems = legendItems;\n }\n }, {\n key: \"fit\",\n value: function fit() {\n var options = this.options,\n ctx = this.ctx;\n\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n\n var labelOpts = options.labels;\n var labelFont = toFont(labelOpts.font);\n var fontSize = labelFont.size;\n\n var titleHeight = this._computeTitleHeight();\n\n var _getBoxSize = getBoxSize(labelOpts, fontSize),\n boxWidth = _getBoxSize.boxWidth,\n itemHeight = _getBoxSize.itemHeight;\n\n var width, height;\n ctx.font = labelFont.string;\n\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\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n }, {\n key: \"_fitRows\",\n value: function _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n var ctx = this.ctx,\n maxWidth = this.maxWidth,\n padding = this.options.labels.padding;\n var hitboxes = this.legendHitBoxes = [];\n var lineWidths = this.lineWidths = [0];\n var lineHeight = itemHeight + padding;\n var totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n var row = -1;\n var top = -lineHeight;\n this.legendItems.forEach(function (legendItem, i) {\n var itemWidth = boxWidth + fontSize / 2 + ctx.measureText(legendItem.text).width;\n\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\n hitboxes[i] = {\n left: 0,\n top: top,\n row: row,\n width: itemWidth,\n height: itemHeight\n };\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n }, {\n key: \"_fitCols\",\n value: function _fitCols(titleHeight, fontSize, boxWidth, itemHeight) {\n var ctx = this.ctx,\n maxHeight = this.maxHeight,\n padding = this.options.labels.padding;\n var hitboxes = this.legendHitBoxes = [];\n var columnSizes = this.columnSizes = [];\n var heightLimit = maxHeight - titleHeight;\n var totalWidth = padding;\n var currentColWidth = 0;\n var currentColHeight = 0;\n var left = 0;\n var col = 0;\n this.legendItems.forEach(function (legendItem, i) {\n var itemWidth = boxWidth + fontSize / 2 + ctx.measureText(legendItem.text).width;\n\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n\n hitboxes[i] = {\n left: left,\n top: currentColHeight,\n col: col,\n width: itemWidth,\n height: itemHeight\n };\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n return totalWidth;\n }\n }, {\n key: \"adjustHitBoxes\",\n value: function adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n\n var titleHeight = this._computeTitleHeight();\n\n var hitboxes = this.legendHitBoxes,\n _this$options14 = this.options,\n align = _this$options14.align,\n padding = _this$options14.labels.padding,\n rtl = _this$options14.rtl;\n var rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n\n if (this.isHorizontal()) {\n var row = 0;\n\n var left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n\n var _iterator23 = _createForOfIteratorHelper(hitboxes),\n _step23;\n\n try {\n for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {\n var hitbox = _step23.value;\n\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\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 } catch (err) {\n _iterator23.e(err);\n } finally {\n _iterator23.f();\n }\n } else {\n var col = 0;\n\n var top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n\n var _iterator24 = _createForOfIteratorHelper(hitboxes),\n _step24;\n\n try {\n for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) {\n var _hitbox = _step24.value;\n\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\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 } catch (err) {\n _iterator24.e(err);\n } finally {\n _iterator24.f();\n }\n }\n }\n }, {\n key: \"isHorizontal\",\n value: function isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n }, {\n key: \"draw\",\n value: function draw() {\n if (this.options.display) {\n var ctx = this.ctx;\n clipArea(ctx, this);\n\n this._draw();\n\n unclipArea(ctx);\n }\n }\n }, {\n key: \"_draw\",\n value: function _draw() {\n var _this29 = this;\n\n var opts = this.options,\n columnSizes = this.columnSizes,\n lineWidths = this.lineWidths,\n ctx = this.ctx;\n var align = opts.align,\n labelOpts = opts.labels;\n var defaultColor = defaults.color;\n var rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n var labelFont = toFont(labelOpts.font);\n var fontColor = labelOpts.color,\n padding = labelOpts.padding;\n var fontSize = labelFont.size;\n var halfFontSize = fontSize / 2;\n var 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\n var _getBoxSize2 = getBoxSize(labelOpts, fontSize),\n boxWidth = _getBoxSize2.boxWidth,\n boxHeight = _getBoxSize2.boxHeight,\n itemHeight = _getBoxSize2.itemHeight;\n\n var drawLegendBox = function drawLegendBox(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n\n ctx.save();\n var 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\n if (labelOpts.usePointStyle) {\n var drawOptions = {\n radius: boxHeight * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n var centerX = rtlHelper.xPlus(x, boxWidth / 2);\n var centerY = y + halfFontSize;\n drawPointLegend(ctx, drawOptions, centerX, centerY, labelOpts.pointStyleWidth && boxWidth);\n } else {\n var yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n var xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n var borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n\n if (Object.values(borderRadius).some(function (v) {\n return v !== 0;\n })) {\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\n ctx.fill();\n\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n\n ctx.restore();\n };\n\n var fillText = function fillText(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\n var isHorizontal = this.isHorizontal();\n\n var titleHeight = this._computeTitleHeight();\n\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\n overrideTextDirection(this.ctx, opts.textDirection);\n var lineHeight = itemHeight + padding;\n this.legendItems.forEach(function (legendItem, i) {\n ctx.strokeStyle = legendItem.fontColor || fontColor;\n ctx.fillStyle = legendItem.fontColor || fontColor;\n var textWidth = ctx.measureText(legendItem.text).width;\n var textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n var width = boxWidth + halfFontSize + textWidth;\n var x = cursor.x;\n var y = cursor.y;\n rtlHelper.setWidth(_this29.width);\n\n if (isHorizontal) {\n if (i > 0 && x + width + padding > _this29.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, _this29.left + padding, _this29.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > _this29.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, _this29.top + titleHeight + padding, _this29.bottom - columnSizes[cursor.line].height);\n }\n\n var realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : _this29.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n\n if (isHorizontal) {\n cursor.x += width + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n }, {\n key: \"drawTitle\",\n value: function drawTitle() {\n var opts = this.options;\n var titleOpts = opts.title;\n var titleFont = toFont(titleOpts.font);\n var titlePadding = toPadding(titleOpts.padding);\n\n if (!titleOpts.display) {\n return;\n }\n\n var rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n var ctx = this.ctx;\n var position = titleOpts.position;\n var halfFontSize = titleFont.size / 2;\n var topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n var y;\n var left = this.left;\n var maxWidth = this.width;\n\n if (this.isHorizontal()) {\n maxWidth = Math.max.apply(Math, _toConsumableArray(this.lineWidths));\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n var maxHeight = this.columnSizes.reduce(function (acc, size) {\n return Math.max(acc, size.height);\n }, 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n\n var x = _alignStartEnd(position, left, left + maxWidth);\n\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 }, {\n key: \"_computeTitleHeight\",\n value: function _computeTitleHeight() {\n var titleOpts = this.options.title;\n var titleFont = toFont(titleOpts.font);\n var titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n }, {\n key: \"_getLegendItemAt\",\n value: function _getLegendItemAt(x, y) {\n var i, hitBox, lh;\n\n if (_isBetween(x, this.left, this.right) && _isBetween(y, this.top, this.bottom)) {\n lh = this.legendHitBoxes;\n\n for (i = 0; i < lh.length; ++i) {\n hitBox = lh[i];\n\n if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width) && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n return this.legendItems[i];\n }\n }\n }\n\n return null;\n }\n }, {\n key: \"handleEvent\",\n value: function handleEvent(e) {\n var opts = this.options;\n\n if (!isListened(e.type, opts)) {\n return;\n }\n\n var hoveredItem = this._getLegendItemAt(e.x, e.y);\n\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n var previous = this._hoveredItem;\n var sameItem = itemsEqual(previous, hoveredItem);\n\n if (previous && !sameItem) {\n callback(opts.onLeave, [e, previous, this], this);\n }\n\n this._hoveredItem = hoveredItem;\n\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 }]);\n\n return Legend;\n}(Element);\n\nfunction isListened(type, opts) {\n if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n return true;\n }\n\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n\n return false;\n}\n\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start: function start(chart, _args, options) {\n var legend = chart.legend = new Legend({\n ctx: chart.ctx,\n options: options,\n chart: chart\n });\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop: function stop(chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate: function beforeUpdate(chart, _args, options) {\n var legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate: function afterUpdate(chart) {\n var legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent: function 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: function onClick(e, legendItem, legend) {\n var index = legendItem.datasetIndex;\n var ci = legend.chart;\n\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: function color(ctx) {\n return ctx.chart.options.color;\n },\n boxWidth: 40,\n padding: 10,\n generateLabels: function generateLabels(chart) {\n var datasets = chart.data.datasets;\n var _chart$legend$options = chart.legend.options.labels,\n usePointStyle = _chart$legend$options.usePointStyle,\n pointStyle = _chart$legend$options.pointStyle,\n textAlign = _chart$legend$options.textAlign,\n color = _chart$legend$options.color;\n return chart._getSortedDatasetMetas().map(function (meta) {\n var style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n var 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: function color(ctx) {\n return ctx.chart.options.color;\n },\n display: false,\n position: 'center',\n text: ''\n }\n },\n descriptors: {\n _scriptable: function _scriptable(name) {\n return !name.startsWith('on');\n },\n labels: {\n _scriptable: function _scriptable(name) {\n return !['generateLabels', 'filter', 'sort'].includes(name);\n }\n }\n }\n};\n\nvar Title = /*#__PURE__*/function (_Element7) {\n _inherits(Title, _Element7);\n\n var _super17 = _createSuper(Title);\n\n function Title(config) {\n var _this30;\n\n _classCallCheck(this, Title);\n\n _this30 = _super17.call(this);\n _this30.chart = config.chart;\n _this30.options = config.options;\n _this30.ctx = config.ctx;\n _this30._padding = undefined;\n _this30.top = undefined;\n _this30.bottom = undefined;\n _this30.left = undefined;\n _this30.right = undefined;\n _this30.width = undefined;\n _this30.height = undefined;\n _this30.position = undefined;\n _this30.weight = undefined;\n _this30.fullSize = undefined;\n return _this30;\n }\n\n _createClass(Title, [{\n key: \"update\",\n value: function update(maxWidth, maxHeight) {\n var opts = this.options;\n this.left = 0;\n this.top = 0;\n\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n var lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n\n var textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n }, {\n key: \"isHorizontal\",\n value: function isHorizontal() {\n var pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n }, {\n key: \"_drawArgs\",\n value: function _drawArgs(offset) {\n var top = this.top,\n left = this.left,\n bottom = this.bottom,\n right = this.right,\n options = this.options;\n var align = options.align;\n var rotation = 0;\n var maxWidth, titleX, titleY;\n\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\n maxWidth = bottom - top;\n }\n\n return {\n titleX: titleX,\n titleY: titleY,\n maxWidth: maxWidth,\n rotation: rotation\n };\n }\n }, {\n key: \"draw\",\n value: function draw() {\n var ctx = this.ctx;\n var opts = this.options;\n\n if (!opts.display) {\n return;\n }\n\n var fontOpts = toFont(opts.font);\n var lineHeight = fontOpts.lineHeight;\n var offset = lineHeight / 2 + this._padding.top;\n\n var _this$_drawArgs = this._drawArgs(offset),\n titleX = _this$_drawArgs.titleX,\n titleY = _this$_drawArgs.titleY,\n maxWidth = _this$_drawArgs.maxWidth,\n rotation = _this$_drawArgs.rotation;\n\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth: maxWidth,\n rotation: rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [titleX, titleY]\n });\n }\n }]);\n\n return Title;\n}(Element);\n\nfunction createTitle(chart, titleOpts) {\n var title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart: chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\n\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start: function start(chart, _args, options) {\n createTitle(chart, options);\n },\n stop: function stop(chart) {\n var titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate: function beforeUpdate(chart, _args, options) {\n var 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};\nvar map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start: function start(chart, _args, options) {\n var title = new Title({\n ctx: chart.ctx,\n options: options,\n chart: chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop: function stop(chart) {\n layouts.removeBox(chart, map.get(chart));\n map[\"delete\"](chart);\n },\n beforeUpdate: function beforeUpdate(chart, _args, options) {\n var 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};\nvar positioners = {\n average: function average(items) {\n if (!items.length) {\n return false;\n }\n\n var i, len;\n var x = 0;\n var y = 0;\n var count = 0;\n\n for (i = 0, len = items.length; i < len; ++i) {\n var el = items[i].element;\n\n if (el && el.hasValue()) {\n var pos = el.tooltipPosition();\n x += pos.x;\n y += pos.y;\n ++count;\n }\n }\n\n return {\n x: x / count,\n y: y / count\n };\n },\n nearest: function nearest(items, eventPosition) {\n if (!items.length) {\n return false;\n }\n\n var x = eventPosition.x;\n var y = eventPosition.y;\n var minDistance = Number.POSITIVE_INFINITY;\n var i, len, nearestElement;\n\n for (i = 0, len = items.length; i < len; ++i) {\n var el = items[i].element;\n\n if (el && el.hasValue()) {\n var center = el.getCenterPoint();\n var d = distanceBetweenPoints(eventPosition, center);\n\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n\n if (nearestElement) {\n var tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n\n return {\n x: x,\n y: y\n };\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\n return base;\n}\n\nfunction splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n\n return str;\n}\n\nfunction createTooltipItem(chart, item) {\n var element = item.element,\n datasetIndex = item.datasetIndex,\n index = item.index;\n var controller = chart.getDatasetMeta(datasetIndex).controller;\n\n var _controller$getLabelA = controller.getLabelAndValue(index),\n label = _controller$getLabelA.label,\n value = _controller$getLabelA.value;\n\n return {\n chart: chart,\n label: 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: datasetIndex,\n element: element\n };\n}\n\nfunction getTooltipSize(tooltip, options) {\n var ctx = tooltip.chart.ctx;\n var body = tooltip.body,\n footer = tooltip.footer,\n title = tooltip.title;\n var boxWidth = options.boxWidth,\n boxHeight = options.boxHeight;\n var bodyFont = toFont(options.bodyFont);\n var titleFont = toFont(options.titleFont);\n var footerFont = toFont(options.footerFont);\n var titleLineCount = title.length;\n var footerLineCount = footer.length;\n var bodyLineItemCount = body.length;\n var padding = toPadding(options.padding);\n var height = padding.height;\n var width = 0;\n var combinedBodyLength = body.reduce(function (count, bodyItem) {\n return count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length;\n }, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight + (titleLineCount - 1) * options.titleSpacing + options.titleMarginBottom;\n }\n\n if (combinedBodyLength) {\n var bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight + (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight + (combinedBodyLength - 1) * options.bodySpacing;\n }\n\n if (footerLineCount) {\n height += options.footerMarginTop + footerLineCount * footerFont.lineHeight + (footerLineCount - 1) * options.footerSpacing;\n }\n\n var widthPadding = 0;\n\n var maxLineWidth = function maxLineWidth(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\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, function (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 {\n width: width,\n height: height\n };\n}\n\nfunction determineYAlign(chart, size) {\n var y = size.y,\n height = size.height;\n\n if (y < height / 2) {\n return 'top';\n } else if (y > chart.height - height / 2) {\n return 'bottom';\n }\n\n return 'center';\n}\n\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n var x = size.x,\n width = size.width;\n var caret = options.caretSize + options.caretPadding;\n\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\n\nfunction determineXAlign(chart, options, size, yAlign) {\n var x = size.x,\n width = size.width;\n var chartWidth = chart.width,\n _chart$chartArea = chart.chartArea,\n left = _chart$chartArea.left,\n right = _chart$chartArea.right;\n var xAlign = 'center';\n\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\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n\n return xAlign;\n}\n\nfunction determineAlignment(chart, options, size) {\n var yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign: yAlign\n };\n}\n\nfunction alignX(size, xAlign) {\n var x = size.x,\n width = size.width;\n\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= width / 2;\n }\n\n return x;\n}\n\nfunction alignY(size, yAlign, paddingAndSize) {\n var y = size.y,\n height = size.height;\n\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= height / 2;\n }\n\n return y;\n}\n\nfunction getBackgroundPoint(options, size, alignment, chart) {\n var caretSize = options.caretSize,\n caretPadding = options.caretPadding,\n cornerRadius = options.cornerRadius;\n var xAlign = alignment.xAlign,\n yAlign = alignment.yAlign;\n var paddingAndSize = caretSize + caretPadding;\n\n var _toTRBLCorners = toTRBLCorners(cornerRadius),\n topLeft = _toTRBLCorners.topLeft,\n topRight = _toTRBLCorners.topRight,\n bottomLeft = _toTRBLCorners.bottomLeft,\n bottomRight = _toTRBLCorners.bottomRight;\n\n var x = alignX(size, xAlign);\n var y = alignY(size, yAlign, paddingAndSize);\n\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\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\n\nfunction getAlignedX(tooltip, align, options) {\n var padding = toPadding(options.padding);\n return align === 'center' ? tooltip.x + tooltip.width / 2 : align === 'right' ? tooltip.x + tooltip.width - padding.right : tooltip.x + padding.left;\n}\n\nfunction getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\n\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip: tooltip,\n tooltipItems: tooltipItems,\n type: 'tooltip'\n });\n}\n\nfunction overrideCallbacks(callbacks, context) {\n var override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\n\nvar Tooltip = /*#__PURE__*/function (_Element8) {\n _inherits(Tooltip, _Element8);\n\n var _super18 = _createSuper(Tooltip);\n\n function Tooltip(config) {\n var _this31;\n\n _classCallCheck(this, Tooltip);\n\n _this31 = _super18.call(this);\n _this31.opacity = 0;\n _this31._active = [];\n _this31._eventPosition = undefined;\n _this31._size = undefined;\n _this31._cachedAnimations = undefined;\n _this31._tooltipItems = [];\n _this31.$animations = undefined;\n _this31.$context = undefined;\n _this31.chart = config.chart || config._chart;\n _this31._chart = _this31.chart;\n _this31.options = config.options;\n _this31.dataPoints = undefined;\n _this31.title = undefined;\n _this31.beforeBody = undefined;\n _this31.body = undefined;\n _this31.afterBody = undefined;\n _this31.footer = undefined;\n _this31.xAlign = undefined;\n _this31.yAlign = undefined;\n _this31.x = undefined;\n _this31.y = undefined;\n _this31.height = undefined;\n _this31.width = undefined;\n _this31.caretX = undefined;\n _this31.caretY = undefined;\n _this31.labelColors = undefined;\n _this31.labelPointStyles = undefined;\n _this31.labelTextColors = undefined;\n return _this31;\n }\n\n _createClass(Tooltip, [{\n key: \"initialize\",\n value: function initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n }, {\n key: \"_resolveAnimations\",\n value: function _resolveAnimations() {\n var cached = this._cachedAnimations;\n\n if (cached) {\n return cached;\n }\n\n var chart = this.chart;\n var options = this.options.setContext(this.getContext());\n var opts = options.enabled && chart.options.animation && options.animations;\n var animations = new Animations(this.chart, opts);\n\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n\n return animations;\n }\n }, {\n key: \"getContext\",\n value: function getContext() {\n return this.$context || (this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n }, {\n key: \"getTitle\",\n value: function getTitle(context, options) {\n var callbacks = options.callbacks;\n var beforeTitle = callbacks.beforeTitle.apply(this, [context]);\n var title = callbacks.title.apply(this, [context]);\n var afterTitle = callbacks.afterTitle.apply(this, [context]);\n var lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n }, {\n key: \"getBeforeBody\",\n value: function getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.beforeBody.apply(this, [tooltipItems]));\n }\n }, {\n key: \"getBody\",\n value: function getBody(tooltipItems, options) {\n var _this32 = this;\n\n var callbacks = options.callbacks;\n var bodyItems = [];\n each(tooltipItems, function (context) {\n var bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n var scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(scoped.beforeLabel.call(_this32, context)));\n pushOrConcat(bodyItem.lines, scoped.label.call(_this32, context));\n pushOrConcat(bodyItem.after, splitNewlines(scoped.afterLabel.call(_this32, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n }, {\n key: \"getAfterBody\",\n value: function getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.afterBody.apply(this, [tooltipItems]));\n }\n }, {\n key: \"getFooter\",\n value: function getFooter(tooltipItems, options) {\n var callbacks = options.callbacks;\n var beforeFooter = callbacks.beforeFooter.apply(this, [tooltipItems]);\n var footer = callbacks.footer.apply(this, [tooltipItems]);\n var afterFooter = callbacks.afterFooter.apply(this, [tooltipItems]);\n var lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n }, {\n key: \"_createItems\",\n value: function _createItems(options) {\n var _this33 = this;\n\n var active = this._active;\n var data = this.chart.data;\n var labelColors = [];\n var labelPointStyles = [];\n var labelTextColors = [];\n var tooltipItems = [];\n var i, len;\n\n for (i = 0, len = active.length; i < len; ++i) {\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n\n if (options.filter) {\n tooltipItems = tooltipItems.filter(function (element, index, array) {\n return options.filter(element, index, array, data);\n });\n }\n\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort(function (a, b) {\n return options.itemSort(a, b, data);\n });\n }\n\n each(tooltipItems, function (context) {\n var scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(scoped.labelColor.call(_this33, context));\n labelPointStyles.push(scoped.labelPointStyle.call(_this33, context));\n labelTextColors.push(scoped.labelTextColor.call(_this33, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n }, {\n key: \"update\",\n value: function update(changed, replay) {\n var options = this.options.setContext(this.getContext());\n var active = this._active;\n var properties;\n var tooltipItems = [];\n\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n var 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 var size = this._size = getTooltipSize(this, options);\n var positionAndSize = Object.assign({}, position, size);\n var alignment = determineAlignment(this.chart, options, positionAndSize);\n var 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\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n\n if (changed && options.external) {\n options.external.call(this, {\n chart: this.chart,\n tooltip: this,\n replay: replay\n });\n }\n }\n }, {\n key: \"drawCaret\",\n value: function drawCaret(tooltipPoint, ctx, size, options) {\n var 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 }, {\n key: \"getCaretPosition\",\n value: function getCaretPosition(tooltipPoint, size, options) {\n var xAlign = this.xAlign,\n yAlign = this.yAlign;\n var caretSize = options.caretSize,\n cornerRadius = options.cornerRadius;\n\n var _toTRBLCorners2 = toTRBLCorners(cornerRadius),\n topLeft = _toTRBLCorners2.topLeft,\n topRight = _toTRBLCorners2.topRight,\n bottomLeft = _toTRBLCorners2.bottomLeft,\n bottomRight = _toTRBLCorners2.bottomRight;\n\n var ptX = tooltipPoint.x,\n ptY = tooltipPoint.y;\n var width = size.width,\n height = size.height;\n var x1, x2, x3, y1, y2, y3;\n\n if (yAlign === 'center') {\n y2 = ptY + height / 2;\n\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\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\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\n y3 = y1;\n }\n\n return {\n x1: x1,\n x2: x2,\n x3: x3,\n y1: y1,\n y2: y2,\n y3: y3\n };\n }\n }, {\n key: \"drawTitle\",\n value: function drawTitle(pt, ctx, options) {\n var title = this.title;\n var length = title.length;\n var titleFont, titleSpacing, i;\n\n if (length) {\n var 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\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\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n }, {\n key: \"_drawColorBox\",\n value: function _drawColorBox(ctx, pt, i, rtlHelper, options) {\n var labelColors = this.labelColors[i];\n var labelPointStyle = this.labelPointStyles[i];\n var boxHeight = options.boxHeight,\n boxWidth = options.boxWidth,\n boxPadding = options.boxPadding;\n var bodyFont = toFont(options.bodyFont);\n var colorX = getAlignedX(this, 'left', options);\n var rtlColorX = rtlHelper.x(colorX);\n var yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n var colorY = pt.y + yOffSet;\n\n if (options.usePointStyle) {\n var drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n var centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n var 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.apply(Math, _toConsumableArray(Object.values(labelColors.borderWidth))) : labelColors.borderWidth || 1;\n ctx.strokeStyle = labelColors.borderColor;\n ctx.setLineDash(labelColors.borderDash || []);\n ctx.lineDashOffset = labelColors.borderDashOffset || 0;\n var outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth - boxPadding);\n var innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - boxPadding - 2);\n var borderRadius = toTRBLCorners(labelColors.borderRadius);\n\n if (Object.values(borderRadius).some(function (v) {\n return v !== 0;\n })) {\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\n ctx.fillStyle = this.labelTextColors[i];\n }\n }, {\n key: \"drawBody\",\n value: function drawBody(pt, ctx, options) {\n var body = this.body;\n var bodySpacing = options.bodySpacing,\n bodyAlign = options.bodyAlign,\n displayColors = options.displayColors,\n boxHeight = options.boxHeight,\n boxWidth = options.boxWidth,\n boxPadding = options.boxPadding;\n var bodyFont = toFont(options.bodyFont);\n var bodyLineHeight = bodyFont.lineHeight;\n var xLinePadding = 0;\n var rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n\n var fillLineOfText = function fillLineOfText(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n\n var bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n var 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' ? bodyAlign === 'center' ? boxWidth / 2 + boxPadding : boxWidth + 2 + boxPadding : 0;\n\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\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n\n for (j = 0, jlen = lines.length; j < jlen; ++j) {\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n\n each(bodyItem.after, fillLineOfText);\n }\n\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n }, {\n key: \"drawFooter\",\n value: function drawFooter(pt, ctx, options) {\n var footer = this.footer;\n var length = footer.length;\n var footerFont, i;\n\n if (length) {\n var 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\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 }, {\n key: \"drawBackground\",\n value: function drawBackground(pt, ctx, tooltipSize, options) {\n var xAlign = this.xAlign,\n yAlign = this.yAlign;\n var x = pt.x,\n y = pt.y;\n var width = tooltipSize.width,\n height = tooltipSize.height;\n\n var _toTRBLCorners3 = toTRBLCorners(options.cornerRadius),\n topLeft = _toTRBLCorners3.topLeft,\n topRight = _toTRBLCorners3.topRight,\n bottomLeft = _toTRBLCorners3.bottomLeft,\n bottomRight = _toTRBLCorners3.bottomRight;\n\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\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n }, {\n key: \"_updateAnimationTarget\",\n value: function _updateAnimationTarget(options) {\n var chart = this.chart;\n var anims = this.$animations;\n var animX = anims && anims.x;\n var animY = anims && anims.y;\n\n if (animX || animY) {\n var position = positioners[options.position].call(this, this._active, this._eventPosition);\n\n if (!position) {\n return;\n }\n\n var size = this._size = getTooltipSize(this, options);\n var positionAndSize = Object.assign({}, position, this._size);\n var alignment = determineAlignment(chart, options, positionAndSize);\n var point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n\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\n this._resolveAnimations().update(this, point);\n }\n }\n }\n }, {\n key: \"_willRender\",\n value: function _willRender() {\n return !!this.opacity;\n }\n }, {\n key: \"draw\",\n value: function draw(ctx) {\n var options = this.options.setContext(this.getContext());\n var opacity = this.opacity;\n\n if (!opacity) {\n return;\n }\n\n this._updateAnimationTarget(options);\n\n var tooltipSize = {\n width: this.width,\n height: this.height\n };\n var pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n var padding = toPadding(options.padding);\n var hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n\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 }, {\n key: \"getActiveElements\",\n value: function getActiveElements() {\n return this._active || [];\n }\n }, {\n key: \"setActiveElements\",\n value: function setActiveElements(activeElements, eventPosition) {\n var _this34 = this;\n\n var lastActive = this._active;\n var active = activeElements.map(function (_ref18) {\n var datasetIndex = _ref18.datasetIndex,\n index = _ref18.index;\n\n var meta = _this34.chart.getDatasetMeta(datasetIndex);\n\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n\n return {\n datasetIndex: datasetIndex,\n element: meta.data[index],\n index: index\n };\n });\n var changed = !_elementsEqual(lastActive, active);\n\n var positionChanged = this._positionChanged(active, eventPosition);\n\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n }, {\n key: \"handleEvent\",\n value: function handleEvent(e, replay) {\n var inChartArea = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n\n this._ignoreReplayEvents = false;\n var options = this.options;\n var lastActive = this._active || [];\n\n var active = this._getActiveElements(e, lastActive, replay, inChartArea);\n\n var positionChanged = this._positionChanged(active, e);\n\n var changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n\n if (changed) {\n this._active = active;\n\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\n return changed;\n }\n }, {\n key: \"_getActiveElements\",\n value: function _getActiveElements(e, lastActive, replay, inChartArea) {\n var options = this.options;\n\n if (e.type === 'mouseout') {\n return [];\n }\n\n if (!inChartArea) {\n return lastActive;\n }\n\n var active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n\n if (options.reverse) {\n active.reverse();\n }\n\n return active;\n }\n }, {\n key: \"_positionChanged\",\n value: function _positionChanged(active, e) {\n var caretX = this.caretX,\n caretY = this.caretY,\n options = this.options;\n var position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n }]);\n\n return Tooltip;\n}(Element);\n\nTooltip.positioners = positioners;\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners: positioners,\n afterInit: function afterInit(chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({\n chart: chart,\n options: options\n });\n }\n },\n beforeUpdate: function beforeUpdate(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset: function reset(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw: function afterDraw(chart) {\n var tooltip = chart.tooltip;\n\n if (tooltip && tooltip._willRender()) {\n var args = {\n tooltip: tooltip\n };\n\n if (chart.notifyPlugins('beforeTooltipDraw', args) === false) {\n return;\n }\n\n tooltip.draw(chart.ctx);\n chart.notifyPlugins('afterTooltipDraw', args);\n }\n },\n afterEvent: function afterEvent(chart, args) {\n if (chart.tooltip) {\n var useFinalPosition = args.replay;\n\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 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: function boxHeight(ctx, opts) {\n return opts.bodyFont.size;\n },\n boxWidth: function boxWidth(ctx, opts) {\n return opts.bodyFont.size;\n },\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: function title(tooltipItems) {\n if (tooltipItems.length > 0) {\n var item = tooltipItems[0];\n var labels = item.chart.data.labels;\n var labelCount = labels ? labels.length : 0;\n\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\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label: function label(tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n\n var label = tooltipItem.dataset.label || '';\n\n if (label) {\n label += ': ';\n }\n\n var value = tooltipItem.formattedValue;\n\n if (!isNullOrUndef(value)) {\n label += value;\n }\n\n return label;\n },\n labelColor: function labelColor(tooltipItem) {\n var meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n var 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: function labelTextColor() {\n return this.options.bodyColor;\n },\n labelPointStyle: function labelPointStyle(tooltipItem) {\n var meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n var 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: function _scriptable(name) {\n return name !== 'filter' && name !== 'itemSort' && name !== 'external';\n },\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};\nvar plugins = /*#__PURE__*/Object.freeze({\n __proto__: null,\n Decimation: plugin_decimation,\n Filler: index,\n Legend: plugin_legend,\n SubTitle: plugin_subtitle,\n Title: plugin_title,\n Tooltip: plugin_tooltip\n});\n\nvar addIfString = function addIfString(labels, raw, index, addedLabels) {\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({\n index: index,\n label: raw\n });\n } else if (isNaN(raw)) {\n index = null;\n }\n\n return index;\n};\n\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n var first = labels.indexOf(raw);\n\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n\n var last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\n\nvar validIndex = function validIndex(index, max) {\n return index === null ? null : _limitValue(Math.round(index), 0, max);\n};\n\nvar CategoryScale = /*#__PURE__*/function (_Scale) {\n _inherits(CategoryScale, _Scale);\n\n var _super19 = _createSuper(CategoryScale);\n\n function CategoryScale(cfg) {\n var _this35;\n\n _classCallCheck(this, CategoryScale);\n\n _this35 = _super19.call(this, cfg);\n _this35._startValue = undefined;\n _this35._valueRange = 0;\n _this35._addedLabels = [];\n return _this35;\n }\n\n _createClass(CategoryScale, [{\n key: \"init\",\n value: function init(scaleOptions) {\n var added = this._addedLabels;\n\n if (added.length) {\n var labels = this.getLabels();\n\n var _iterator25 = _createForOfIteratorHelper(added),\n _step25;\n\n try {\n for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) {\n var _ref20 = _step25.value;\n var _index3 = _ref20.index;\n var label = _ref20.label;\n\n if (labels[_index3] === label) {\n labels.splice(_index3, 1);\n }\n }\n } catch (err) {\n _iterator25.e(err);\n } finally {\n _iterator25.f();\n }\n\n this._addedLabels = [];\n }\n\n _get(_getPrototypeOf(CategoryScale.prototype), \"init\", this).call(this, scaleOptions);\n }\n }, {\n key: \"parse\",\n value: function parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n\n var labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n }, {\n key: \"determineDataLimits\",\n value: function determineDataLimits() {\n var _this$getUserBounds2 = this.getUserBounds(),\n minDefined = _this$getUserBounds2.minDefined,\n maxDefined = _this$getUserBounds2.maxDefined;\n\n var _this$getMinMax = this.getMinMax(true),\n min = _this$getMinMax.min,\n max = _this$getMinMax.max;\n\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n\n this.min = min;\n this.max = max;\n }\n }, {\n key: \"buildTicks\",\n value: function buildTicks() {\n var min = this.min;\n var max = this.max;\n var offset = this.options.offset;\n var ticks = [];\n var 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\n for (var value = min; value <= max; value++) {\n ticks.push({\n value: value\n });\n }\n\n return ticks;\n }\n }, {\n key: \"getLabelForValue\",\n value: function getLabelForValue(value) {\n var labels = this.getLabels();\n\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n\n return value;\n }\n }, {\n key: \"configure\",\n value: function configure() {\n _get(_getPrototypeOf(CategoryScale.prototype), \"configure\", this).call(this);\n\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n }, {\n key: \"getPixelForValue\",\n value: function getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n }, {\n key: \"getPixelForTick\",\n value: function getPixelForTick(index) {\n var ticks = this.ticks;\n\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n\n return this.getPixelForValue(ticks[index].value);\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n }, {\n key: \"getBasePixel\",\n value: function getBasePixel() {\n return this.bottom;\n }\n }]);\n\n return CategoryScale;\n}(Scale);\n\nCategoryScale.id = 'category';\nCategoryScale.defaults = {\n ticks: {\n callback: CategoryScale.prototype.getLabelForValue\n }\n};\n\nfunction generateTicks$1(generationOptions, dataRange) {\n var ticks = [];\n var MIN_SPACING = 1e-14;\n var bounds = generationOptions.bounds,\n step = generationOptions.step,\n min = generationOptions.min,\n max = generationOptions.max,\n precision = generationOptions.precision,\n count = generationOptions.count,\n maxTicks = generationOptions.maxTicks,\n maxDigits = generationOptions.maxDigits,\n includeBounds = generationOptions.includeBounds;\n var unit = step || 1;\n var maxSpaces = maxTicks - 1;\n var rmin = dataRange.min,\n rmax = dataRange.max;\n var minDefined = !isNullOrUndef(min);\n var maxDefined = !isNullOrUndef(max);\n var countDefined = !isNullOrUndef(count);\n var minSpacing = (rmax - rmin) / (maxDigits + 1);\n var spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n var factor, niceMin, niceMax, numSpaces;\n\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [{\n value: rmin\n }, {\n value: rmax\n }];\n }\n\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\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\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\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n\n var decimalPlaces = Math.max(_decimalPlaces(spacing), _decimalPlaces(niceMin));\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n var j = 0;\n\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({\n value: min\n });\n\n if (niceMin < min) {\n j++;\n }\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\n for (; j < numSpaces; ++j) {\n ticks.push({\n value: Math.round((niceMin + j * spacing) * factor) / factor\n });\n }\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({\n value: max\n });\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({\n value: niceMax\n });\n }\n\n return ticks;\n}\n\nfunction relativeLabelSize(value, minSpacing, _ref21) {\n var horizontal = _ref21.horizontal,\n minRotation = _ref21.minRotation;\n var rad = toRadians(minRotation);\n var ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n var length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\n\nvar LinearScaleBase = /*#__PURE__*/function (_Scale2) {\n _inherits(LinearScaleBase, _Scale2);\n\n var _super20 = _createSuper(LinearScaleBase);\n\n function LinearScaleBase(cfg) {\n var _this36;\n\n _classCallCheck(this, LinearScaleBase);\n\n _this36 = _super20.call(this, cfg);\n _this36.start = undefined;\n _this36.end = undefined;\n _this36._startValue = undefined;\n _this36._endValue = undefined;\n _this36._valueRange = 0;\n return _this36;\n }\n\n _createClass(LinearScaleBase, [{\n key: \"parse\",\n value: function parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n\n return +raw;\n }\n }, {\n key: \"handleTickRangeOptions\",\n value: function handleTickRangeOptions() {\n var beginAtZero = this.options.beginAtZero;\n\n var _this$getUserBounds3 = this.getUserBounds(),\n minDefined = _this$getUserBounds3.minDefined,\n maxDefined = _this$getUserBounds3.maxDefined;\n\n var min = this.min,\n max = this.max;\n\n var setMin = function setMin(v) {\n return min = minDefined ? min : v;\n };\n\n var setMax = function setMax(v) {\n return max = maxDefined ? max : v;\n };\n\n if (beginAtZero) {\n var minSign = sign(min);\n var maxSign = sign(max);\n\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n\n if (min === max) {\n var offset = 1;\n\n if (max >= Number.MAX_SAFE_INTEGER || min <= Number.MIN_SAFE_INTEGER) {\n offset = Math.abs(max * 0.05);\n }\n\n setMax(max + offset);\n\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n\n this.min = min;\n this.max = max;\n }\n }, {\n key: \"getTickLimit\",\n value: function getTickLimit() {\n var tickOpts = this.options.ticks;\n var maxTicksLimit = tickOpts.maxTicksLimit,\n stepSize = tickOpts.stepSize;\n var maxTicks;\n\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n\n if (maxTicks > 1000) {\n console.warn(\"scales.\".concat(this.id, \".ticks.stepSize: \").concat(stepSize, \" would result generating up to \").concat(maxTicks, \" ticks. Limiting to 1000.\"));\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n\n return maxTicks;\n }\n }, {\n key: \"computeTickLimit\",\n value: function computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n }, {\n key: \"buildTicks\",\n value: function buildTicks() {\n var opts = this.options;\n var tickOpts = opts.ticks;\n var maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n var numericGeneratorOptions = {\n maxTicks: 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 var dataRange = this._range || this;\n var ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\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\n return ticks;\n }\n }, {\n key: \"configure\",\n value: function configure() {\n var ticks = this.ticks;\n var start = this.min;\n var end = this.max;\n\n _get(_getPrototypeOf(LinearScaleBase.prototype), \"configure\", this).call(this);\n\n if (this.options.offset && ticks.length) {\n var offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n }, {\n key: \"getLabelForValue\",\n value: function getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n }]);\n\n return LinearScaleBase;\n}(Scale);\n\nvar LinearScale = /*#__PURE__*/function (_LinearScaleBase) {\n _inherits(LinearScale, _LinearScaleBase);\n\n var _super21 = _createSuper(LinearScale);\n\n function LinearScale() {\n _classCallCheck(this, LinearScale);\n\n return _super21.apply(this, arguments);\n }\n\n _createClass(LinearScale, [{\n key: \"determineDataLimits\",\n value: function determineDataLimits() {\n var _this$getMinMax2 = this.getMinMax(true),\n min = _this$getMinMax2.min,\n max = _this$getMinMax2.max;\n\n this.min = isNumberFinite(min) ? min : 0;\n this.max = isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n }, {\n key: \"computeTickLimit\",\n value: function computeTickLimit() {\n var horizontal = this.isHorizontal();\n var length = horizontal ? this.width : this.height;\n var minRotation = toRadians(this.options.ticks.minRotation);\n var ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n\n var tickFont = this._resolveTickFontOptions(0);\n\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n }, {\n key: \"getPixelForValue\",\n value: function getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n }]);\n\n return LinearScale;\n}(LinearScaleBase);\n\nLinearScale.id = 'linear';\nLinearScale.defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n};\n\nfunction isMajor(tickVal) {\n var remain = tickVal / Math.pow(10, Math.floor(log10(tickVal)));\n return remain === 1;\n}\n\nfunction generateTicks(generationOptions, dataRange) {\n var endExp = Math.floor(log10(dataRange.max));\n var endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\n var ticks = [];\n var tickVal = finiteOrDefault(generationOptions.min, Math.pow(10, Math.floor(log10(dataRange.min))));\n var exp = Math.floor(log10(tickVal));\n var significand = Math.floor(tickVal / Math.pow(10, exp));\n var precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n\n do {\n ticks.push({\n value: tickVal,\n major: isMajor(tickVal)\n });\n ++significand;\n\n if (significand === 10) {\n significand = 1;\n ++exp;\n precision = exp >= 0 ? 1 : precision;\n }\n\n tickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\n } while (exp < endExp || exp === endExp && significand < endSignificand);\n\n var lastTick = finiteOrDefault(generationOptions.max, tickVal);\n ticks.push({\n value: lastTick,\n major: isMajor(tickVal)\n });\n return ticks;\n}\n\nvar LogarithmicScale = /*#__PURE__*/function (_Scale3) {\n _inherits(LogarithmicScale, _Scale3);\n\n var _super22 = _createSuper(LogarithmicScale);\n\n function LogarithmicScale(cfg) {\n var _this37;\n\n _classCallCheck(this, LogarithmicScale);\n\n _this37 = _super22.call(this, cfg);\n _this37.start = undefined;\n _this37.end = undefined;\n _this37._startValue = undefined;\n _this37._valueRange = 0;\n return _this37;\n }\n\n _createClass(LogarithmicScale, [{\n key: \"parse\",\n value: function parse(raw, index) {\n var value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);\n\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n }, {\n key: \"determineDataLimits\",\n value: function determineDataLimits() {\n var _this$getMinMax3 = this.getMinMax(true),\n min = _this$getMinMax3.min,\n max = _this$getMinMax3.max;\n\n this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n\n this.handleTickRangeOptions();\n }\n }, {\n key: \"handleTickRangeOptions\",\n value: function handleTickRangeOptions() {\n var _this$getUserBounds4 = this.getUserBounds(),\n minDefined = _this$getUserBounds4.minDefined,\n maxDefined = _this$getUserBounds4.maxDefined;\n\n var min = this.min;\n var max = this.max;\n\n var setMin = function setMin(v) {\n return min = minDefined ? min : v;\n };\n\n var setMax = function setMax(v) {\n return max = maxDefined ? max : v;\n };\n\n var exp = function exp(v, m) {\n return Math.pow(10, Math.floor(log10(v)) + m);\n };\n\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\n if (min <= 0) {\n setMin(exp(max, -1));\n }\n\n if (max <= 0) {\n setMax(exp(min, +1));\n }\n\n if (this._zero && this.min !== this._suggestedMin && min === exp(this.min, 0)) {\n setMin(exp(min, -1));\n }\n\n this.min = min;\n this.max = max;\n }\n }, {\n key: \"buildTicks\",\n value: function buildTicks() {\n var opts = this.options;\n var generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n var ticks = generateTicks(generationOptions, this);\n\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\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\n return ticks;\n }\n }, {\n key: \"getLabelForValue\",\n value: function getLabelForValue(value) {\n return value === undefined ? '0' : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n }, {\n key: \"configure\",\n value: function configure() {\n var start = this.min;\n\n _get(_getPrototypeOf(LogarithmicScale.prototype), \"configure\", this).call(this);\n\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n }, {\n key: \"getPixelForValue\",\n value: function getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n\n if (value === null || isNaN(value)) {\n return NaN;\n }\n\n return this.getPixelForDecimal(value === this.min ? 0 : (log10(value) - this._startValue) / this._valueRange);\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {\n var decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n }]);\n\n return LogarithmicScale;\n}(Scale);\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 var tickOpts = opts.ticks;\n\n if (tickOpts.display && opts.display) {\n var padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n\n return 0;\n}\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}\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\n return {\n start: pos,\n end: pos + size\n };\n}\n\nfunction fitWithPointLabels(scale) {\n var 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 var limits = Object.assign({}, orig);\n var labelSizes = [];\n var padding = [];\n var valueCount = scale._pointLabels.length;\n var pointLabelOpts = scale.options.pointLabels;\n var additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n\n for (var i = 0; i < valueCount; i++) {\n var opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n var pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n var plFont = toFont(opts.font);\n var textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n\n var angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n\n var angle = Math.round(toDegrees(angleRadians));\n var hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n var vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n\n scale.setCenterPoint(orig.l - limits.l, limits.r - orig.r, orig.t - limits.t, limits.b - orig.b);\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\n\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n var sin = Math.abs(Math.sin(angle));\n var cos = Math.abs(Math.cos(angle));\n var x = 0;\n var y = 0;\n\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\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}\n\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n var items = [];\n var valueCount = scale._pointLabels.length;\n var opts = scale.options;\n var extra = getTickBackdropHeight(opts) / 2;\n var outerDistance = scale.drawingArea;\n var additionalAngle = opts.pointLabels.centerPointLabels ? PI / valueCount : 0;\n\n for (var i = 0; i < valueCount; i++) {\n var pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + padding[i], additionalAngle);\n var angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n var size = labelSizes[i];\n var y = yForAngle(pointLabelPosition.y, size.h, angle);\n var textAlign = getTextAlignForAngle(angle);\n var left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n items.push({\n x: pointLabelPosition.x,\n y: y,\n textAlign: textAlign,\n left: left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n });\n }\n\n return items;\n}\n\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n\n return 'right';\n}\n\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= w / 2;\n }\n\n return x;\n}\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\n return y;\n}\n\nfunction drawPointLabels(scale, labelCount) {\n var ctx = scale.ctx,\n pointLabels = scale.options.pointLabels;\n\n for (var i = labelCount - 1; i >= 0; i--) {\n var optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n var plFont = toFont(optsAtIndex.font);\n var _scale$_pointLabelIte = scale._pointLabelItems[i],\n x = _scale$_pointLabelIte.x,\n y = _scale$_pointLabelIte.y,\n textAlign = _scale$_pointLabelIte.textAlign,\n left = _scale$_pointLabelIte.left,\n top = _scale$_pointLabelIte.top,\n right = _scale$_pointLabelIte.right,\n bottom = _scale$_pointLabelIte.bottom;\n var backdropColor = optsAtIndex.backdropColor;\n\n if (!isNullOrUndef(backdropColor)) {\n var borderRadius = toTRBLCorners(optsAtIndex.borderRadius);\n var padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillStyle = backdropColor;\n var backdropLeft = left - padding.left;\n var backdropTop = top - padding.top;\n var backdropWidth = right - left + padding.width;\n var backdropHeight = bottom - top + padding.height;\n\n if (Object.values(borderRadius).some(function (v) {\n return v !== 0;\n })) {\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\n renderText(ctx, scale._pointLabels[i], x, y + plFont.lineHeight / 2, plFont, {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n });\n }\n}\n\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n var ctx = scale.ctx;\n\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n var pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n\n for (var i = 1; i < labelCount; i++) {\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\n\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount) {\n var ctx = scale.ctx;\n var circular = gridLineOpts.circular;\n var color = gridLineOpts.color,\n lineWidth = gridLineOpts.lineWidth;\n\n if (!circular && !labelCount || !color || !lineWidth || radius < 0) {\n return;\n }\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}\n\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label: label,\n index: index,\n type: 'pointLabel'\n });\n}\n\nvar RadialLinearScale = /*#__PURE__*/function (_LinearScaleBase2) {\n _inherits(RadialLinearScale, _LinearScaleBase2);\n\n var _super23 = _createSuper(RadialLinearScale);\n\n function RadialLinearScale(cfg) {\n var _this38;\n\n _classCallCheck(this, RadialLinearScale);\n\n _this38 = _super23.call(this, cfg);\n _this38.xCenter = undefined;\n _this38.yCenter = undefined;\n _this38.drawingArea = undefined;\n _this38._pointLabels = [];\n _this38._pointLabelItems = [];\n return _this38;\n }\n\n _createClass(RadialLinearScale, [{\n key: \"setDimensions\",\n value: function setDimensions() {\n var padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n var w = this.width = this.maxWidth - padding.width;\n var 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 }, {\n key: \"determineDataLimits\",\n value: function determineDataLimits() {\n var _this$getMinMax4 = this.getMinMax(false),\n min = _this$getMinMax4.min,\n max = _this$getMinMax4.max;\n\n this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n }, {\n key: \"computeTickLimit\",\n value: function computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n }, {\n key: \"generateTickLabels\",\n value: function generateTickLabels(ticks) {\n var _this39 = this;\n\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels().map(function (value, index) {\n var label = callback(_this39.options.pointLabels.callback, [value, index], _this39);\n return label || label === 0 ? label : '';\n }).filter(function (v, i) {\n return _this39.chart.getDataVisibility(i);\n });\n }\n }, {\n key: \"fit\",\n value: function fit() {\n var opts = this.options;\n\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n }, {\n key: \"setCenterPoint\",\n value: function 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 }, {\n key: \"getIndexAngle\",\n value: function getIndexAngle(index) {\n var angleMultiplier = TAU / (this._pointLabels.length || 1);\n var startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n }, {\n key: \"getDistanceFromCenterForValue\",\n value: function getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n\n var scalingFactor = this.drawingArea / (this.max - this.min);\n\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n\n return (value - this.min) * scalingFactor;\n }\n }, {\n key: \"getValueForDistanceFromCenter\",\n value: function getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n\n var scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n }, {\n key: \"getPointLabelContext\",\n value: function getPointLabelContext(index) {\n var pointLabels = this._pointLabels || [];\n\n if (index >= 0 && index < pointLabels.length) {\n var pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n }, {\n key: \"getPointPosition\",\n value: function getPointPosition(index, distanceFromCenter) {\n var additionalAngle = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var 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: angle\n };\n }\n }, {\n key: \"getPointPositionForValue\",\n value: function getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n }, {\n key: \"getBasePosition\",\n value: function getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n }, {\n key: \"getPointLabelPosition\",\n value: function getPointLabelPosition(index) {\n var _this$_pointLabelItem = this._pointLabelItems[index],\n left = _this$_pointLabelItem.left,\n top = _this$_pointLabelItem.top,\n right = _this$_pointLabelItem.right,\n bottom = _this$_pointLabelItem.bottom;\n return {\n left: left,\n top: top,\n right: right,\n bottom: bottom\n };\n }\n }, {\n key: \"drawBackground\",\n value: function drawBackground() {\n var _this$options15 = this.options,\n backgroundColor = _this$options15.backgroundColor,\n circular = _this$options15.grid.circular;\n\n if (backgroundColor) {\n var 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 }, {\n key: \"drawGrid\",\n value: function drawGrid() {\n var _this40 = this;\n\n var ctx = this.ctx;\n var opts = this.options;\n var angleLines = opts.angleLines,\n grid = opts.grid;\n var labelCount = this._pointLabels.length;\n var i, offset, position;\n\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n\n if (grid.display) {\n this.ticks.forEach(function (tick, index) {\n if (index !== 0) {\n offset = _this40.getDistanceFromCenterForValue(tick.value);\n var optsAtIndex = grid.setContext(_this40.getContext(index - 1));\n drawRadiusLine(_this40, optsAtIndex, offset, labelCount);\n }\n });\n }\n\n if (angleLines.display) {\n ctx.save();\n\n for (i = labelCount - 1; i >= 0; i--) {\n var optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n var color = optsAtIndex.color,\n lineWidth = optsAtIndex.lineWidth;\n\n if (!lineWidth || !color) {\n continue;\n }\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\n ctx.restore();\n }\n }\n }, {\n key: \"drawBorder\",\n value: function drawBorder() {}\n }, {\n key: \"drawLabels\",\n value: function drawLabels() {\n var _this41 = this;\n\n var ctx = this.ctx;\n var opts = this.options;\n var tickOpts = opts.ticks;\n\n if (!tickOpts.display) {\n return;\n }\n\n var startAngle = this.getIndexAngle(0);\n var 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(function (tick, index) {\n if (index === 0 && !opts.reverse) {\n return;\n }\n\n var optsAtIndex = tickOpts.setContext(_this41.getContext(index));\n var tickFont = toFont(optsAtIndex.font);\n offset = _this41.getDistanceFromCenterForValue(_this41.ticks[index].value);\n\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n var padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(-width / 2 - padding.left, -offset - tickFont.size / 2 - padding.top, width + padding.width, 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 }, {\n key: \"drawTitle\",\n value: function drawTitle() {}\n }]);\n\n return RadialLinearScale;\n}(LinearScaleBase);\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: function 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};\nvar INTERVALS = {\n millisecond: {\n common: true,\n size: 1,\n steps: 1000\n },\n second: {\n common: true,\n size: 1000,\n steps: 60\n },\n minute: {\n common: true,\n size: 60000,\n steps: 60\n },\n hour: {\n common: true,\n size: 3600000,\n steps: 24\n },\n day: {\n common: true,\n size: 86400000,\n steps: 30\n },\n week: {\n common: false,\n size: 604800000,\n steps: 4\n },\n month: {\n common: true,\n size: 2.628e9,\n steps: 12\n },\n quarter: {\n common: false,\n size: 7.884e9,\n steps: 4\n },\n year: {\n common: true,\n size: 3.154e10\n }\n};\nvar UNITS = Object.keys(INTERVALS);\n\nfunction sorter(a, b) {\n return a - b;\n}\n\nfunction _parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n\n var adapter = scale._adapter;\n var _scale$_parseOpts = scale._parseOpts,\n parser = _scale$_parseOpts.parser,\n round = _scale$_parseOpts.round,\n isoWeekday = _scale$_parseOpts.isoWeekday;\n var value = input;\n\n if (typeof parser === 'function') {\n value = parser(value);\n }\n\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string' ? adapter.parse(value, parser) : adapter.parse(value);\n }\n\n if (value === null) {\n return null;\n }\n\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true) ? adapter.startOf(value, 'isoWeek', isoWeekday) : adapter.startOf(value, round);\n }\n\n return +value;\n}\n\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n var ilen = UNITS.length;\n\n for (var i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n var interval = INTERVALS[UNITS[i]];\n var factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n\n return UNITS[ilen - 1];\n}\n\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for (var i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n var unit = UNITS[i];\n\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\n\nfunction determineMajorUnit(unit) {\n for (var i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\n\nfunction addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n var _lookup2 = _lookup(timestamps, time),\n lo = _lookup2.lo,\n hi = _lookup2.hi;\n\n var timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\n\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n var adapter = scale._adapter;\n var first = +adapter.startOf(ticks[0].value, majorUnit);\n var last = ticks[ticks.length - 1].value;\n var major, index;\n\n for (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n index = map[major];\n\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n\n return ticks;\n}\n\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n var ticks = [];\n var map = {};\n var ilen = values.length;\n var i, value;\n\n for (i = 0; i < ilen; ++i) {\n value = values[i];\n map[value] = i;\n ticks.push({\n value: value,\n major: false\n });\n }\n\n return ilen === 0 || !majorUnit ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\n\nvar TimeScale = /*#__PURE__*/function (_Scale4) {\n _inherits(TimeScale, _Scale4);\n\n var _super24 = _createSuper(TimeScale);\n\n function TimeScale(props) {\n var _this42;\n\n _classCallCheck(this, TimeScale);\n\n _this42 = _super24.call(this, props);\n _this42._cache = {\n data: [],\n labels: [],\n all: []\n };\n _this42._unit = 'day';\n _this42._majorUnit = undefined;\n _this42._offsets = {};\n _this42._normalized = false;\n _this42._parseOpts = undefined;\n return _this42;\n }\n\n _createClass(TimeScale, [{\n key: \"init\",\n value: function init(scaleOpts, opts) {\n var time = scaleOpts.time || (scaleOpts.time = {});\n var 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\n _get(_getPrototypeOf(TimeScale.prototype), \"init\", this).call(this, scaleOpts);\n\n this._normalized = opts.normalized;\n }\n }, {\n key: \"parse\",\n value: function parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n\n return _parse(this, raw);\n }\n }, {\n key: \"beforeLayout\",\n value: function beforeLayout() {\n _get(_getPrototypeOf(TimeScale.prototype), \"beforeLayout\", this).call(this);\n\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n }, {\n key: \"determineDataLimits\",\n value: function determineDataLimits() {\n var options = this.options;\n var adapter = this._adapter;\n var unit = options.time.unit || 'day';\n\n var _this$getUserBounds5 = this.getUserBounds(),\n min = _this$getUserBounds5.min,\n max = _this$getUserBounds5.max,\n minDefined = _this$getUserBounds5.minDefined,\n maxDefined = _this$getUserBounds5.maxDefined;\n\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\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 }, {\n key: \"_getLabelBounds\",\n value: function _getLabelBounds() {\n var arr = this.getLabelTimestamps();\n var min = Number.POSITIVE_INFINITY;\n var max = Number.NEGATIVE_INFINITY;\n\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n\n return {\n min: min,\n max: max\n };\n }\n }, {\n key: \"buildTicks\",\n value: function buildTicks() {\n var options = this.options;\n var timeOpts = options.time;\n var tickOpts = options.ticks;\n var timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n\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\n var min = this.min;\n var max = this.max;\n\n var ticks = _filterBetween(timestamps, min, max);\n\n this._unit = timeOpts.unit || (tickOpts.autoSkip ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min)) : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n\n if (options.reverse) {\n ticks.reverse();\n }\n\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n }, {\n key: \"afterAutoSkip\",\n value: function afterAutoSkip() {\n if (this.options.offsetAfterAutoskip) {\n this.initOffsets(this.ticks.map(function (tick) {\n return +tick.value;\n }));\n }\n }\n }, {\n key: \"initOffsets\",\n value: function initOffsets(timestamps) {\n var start = 0;\n var end = 0;\n var first, last;\n\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n\n var limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n this._offsets = {\n start: start,\n end: end,\n factor: 1 / (start + 1 + end)\n };\n }\n }, {\n key: \"_generate\",\n value: function _generate() {\n var adapter = this._adapter;\n var min = this.min;\n var max = this.max;\n var options = this.options;\n var timeOpts = options.time;\n var minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n var stepSize = valueOrDefault(timeOpts.stepSize, 1);\n var weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n var hasWeekday = isNumber(weekday) || weekday === true;\n var ticks = {};\n var first = min;\n var time, count;\n\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n\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\n var timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n\n for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {\n addTick(ticks, time, timestamps);\n }\n\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n\n return Object.keys(ticks).sort(function (a, b) {\n return a - b;\n }).map(function (x) {\n return +x;\n });\n }\n }, {\n key: \"getLabelForValue\",\n value: function getLabelForValue(value) {\n var adapter = this._adapter;\n var timeOpts = this.options.time;\n\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n }, {\n key: \"_tickFormatFunction\",\n value: function _tickFormatFunction(time, index, ticks, format) {\n var options = this.options;\n var formats = options.time.displayFormats;\n var unit = this._unit;\n var majorUnit = this._majorUnit;\n var minorFormat = unit && formats[unit];\n var majorFormat = majorUnit && formats[majorUnit];\n var tick = ticks[index];\n var major = majorUnit && majorFormat && tick && tick.major;\n\n var label = this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n\n var formatter = options.ticks.callback;\n return formatter ? callback(formatter, [label, index, ticks], this) : label;\n }\n }, {\n key: \"generateTickLabels\",\n value: function generateTickLabels(ticks) {\n var i, ilen, tick;\n\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 }, {\n key: \"getDecimalForValue\",\n value: function getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n }, {\n key: \"getPixelForValue\",\n value: function getPixelForValue(value) {\n var offsets = this._offsets;\n var pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {\n var offsets = this._offsets;\n var pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n }, {\n key: \"_getLabelSize\",\n value: function _getLabelSize(label) {\n var ticksOpts = this.options.ticks;\n var tickLabelWidth = this.ctx.measureText(label).width;\n var angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n var cosRotation = Math.cos(angle);\n var sinRotation = Math.sin(angle);\n\n var tickFontSize = this._resolveTickFontOptions(0).size;\n\n return {\n w: tickLabelWidth * cosRotation + tickFontSize * sinRotation,\n h: tickLabelWidth * sinRotation + tickFontSize * cosRotation\n };\n }\n }, {\n key: \"_getLabelCapacity\",\n value: function _getLabelCapacity(exampleTime) {\n var timeOpts = this.options.time;\n var displayFormats = timeOpts.displayFormats;\n var format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n\n var exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [exampleTime], this._majorUnit), format);\n\n var size = this._getLabelSize(exampleLabel);\n\n var capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n }, {\n key: \"getDataTimestamps\",\n value: function getDataTimestamps() {\n var timestamps = this._cache.data || [];\n var i, ilen;\n\n if (timestamps.length) {\n return timestamps;\n }\n\n var metas = this.getMatchingVisibleMetas();\n\n if (this._normalized && metas.length) {\n return this._cache.data = metas[0].controller.getAllParsedValues(this);\n }\n\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n\n return this._cache.data = this.normalize(timestamps);\n }\n }, {\n key: \"getLabelTimestamps\",\n value: function getLabelTimestamps() {\n var timestamps = this._cache.labels || [];\n var i, ilen;\n\n if (timestamps.length) {\n return timestamps;\n }\n\n var labels = this.getLabels();\n\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n timestamps.push(_parse(this, labels[i]));\n }\n\n return this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps);\n }\n }, {\n key: \"normalize\",\n value: function normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n }]);\n\n return TimeScale;\n}(Scale);\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 var lo = 0;\n var hi = table.length - 1;\n var prevSource, nextSource, prevTarget, nextTarget;\n\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n var _lookupByKey2 = _lookupByKey(table, 'pos', val);\n\n lo = _lookupByKey2.lo;\n hi = _lookupByKey2.hi;\n }\n\n var _table$lo = table[lo];\n prevSource = _table$lo.pos;\n prevTarget = _table$lo.time;\n var _table$hi = table[hi];\n nextSource = _table$hi.pos;\n nextTarget = _table$hi.time;\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n var _lookupByKey3 = _lookupByKey(table, 'time', val);\n\n lo = _lookupByKey3.lo;\n hi = _lookupByKey3.hi;\n }\n\n var _table$lo2 = table[lo];\n prevSource = _table$lo2.time;\n prevTarget = _table$lo2.pos;\n var _table$hi2 = table[hi];\n nextSource = _table$hi2.time;\n nextTarget = _table$hi2.pos;\n }\n\n var span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\n\nvar TimeSeriesScale = /*#__PURE__*/function (_TimeScale) {\n _inherits(TimeSeriesScale, _TimeScale);\n\n var _super25 = _createSuper(TimeSeriesScale);\n\n function TimeSeriesScale(props) {\n var _this43;\n\n _classCallCheck(this, TimeSeriesScale);\n\n _this43 = _super25.call(this, props);\n _this43._table = [];\n _this43._minPos = undefined;\n _this43._tableRange = undefined;\n return _this43;\n }\n\n _createClass(TimeSeriesScale, [{\n key: \"initOffsets\",\n value: function initOffsets() {\n var timestamps = this._getTimestampsForTable();\n\n var table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n\n _get(_getPrototypeOf(TimeSeriesScale.prototype), \"initOffsets\", this).call(this, timestamps);\n }\n }, {\n key: \"buildLookupTable\",\n value: function buildLookupTable(timestamps) {\n var min = this.min,\n max = this.max;\n var items = [];\n var table = [];\n var i, ilen, prev, curr, next;\n\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n curr = timestamps[i];\n\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n\n if (items.length < 2) {\n return [{\n time: min,\n pos: 0\n }, {\n time: max,\n pos: 1\n }];\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\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({\n time: curr,\n pos: i / (ilen - 1)\n });\n }\n }\n\n return table;\n }\n }, {\n key: \"_getTimestampsForTable\",\n value: function _getTimestampsForTable() {\n var timestamps = this._cache.all || [];\n\n if (timestamps.length) {\n return timestamps;\n }\n\n var data = this.getDataTimestamps();\n var label = this.getLabelTimestamps();\n\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n }, {\n key: \"getDecimalForValue\",\n value: function getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n }, {\n key: \"getValueForPixel\",\n value: function getValueForPixel(pixel) {\n var offsets = this._offsets;\n var decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n }]);\n\n return TimeSeriesScale;\n}(TimeScale);\n\nTimeSeriesScale.id = 'timeseries';\nTimeSeriesScale.defaults = TimeScale.defaults;\nvar scales = /*#__PURE__*/Object.freeze({\n __proto__: null,\n CategoryScale: CategoryScale,\n LinearScale: LinearScale,\n LogarithmicScale: LogarithmicScale,\n RadialLinearScale: RadialLinearScale,\n TimeScale: TimeScale,\n TimeSeriesScale: TimeSeriesScale\n});\nvar registerables = [controllers, elements, plugins, scales];\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 };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n!function (t, e) {\n \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) && \"undefined\" != typeof module ? module.exports = e() : \"function\" == typeof define && define.amd ? define(e) : (t = \"undefined\" != typeof globalThis ? globalThis : t || self).dayjs = e();\n}(this, function () {\n \"use strict\";\n\n var t = 1e3,\n e = 6e4,\n n = 36e5,\n r = \"millisecond\",\n i = \"second\",\n s = \"minute\",\n u = \"hour\",\n a = \"day\",\n o = \"week\",\n f = \"month\",\n h = \"quarter\",\n c = \"year\",\n d = \"date\",\n $ = \"Invalid Date\",\n l = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,\n y = /\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,\n M = {\n name: \"en\",\n weekdays: \"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),\n months: \"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\")\n },\n m = function m(t, e, n) {\n var r = String(t);\n return !r || r.length >= e ? t : \"\" + Array(e + 1 - r.length).join(n) + t;\n },\n g = {\n s: m,\n z: function z(t) {\n var e = -t.utcOffset(),\n n = Math.abs(e),\n r = Math.floor(n / 60),\n i = n % 60;\n return (e <= 0 ? \"+\" : \"-\") + m(r, 2, \"0\") + \":\" + m(i, 2, \"0\");\n },\n m: function t(e, n) {\n if (e.date() < n.date()) return -t(n, e);\n var r = 12 * (n.year() - e.year()) + (n.month() - e.month()),\n i = e.clone().add(r, f),\n s = n - i < 0,\n u = e.clone().add(r + (s ? -1 : 1), f);\n return +(-(r + (n - i) / (s ? i - u : u - i)) || 0);\n },\n a: function a(t) {\n return t < 0 ? Math.ceil(t) || 0 : Math.floor(t);\n },\n p: function p(t) {\n return {\n M: f,\n y: c,\n w: o,\n d: a,\n D: d,\n h: u,\n m: s,\n s: i,\n ms: r,\n Q: h\n }[t] || String(t || \"\").toLowerCase().replace(/s$/, \"\");\n },\n u: function u(t) {\n return void 0 === t;\n }\n },\n v = \"en\",\n D = {};\n\n D[v] = M;\n\n var p = function p(t) {\n return t instanceof _;\n },\n S = function t(e, n, r) {\n var i;\n if (!e) return v;\n\n if (\"string\" == typeof e) {\n var s = e.toLowerCase();\n D[s] && (i = s), n && (D[s] = n, i = s);\n var u = e.split(\"-\");\n if (!i && u.length > 1) return t(u[0]);\n } else {\n var a = e.name;\n D[a] = e, i = a;\n }\n\n return !r && i && (v = i), i || !r && v;\n },\n w = function w(t, e) {\n if (p(t)) return t.clone();\n var n = \"object\" == _typeof(e) ? e : {};\n return n.date = t, n.args = arguments, new _(n);\n },\n O = g;\n\n O.l = S, O.i = p, O.w = function (t, e) {\n return w(t, {\n locale: e.$L,\n utc: e.$u,\n x: e.$x,\n $offset: e.$offset\n });\n };\n\n var _ = function () {\n function M(t) {\n this.$L = S(t.locale, null, !0), this.parse(t);\n }\n\n var m = M.prototype;\n return m.parse = function (t) {\n this.$d = function (t) {\n var e = t.date,\n n = t.utc;\n if (null === e) return new Date(NaN);\n if (O.u(e)) return new Date();\n if (e instanceof Date) return new Date(e);\n\n if (\"string\" == typeof e && !/Z$/i.test(e)) {\n var r = e.match(l);\n\n if (r) {\n var i = r[2] - 1 || 0,\n s = (r[7] || \"0\").substring(0, 3);\n return n ? new Date(Date.UTC(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[6] || 0, s)) : new Date(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[6] || 0, s);\n }\n }\n\n return new Date(e);\n }(t), this.$x = t.x || {}, this.init();\n }, m.init = function () {\n var t = this.$d;\n this.$y = t.getFullYear(), this.$M = t.getMonth(), this.$D = t.getDate(), this.$W = t.getDay(), this.$H = t.getHours(), this.$m = t.getMinutes(), this.$s = t.getSeconds(), this.$ms = t.getMilliseconds();\n }, m.$utils = function () {\n return O;\n }, m.isValid = function () {\n return !(this.$d.toString() === $);\n }, m.isSame = function (t, e) {\n var n = w(t);\n return this.startOf(e) <= n && n <= this.endOf(e);\n }, m.isAfter = function (t, e) {\n return w(t) < this.startOf(e);\n }, m.isBefore = function (t, e) {\n return this.endOf(e) < w(t);\n }, m.$g = function (t, e, n) {\n return O.u(t) ? this[e] : this.set(n, t);\n }, m.unix = function () {\n return Math.floor(this.valueOf() / 1e3);\n }, m.valueOf = function () {\n return this.$d.getTime();\n }, m.startOf = function (t, e) {\n var n = this,\n r = !!O.u(e) || e,\n h = O.p(t),\n $ = function $(t, e) {\n var i = O.w(n.$u ? Date.UTC(n.$y, e, t) : new Date(n.$y, e, t), n);\n return r ? i : i.endOf(a);\n },\n l = function l(t, e) {\n return O.w(n.toDate()[t].apply(n.toDate(\"s\"), (r ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e)), n);\n },\n y = this.$W,\n M = this.$M,\n m = this.$D,\n g = \"set\" + (this.$u ? \"UTC\" : \"\");\n\n switch (h) {\n case c:\n return r ? $(1, 0) : $(31, 11);\n\n case f:\n return r ? $(1, M) : $(0, M + 1);\n\n case o:\n var v = this.$locale().weekStart || 0,\n D = (y < v ? y + 7 : y) - v;\n return $(r ? m - D : m + (6 - D), M);\n\n case a:\n case d:\n return l(g + \"Hours\", 0);\n\n case u:\n return l(g + \"Minutes\", 1);\n\n case s:\n return l(g + \"Seconds\", 2);\n\n case i:\n return l(g + \"Milliseconds\", 3);\n\n default:\n return this.clone();\n }\n }, m.endOf = function (t) {\n return this.startOf(t, !1);\n }, m.$set = function (t, e) {\n var n,\n o = O.p(t),\n h = \"set\" + (this.$u ? \"UTC\" : \"\"),\n $ = (n = {}, n[a] = h + \"Date\", n[d] = h + \"Date\", n[f] = h + \"Month\", n[c] = h + \"FullYear\", n[u] = h + \"Hours\", n[s] = h + \"Minutes\", n[i] = h + \"Seconds\", n[r] = h + \"Milliseconds\", n)[o],\n l = o === a ? this.$D + (e - this.$W) : e;\n\n if (o === f || o === c) {\n var y = this.clone().set(d, 1);\n y.$d[$](l), y.init(), this.$d = y.set(d, Math.min(this.$D, y.daysInMonth())).$d;\n } else $ && this.$d[$](l);\n\n return this.init(), this;\n }, m.set = function (t, e) {\n return this.clone().$set(t, e);\n }, m.get = function (t) {\n return this[O.p(t)]();\n }, m.add = function (r, h) {\n var d,\n $ = this;\n r = Number(r);\n\n var l = O.p(h),\n y = function y(t) {\n var e = w($);\n return O.w(e.date(e.date() + Math.round(t * r)), $);\n };\n\n if (l === f) return this.set(f, this.$M + r);\n if (l === c) return this.set(c, this.$y + r);\n if (l === a) return y(1);\n if (l === o) return y(7);\n var M = (d = {}, d[s] = e, d[u] = n, d[i] = t, d)[l] || 1,\n m = this.$d.getTime() + r * M;\n return O.w(m, this);\n }, m.subtract = function (t, e) {\n return this.add(-1 * t, e);\n }, m.format = function (t) {\n var e = this,\n n = this.$locale();\n if (!this.isValid()) return n.invalidDate || $;\n\n var r = t || \"YYYY-MM-DDTHH:mm:ssZ\",\n i = O.z(this),\n s = this.$H,\n u = this.$m,\n a = this.$M,\n o = n.weekdays,\n f = n.months,\n h = function h(t, n, i, s) {\n return t && (t[n] || t(e, r)) || i[n].slice(0, s);\n },\n c = function c(t) {\n return O.s(s % 12 || 12, t, \"0\");\n },\n d = n.meridiem || function (t, e, n) {\n var r = t < 12 ? \"AM\" : \"PM\";\n return n ? r.toLowerCase() : r;\n },\n l = {\n YY: String(this.$y).slice(-2),\n YYYY: this.$y,\n M: a + 1,\n MM: O.s(a + 1, 2, \"0\"),\n MMM: h(n.monthsShort, a, f, 3),\n MMMM: h(f, a),\n D: this.$D,\n DD: O.s(this.$D, 2, \"0\"),\n d: String(this.$W),\n dd: h(n.weekdaysMin, this.$W, o, 2),\n ddd: h(n.weekdaysShort, this.$W, o, 3),\n dddd: o[this.$W],\n H: String(s),\n HH: O.s(s, 2, \"0\"),\n h: c(1),\n hh: c(2),\n a: d(s, u, !0),\n A: d(s, u, !1),\n m: String(u),\n mm: O.s(u, 2, \"0\"),\n s: String(this.$s),\n ss: O.s(this.$s, 2, \"0\"),\n SSS: O.s(this.$ms, 3, \"0\"),\n Z: i\n };\n\n return r.replace(y, function (t, e) {\n return e || l[t] || i.replace(\":\", \"\");\n });\n }, m.utcOffset = function () {\n return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);\n }, m.diff = function (r, d, $) {\n var l,\n y = O.p(d),\n M = w(r),\n m = (M.utcOffset() - this.utcOffset()) * e,\n g = this - M,\n v = O.m(this, M);\n return v = (l = {}, l[c] = v / 12, l[f] = v, l[h] = v / 3, l[o] = (g - m) / 6048e5, l[a] = (g - m) / 864e5, l[u] = g / n, l[s] = g / e, l[i] = g / t, l)[y] || g, $ ? v : O.a(v);\n }, m.daysInMonth = function () {\n return this.endOf(f).$D;\n }, m.$locale = function () {\n return D[this.$L];\n }, m.locale = function (t, e) {\n if (!t) return this.$L;\n var n = this.clone(),\n r = S(t, e, !0);\n return r && (n.$L = r), n;\n }, m.clone = function () {\n return O.w(this.$d, this);\n }, m.toDate = function () {\n return new Date(this.valueOf());\n }, m.toJSON = function () {\n return this.isValid() ? this.toISOString() : null;\n }, m.toISOString = function () {\n return this.$d.toISOString();\n }, m.toString = function () {\n return this.$d.toUTCString();\n }, M;\n }(),\n T = _.prototype;\n\n return w.prototype = T, [[\"$ms\", r], [\"$s\", i], [\"$m\", s], [\"$H\", u], [\"$W\", a], [\"$M\", f], [\"$y\", c], [\"$D\", d]].forEach(function (t) {\n T[t[1]] = function (e) {\n return this.$g(e, t[0], t[1]);\n };\n }), w.extend = function (t, e) {\n return t.$i || (t(e, _, w), t.$i = !0), w;\n }, w.locale = S, w.isDayjs = p, w.unix = function (t) {\n return w(1e3 * t);\n }, w.en = D[v], w.Ls = D, w.p = {}, w;\n});","define(function () {\n \"use strict\";\n\n return function isFunction(obj) {\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n // Plus for old WebKit, typeof returns \"function\" for HTML collections\n // (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\" && typeof obj.item !== \"function\";\n };\n});","define(function () {\n \"use strict\";\n\n return window.document;\n});","define([\"./selector-sizzle\"], function () {\n \"use strict\";\n});","// Initialize a jQuery object\ndefine([\"../core\", \"../var/document\", \"../var/isFunction\", \"./var/rsingleTag\", \"../traversing/findFilter\"], function (jQuery, document, isFunction, rsingleTag) {\n \"use strict\"; // A central reference to the root jQuery(document)\n\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over to avoid XSS via location.hash (trac-9521)\n // Strict HTML recognition (trac-11290: must start with <)\n // Shortcut simple #id case for speed\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem; // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\n if (!selector) {\n return this;\n } // Method init() accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n\n\n root = root || rootjQuery; // Handle HTML strings\n\n if (typeof selector === \"string\") {\n if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n } // Match html or make sure no context is specified for #id\n\n\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context; // Option to run scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true)); // HANDLE: $(html, props)\n\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (isFunction(this[match])) {\n this[match](context[match]); // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n\n return this; // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]);\n\n if (elem) {\n // Inject the element directly into the jQuery object\n this[0] = elem;\n this.length = 1;\n }\n\n return this;\n } // HANDLE: $(expr, $(...))\n\n } else if (!context || context.jquery) {\n return (context || root).find(selector); // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n } // HANDLE: $(DOMElement)\n\n } else if (selector.nodeType) {\n this[0] = selector;\n this.length = 1;\n return this; // HANDLE: $(function)\n // Shortcut for document ready\n } else if (isFunction(selector)) {\n return root.ready !== undefined ? root.ready(selector) : // Execute immediately if ready is not present\n selector(jQuery);\n }\n\n return jQuery.makeArray(selector, this);\n }; // Give the init function the jQuery prototype for later instantiation\n\n\n init.prototype = jQuery.fn; // Initialize central reference\n\n rootjQuery = jQuery(document);\n return init;\n});","define([\"../Data\"], function (Data) {\n \"use strict\";\n\n return new Data();\n});","'use strict';\n\nimport utils from '../utils.js';\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\n\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = new Error().stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n['ERR_BAD_OPTION_VALUE', 'ERR_BAD_OPTION', 'ECONNABORTED', 'ETIMEDOUT', 'ERR_NETWORK', 'ERR_FR_TOO_MANY_REDIRECTS', 'ERR_DEPRECATED', 'ERR_BAD_RESPONSE', 'ERR_BAD_REQUEST', 'ERR_CANCELED', 'ERR_NOT_SUPPORT', 'ERR_INVALID_URL' // eslint-disable-next-line func-names\n].forEach(function (code) {\n descriptors[code] = {\n value: code\n };\n});\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {\n value: true\n}); // eslint-disable-next-line func-names\n\nAxiosError.from = function (error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, function (prop) {\n return prop !== 'isAxiosError';\n });\n AxiosError.call(axiosError, error.message, code, config, request, response);\n axiosError.cause = error;\n axiosError.name = error.name;\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n};\n\nexport default AxiosError;","define(function () {\n \"use strict\";\n\n function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }\n\n return nodeName;\n});","define(function () {\n \"use strict\"; // Only count HTML whitespace\n // Other whitespace should count in values\n // https://infra.spec.whatwg.org/#ascii-whitespace\n\n return /[^\\x20\\t\\r\\n\\f]+/g;\n});","module.exports = require(\"regenerator-runtime\");\n","define(function () {\n \"use strict\"; // All support tests are defined in their respective modules.\n\n return {};\n});","define([\"../core\", \"../core/toType\", \"../var/isFunction\"], function (jQuery, toType, isFunction) {\n \"use strict\"; // Multifunctional method to get and set values of a collection\n // The value/s can optionally be executed if it's a function\n\n var access = function access(elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null; // Sets many values\n\n if (toType(key) === \"object\") {\n chainable = true;\n\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n } // Sets one value\n\n } else if (value !== undefined) {\n chainable = true;\n\n if (!isFunction(value)) {\n raw = true;\n }\n\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null; // ...except when executing function values\n } else {\n bulk = fn;\n\n fn = function fn(elem, _key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n\n if (fn) {\n for (; i < len; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n\n if (chainable) {\n return elems;\n } // Gets\n\n\n if (bulk) {\n return fn.call(elems);\n }\n\n return len ? fn(elems[0], key) : emptyGet;\n };\n\n return access;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"./core\", \"./var/document\", \"./var/isFunction\", \"./var/rnothtmlwhite\", \"./ajax/var/location\", \"./ajax/var/nonce\", \"./ajax/var/rquery\", \"./core/init\", \"./core/parseXML\", \"./event/trigger\", \"./deferred\", \"./serialize\" // jQuery.param\n], function (jQuery, document, isFunction, rnothtmlwhite, location, nonce, rquery) {\n \"use strict\";\n\n var r20 = /%20/g,\n rhash = /#.*$/,\n rantiCache = /([?&])_=[^&]*/,\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n // trac-7653, trac-8125, trac-8152: local protocol detection\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n rnoContent = /^(?:GET|HEAD)$/,\n rprotocol = /^\\/\\//,\n\n /* Prefilters\n * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n * 2) These are called:\n * - BEFORE asking for a transport\n * - AFTER param serialization (s.data is a string if s.processData is true)\n * 3) key is the dataType\n * 4) the catchall symbol \"*\" can be used\n * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n */\n prefilters = {},\n\n /* Transports bindings\n * 1) key is the dataType\n * 2) the catchall symbol \"*\" can be used\n * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n */\n transports = {},\n // Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n allTypes = \"*/\".concat(\"*\"),\n // Anchor tag for parsing the document origin\n originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href; // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n\n function addToPrefiltersOrTransports(structure) {\n // dataTypeExpression is optional and defaults to \"*\"\n return function (dataTypeExpression, func) {\n if (typeof dataTypeExpression !== \"string\") {\n func = dataTypeExpression;\n dataTypeExpression = \"*\";\n }\n\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n\n if (isFunction(func)) {\n // For each dataType in the dataTypeExpression\n while (dataType = dataTypes[i++]) {\n // Prepend if requested\n if (dataType[0] === \"+\") {\n dataType = dataType.slice(1) || \"*\";\n (structure[dataType] = structure[dataType] || []).unshift(func); // Otherwise append\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n } // Base inspection function for prefilters and transports\n\n\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n\n function inspect(dataType) {\n var selected;\n inspected[dataType] = true;\n jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n\n if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n options.dataTypes.unshift(dataTypeOrTransport);\n inspect(dataTypeOrTransport);\n return false;\n } else if (seekingTransport) {\n return !(selected = dataTypeOrTransport);\n }\n });\n return selected;\n }\n\n return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\n } // A special extend for ajax options\n // that takes \"flat\" options (not to be deep extended)\n // Fixes trac-9887\n\n\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n\n return target;\n }\n /* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\n\n\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes; // Remove auto dataType and get content-type in the process\n\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n } // Check if we're dealing with a known content-type\n\n\n if (ct) {\n for (type in contents) {\n if (contents[type] && contents[type].test(ct)) {\n dataTypes.unshift(type);\n break;\n }\n }\n } // Check to see if we have a response for the expected dataType\n\n\n if (dataTypes[0] in responses) {\n finalDataType = dataTypes[0];\n } else {\n // Try convertible dataTypes\n for (type in responses) {\n if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n finalDataType = type;\n break;\n }\n\n if (!firstDataType) {\n firstDataType = type;\n }\n } // Or just use first one\n\n\n finalDataType = finalDataType || firstDataType;\n } // If we found a dataType\n // We add the dataType to the list if needed\n // and return the corresponding response\n\n\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n\n return responses[finalDataType];\n }\n }\n /* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\n\n\n function ajaxConvert(s, response, jqXHR, isSuccess) {\n var conv2,\n current,\n conv,\n tmp,\n prev,\n converters = {},\n // Work with a copy of dataTypes in case we need to modify it for conversion\n dataTypes = s.dataTypes.slice(); // Create converters map with lowercased keys\n\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n\n current = dataTypes.shift(); // Convert to each sequential dataType\n\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n } // Apply the dataFilter if provided\n\n\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n\n prev = current;\n current = dataTypes.shift();\n\n if (current) {\n // There's only work to do if current dataType is non-auto\n if (current === \"*\") {\n current = prev; // Convert response if prev dataType is non-auto and differs from current\n } else if (prev !== \"*\" && prev !== current) {\n // Seek a direct converter\n conv = converters[prev + \" \" + current] || converters[\"* \" + current]; // If none found, seek a pair\n\n if (!conv) {\n for (conv2 in converters) {\n // If conv2 outputs current\n tmp = conv2.split(\" \");\n\n if (tmp[1] === current) {\n // If prev can be converted to accepted input\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n\n if (conv) {\n // Condense equivalence converters\n if (conv === true) {\n conv = converters[conv2]; // Otherwise, insert the intermediate dataType\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n\n break;\n }\n }\n }\n } // Apply converter (if not an equivalence)\n\n\n if (conv !== true) {\n // Unless errors are allowed to bubble, catch and return them\n if (conv && s[\"throws\"]) {\n response = conv(response);\n } else {\n try {\n response = conv(response);\n } catch (e) {\n return {\n state: \"parsererror\",\n error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n };\n }\n }\n }\n }\n }\n }\n\n return {\n state: \"success\",\n data: response\n };\n }\n\n jQuery.extend({\n // Counter for holding the number of active queries\n active: 0,\n // Last-Modified header cache for next request\n lastModified: {},\n etag: {},\n ajaxSettings: {\n url: location.href,\n type: \"GET\",\n isLocal: rlocalProtocol.test(location.protocol),\n global: true,\n processData: true,\n async: true,\n contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n /*\n timeout: 0,\n data: null,\n dataType: null,\n username: null,\n password: null,\n cache: null,\n throws: false,\n traditional: false,\n headers: {},\n */\n accepts: {\n \"*\": allTypes,\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\"\n },\n contents: {\n xml: /\\bxml\\b/,\n html: /\\bhtml/,\n json: /\\bjson\\b/\n },\n responseFields: {\n xml: \"responseXML\",\n text: \"responseText\",\n json: \"responseJSON\"\n },\n // Data converters\n // Keys separate source (or catchall \"*\") and destination types with a single space\n converters: {\n // Convert anything to text\n \"* text\": String,\n // Text to html (true = no transformation)\n \"text html\": true,\n // Evaluate text as a json expression\n \"text json\": JSON.parse,\n // Parse text as xml\n \"text xml\": jQuery.parseXML\n },\n // For options that shouldn't be deep extended:\n // you can add your own custom options here if\n // and when you create one that shouldn't be\n // deep extended (see ajaxExtend)\n flatOptions: {\n url: true,\n context: true\n }\n },\n // Creates a full fledged settings object into target\n // with both ajaxSettings and settings fields.\n // If target is omitted, writes into ajaxSettings.\n ajaxSetup: function ajaxSetup(target, settings) {\n return settings ? // Building a settings object\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) : // Extending ajaxSettings\n ajaxExtend(jQuery.ajaxSettings, target);\n },\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n ajaxTransport: addToPrefiltersOrTransports(transports),\n // Main method\n ajax: function ajax(url, options) {\n // If url is an object, simulate pre-1.5 signature\n if (_typeof(url) === \"object\") {\n options = url;\n url = undefined;\n } // Force options to be an object\n\n\n options = options || {};\n\n var transport,\n // URL without anti-cache param\n cacheURL,\n // Response headers\n responseHeadersString,\n responseHeaders,\n // timeout handle\n timeoutTimer,\n // Url cleanup var\n urlAnchor,\n // Request state (becomes false upon send and true upon completion)\n completed,\n // To know if global events are to be dispatched\n fireGlobals,\n // Loop variable\n i,\n // uncached part of the url\n uncached,\n // Create the final options object\n s = jQuery.ajaxSetup({}, options),\n // Callbacks context\n callbackContext = s.context || s,\n // Context for global events is callbackContext if it is a DOM node or jQuery collection\n globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n // Deferreds\n deferred = jQuery.Deferred(),\n completeDeferred = jQuery.Callbacks(\"once memory\"),\n // Status-dependent callbacks\n _statusCode = s.statusCode || {},\n // Headers (they are sent all at once)\n requestHeaders = {},\n requestHeadersNames = {},\n // Default abort message\n strAbort = \"canceled\",\n // Fake xhr\n jqXHR = {\n readyState: 0,\n // Builds headers hashtable if needed\n getResponseHeader: function getResponseHeader(key) {\n var match;\n\n if (completed) {\n if (!responseHeaders) {\n responseHeaders = {};\n\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n }\n }\n\n match = responseHeaders[key.toLowerCase() + \" \"];\n }\n\n return match == null ? null : match.join(\", \");\n },\n // Raw string\n getAllResponseHeaders: function getAllResponseHeaders() {\n return completed ? responseHeadersString : null;\n },\n // Caches the header\n setRequestHeader: function setRequestHeader(name, value) {\n if (completed == null) {\n name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n requestHeaders[name] = value;\n }\n\n return this;\n },\n // Overrides response content-type header\n overrideMimeType: function overrideMimeType(type) {\n if (completed == null) {\n s.mimeType = type;\n }\n\n return this;\n },\n // Status-dependent callbacks\n statusCode: function statusCode(map) {\n var code;\n\n if (map) {\n if (completed) {\n // Execute the appropriate callbacks\n jqXHR.always(map[jqXHR.status]);\n } else {\n // Lazy-add the new callbacks in a way that preserves old ones\n for (code in map) {\n _statusCode[code] = [_statusCode[code], map[code]];\n }\n }\n }\n\n return this;\n },\n // Cancel the request\n abort: function abort(statusText) {\n var finalText = statusText || strAbort;\n\n if (transport) {\n transport.abort(finalText);\n }\n\n done(0, finalText);\n return this;\n }\n }; // Attach deferreds\n\n\n deferred.promise(jqXHR); // Add protocol if not provided (prefilters might expect it)\n // Handle falsy url in the settings object (trac-10093: consistency with old signature)\n // We also use the url parameter if available\n\n s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\"); // Alias method option to type as per ticket trac-12004\n\n s.type = options.method || options.type || s.method || s.type; // Extract dataTypes list\n\n s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"]; // A cross-domain request is in order when the origin doesn't match the current origin.\n\n if (s.crossDomain == null) {\n urlAnchor = document.createElement(\"a\"); // Support: IE <=8 - 11, Edge 12 - 15\n // IE throws exception on accessing the href property if url is malformed,\n // e.g. http://example.com:80x/\n\n try {\n urlAnchor.href = s.url; // Support: IE <=8 - 11 only\n // Anchor's host property isn't correctly set when s.url is relative\n\n urlAnchor.href = urlAnchor.href;\n s.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host;\n } catch (e) {\n // If there is an error parsing the URL, assume it is crossDomain,\n // it can be rejected by the transport if it is invalid\n s.crossDomain = true;\n }\n } // Convert data if not already a string\n\n\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n } // Apply prefilters\n\n\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); // If request was aborted inside a prefilter, stop there\n\n if (completed) {\n return jqXHR;\n } // We can fire global events as of now if asked to\n // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n\n\n fireGlobals = jQuery.event && s.global; // Watch for a new set of requests\n\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n } // Uppercase the type\n\n\n s.type = s.type.toUpperCase(); // Determine if request has content\n\n s.hasContent = !rnoContent.test(s.type); // Save the URL in case we're toying with the If-Modified-Since\n // and/or If-None-Match header later on\n // Remove hash to simplify url manipulation\n\n cacheURL = s.url.replace(rhash, \"\"); // More options handling for requests with no content\n\n if (!s.hasContent) {\n // Remember the hash so we can put it back\n uncached = s.url.slice(cacheURL.length); // If data is available and should be processed, append data to url\n\n if (s.data && (s.processData || typeof s.data === \"string\")) {\n cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data; // trac-9682: remove data so that it's not used in an eventual retry\n\n delete s.data;\n } // Add or update anti-cache param if needed\n\n\n if (s.cache === false) {\n cacheURL = cacheURL.replace(rantiCache, \"$1\");\n uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n } // Put hash and anti-cache on the URL that will be requested (gh-1732)\n\n\n s.url = cacheURL + uncached; // Change '%20' to '+' if this is encoded form body content (gh-2658)\n } else if (s.data && s.processData && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\n s.data = s.data.replace(r20, \"+\");\n } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\n\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n } // Set the correct header, if data is being sent\n\n\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n } // Set the Accepts header for the server, depending on the dataType\n\n\n jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]); // Check for headers option\n\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n } // Allow custom headers/mimetypes and early abort\n\n\n if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\n // Abort if not done already and return\n return jqXHR.abort();\n } // Aborting is no longer a cancellation\n\n\n strAbort = \"abort\"; // Install callbacks on deferreds\n\n completeDeferred.add(s.complete);\n jqXHR.done(s.success);\n jqXHR.fail(s.error); // Get transport\n\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR); // If no transport, we auto-abort\n\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1; // Send global event\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n } // If request was aborted inside ajaxSend, stop there\n\n\n if (completed) {\n return jqXHR;\n } // Timeout\n\n\n if (s.async && s.timeout > 0) {\n timeoutTimer = window.setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\n\n try {\n completed = false;\n transport.send(requestHeaders, done);\n } catch (e) {\n // Rethrow post-completion exceptions\n if (completed) {\n throw e;\n } // Propagate others as results\n\n\n done(-1, e);\n }\n } // Callback for when everything is done\n\n\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText; // Ignore repeat invocations\n\n if (completed) {\n return;\n }\n\n completed = true; // Clear timeout if it exists\n\n if (timeoutTimer) {\n window.clearTimeout(timeoutTimer);\n } // Dereference transport for early garbage collection\n // (no matter how long the jqXHR object will be used)\n\n\n transport = undefined; // Cache response headers\n\n responseHeadersString = headers || \"\"; // Set readyState\n\n jqXHR.readyState = status > 0 ? 4 : 0; // Determine if successful\n\n isSuccess = status >= 200 && status < 300 || status === 304; // Get response data\n\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n } // Use a noop converter for missing script but not if jsonp\n\n\n if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1 && jQuery.inArray(\"json\", s.dataTypes) < 0) {\n s.converters[\"text script\"] = function () {};\n } // Convert no matter what (that way responseXXX fields are always set)\n\n\n response = ajaxConvert(s, response, jqXHR, isSuccess); // If successful, handle type chaining\n\n if (isSuccess) {\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n modified = jqXHR.getResponseHeader(\"Last-Modified\");\n\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n\n modified = jqXHR.getResponseHeader(\"etag\");\n\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n } // if no content\n\n\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\"; // if not modified\n } else if (status === 304) {\n statusText = \"notmodified\"; // If we have data, let's convert it\n } else {\n statusText = response.state;\n success = response.data;\n error = response.error;\n isSuccess = !error;\n }\n } else {\n // Extract error from statusText and normalize for non-aborts\n error = statusText;\n\n if (status || !statusText) {\n statusText = \"error\";\n\n if (status < 0) {\n status = 0;\n }\n }\n } // Set data for the fake xhr object\n\n\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\"; // Success/Error\n\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n } // Status-dependent callbacks\n\n\n jqXHR.statusCode(_statusCode);\n _statusCode = undefined;\n\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n } // Complete\n\n\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]); // Handle the global AJAX counter\n\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\n }\n }\n\n return jqXHR;\n },\n getJSON: function getJSON(url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n getScript: function getScript(url, callback) {\n return jQuery.get(url, undefined, callback, \"script\");\n }\n });\n jQuery.each([\"get\", \"post\"], function (_i, method) {\n jQuery[method] = function (url, data, callback, type) {\n // Shift arguments if data argument was omitted\n if (isFunction(data)) {\n type = type || callback;\n callback = data;\n data = undefined;\n } // The url can be an options object (which then must have .url)\n\n\n return jQuery.ajax(jQuery.extend({\n url: url,\n type: method,\n dataType: type,\n data: data,\n success: callback\n }, jQuery.isPlainObject(url) && url));\n };\n });\n jQuery.ajaxPrefilter(function (s) {\n var i;\n\n for (i in s.headers) {\n if (i.toLowerCase() === \"content-type\") {\n s.contentType = s.headers[i] || \"\";\n }\n }\n });\n return jQuery;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"../var/class2type\", \"../var/toString\"], function (class2type, toString) {\n \"use strict\";\n\n function toType(obj) {\n if (obj == null) {\n return obj + \"\";\n } // Support: Android <=2.3 only (functionish RegExp)\n\n\n return _typeof(obj) === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : _typeof(obj);\n }\n\n return toType;\n});","define([\"./core\", \"./var/getProto\", \"./var/indexOf\", \"./traversing/var/dir\", \"./traversing/var/siblings\", \"./traversing/var/rneedsContext\", \"./core/nodeName\", \"./core/init\", \"./traversing/findFilter\", \"./selector\"], function (jQuery, getProto, indexOf, dir, _siblings, rneedsContext, nodeName) {\n \"use strict\";\n\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // Methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function has(target) {\n var targets = jQuery(target, this),\n l = targets.length;\n return this.filter(function () {\n var i = 0;\n\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function closest(selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n targets = typeof selectors !== \"string\" && jQuery(selectors); // Positional selectors never match, since there's no _selection_ context\n\n if (!rneedsContext.test(selectors)) {\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 : // Don't pass non-elements to Sizzle\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n }\n\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within the set\n index: function index(elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n } // Index in selector\n\n\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n } // Locate the position of the desired element\n\n\n return indexOf.call(this, // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem);\n },\n add: function add(selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function addBack(selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n\n return cur;\n }\n\n jQuery.each({\n parent: function parent(elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function parents(elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function parentsUntil(elem, _i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function next(elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function prev(elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function nextAll(elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function prevAll(elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function nextUntil(elem, _i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function prevUntil(elem, _i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function siblings(elem) {\n return _siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function children(elem) {\n return _siblings(elem.firstChild);\n },\n contents: function contents(elem) {\n if (elem.contentDocument != null && // Support: IE 11+\n // elements with no `data` attribute has an object\n // `contentDocument` with a `null` prototype.\n getProto(elem.contentDocument)) {\n return elem.contentDocument;\n } // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n\n\n if (nodeName(elem, \"template\")) {\n elem = elem.content || elem;\n }\n\n return jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var matched = jQuery.map(this, fn, until);\n\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n jQuery.uniqueSort(matched);\n } // Reverse order for parents* and prev-derivatives\n\n\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n\n return this.pushStack(matched);\n };\n });\n return jQuery;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"./core\", \"./var/isFunction\", \"./var/slice\", \"./callbacks\"], function (jQuery, isFunction, slice) {\n \"use strict\";\n\n function Identity(v) {\n return v;\n }\n\n function Thrower(ex) {\n throw ex;\n }\n\n function adoptValue(value, resolve, reject, noValue) {\n var method;\n\n try {\n // Check for promise aspect first to privilege synchronous behavior\n if (value && isFunction(method = value.promise)) {\n method.call(value).done(resolve).fail(reject); // Other thenables\n } else if (value && isFunction(method = value.then)) {\n method.call(value, resolve, reject); // Other non-thenables\n } else {\n // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n // * false: [ value ].slice( 0 ) => resolve( value )\n // * true: [ value ].slice( 1 ) => resolve()\n resolve.apply(undefined, [value].slice(noValue));\n } // For Promises/A+, convert exceptions into rejections\n // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n // Deferred#then to conditionally suppress rejection.\n\n } catch (value) {\n // Support: Android 4.0 only\n // Strict mode functions invoked without .call/.apply get global-object context\n reject.apply(undefined, [value]);\n }\n }\n\n jQuery.extend({\n Deferred: function Deferred(func) {\n var tuples = [// action, add listener, callbacks,\n // ... .then handlers, argument index, [final state]\n [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\"), 2], [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 0, \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 1, \"rejected\"]],\n _state = \"pending\",\n _promise = {\n state: function state() {\n return _state;\n },\n always: function always() {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n \"catch\": function _catch(fn) {\n return _promise.then(null, fn);\n },\n // Keep pipe for back-compat\n pipe: function\n /* fnDone, fnFail, fnProgress */\n pipe() {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (_i, tuple) {\n // Map tuples (progress, done, fail) to arguments (done, fail, progress)\n var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]]; // deferred.progress(function() { bind to newDefer or newDefer.notify })\n // deferred.done(function() { bind to newDefer or newDefer.resolve })\n // deferred.fail(function() { bind to newDefer or newDefer.reject })\n\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n\n if (returned && isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n then: function then(onFulfilled, onRejected, onProgress) {\n var maxDepth = 0;\n\n function resolve(depth, deferred, handler, special) {\n return function () {\n var that = this,\n args = arguments,\n mightThrow = function mightThrow() {\n var returned, then; // Support: Promises/A+ section 2.3.3.3.3\n // https://promisesaplus.com/#point-59\n // Ignore double-resolution attempts\n\n if (depth < maxDepth) {\n return;\n }\n\n returned = handler.apply(that, args); // Support: Promises/A+ section 2.3.1\n // https://promisesaplus.com/#point-48\n\n if (returned === deferred.promise()) {\n throw new TypeError(\"Thenable self-resolution\");\n } // Support: Promises/A+ sections 2.3.3.1, 3.5\n // https://promisesaplus.com/#point-54\n // https://promisesaplus.com/#point-75\n // Retrieve `then` only once\n\n\n then = returned && ( // Support: Promises/A+ section 2.3.4\n // https://promisesaplus.com/#point-64\n // Only check objects and functions for thenability\n _typeof(returned) === \"object\" || typeof returned === \"function\") && returned.then; // Handle a returned thenable\n\n if (isFunction(then)) {\n // Special processors (notify) just wait for resolution\n if (special) {\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special)); // Normal processors (resolve) also hook into progress\n } else {\n // ...and disregard older resolution values\n maxDepth++;\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith));\n } // Handle all other returned values\n\n } else {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Identity) {\n that = undefined;\n args = [returned];\n } // Process the value(s)\n // Default process is resolve\n\n\n (special || deferred.resolveWith)(that, args);\n }\n },\n // Only normal processors (resolve) catch and reject exceptions\n process = special ? mightThrow : function () {\n try {\n mightThrow();\n } catch (e) {\n if (jQuery.Deferred.exceptionHook) {\n jQuery.Deferred.exceptionHook(e, process.stackTrace);\n } // Support: Promises/A+ section 2.3.3.3.4.1\n // https://promisesaplus.com/#point-61\n // Ignore post-resolution exceptions\n\n\n if (depth + 1 >= maxDepth) {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Thrower) {\n that = undefined;\n args = [e];\n }\n\n deferred.rejectWith(that, args);\n }\n }\n }; // Support: Promises/A+ section 2.3.3.3.1\n // https://promisesaplus.com/#point-57\n // Re-resolve promises immediately to dodge false rejection from\n // subsequent errors\n\n\n if (depth) {\n process();\n } else {\n // Call an optional hook to record the stack, in case of exception\n // since it's otherwise lost when execution goes async\n if (jQuery.Deferred.getStackHook) {\n process.stackTrace = jQuery.Deferred.getStackHook();\n }\n\n window.setTimeout(process);\n }\n };\n }\n\n return jQuery.Deferred(function (newDefer) {\n // progress_handlers.add( ... )\n tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith)); // fulfilled_handlers.add( ... )\n\n tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity)); // rejected_handlers.add( ... )\n\n tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower));\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function promise(obj) {\n return obj != null ? jQuery.extend(obj, _promise) : _promise;\n }\n },\n deferred = {}; // Add list-specific methods\n\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[5]; // promise.progress = list.add\n // promise.done = list.add\n // promise.fail = list.add\n\n _promise[tuple[1]] = list.add; // Handle state\n\n if (stateString) {\n list.add(function () {\n // state = \"resolved\" (i.e., fulfilled)\n // state = \"rejected\"\n _state = stateString;\n }, // rejected_callbacks.disable\n // fulfilled_callbacks.disable\n tuples[3 - i][2].disable, // rejected_handlers.disable\n // fulfilled_handlers.disable\n tuples[3 - i][3].disable, // progress_callbacks.lock\n tuples[0][2].lock, // progress_handlers.lock\n tuples[0][3].lock);\n } // progress_handlers.fire\n // fulfilled_handlers.fire\n // rejected_handlers.fire\n\n\n list.add(tuple[3].fire); // deferred.notify = function() { deferred.notifyWith(...) }\n // deferred.resolve = function() { deferred.resolveWith(...) }\n // deferred.reject = function() { deferred.rejectWith(...) }\n\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n return this;\n }; // deferred.notifyWith = list.fireWith\n // deferred.resolveWith = list.fireWith\n // deferred.rejectWith = list.fireWith\n\n\n deferred[tuple[0] + \"With\"] = list.fireWith;\n }); // Make the deferred a promise\n\n _promise.promise(deferred); // Call given func if any\n\n\n if (func) {\n func.call(deferred, deferred);\n } // All done!\n\n\n return deferred;\n },\n // Deferred helper\n when: function when(singleValue) {\n var // count of uncompleted subordinates\n remaining = arguments.length,\n // count of unprocessed arguments\n i = remaining,\n // subordinate fulfillment data\n resolveContexts = Array(i),\n resolveValues = slice.call(arguments),\n // the primary Deferred\n primary = jQuery.Deferred(),\n // subordinate callback factory\n updateFunc = function updateFunc(i) {\n return function (value) {\n resolveContexts[i] = this;\n resolveValues[i] = arguments.length > 1 ? slice.call(arguments) : value;\n\n if (! --remaining) {\n primary.resolveWith(resolveContexts, resolveValues);\n }\n };\n }; // Single- and empty arguments are adopted like Promise.resolve\n\n\n if (remaining <= 1) {\n adoptValue(singleValue, primary.done(updateFunc(i)).resolve, primary.reject, !remaining); // Use .then() to unwrap secondary thenables (cf. gh-3000)\n\n if (primary.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n return primary.then();\n }\n } // Multiple arguments are aggregated like Promise.all array elements\n\n\n while (i--) {\n adoptValue(resolveValues[i], updateFunc(i), primary.reject);\n }\n\n return primary.promise();\n }\n });\n return jQuery;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"./core\", \"./var/document\", \"./var/documentElement\", \"./var/isFunction\", \"./var/rnothtmlwhite\", \"./var/rcheckableType\", \"./var/slice\", \"./data/var/acceptData\", \"./data/var/dataPriv\", \"./core/nodeName\", \"./core/init\", \"./selector\"], function (jQuery, document, documentElement, isFunction, rnothtmlwhite, rcheckableType, slice, acceptData, dataPriv, nodeName) {\n \"use strict\";\n\n var rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\n } // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous, except when they are no-op.\n // So expect focus to be synchronous when the element is already active,\n // and blur to be synchronous when the element is not already active.\n // (focus and blur are always synchronous in other supported browsers,\n // this just defines when we can count on it).\n\n\n function expectSync(elem, type) {\n return elem === safeActiveElement() === (type === \"focus\");\n } // Support: IE <=9 only\n // Accessing document.activeElement can throw unexpectedly\n // https://bugs.jquery.com/ticket/13393\n\n\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n\n function _on(elem, types, selector, data, fn, one) {\n var origFn, type; // Types can be a map of types/handlers\n\n if (_typeof(types) === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n\n for (type in types) {\n _on(elem, type, selector, data, types[type], one);\n }\n\n return elem;\n }\n\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n\n if (one === 1) {\n origFn = fn;\n\n fn = function fn(event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n }; // Use same guid so caller can remove using origFn\n\n\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\n }\n /*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\n\n\n jQuery.event = {\n global: {},\n add: function add(elem, types, handler, data, selector) {\n var handleObjIn,\n eventHandle,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.get(elem); // Only attach events to objects that accept data\n\n if (!acceptData(elem)) {\n return;\n } // Caller can pass in an object of custom data in lieu of the handler\n\n\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n } // Ensure that invalid selectors throw exceptions at attach time\n // Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\n\n if (selector) {\n jQuery.find.matchesSelector(documentElement, selector);\n } // Make sure that the handler has a unique ID, used to find/remove it later\n\n\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n } // Init the element's event structure and main handler, if this is the first\n\n\n if (!(events = elemData.events)) {\n events = elemData.events = Object.create(null);\n }\n\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n };\n } // Handle multiple events separated by a space\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // There *must* be a type, no attaching namespace-only handlers\n\n if (!type) {\n continue;\n } // If event changes its type, use the special event handlers for the changed type\n\n\n special = jQuery.event.special[type] || {}; // If selector defined, determine special event api type, otherwise given type\n\n type = (selector ? special.delegateType : special.bindType) || type; // Update special based on newly reset type\n\n special = jQuery.event.special[type] || {}; // handleObj is passed to all event handlers\n\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn); // Init the event handler queue if we're the first\n\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0; // Only use addEventListener if the special events handler returns false\n\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle);\n }\n }\n }\n\n if (special.add) {\n special.add.call(elem, handleObj);\n\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n } // Add to the element's handler list, delegates in front\n\n\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n } // Keep track of which events have ever been used, for event optimization\n\n\n jQuery.event.global[type] = true;\n }\n },\n // Detach an event or set of events from an element\n remove: function remove(elem, types, handler, selector, mappedTypes) {\n var j,\n origCount,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.hasData(elem) && dataPriv.get(elem);\n\n if (!elemData || !(events = elemData.events)) {\n return;\n } // Once for each type.namespace in types; type may be omitted\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // Unbind all events (on this namespace, if provided) for the element\n\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n\n continue;\n }\n\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\"); // Remove matching events\n\n origCount = j = handlers.length;\n\n while (j--) {\n handleObj = handlers[j];\n\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n } // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n\n\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n\n delete events[type];\n }\n } // Remove data and the expando if it's no longer used\n\n\n if (jQuery.isEmptyObject(events)) {\n dataPriv.remove(elem, \"handle events\");\n }\n },\n dispatch: function dispatch(nativeEvent) {\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue,\n args = new Array(arguments.length),\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(nativeEvent),\n handlers = (dataPriv.get(this, \"events\") || Object.create(null))[event.type] || [],\n special = jQuery.event.special[event.type] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event\n\n args[0] = event;\n\n for (i = 1; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n event.delegateTarget = this; // Call the preDispatch hook for the mapped type, and let it bail if desired\n\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n } // Determine handlers\n\n\n handlerQueue = jQuery.event.handlers.call(this, event, handlers); // Run delegates first; they may want to stop propagation beneath us\n\n i = 0;\n\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // If the event is namespaced, then each handler is only invoked if it is\n // specially universal or its namespaces are a superset of the event's.\n if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n } // Call the postDispatch hook for the mapped type\n\n\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n\n return event.result;\n },\n handlers: function handlers(event, _handlers) {\n var i,\n handleObj,\n sel,\n matchedHandlers,\n matchedSelectors,\n handlerQueue = [],\n delegateCount = _handlers.delegateCount,\n cur = event.target; // Find delegate handlers\n\n if (delegateCount && // Support: IE <=9\n // Black-hole SVG instance trees (trac-13180)\n cur.nodeType && // Support: Firefox <=42\n // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n // Support: IE 11 only\n // ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n !(event.type === \"click\" && event.button >= 1)) {\n for (; cur !== this; cur = cur.parentNode || this) {\n // Don't check non-elements (trac-13208)\n // Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n if (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\n matchedHandlers = [];\n matchedSelectors = {};\n\n for (i = 0; i < delegateCount; i++) {\n handleObj = _handlers[i]; // Don't conflict with Object.prototype properties (trac-13203)\n\n sel = handleObj.selector + \" \";\n\n if (matchedSelectors[sel] === undefined) {\n matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length;\n }\n\n if (matchedSelectors[sel]) {\n matchedHandlers.push(handleObj);\n }\n }\n\n if (matchedHandlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: matchedHandlers\n });\n }\n }\n }\n } // Add the remaining (directly-bound) handlers\n\n\n cur = this;\n\n if (delegateCount < _handlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: _handlers.slice(delegateCount)\n });\n }\n\n return handlerQueue;\n },\n addProp: function addProp(name, hook) {\n Object.defineProperty(jQuery.Event.prototype, name, {\n enumerable: true,\n configurable: true,\n get: isFunction(hook) ? function () {\n if (this.originalEvent) {\n return hook(this.originalEvent);\n }\n } : function () {\n if (this.originalEvent) {\n return this.originalEvent[name];\n }\n },\n set: function set(value) {\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n });\n }\n });\n },\n fix: function fix(originalEvent) {\n return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent);\n },\n special: {\n load: {\n // Prevent triggered image.load events from bubbling to window.load\n noBubble: true\n },\n click: {\n // Utilize native event to ensure correct state for checkable inputs\n setup: function setup(data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Claim the first handler\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n // dataPriv.set( el, \"click\", ... )\n leverageNative(el, \"click\", returnTrue);\n } // Return false to allow normal processing in the caller\n\n\n return false;\n },\n trigger: function trigger(data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Force setup before triggering a click\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n leverageNative(el, \"click\");\n } // Return non-false to allow normal event-path propagation\n\n\n return true;\n },\n // For cross-browser consistency, suppress native .click() on links\n // Also prevent it if we're currently inside a leveraged native-event stack\n _default: function _default(event) {\n var target = event.target;\n return rcheckableType.test(target.type) && target.click && nodeName(target, \"input\") && dataPriv.get(target, \"click\") || nodeName(target, \"a\");\n }\n },\n beforeunload: {\n postDispatch: function postDispatch(event) {\n // Support: Firefox 20+\n // Firefox doesn't alert if the returnValue field is not set.\n if (event.result !== undefined && event.originalEvent) {\n event.originalEvent.returnValue = event.result;\n }\n }\n }\n }\n }; // Ensure the presence of an event listener that handles manually-triggered\n // synthetic events by interrupting progress until reinvoked in response to\n // *native* events that it fires directly, ensuring that state changes have\n // already occurred before other listeners are invoked.\n\n function leverageNative(el, type, expectSync) {\n // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n if (!expectSync) {\n if (dataPriv.get(el, type) === undefined) {\n jQuery.event.add(el, type, returnTrue);\n }\n\n return;\n } // Register the controller as a special universal handler for all event namespaces\n\n\n dataPriv.set(el, type, false);\n jQuery.event.add(el, type, {\n namespace: false,\n handler: function handler(event) {\n var notAsync,\n result,\n saved = dataPriv.get(this, type);\n\n if (event.isTrigger & 1 && this[type]) {\n // Interrupt processing of the outer synthetic .trigger()ed event\n // Saved data should be false in such cases, but might be a leftover capture object\n // from an async native handler (gh-4350)\n if (!saved.length) {\n // Store arguments for use when handling the inner native event\n // There will always be at least one argument (an event object), so this array\n // will not be confused with a leftover capture object.\n saved = slice.call(arguments);\n dataPriv.set(this, type, saved); // Trigger the native event and capture its result\n // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous\n\n notAsync = expectSync(this, type);\n this[type]();\n result = dataPriv.get(this, type);\n\n if (saved !== result || notAsync) {\n dataPriv.set(this, type, false);\n } else {\n result = {};\n }\n\n if (saved !== result) {\n // Cancel the outer synthetic event\n event.stopImmediatePropagation();\n event.preventDefault(); // Support: Chrome 86+\n // In Chrome, if an element having a focusout handler is blurred by\n // clicking outside of it, it invokes the handler synchronously. If\n // that handler calls `.remove()` on the element, the data is cleared,\n // leaving `result` undefined. We need to guard against this.\n\n return result && result.value;\n } // If this is an inner synthetic event for an event with a bubbling surrogate\n // (focus or blur), assume that the surrogate already propagated from triggering the\n // native event and prevent that from happening again here.\n // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n // bubbling surrogate propagates *after* the non-bubbling base), but that seems\n // less bad than duplication.\n\n } else if ((jQuery.event.special[type] || {}).delegateType) {\n event.stopPropagation();\n } // If this is a native event triggered above, everything is now in order\n // Fire an inner synthetic event with the original arguments\n\n } else if (saved.length) {\n // ...and capture the result\n dataPriv.set(this, type, {\n value: jQuery.event.trigger( // Support: IE <=9 - 11+\n // Extend with the prototype to reset the above stopImmediatePropagation()\n jQuery.extend(saved[0], jQuery.Event.prototype), saved.slice(1), this)\n }); // Abort handling of the native event\n\n event.stopImmediatePropagation();\n }\n }\n });\n }\n\n jQuery.removeEvent = function (elem, type, handle) {\n // This \"if\" is needed for plain objects\n if (elem.removeEventListener) {\n elem.removeEventListener(type, handle);\n }\n };\n\n jQuery.Event = function (src, props) {\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof jQuery.Event)) {\n return new jQuery.Event(src, props);\n } // Event object\n\n\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type; // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n\n this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined && // Support: Android <=2.3 only\n src.returnValue === false ? returnTrue : returnFalse; // Create target properties\n // Support: Safari <=6 - 7 only\n // Target should not be a text node (trac-504, trac-13143)\n\n this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n this.currentTarget = src.currentTarget;\n this.relatedTarget = src.relatedTarget; // Event type\n } else {\n this.type = src;\n } // Put explicitly provided properties onto the event object\n\n\n if (props) {\n jQuery.extend(this, props);\n } // Create a timestamp if incoming event doesn't have one\n\n\n this.timeStamp = src && src.timeStamp || Date.now(); // Mark it as fixed\n\n this[jQuery.expando] = true;\n }; // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n\n\n jQuery.Event.prototype = {\n constructor: jQuery.Event,\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n isSimulated: false,\n preventDefault: function preventDefault() {\n var e = this.originalEvent;\n this.isDefaultPrevented = returnTrue;\n\n if (e && !this.isSimulated) {\n e.preventDefault();\n }\n },\n stopPropagation: function stopPropagation() {\n var e = this.originalEvent;\n this.isPropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function stopImmediatePropagation() {\n var e = this.originalEvent;\n this.isImmediatePropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopImmediatePropagation();\n }\n\n this.stopPropagation();\n }\n }; // Includes all common event props including KeyEvent and MouseEvent specific props\n\n jQuery.each({\n altKey: true,\n bubbles: true,\n cancelable: true,\n changedTouches: true,\n ctrlKey: true,\n detail: true,\n eventPhase: true,\n metaKey: true,\n pageX: true,\n pageY: true,\n shiftKey: true,\n view: true,\n \"char\": true,\n code: true,\n charCode: true,\n key: true,\n keyCode: true,\n button: true,\n buttons: true,\n clientX: true,\n clientY: true,\n offsetX: true,\n offsetY: true,\n pointerId: true,\n pointerType: true,\n screenX: true,\n screenY: true,\n targetTouches: true,\n toElement: true,\n touches: true,\n which: true\n }, jQuery.event.addProp);\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (type, delegateType) {\n jQuery.event.special[type] = {\n // Utilize native event if possible so blur/focus sequence is correct\n setup: function setup() {\n // Claim the first handler\n // dataPriv.set( this, \"focus\", ... )\n // dataPriv.set( this, \"blur\", ... )\n leverageNative(this, type, expectSync); // Return false to allow normal processing in the caller\n\n return false;\n },\n trigger: function trigger() {\n // Force setup before trigger\n leverageNative(this, type); // Return non-false to allow normal event-path propagation\n\n return true;\n },\n // Suppress native focus or blur if we're currently inside\n // a leveraged native-event stack\n _default: function _default(event) {\n return dataPriv.get(event.target, type);\n },\n delegateType: delegateType\n };\n }); // Create mouseenter/leave events using mouseover/out and event-time checks\n // so that event delegation works in jQuery.\n // Do the same for pointerenter/pointerleave and pointerover/pointerout\n //\n // Support: Safari 7 only\n // Safari sends mouseenter too often; see:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n // for the description of the bug (it existed in older Chrome versions as well).\n\n jQuery.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\",\n pointerenter: \"pointerover\",\n pointerleave: \"pointerout\"\n }, function (orig, fix) {\n jQuery.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n handle: function handle(event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj; // For mouseenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n\n if (!related || related !== target && !jQuery.contains(target, related)) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n\n return ret;\n }\n };\n });\n jQuery.fn.extend({\n on: function on(types, selector, data, fn) {\n return _on(this, types, selector, data, fn);\n },\n one: function one(types, selector, data, fn) {\n return _on(this, types, selector, data, fn, 1);\n },\n off: function off(types, selector, fn) {\n var handleObj, type;\n\n if (types && types.preventDefault && types.handleObj) {\n // ( event ) dispatched jQuery.Event\n handleObj = types.handleObj;\n jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n return this;\n }\n\n if (_typeof(types) === \"object\") {\n // ( types-object [, selector] )\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n\n return this;\n }\n\n if (selector === false || typeof selector === \"function\") {\n // ( types [, fn] )\n fn = selector;\n selector = undefined;\n }\n\n if (fn === false) {\n fn = returnFalse;\n }\n\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n }\n });\n return jQuery;\n});","var _excluded = [\"height\", \"width\", \"redraw\", \"datasetIdKey\", \"type\", \"data\", \"options\", \"plugins\", \"fallbackContent\", \"updateMode\"];\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\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\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { forwardRef, useRef, useEffect } from 'react';\nimport { Chart as Chart$1, LineController, BarController, RadarController, DoughnutController, PolarAreaController, BubbleController, PieController, ScatterController } from 'chart.js';\nvar defaultDatasetIdKey = \"label\";\n\nfunction reforwardRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}\n\nfunction setOptions(chart, nextOptions) {\n var options = chart.options;\n\n if (options && nextOptions) {\n Object.assign(options, nextOptions);\n }\n}\n\nfunction setLabels(currentData, nextLabels) {\n currentData.labels = nextLabels;\n}\n\nfunction setDatasets(currentData, nextDatasets) {\n var datasetIdKey = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : defaultDatasetIdKey;\n var addedDatasets = [];\n currentData.datasets = nextDatasets.map(function (nextDataset) {\n // given the new set, find it's current match\n var currentDataset = currentData.datasets.find(function (dataset) {\n return dataset[datasetIdKey] === nextDataset[datasetIdKey];\n }); // There is no original to update, so simply add new one\n\n if (!currentDataset || !nextDataset.data || addedDatasets.includes(currentDataset)) {\n return _objectSpread({}, nextDataset);\n }\n\n addedDatasets.push(currentDataset);\n Object.assign(currentDataset, nextDataset);\n return currentDataset;\n });\n}\n\nfunction cloneData(data) {\n var datasetIdKey = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : defaultDatasetIdKey;\n var nextData = {\n labels: [],\n datasets: []\n };\n setLabels(nextData, data.labels);\n setDatasets(nextData, data.datasets, datasetIdKey);\n return nextData;\n}\n/**\n * Get dataset from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\n\n\nfunction getDatasetAtEvent(chart, event) {\n return chart.getElementsAtEventForMode(event.nativeEvent, \"dataset\", {\n intersect: true\n }, false);\n}\n/**\n * Get single dataset element from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\n\n\nfunction getElementAtEvent(chart, event) {\n return chart.getElementsAtEventForMode(event.nativeEvent, \"nearest\", {\n intersect: true\n }, false);\n}\n/**\n * Get all dataset elements from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\n\n\nfunction getElementsAtEvent(chart, event) {\n return chart.getElementsAtEventForMode(event.nativeEvent, \"index\", {\n intersect: true\n }, false);\n}\n\nfunction ChartComponent(props, ref) {\n var _props$height = props.height,\n height = _props$height === void 0 ? 150 : _props$height,\n _props$width = props.width,\n width = _props$width === void 0 ? 300 : _props$width,\n _props$redraw = props.redraw,\n redraw = _props$redraw === void 0 ? false : _props$redraw,\n datasetIdKey = props.datasetIdKey,\n type = props.type,\n data = props.data,\n options = props.options,\n _props$plugins = props.plugins,\n plugins = _props$plugins === void 0 ? [] : _props$plugins,\n fallbackContent = props.fallbackContent,\n updateMode = props.updateMode,\n canvasProps = _objectWithoutProperties(props, _excluded);\n\n var canvasRef = useRef(null);\n var chartRef = useRef();\n\n var renderChart = function renderChart() {\n if (!canvasRef.current) return;\n chartRef.current = new Chart$1(canvasRef.current, {\n type: type,\n data: cloneData(data, datasetIdKey),\n options: options && _objectSpread({}, options),\n plugins: plugins\n });\n reforwardRef(ref, chartRef.current);\n };\n\n var destroyChart = function destroyChart() {\n reforwardRef(ref, null);\n\n if (chartRef.current) {\n chartRef.current.destroy();\n chartRef.current = null;\n }\n };\n\n useEffect(function () {\n if (!redraw && chartRef.current && options) {\n setOptions(chartRef.current, options);\n }\n }, [redraw, options]);\n useEffect(function () {\n if (!redraw && chartRef.current) {\n setLabels(chartRef.current.config.data, data.labels);\n }\n }, [redraw, data.labels]);\n useEffect(function () {\n if (!redraw && chartRef.current && data.datasets) {\n setDatasets(chartRef.current.config.data, data.datasets, datasetIdKey);\n }\n }, [redraw, data.datasets]);\n useEffect(function () {\n if (!chartRef.current) return;\n\n if (redraw) {\n destroyChart();\n setTimeout(renderChart);\n } else {\n chartRef.current.update(updateMode);\n }\n }, [redraw, options, data.labels, data.datasets, updateMode]);\n useEffect(function () {\n if (!chartRef.current) return;\n destroyChart();\n setTimeout(renderChart);\n }, [type]);\n useEffect(function () {\n renderChart();\n return function () {\n return destroyChart();\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"canvas\", Object.assign({\n ref: canvasRef,\n role: \"img\",\n height: height,\n width: width\n }, canvasProps), fallbackContent);\n}\n\nvar Chart = /*#__PURE__*/forwardRef(ChartComponent);\n\nfunction createTypedChart(type, registerables) {\n Chart$1.register(registerables);\n return /*#__PURE__*/forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(Chart, Object.assign({}, props, {\n ref: ref,\n type: type\n }));\n });\n}\n\nvar Line = /* #__PURE__ */createTypedChart(\"line\", LineController);\nvar Bar = /* #__PURE__ */createTypedChart(\"bar\", BarController);\nvar Radar = /* #__PURE__ */createTypedChart(\"radar\", RadarController);\nvar Doughnut = /* #__PURE__ */createTypedChart(\"doughnut\", DoughnutController);\nvar PolarArea = /* #__PURE__ */createTypedChart(\"polarArea\", PolarAreaController);\nvar Bubble = /* #__PURE__ */createTypedChart(\"bubble\", BubbleController);\nvar Pie = /* #__PURE__ */createTypedChart(\"pie\", PieController);\nvar Scatter = /* #__PURE__ */createTypedChart(\"scatter\", ScatterController);\nexport { Bar, Bubble, Chart, Doughnut, Line, Pie, PolarArea, Radar, Scatter, getDatasetAtEvent, getElementAtEvent, getElementsAtEvent };","define(function () {\n \"use strict\";\n\n return [];\n});","define(function () {\n \"use strict\";\n\n return function isWindow(obj) {\n return obj != null && obj === obj.window;\n };\n});","define([], function () {\n \"use strict\"; // Matches dashed string for camelizing\n\n var rmsPrefix = /^-ms-/,\n rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace()\n\n function fcamelCase(_all, letter) {\n return letter.toUpperCase();\n } // Convert dashed to camelCase; used by the css and data modules\n // Support: IE <=9 - 11, Edge 12 - 15\n // Microsoft forgot to hump their vendor prefix (trac-9572)\n\n\n function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n }\n\n return camelCase;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"./core\", \"./core/access\", \"./core/camelCase\", \"./core/nodeName\", \"./var/rcssNum\", \"./css/var/rnumnonpx\", \"./css/var/rcustomProp\", \"./css/var/cssExpand\", \"./css/var/getStyles\", \"./css/var/swap\", \"./css/curCSS\", \"./css/adjustCSS\", \"./css/addGetHookIf\", \"./css/support\", \"./css/finalPropName\", \"./core/init\", \"./core/ready\", \"./selector\" // contains\n], function (jQuery, access, camelCase, nodeName, rcssNum, rnumnonpx, rcustomProp, cssExpand, getStyles, swap, curCSS, adjustCSS, addGetHookIf, support, finalPropName) {\n \"use strict\";\n\n var // Swappable if display is none or starts with table\n // except \"table\", \"table-cell\", or \"table-caption\"\n // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n cssShow = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n },\n cssNormalTransform = {\n letterSpacing: \"0\",\n fontWeight: \"400\"\n };\n\n function setPositiveNumber(_elem, value, subtract) {\n // Any relative (+/-) values have already been\n // normalized at this point\n var matches = rcssNum.exec(value);\n return matches ? // Guard against undefined \"subtract\", e.g., when used as in cssHooks\n Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") : value;\n }\n\n function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n var i = dimension === \"width\" ? 1 : 0,\n extra = 0,\n delta = 0; // Adjustment may not be necessary\n\n if (box === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n }\n\n for (; i < 4; i += 2) {\n // Both box models exclude margin\n if (box === \"margin\") {\n delta += jQuery.css(elem, box + cssExpand[i], true, styles);\n } // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\n\n if (!isBorderBox) {\n // Add padding\n delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles); // For \"border\" or \"margin\", add border\n\n if (box !== \"padding\") {\n delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles); // But still keep track of it otherwise\n } else {\n extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n } // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n // \"padding\" or \"margin\"\n\n } else {\n // For \"content\", subtract padding\n if (box === \"content\") {\n delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n } // For \"content\" or \"padding\", subtract border\n\n\n if (box !== \"margin\") {\n delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n }\n } // Account for positive content-box scroll gutter when requested by providing computedVal\n\n\n if (!isBorderBox && computedVal >= 0) {\n // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n // Assuming integer scroll gutter, subtract the rest and round down\n delta += Math.max(0, Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5 // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n // Use an explicit zero to avoid NaN (gh-3964)\n )) || 0;\n }\n\n return delta;\n }\n\n function getWidthOrHeight(elem, dimension, extra) {\n // Start with computed style\n var styles = getStyles(elem),\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n // Fake content-box until we know it's needed to know the true value.\n boxSizingNeeded = !support.boxSizingReliable() || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n valueIsBorderBox = isBorderBox,\n val = curCSS(elem, dimension, styles),\n offsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1); // Support: Firefox <=54\n // Return a confounding non-pixel value or feign ignorance, as appropriate.\n\n if (rnumnonpx.test(val)) {\n if (!extra) {\n return val;\n }\n\n val = \"auto\";\n } // Support: IE 9 - 11 only\n // Use offsetWidth/offsetHeight for when box sizing is unreliable.\n // In those cases, the computed value can be trusted to be border-box.\n\n\n if ((!support.boxSizingReliable() && isBorderBox || // Support: IE 10 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Interestingly, in some cases IE 9 doesn't suffer from this issue.\n !support.reliableTrDimensions() && nodeName(elem, \"tr\") || // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n // This happens for inline elements with no explicit setting (gh-3571)\n val === \"auto\" || // Support: Android <=4.1 - 4.3 only\n // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n !parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") && // Make sure the element is visible & connected\n elem.getClientRects().length) {\n isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\"; // Where available, offsetWidth/offsetHeight approximate border box dimensions.\n // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n // retrieved value as a content box dimension.\n\n valueIsBorderBox = offsetProp in elem;\n\n if (valueIsBorderBox) {\n val = elem[offsetProp];\n }\n } // Normalize \"\" and auto\n\n\n val = parseFloat(val) || 0; // Adjust for the element's box model\n\n return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles, // Provide the current computed size to request scroll gutter calculation (gh-3589)\n val) + \"px\";\n }\n\n jQuery.extend({\n // Add in style property hooks for overriding the default\n // behavior of getting and setting a style property\n cssHooks: {\n opacity: {\n get: function get(elem, computed) {\n if (computed) {\n // We should always get a number back from opacity\n var ret = curCSS(elem, \"opacity\");\n return ret === \"\" ? \"1\" : ret;\n }\n }\n }\n },\n // Don't automatically add \"px\" to these possibly-unitless properties\n cssNumber: {\n \"animationIterationCount\": true,\n \"columnCount\": true,\n \"fillOpacity\": true,\n \"flexGrow\": true,\n \"flexShrink\": true,\n \"fontWeight\": true,\n \"gridArea\": true,\n \"gridColumn\": true,\n \"gridColumnEnd\": true,\n \"gridColumnStart\": true,\n \"gridRow\": true,\n \"gridRowEnd\": true,\n \"gridRowStart\": true,\n \"lineHeight\": true,\n \"opacity\": true,\n \"order\": true,\n \"orphans\": true,\n \"widows\": true,\n \"zIndex\": true,\n \"zoom\": true\n },\n // Add in properties whose names you wish to fix before\n // setting or getting the value\n cssProps: {},\n // Get and set the style property on a DOM Node\n style: function style(elem, name, value, extra) {\n // Don't set styles on text and comment nodes\n if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n return;\n } // Make sure that we're working with the right name\n\n\n var ret,\n type,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name),\n style = elem.style; // Make sure that we're working with the right name. We don't\n // want to query the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Gets hook for the prefixed version, then unprefixed version\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // Check if we're setting a value\n\n if (value !== undefined) {\n type = _typeof(value); // Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n\n if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n value = adjustCSS(elem, name, ret); // Fixes bug trac-9237\n\n type = \"number\";\n } // Make sure that null and NaN values aren't set (trac-7116)\n\n\n if (value == null || value !== value) {\n return;\n } // If a number was passed in, add the unit (except for certain CSS properties)\n // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n // \"px\" to a few hardcoded values.\n\n\n if (type === \"number\" && !isCustomProp) {\n value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n } // background-* props affect original clone's values\n\n\n if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n style[name] = \"inherit\";\n } // If a hook was provided, use that value, otherwise just set the specified value\n\n\n if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n if (isCustomProp) {\n style.setProperty(name, value);\n } else {\n style[name] = value;\n }\n }\n } else {\n // If a hook was provided get the non-computed value from there\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n return ret;\n } // Otherwise just get the value from the style object\n\n\n return style[name];\n }\n },\n css: function css(elem, name, extra, styles) {\n var val,\n num,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name); // Make sure that we're working with the right name. We don't\n // want to modify the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Try prefixed name followed by the unprefixed name\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // If a hook was provided get the computed value from there\n\n if (hooks && \"get\" in hooks) {\n val = hooks.get(elem, true, extra);\n } // Otherwise, if a way to get the computed value exists, use that\n\n\n if (val === undefined) {\n val = curCSS(elem, name, styles);\n } // Convert \"normal\" to computed value\n\n\n if (val === \"normal\" && name in cssNormalTransform) {\n val = cssNormalTransform[name];\n } // Make numeric if forced or a qualifier was provided and val looks numeric\n\n\n if (extra === \"\" || extra) {\n num = parseFloat(val);\n return extra === true || isFinite(num) ? num || 0 : val;\n }\n\n return val;\n }\n });\n jQuery.each([\"height\", \"width\"], function (_i, dimension) {\n jQuery.cssHooks[dimension] = {\n get: function get(elem, computed, extra) {\n if (computed) {\n // Certain elements can have dimension info if we invisibly show them\n // but it must have a current display style that would benefit\n return rdisplayswap.test(jQuery.css(elem, \"display\")) && ( // Support: Safari 8+\n // Table columns in Safari have non-zero offsetWidth & zero\n // getBoundingClientRect().width unless display is changed.\n // Support: IE <=11 only\n // Running getBoundingClientRect on a disconnected node\n // in IE throws an error.\n !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () {\n return getWidthOrHeight(elem, dimension, extra);\n }) : getWidthOrHeight(elem, dimension, extra);\n }\n },\n set: function set(elem, value, extra) {\n var matches,\n styles = getStyles(elem),\n // Only read styles.position if the test has a chance to fail\n // to avoid forcing a reflow.\n scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === \"absolute\",\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n boxSizingNeeded = scrollboxSizeBuggy || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0; // Account for unreliable border-box dimensions by comparing offset* to computed and\n // faking a content-box to get border and padding (gh-3699)\n\n if (isBorderBox && scrollboxSizeBuggy) {\n subtract -= Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, \"border\", false, styles) - 0.5);\n } // Convert to pixels if value adjustment is needed\n\n\n if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n elem.style[dimension] = value;\n value = jQuery.css(elem, dimension);\n }\n\n return setPositiveNumber(elem, value, subtract);\n }\n };\n });\n jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) {\n if (computed) {\n return (parseFloat(curCSS(elem, \"marginLeft\")) || elem.getBoundingClientRect().left - swap(elem, {\n marginLeft: 0\n }, function () {\n return elem.getBoundingClientRect().left;\n })) + \"px\";\n }\n }); // These hooks are used by animate to expand properties\n\n jQuery.each({\n margin: \"\",\n padding: \"\",\n border: \"Width\"\n }, function (prefix, suffix) {\n jQuery.cssHooks[prefix + suffix] = {\n expand: function expand(value) {\n var i = 0,\n expanded = {},\n // Assumes a single number if not a string\n parts = typeof value === \"string\" ? value.split(\" \") : [value];\n\n for (; i < 4; i++) {\n expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n }\n\n return expanded;\n }\n };\n\n if (prefix !== \"margin\") {\n jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n }\n });\n jQuery.fn.extend({\n css: function css(name, value) {\n return access(this, function (elem, name, value) {\n var styles,\n len,\n map = {},\n i = 0;\n\n if (Array.isArray(name)) {\n styles = getStyles(elem);\n len = name.length;\n\n for (; i < len; i++) {\n map[name[i]] = jQuery.css(elem, name[i], false, styles);\n }\n\n return map;\n }\n\n return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n }, name, value, arguments.length > 1);\n }\n });\n return jQuery;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n!function (t, e) {\n \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) && \"undefined\" != typeof module ? module.exports = e() : \"function\" == typeof define && define.amd ? define(e) : (t = \"undefined\" != typeof globalThis ? globalThis : t || self).dayjs_plugin_timezone = e();\n}(this, function () {\n \"use strict\";\n\n var t = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5\n },\n e = {};\n return function (n, i, o) {\n var r,\n a = function a(t, n, i) {\n void 0 === i && (i = {});\n\n var o = new Date(t),\n r = function (t, n) {\n void 0 === n && (n = {});\n var i = n.timeZoneName || \"short\",\n o = t + \"|\" + i,\n r = e[o];\n return r || (r = new Intl.DateTimeFormat(\"en-US\", {\n hour12: !1,\n timeZone: t,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n timeZoneName: i\n }), e[o] = r), r;\n }(n, i);\n\n return r.formatToParts(o);\n },\n u = function u(e, n) {\n for (var i = a(e, n), r = [], u = 0; u < i.length; u += 1) {\n var f = i[u],\n s = f.type,\n m = f.value,\n c = t[s];\n c >= 0 && (r[c] = parseInt(m, 10));\n }\n\n var d = r[3],\n l = 24 === d ? 0 : d,\n v = r[0] + \"-\" + r[1] + \"-\" + r[2] + \" \" + l + \":\" + r[4] + \":\" + r[5] + \":000\",\n h = +e;\n return (o.utc(v).valueOf() - (h -= h % 1e3)) / 6e4;\n },\n f = i.prototype;\n\n f.tz = function (t, e) {\n void 0 === t && (t = r);\n var n = this.utcOffset(),\n i = this.toDate(),\n a = i.toLocaleString(\"en-US\", {\n timeZone: t\n }),\n u = Math.round((i - new Date(a)) / 1e3 / 60),\n f = o(a).$set(\"millisecond\", this.$ms).utcOffset(15 * -Math.round(i.getTimezoneOffset() / 15) - u, !0);\n\n if (e) {\n var s = f.utcOffset();\n f = f.add(n - s, \"minute\");\n }\n\n return f.$x.$timezone = t, f;\n }, f.offsetName = function (t) {\n var e = this.$x.$timezone || o.tz.guess(),\n n = a(this.valueOf(), e, {\n timeZoneName: t\n }).find(function (t) {\n return \"timezonename\" === t.type.toLowerCase();\n });\n return n && n.value;\n };\n var s = f.startOf;\n f.startOf = function (t, e) {\n if (!this.$x || !this.$x.$timezone) return s.call(this, t, e);\n var n = o(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\"));\n return s.call(n, t, e).tz(this.$x.$timezone, !0);\n }, o.tz = function (t, e, n) {\n var i = n && e,\n a = n || e || r,\n f = u(+o(), a);\n if (\"string\" != typeof t) return o(t).tz(a);\n\n var s = function (t, e, n) {\n var i = t - 60 * e * 1e3,\n o = u(i, n);\n if (e === o) return [i, e];\n var r = u(i -= 60 * (o - e) * 1e3, n);\n return o === r ? [i, o] : [t - 60 * Math.min(o, r) * 1e3, Math.max(o, r)];\n }(o.utc(t, i).valueOf(), f, a),\n m = s[0],\n c = s[1],\n d = o(m).utcOffset(c);\n\n return d.$x.$timezone = a, d;\n }, o.tz.guess = function () {\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n }, o.tz.setDefault = function (t) {\n r = t;\n };\n };\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n!function (t, i) {\n \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) && \"undefined\" != typeof module ? module.exports = i() : \"function\" == typeof define && define.amd ? define(i) : (t = \"undefined\" != typeof globalThis ? globalThis : t || self).dayjs_plugin_utc = i();\n}(this, function () {\n \"use strict\";\n\n var t = \"minute\",\n i = /[+-]\\d\\d(?::?\\d\\d)?/g,\n e = /([+-]|\\d\\d)/g;\n return function (s, f, n) {\n var u = f.prototype;\n n.utc = function (t) {\n var i = {\n date: t,\n utc: !0,\n args: arguments\n };\n return new f(i);\n }, u.utc = function (i) {\n var e = n(this.toDate(), {\n locale: this.$L,\n utc: !0\n });\n return i ? e.add(this.utcOffset(), t) : e;\n }, u.local = function () {\n return n(this.toDate(), {\n locale: this.$L,\n utc: !1\n });\n };\n var o = u.parse;\n\n u.parse = function (t) {\n t.utc && (this.$u = !0), this.$utils().u(t.$offset) || (this.$offset = t.$offset), o.call(this, t);\n };\n\n var r = u.init;\n\n u.init = function () {\n if (this.$u) {\n var t = this.$d;\n this.$y = t.getUTCFullYear(), this.$M = t.getUTCMonth(), this.$D = t.getUTCDate(), this.$W = t.getUTCDay(), this.$H = t.getUTCHours(), this.$m = t.getUTCMinutes(), this.$s = t.getUTCSeconds(), this.$ms = t.getUTCMilliseconds();\n } else r.call(this);\n };\n\n var a = u.utcOffset;\n\n u.utcOffset = function (s, f) {\n var n = this.$utils().u;\n if (n(s)) return this.$u ? 0 : n(this.$offset) ? a.call(this) : this.$offset;\n if (\"string\" == typeof s && (s = function (t) {\n void 0 === t && (t = \"\");\n var s = t.match(i);\n if (!s) return null;\n var f = (\"\" + s[0]).match(e) || [\"-\", 0, 0],\n n = f[0],\n u = 60 * +f[1] + +f[2];\n return 0 === u ? 0 : \"+\" === n ? u : -u;\n }(s), null === s)) return this;\n var u = Math.abs(s) <= 16 ? 60 * s : s,\n o = this;\n if (f) return o.$offset = u, o.$u = 0 === s, o;\n\n if (0 !== s) {\n var r = this.$u ? this.toDate().getTimezoneOffset() : -1 * this.utcOffset();\n (o = this.local().add(u + r, t)).$offset = u, o.$x.$localOffset = r;\n } else o = this.utc();\n\n return o;\n };\n\n var h = u.format;\n u.format = function (t) {\n var i = t || (this.$u ? \"YYYY-MM-DDTHH:mm:ss[Z]\" : \"\");\n return h.call(this, i);\n }, u.valueOf = function () {\n var t = this.$utils().u(this.$offset) ? 0 : this.$offset + (this.$x.$localOffset || this.$d.getTimezoneOffset());\n return this.$d.valueOf() - 6e4 * t;\n }, u.isUTC = function () {\n return !!this.$u;\n }, u.toISOString = function () {\n return this.toDate().toISOString();\n }, u.toString = function () {\n return this.toDate().toUTCString();\n };\n var l = u.toDate;\n\n u.toDate = function (t) {\n return \"s\" === t && this.$offset ? n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate() : l.call(this);\n };\n\n var c = u.diff;\n\n u.diff = function (t, i, e) {\n if (t && this.$u === t.$u) return c.call(this, t, i, e);\n var s = this.local(),\n f = n(t).local();\n return c.call(s, f, i, e);\n };\n };\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Modal = require(\"./components/Modal\");\n\nvar _Modal2 = _interopRequireDefault(_Modal);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nexports[\"default\"] = _Modal2[\"default\"];\nmodule.exports = exports[\"default\"];","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.slice;\n});","define(function () {\n \"use strict\"; // [[Class]] -> type pairs\n\n return {};\n});","define(function () {\n \"use strict\";\n /**\n * Determines whether an object can have data\n */\n\n return function (owner) {\n // Accepts only:\n // - Node\n // - Node.ELEMENT_NODE\n // - Node.DOCUMENT_NODE\n // - Object\n // - Any\n return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n };\n});","define([\"../core\", \"../var/documentElement\", \"../selector\" // jQuery.contains\n], function (jQuery, documentElement) {\n \"use strict\";\n\n var isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem);\n },\n composed = {\n composed: true\n }; // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n // Check attachment across shadow DOM boundaries when possible (gh-3504)\n // Support: iOS 10.0-10.2 only\n // Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n // leading to errors. We need to check for `getRootNode`.\n\n\n if (documentElement.getRootNode) {\n isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n };\n }\n\n return isAttached;\n});","define([\"./document\"], function (document) {\n \"use strict\";\n\n return document.documentElement;\n});","define([\"./core\", \"./core/isAttached\", \"./var/flat\", \"./var/isFunction\", \"./var/push\", \"./var/rcheckableType\", \"./core/access\", \"./manipulation/var/rtagName\", \"./manipulation/var/rscriptType\", \"./manipulation/wrapMap\", \"./manipulation/getAll\", \"./manipulation/setGlobalEval\", \"./manipulation/buildFragment\", \"./manipulation/support\", \"./data/var/dataPriv\", \"./data/var/dataUser\", \"./data/var/acceptData\", \"./core/DOMEval\", \"./core/nodeName\", \"./core/init\", \"./traversing\", \"./selector\", \"./event\"], function (jQuery, isAttached, flat, isFunction, push, rcheckableType, access, rtagName, rscriptType, wrapMap, getAll, setGlobalEval, buildFragment, support, dataPriv, dataUser, acceptData, DOMEval, nodeName) {\n \"use strict\";\n\n var // Support: IE <=10 - 11, Edge 12 - 13 only\n // In IE/Edge using regex groups here causes severe slowdowns.\n // See https://connect.microsoft.com/IE/feedback/details/1736512/\n rnoInnerhtml = /\\s*$/g; // Prefer a tbody over its parent table for containing new rows\n\n function manipulationTarget(elem, content) {\n if (nodeName(elem, \"table\") && nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\n return jQuery(elem).children(\"tbody\")[0] || elem;\n }\n\n return elem;\n } // Replace/restore the type attribute of script elements for safe DOM manipulation\n\n\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\n\n function restoreScript(elem) {\n if ((elem.type || \"\").slice(0, 5) === \"true/\") {\n elem.type = elem.type.slice(5);\n } else {\n elem.removeAttribute(\"type\");\n }\n\n return elem;\n }\n\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, udataOld, udataCur, events;\n\n if (dest.nodeType !== 1) {\n return;\n } // 1. Copy private data: events, handlers, etc.\n\n\n if (dataPriv.hasData(src)) {\n pdataOld = dataPriv.get(src);\n events = pdataOld.events;\n\n if (events) {\n dataPriv.remove(dest, \"handle events\");\n\n for (type in events) {\n for (i = 0, l = events[type].length; i < l; i++) {\n jQuery.event.add(dest, type, events[type][i]);\n }\n }\n }\n } // 2. Copy user data\n\n\n if (dataUser.hasData(src)) {\n udataOld = dataUser.access(src);\n udataCur = jQuery.extend({}, udataOld);\n dataUser.set(dest, udataCur);\n }\n } // Fix IE bugs, see support tests\n\n\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase(); // Fails to persist the checked state of a cloned checkbox or radio button.\n\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked; // Fails to return the selected option to the default selected state when cloning options\n } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n dest.defaultValue = src.defaultValue;\n }\n }\n\n function domManip(collection, args, callback, ignored) {\n // Flatten any nested arrays\n args = flat(args);\n var fragment,\n first,\n scripts,\n hasScripts,\n node,\n doc,\n i = 0,\n l = collection.length,\n iNoClone = l - 1,\n value = args[0],\n valueIsFunction = isFunction(value); // We can't cloneNode fragments that contain checked, in WebKit\n\n if (valueIsFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n return collection.each(function (index) {\n var self = collection.eq(index);\n\n if (valueIsFunction) {\n args[0] = value.call(this, index, self.html());\n }\n\n domManip(self, args, callback, ignored);\n });\n }\n\n if (l) {\n fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n first = fragment.firstChild;\n\n if (fragment.childNodes.length === 1) {\n fragment = first;\n } // Require either new content or an interest in ignored elements to invoke the callback\n\n\n if (first || ignored) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length; // Use the original fragment for the last item\n // instead of the first because it can end up\n // being emptied incorrectly in certain situations (trac-8070).\n\n for (; i < l; i++) {\n node = fragment;\n\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true); // Keep references to cloned scripts for later restoration\n\n if (hasScripts) {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(scripts, getAll(node, \"script\"));\n }\n }\n\n callback.call(collection[i], node, i);\n }\n\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument; // Reenable scripts\n\n jQuery.map(scripts, restoreScript); // Evaluate executable scripts on first document insertion\n\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n\n if (rscriptType.test(node.type || \"\") && !dataPriv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n if (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\n // Optional AJAX dependency, but won't run scripts if not present\n if (jQuery._evalUrl && !node.noModule) {\n jQuery._evalUrl(node.src, {\n nonce: node.nonce || node.getAttribute(\"nonce\")\n }, doc);\n }\n } else {\n // Unwrap a CDATA section containing script contents. This shouldn't be\n // needed as in XML documents they're already not visible when\n // inspecting element contents and in HTML documents they have no\n // meaning but we're preserving that logic for backwards compatibility.\n // This will be removed completely in 4.0. See gh-4904.\n DOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\n }\n }\n }\n }\n }\n }\n\n return collection;\n }\n\n function _remove(elem, selector, keepData) {\n var node,\n nodes = selector ? jQuery.filter(selector, elem) : elem,\n i = 0;\n\n for (; (node = nodes[i]) != null; i++) {\n if (!keepData && node.nodeType === 1) {\n jQuery.cleanData(getAll(node));\n }\n\n if (node.parentNode) {\n if (keepData && isAttached(node)) {\n setGlobalEval(getAll(node, \"script\"));\n }\n\n node.parentNode.removeChild(node);\n }\n }\n\n return elem;\n }\n\n jQuery.extend({\n htmlPrefilter: function htmlPrefilter(html) {\n return html;\n },\n clone: function clone(elem, dataAndEvents, deepDataAndEvents) {\n var i,\n l,\n srcElements,\n destElements,\n clone = elem.cloneNode(true),\n inPage = isAttached(elem); // Fix IE cloning issues\n\n if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n destElements = getAll(clone);\n srcElements = getAll(elem);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n } // Copy the events from the original to the clone\n\n\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n cloneCopyEvent(srcElements[i], destElements[i]);\n }\n } else {\n cloneCopyEvent(elem, clone);\n }\n } // Preserve script evaluation history\n\n\n destElements = getAll(clone, \"script\");\n\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n } // Return the cloned set\n\n\n return clone;\n },\n cleanData: function cleanData(elems) {\n var data,\n elem,\n type,\n special = jQuery.event.special,\n i = 0;\n\n for (; (elem = elems[i]) !== undefined; i++) {\n if (acceptData(elem)) {\n if (data = elem[dataPriv.expando]) {\n if (data.events) {\n for (type in data.events) {\n if (special[type]) {\n jQuery.event.remove(elem, type); // This is a shortcut to avoid jQuery.event.remove's overhead\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n } // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n\n\n elem[dataPriv.expando] = undefined;\n }\n\n if (elem[dataUser.expando]) {\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataUser.expando] = undefined;\n }\n }\n }\n }\n });\n jQuery.fn.extend({\n detach: function detach(selector) {\n return _remove(this, selector, true);\n },\n remove: function remove(selector) {\n return _remove(this, selector);\n },\n text: function text(value) {\n return access(this, function (value) {\n return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n this.textContent = value;\n }\n });\n }, null, value, arguments.length);\n },\n append: function append() {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.appendChild(elem);\n }\n });\n },\n prepend: function prepend() {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.insertBefore(elem, target.firstChild);\n }\n });\n },\n before: function before() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n after: function after() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n empty: function empty() {\n var elem,\n i = 0;\n\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n // Prevent memory leaks\n jQuery.cleanData(getAll(elem, false)); // Remove any remaining nodes\n\n elem.textContent = \"\";\n }\n }\n\n return this;\n },\n clone: function clone(dataAndEvents, deepDataAndEvents) {\n dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n return this.map(function () {\n return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n });\n },\n html: function html(value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n } // See if we can take a shortcut and just use innerHTML\n\n\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n value = jQuery.htmlPrefilter(value);\n\n try {\n for (; i < l; i++) {\n elem = this[i] || {}; // Remove element nodes and prevent memory leaks\n\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n\n elem = 0; // If using innerHTML throws an exception, use the fallback method\n } catch (e) {}\n }\n\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n replaceWith: function replaceWith() {\n var ignored = []; // Make the changes, replacing each non-ignored context element with the new content\n\n return domManip(this, arguments, function (elem) {\n var parent = this.parentNode;\n\n if (jQuery.inArray(this, ignored) < 0) {\n jQuery.cleanData(getAll(this));\n\n if (parent) {\n parent.replaceChild(elem, this);\n }\n } // Force callback invocation\n\n }, ignored);\n }\n });\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function (name, original) {\n jQuery.fn[name] = function (selector) {\n var elems,\n ret = [],\n insert = jQuery(selector),\n last = insert.length - 1,\n i = 0;\n\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems); // Support: Android <=4.0 only, PhantomJS 1 only\n // .get() because push.apply(_, arraylike) throws on ancient WebKit\n\n push.apply(ret, elems.get());\n }\n\n return this.pushStack(ret);\n };\n });\n return jQuery;\n});","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.indexOf;\n});","define([\"./class2type\"], function (class2type) {\n \"use strict\";\n\n return class2type.hasOwnProperty;\n});","define([\"./core\", \"./core/toType\", \"./var/isFunction\", \"./var/rnothtmlwhite\"], function (jQuery, toType, isFunction, rnothtmlwhite) {\n \"use strict\"; // Convert String-formatted options into Object-formatted ones\n\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return object;\n }\n /*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\n\n\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n\n var // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n _fired,\n // Flag to prevent firing\n _locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function fire() {\n // Enforce single-firing\n _locked = _locked || options.once; // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n\n _fired = firing = true;\n\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n } // Forget the data if we're done with it\n\n\n if (!options.memory) {\n memory = false;\n }\n\n firing = false; // Clean up if we're done firing for good\n\n if (_locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = []; // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function add() {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && toType(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n\n if (memory && !firing) {\n fire();\n }\n }\n\n return this;\n },\n // Remove a callback from the list\n remove: function remove() {\n jQuery.each(arguments, function (_, arg) {\n var index;\n\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1); // Handle firing indexes\n\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function has(fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function empty() {\n if (list) {\n list = [];\n }\n\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function disable() {\n _locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function disabled() {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function lock() {\n _locked = queue = [];\n\n if (!memory && !firing) {\n list = memory = \"\";\n }\n\n return this;\n },\n locked: function locked() {\n return !!_locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function fireWith(context, args) {\n if (!_locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n\n if (!firing) {\n fire();\n }\n }\n\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function fire() {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function fired() {\n return !!_fired;\n }\n };\n\n return self;\n };\n\n return jQuery;\n});","define([\"./core\", \"./data/var/dataPriv\", \"./deferred\", \"./callbacks\"], function (jQuery, dataPriv) {\n \"use strict\";\n\n jQuery.extend({\n queue: function queue(elem, type, data) {\n var queue;\n\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = dataPriv.get(elem, type); // Speed up dequeue by getting out quickly if this is just a lookup\n\n if (data) {\n if (!queue || Array.isArray(data)) {\n queue = dataPriv.access(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n\n return queue || [];\n }\n },\n dequeue: function dequeue(elem, type) {\n type = type || \"fx\";\n\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function next() {\n jQuery.dequeue(elem, type);\n }; // If the fx queue is dequeued, always remove the progress sentinel\n\n\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n } // Clear up the last queue stop function\n\n\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // Not public - generate a queueHooks object, or return the current one\n _queueHooks: function _queueHooks(elem, type) {\n var key = type + \"queueHooks\";\n return dataPriv.get(elem, key) || dataPriv.access(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n dataPriv.remove(elem, [type + \"queue\", key]);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function queue(type, data) {\n var setter = 2;\n\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data); // Ensure a hooks for this queue\n\n jQuery._queueHooks(this, type);\n\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function dequeue(type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function clearQueue(type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function promise(type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function resolve() {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n\n type = type || \"fx\";\n\n while (i--) {\n tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n\n resolve();\n return defer.promise(obj);\n }\n });\n return jQuery;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"./core\", \"./core/camelCase\", \"./var/document\", \"./var/isFunction\", \"./var/rcssNum\", \"./var/rnothtmlwhite\", \"./css/var/cssExpand\", \"./css/var/isHiddenWithinTree\", \"./css/adjustCSS\", \"./data/var/dataPriv\", \"./css/showHide\", \"./core/init\", \"./queue\", \"./deferred\", \"./traversing\", \"./manipulation\", \"./css\", \"./effects/Tween\"], function (jQuery, camelCase, document, isFunction, rcssNum, rnothtmlwhite, cssExpand, isHiddenWithinTree, adjustCSS, dataPriv, showHide) {\n \"use strict\";\n\n var fxNow,\n inProgress,\n rfxtypes = /^(?:toggle|show|hide)$/,\n rrun = /queueHooks$/;\n\n function schedule() {\n if (inProgress) {\n if (document.hidden === false && window.requestAnimationFrame) {\n window.requestAnimationFrame(schedule);\n } else {\n window.setTimeout(schedule, jQuery.fx.interval);\n }\n\n jQuery.fx.tick();\n }\n } // Animations created synchronously will run synchronously\n\n\n function createFxNow() {\n window.setTimeout(function () {\n fxNow = undefined;\n });\n return fxNow = Date.now();\n } // Generate parameters to create a standard animation\n\n\n function genFx(type, includeWidth) {\n var which,\n i = 0,\n attrs = {\n height: type\n }; // If we include width, step value is 1 to do all cssExpand values,\n // otherwise step value is 2 to skip over Left and Right\n\n includeWidth = includeWidth ? 1 : 0;\n\n for (; i < 4; i += 2 - includeWidth) {\n which = cssExpand[i];\n attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n }\n\n if (includeWidth) {\n attrs.opacity = attrs.width = type;\n }\n\n return attrs;\n }\n\n function createTween(value, prop, animation) {\n var tween,\n collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\n index = 0,\n length = collection.length;\n\n for (; index < length; index++) {\n if (tween = collection[index].call(animation, prop, value)) {\n // We're done with this property\n return tween;\n }\n }\n }\n\n function defaultPrefilter(elem, props, opts) {\n var prop,\n value,\n toggle,\n hooks,\n oldfire,\n propTween,\n restoreDisplay,\n display,\n isBox = \"width\" in props || \"height\" in props,\n anim = this,\n orig = {},\n style = elem.style,\n hidden = elem.nodeType && isHiddenWithinTree(elem),\n dataShow = dataPriv.get(elem, \"fxshow\"); // Queue-skipping animations hijack the fx hooks\n\n if (!opts.queue) {\n hooks = jQuery._queueHooks(elem, \"fx\");\n\n if (hooks.unqueued == null) {\n hooks.unqueued = 0;\n oldfire = hooks.empty.fire;\n\n hooks.empty.fire = function () {\n if (!hooks.unqueued) {\n oldfire();\n }\n };\n }\n\n hooks.unqueued++;\n anim.always(function () {\n // Ensure the complete handler is called before this completes\n anim.always(function () {\n hooks.unqueued--;\n\n if (!jQuery.queue(elem, \"fx\").length) {\n hooks.empty.fire();\n }\n });\n });\n } // Detect show/hide animations\n\n\n for (prop in props) {\n value = props[prop];\n\n if (rfxtypes.test(value)) {\n delete props[prop];\n toggle = toggle || value === \"toggle\";\n\n if (value === (hidden ? \"hide\" : \"show\")) {\n // Pretend to be hidden if this is a \"show\" and\n // there is still data from a stopped show/hide\n if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n hidden = true; // Ignore all other no-op show/hide data\n } else {\n continue;\n }\n }\n\n orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n }\n } // Bail out if this is a no-op like .hide().hide()\n\n\n propTween = !jQuery.isEmptyObject(props);\n\n if (!propTween && jQuery.isEmptyObject(orig)) {\n return;\n } // Restrict \"overflow\" and \"display\" styles during box animations\n\n\n if (isBox && elem.nodeType === 1) {\n // Support: IE <=9 - 11, Edge 12 - 15\n // Record all 3 overflow attributes because IE does not infer the shorthand\n // from identically-valued overflowX and overflowY and Edge just mirrors\n // the overflowX value there.\n opts.overflow = [style.overflow, style.overflowX, style.overflowY]; // Identify a display type, preferring old show/hide data over the CSS cascade\n\n restoreDisplay = dataShow && dataShow.display;\n\n if (restoreDisplay == null) {\n restoreDisplay = dataPriv.get(elem, \"display\");\n }\n\n display = jQuery.css(elem, \"display\");\n\n if (display === \"none\") {\n if (restoreDisplay) {\n display = restoreDisplay;\n } else {\n // Get nonempty value(s) by temporarily forcing visibility\n showHide([elem], true);\n restoreDisplay = elem.style.display || restoreDisplay;\n display = jQuery.css(elem, \"display\");\n showHide([elem]);\n }\n } // Animate inline elements as inline-block\n\n\n if (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\n if (jQuery.css(elem, \"float\") === \"none\") {\n // Restore the original display value at the end of pure show/hide animations\n if (!propTween) {\n anim.done(function () {\n style.display = restoreDisplay;\n });\n\n if (restoreDisplay == null) {\n display = style.display;\n restoreDisplay = display === \"none\" ? \"\" : display;\n }\n }\n\n style.display = \"inline-block\";\n }\n }\n }\n\n if (opts.overflow) {\n style.overflow = \"hidden\";\n anim.always(function () {\n style.overflow = opts.overflow[0];\n style.overflowX = opts.overflow[1];\n style.overflowY = opts.overflow[2];\n });\n } // Implement show/hide animations\n\n\n propTween = false;\n\n for (prop in orig) {\n // General show/hide setup for this element animation\n if (!propTween) {\n if (dataShow) {\n if (\"hidden\" in dataShow) {\n hidden = dataShow.hidden;\n }\n } else {\n dataShow = dataPriv.access(elem, \"fxshow\", {\n display: restoreDisplay\n });\n } // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\n\n if (toggle) {\n dataShow.hidden = !hidden;\n } // Show elements before animating them\n\n\n if (hidden) {\n showHide([elem], true);\n }\n /* eslint-disable no-loop-func */\n\n\n anim.done(function () {\n /* eslint-enable no-loop-func */\n // The final step of a \"hide\" animation is actually hiding the element\n if (!hidden) {\n showHide([elem]);\n }\n\n dataPriv.remove(elem, \"fxshow\");\n\n for (prop in orig) {\n jQuery.style(elem, prop, orig[prop]);\n }\n });\n } // Per-property setup\n\n\n propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n\n if (!(prop in dataShow)) {\n dataShow[prop] = propTween.start;\n\n if (hidden) {\n propTween.end = propTween.start;\n propTween.start = 0;\n }\n }\n }\n }\n\n function propFilter(props, specialEasing) {\n var index, name, easing, value, hooks; // camelCase, specialEasing and expand cssHook pass\n\n for (index in props) {\n name = camelCase(index);\n easing = specialEasing[name];\n value = props[index];\n\n if (Array.isArray(value)) {\n easing = value[1];\n value = props[index] = value[0];\n }\n\n if (index !== name) {\n props[name] = value;\n delete props[index];\n }\n\n hooks = jQuery.cssHooks[name];\n\n if (hooks && \"expand\" in hooks) {\n value = hooks.expand(value);\n delete props[name]; // Not quite $.extend, this won't overwrite existing keys.\n // Reusing 'index' because we have the correct \"name\"\n\n for (index in value) {\n if (!(index in props)) {\n props[index] = value[index];\n specialEasing[index] = easing;\n }\n }\n } else {\n specialEasing[name] = easing;\n }\n }\n }\n\n function Animation(elem, properties, options) {\n var result,\n stopped,\n index = 0,\n length = Animation.prefilters.length,\n deferred = jQuery.Deferred().always(function () {\n // Don't match elem in the :animated selector\n delete tick.elem;\n }),\n tick = function tick() {\n if (stopped) {\n return false;\n }\n\n var currentTime = fxNow || createFxNow(),\n remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n // Support: Android 2.3 only\n // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n temp = remaining / animation.duration || 0,\n percent = 1 - temp,\n index = 0,\n length = animation.tweens.length;\n\n for (; index < length; index++) {\n animation.tweens[index].run(percent);\n }\n\n deferred.notifyWith(elem, [animation, percent, remaining]); // If there's more to do, yield\n\n if (percent < 1 && length) {\n return remaining;\n } // If this was an empty animation, synthesize a final progress notification\n\n\n if (!length) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n } // Resolve the animation and report its conclusion\n\n\n deferred.resolveWith(elem, [animation]);\n return false;\n },\n animation = deferred.promise({\n elem: elem,\n props: jQuery.extend({}, properties),\n opts: jQuery.extend(true, {\n specialEasing: {},\n easing: jQuery.easing._default\n }, options),\n originalProperties: properties,\n originalOptions: options,\n startTime: fxNow || createFxNow(),\n duration: options.duration,\n tweens: [],\n createTween: function createTween(prop, end) {\n var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n animation.tweens.push(tween);\n return tween;\n },\n stop: function stop(gotoEnd) {\n var index = 0,\n // If we are going to the end, we want to run all the tweens\n // otherwise we skip this part\n length = gotoEnd ? animation.tweens.length : 0;\n\n if (stopped) {\n return this;\n }\n\n stopped = true;\n\n for (; index < length; index++) {\n animation.tweens[index].run(1);\n } // Resolve when we played the last frame; otherwise, reject\n\n\n if (gotoEnd) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n deferred.resolveWith(elem, [animation, gotoEnd]);\n } else {\n deferred.rejectWith(elem, [animation, gotoEnd]);\n }\n\n return this;\n }\n }),\n props = animation.props;\n\n propFilter(props, animation.opts.specialEasing);\n\n for (; index < length; index++) {\n result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n\n if (result) {\n if (isFunction(result.stop)) {\n jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n }\n\n return result;\n }\n }\n\n jQuery.map(props, createTween, animation);\n\n if (isFunction(animation.opts.start)) {\n animation.opts.start.call(elem, animation);\n } // Attach callbacks from options\n\n\n animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n jQuery.fx.timer(jQuery.extend(tick, {\n elem: elem,\n anim: animation,\n queue: animation.opts.queue\n }));\n return animation;\n }\n\n jQuery.Animation = jQuery.extend(Animation, {\n tweeners: {\n \"*\": [function (prop, value) {\n var tween = this.createTween(prop, value);\n adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\n return tween;\n }]\n },\n tweener: function tweener(props, callback) {\n if (isFunction(props)) {\n callback = props;\n props = [\"*\"];\n } else {\n props = props.match(rnothtmlwhite);\n }\n\n var prop,\n index = 0,\n length = props.length;\n\n for (; index < length; index++) {\n prop = props[index];\n Animation.tweeners[prop] = Animation.tweeners[prop] || [];\n Animation.tweeners[prop].unshift(callback);\n }\n },\n prefilters: [defaultPrefilter],\n prefilter: function prefilter(callback, prepend) {\n if (prepend) {\n Animation.prefilters.unshift(callback);\n } else {\n Animation.prefilters.push(callback);\n }\n }\n });\n\n jQuery.speed = function (speed, easing, fn) {\n var opt = speed && _typeof(speed) === \"object\" ? jQuery.extend({}, speed) : {\n complete: fn || !fn && easing || isFunction(speed) && speed,\n duration: speed,\n easing: fn && easing || easing && !isFunction(easing) && easing\n }; // Go to the end state if fx are off\n\n if (jQuery.fx.off) {\n opt.duration = 0;\n } else {\n if (typeof opt.duration !== \"number\") {\n if (opt.duration in jQuery.fx.speeds) {\n opt.duration = jQuery.fx.speeds[opt.duration];\n } else {\n opt.duration = jQuery.fx.speeds._default;\n }\n }\n } // Normalize opt.queue - true/undefined/null -> \"fx\"\n\n\n if (opt.queue == null || opt.queue === true) {\n opt.queue = \"fx\";\n } // Queueing\n\n\n opt.old = opt.complete;\n\n opt.complete = function () {\n if (isFunction(opt.old)) {\n opt.old.call(this);\n }\n\n if (opt.queue) {\n jQuery.dequeue(this, opt.queue);\n }\n };\n\n return opt;\n };\n\n jQuery.fn.extend({\n fadeTo: function fadeTo(speed, to, easing, callback) {\n // Show any hidden elements after setting opacity to 0\n return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show() // Animate to the value specified\n .end().animate({\n opacity: to\n }, speed, easing, callback);\n },\n animate: function animate(prop, speed, easing, callback) {\n var empty = jQuery.isEmptyObject(prop),\n optall = jQuery.speed(speed, easing, callback),\n doAnimation = function doAnimation() {\n // Operate on a copy of prop so per-property easing won't be lost\n var anim = Animation(this, jQuery.extend({}, prop), optall); // Empty animations, or finishing resolves immediately\n\n if (empty || dataPriv.get(this, \"finish\")) {\n anim.stop(true);\n }\n };\n\n doAnimation.finish = doAnimation;\n return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n },\n stop: function stop(type, clearQueue, gotoEnd) {\n var stopQueue = function stopQueue(hooks) {\n var stop = hooks.stop;\n delete hooks.stop;\n stop(gotoEnd);\n };\n\n if (typeof type !== \"string\") {\n gotoEnd = clearQueue;\n clearQueue = type;\n type = undefined;\n }\n\n if (clearQueue) {\n this.queue(type || \"fx\", []);\n }\n\n return this.each(function () {\n var dequeue = true,\n index = type != null && type + \"queueHooks\",\n timers = jQuery.timers,\n data = dataPriv.get(this);\n\n if (index) {\n if (data[index] && data[index].stop) {\n stopQueue(data[index]);\n }\n } else {\n for (index in data) {\n if (data[index] && data[index].stop && rrun.test(index)) {\n stopQueue(data[index]);\n }\n }\n }\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n timers[index].anim.stop(gotoEnd);\n dequeue = false;\n timers.splice(index, 1);\n }\n } // Start the next in the queue if the last step wasn't forced.\n // Timers currently will call their complete callbacks, which\n // will dequeue but only if they were gotoEnd.\n\n\n if (dequeue || !gotoEnd) {\n jQuery.dequeue(this, type);\n }\n });\n },\n finish: function finish(type) {\n if (type !== false) {\n type = type || \"fx\";\n }\n\n return this.each(function () {\n var index,\n data = dataPriv.get(this),\n queue = data[type + \"queue\"],\n hooks = data[type + \"queueHooks\"],\n timers = jQuery.timers,\n length = queue ? queue.length : 0; // Enable finishing flag on private data\n\n data.finish = true; // Empty the queue first\n\n jQuery.queue(this, type, []);\n\n if (hooks && hooks.stop) {\n hooks.stop.call(this, true);\n } // Look for any active animations, and finish them\n\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && timers[index].queue === type) {\n timers[index].anim.stop(true);\n timers.splice(index, 1);\n }\n } // Look for any animations in the old queue and finish them\n\n\n for (index = 0; index < length; index++) {\n if (queue[index] && queue[index].finish) {\n queue[index].finish.call(this);\n }\n } // Turn off finishing flag\n\n\n delete data.finish;\n });\n }\n });\n jQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\n var cssFn = jQuery.fn[name];\n\n jQuery.fn[name] = function (speed, easing, callback) {\n return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n };\n }); // Generate shortcuts for custom animations\n\n jQuery.each({\n slideDown: genFx(\"show\"),\n slideUp: genFx(\"hide\"),\n slideToggle: genFx(\"toggle\"),\n fadeIn: {\n opacity: \"show\"\n },\n fadeOut: {\n opacity: \"hide\"\n },\n fadeToggle: {\n opacity: \"toggle\"\n }\n }, function (name, props) {\n jQuery.fn[name] = function (speed, easing, callback) {\n return this.animate(props, speed, easing, callback);\n };\n });\n jQuery.timers = [];\n\n jQuery.fx.tick = function () {\n var timer,\n i = 0,\n timers = jQuery.timers;\n fxNow = Date.now();\n\n for (; i < timers.length; i++) {\n timer = timers[i]; // Run the timer and safely remove it when done (allowing for external removal)\n\n if (!timer() && timers[i] === timer) {\n timers.splice(i--, 1);\n }\n }\n\n if (!timers.length) {\n jQuery.fx.stop();\n }\n\n fxNow = undefined;\n };\n\n jQuery.fx.timer = function (timer) {\n jQuery.timers.push(timer);\n jQuery.fx.start();\n };\n\n jQuery.fx.interval = 13;\n\n jQuery.fx.start = function () {\n if (inProgress) {\n return;\n }\n\n inProgress = true;\n schedule();\n };\n\n jQuery.fx.stop = function () {\n inProgress = null;\n };\n\n jQuery.fx.speeds = {\n slow: 600,\n fast: 200,\n // Default speed\n _default: 400\n };\n return jQuery;\n});","define([\"../var/pnum\"], function (pnum) {\n \"use strict\";\n\n return new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n});","define(function () {\n \"use strict\";\n\n return [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n});","define(function () {\n \"use strict\";\n\n return /^(?:checkbox|radio)$/i;\n});","define([\"../../var/pnum\"], function (pnum) {\n \"use strict\";\n\n return new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n});","define([\"../core\", \"../var/document\", \"../var/documentElement\", \"../var/support\"], function (jQuery, document, documentElement, support) {\n \"use strict\";\n\n (function () {\n // Executing both pixelPosition & boxSizingReliable tests require only one layout\n // so they're executed at the same time to save the second computation.\n function computeStyleTests() {\n // This is a singleton, we need to execute it only once\n if (!div) {\n return;\n }\n\n container.style.cssText = \"position:absolute;left:-11111px;width:60px;\" + \"margin-top:1px;padding:0;border:0\";\n div.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" + \"margin:auto;border:1px;padding:1px;\" + \"width:60%;top:1%\";\n documentElement.appendChild(container).appendChild(div);\n var divStyle = window.getComputedStyle(div);\n pixelPositionVal = divStyle.top !== \"1%\"; // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\n reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12; // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n // Some styles come back with percentage values, even though they shouldn't\n\n div.style.right = \"60%\";\n pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36; // Support: IE 9 - 11 only\n // Detect misreporting of content dimensions for box-sizing:border-box elements\n\n boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36; // Support: IE 9 only\n // Detect overflow:scroll screwiness (gh-3699)\n // Support: Chrome <=64\n // Don't get tricked when zoom affects offsetWidth (gh-4029)\n\n div.style.position = \"absolute\";\n scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n documentElement.removeChild(container); // Nullify the div so it wouldn't be stored in the memory and\n // it will also be a sign that checks already performed\n\n div = null;\n }\n\n function roundPixelMeasures(measure) {\n return Math.round(parseFloat(measure));\n }\n\n var pixelPositionVal,\n boxSizingReliableVal,\n scrollboxSizeVal,\n pixelBoxStylesVal,\n reliableTrDimensionsVal,\n reliableMarginLeftVal,\n container = document.createElement(\"div\"),\n div = document.createElement(\"div\"); // Finish early in limited (non-browser) environments\n\n if (!div.style) {\n return;\n } // Support: IE <=9 - 11 only\n // Style of cloned element affects source element cloned (trac-8908)\n\n\n div.style.backgroundClip = \"content-box\";\n div.cloneNode(true).style.backgroundClip = \"\";\n support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n jQuery.extend(support, {\n boxSizingReliable: function boxSizingReliable() {\n computeStyleTests();\n return boxSizingReliableVal;\n },\n pixelBoxStyles: function pixelBoxStyles() {\n computeStyleTests();\n return pixelBoxStylesVal;\n },\n pixelPosition: function pixelPosition() {\n computeStyleTests();\n return pixelPositionVal;\n },\n reliableMarginLeft: function reliableMarginLeft() {\n computeStyleTests();\n return reliableMarginLeftVal;\n },\n scrollboxSize: function scrollboxSize() {\n computeStyleTests();\n return scrollboxSizeVal;\n },\n // Support: IE 9 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Behavior in IE 9 is more subtle than in newer versions & it passes\n // some versions of this test; make sure not to make it pass there!\n //\n // Support: Firefox 70+\n // Only Firefox includes border widths\n // in computed dimensions. (gh-4529)\n reliableTrDimensions: function reliableTrDimensions() {\n var table, tr, trChild, trStyle;\n\n if (reliableTrDimensionsVal == null) {\n table = document.createElement(\"table\");\n tr = document.createElement(\"tr\");\n trChild = document.createElement(\"div\");\n table.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n tr.style.cssText = \"border:1px solid\"; // Support: Chrome 86+\n // Height set through cssText does not get applied.\n // Computed height then comes back as 0.\n\n tr.style.height = \"1px\";\n trChild.style.height = \"9px\"; // Support: Android 8 Chrome 86+\n // In our bodyBackground.html iframe,\n // display for all div elements is set to \"inline\",\n // which causes a problem only in Android 8 Chrome 86.\n // Ensuring the div is display: block\n // gets around this issue.\n\n trChild.style.display = \"block\";\n documentElement.appendChild(table).appendChild(tr).appendChild(trChild);\n trStyle = window.getComputedStyle(tr);\n reliableTrDimensionsVal = parseInt(trStyle.height, 10) + parseInt(trStyle.borderTopWidth, 10) + parseInt(trStyle.borderBottomWidth, 10) === tr.offsetHeight;\n documentElement.removeChild(table);\n }\n\n return reliableTrDimensionsVal;\n }\n });\n })();\n\n return support;\n});","define([\"../var/document\", \"../var/support\"], function (document, support) {\n \"use strict\";\n\n (function () {\n var input = document.createElement(\"input\"),\n select = document.createElement(\"select\"),\n opt = select.appendChild(document.createElement(\"option\"));\n input.type = \"checkbox\"; // Support: Android <=4.3 only\n // Default value for a checkbox should be \"on\"\n\n support.checkOn = input.value !== \"\"; // Support: IE <=11 only\n // Must access selectedIndex to make default options select\n\n support.optSelected = opt.selected; // Support: IE <=11 only\n // An input loses its value after becoming a radio\n\n input = document.createElement(\"input\");\n input.value = \"t\";\n input.type = \"radio\";\n support.radioValue = input.value === \"t\";\n })();\n\n return support;\n});","define([\"../var/rnothtmlwhite\"], function (rnothtmlwhite) {\n \"use strict\"; // Strip and collapse whitespace according to HTML spec\n // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\n function stripAndCollapse(value) {\n var tokens = value.match(rnothtmlwhite) || [];\n return tokens.join(\" \");\n }\n\n return stripAndCollapse;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"../core\", \"../var/document\", \"../data/var/dataPriv\", \"../data/var/acceptData\", \"../var/hasOwn\", \"../var/isFunction\", \"../var/isWindow\", \"../event\"], function (jQuery, document, dataPriv, acceptData, hasOwn, isFunction, isWindow) {\n \"use strict\";\n\n var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n stopPropagationCallback = function stopPropagationCallback(e) {\n e.stopPropagation();\n };\n\n jQuery.extend(jQuery.event, {\n trigger: function trigger(event, data, elem, onlyHandlers) {\n var i,\n cur,\n tmp,\n bubbleType,\n ontype,\n handle,\n special,\n lastElement,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = lastElement = tmp = elem = elem || document; // Don't do events on text and comment nodes\n\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n } // focus/blur morphs to focusin/out; ensure we're not firing them right now\n\n\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n\n ontype = type.indexOf(\":\") < 0 && \"on\" + type; // Caller can pass in a jQuery.Event object, Object, or just an event type string\n\n event = event[jQuery.expando] ? event : new jQuery.Event(type, _typeof(event) === \"object\" && event); // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null; // Clean up the event in case it is being reused\n\n event.result = undefined;\n\n if (!event.target) {\n event.target = elem;\n } // Clone any incoming data and prepend the event, creating the handler arg list\n\n\n data = data == null ? [event] : jQuery.makeArray(data, [event]); // Allow special events to draw outside the lines\n\n special = jQuery.event.special[type] || {};\n\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n } // Determine event propagation path in advance, per W3C events spec (trac-9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n\n\n if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n bubbleType = special.delegateType || type;\n\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n } // Only add window if we got to document (e.g., not plain obj or detached DOM)\n\n\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n } // Fire handlers on the event path\n\n\n i = 0;\n\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n lastElement = cur;\n event.type = i > 1 ? bubbleType : special.bindType || type; // jQuery handler\n\n handle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] && dataPriv.get(cur, \"handle\");\n\n if (handle) {\n handle.apply(cur, data);\n } // Native handler\n\n\n handle = ontype && cur[ontype];\n\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n\n event.type = type; // If nobody prevented the default action, do it now\n\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name as the event.\n // Don't do default actions on window, that's where global variables be (trac-6170)\n if (ontype && isFunction(elem[type]) && !isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n\n if (tmp) {\n elem[ontype] = null;\n } // Prevent re-triggering of the same event, since we already bubbled it above\n\n\n jQuery.event.triggered = type;\n\n if (event.isPropagationStopped()) {\n lastElement.addEventListener(type, stopPropagationCallback);\n }\n\n elem[type]();\n\n if (event.isPropagationStopped()) {\n lastElement.removeEventListener(type, stopPropagationCallback);\n }\n\n jQuery.event.triggered = undefined;\n\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n\n return event.result;\n },\n // Piggyback on a donor event to simulate a different one\n // Used only for `focus(in | out)` events\n simulate: function simulate(type, elem, event) {\n var e = jQuery.extend(new jQuery.Event(), event, {\n type: type,\n isSimulated: true\n });\n jQuery.event.trigger(e, null, elem);\n }\n });\n jQuery.fn.extend({\n trigger: function trigger(type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function triggerHandler(type, data) {\n var elem = this[0];\n\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\n }\n }\n });\n return jQuery;\n});","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","define([\"./core\", \"./selector\", \"./traversing\", \"./callbacks\", \"./deferred\", \"./deferred/exceptionHook\", \"./core/ready\", \"./data\", \"./queue\", \"./queue/delay\", \"./attributes\", \"./event\", \"./event/focusin\", \"./manipulation\", \"./manipulation/_evalUrl\", \"./wrap\", \"./css\", \"./css/hiddenVisibleSelectors\", \"./serialize\", \"./ajax\", \"./ajax/xhr\", \"./ajax/script\", \"./ajax/jsonp\", \"./ajax/load\", \"./core/parseXML\", \"./core/parseHTML\", \"./effects\", \"./effects/animatedSelector\", \"./offset\", \"./dimensions\", \"./deprecated\", \"./exports/amd\", \"./exports/global\"], function (jQuery) {\n \"use strict\";\n\n return jQuery;\n});","define(function () {\n \"use strict\";\n\n return Object.getPrototypeOf;\n});","define([\"./arr\"], function (arr) {\n \"use strict\"; // Support: IE 9 - 11+, Edge 18+, Android Browser 4.0 - 4.3 only, iOS 7 - 11 only, Safari 11 only,\n // Firefox <= 61 only\n // Provide fallback for browsers without Array#flat.\n\n return arr.flat ? function (array) {\n return arr.flat.call(array);\n } : function (array) {\n return arr.concat.apply([], array);\n };\n});","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.push;\n});","define([\"./class2type\"], function (class2type) {\n \"use strict\";\n\n return class2type.toString;\n});","define([\"./hasOwn\"], function (hasOwn) {\n \"use strict\";\n\n return hasOwn.toString;\n});","define([\"../var/document\"], function (document) {\n \"use strict\";\n\n var preservedScriptAttributes = {\n type: true,\n src: true,\n nonce: true,\n noModule: true\n };\n\n function DOMEval(code, node, doc) {\n doc = doc || document;\n var i,\n val,\n script = doc.createElement(\"script\");\n script.text = code;\n\n if (node) {\n for (i in preservedScriptAttributes) {\n // Support: Firefox 64+, Edge 18+\n // Some browsers don't support the \"nonce\" property on scripts.\n // On the other hand, just using `getAttribute` is not enough as\n // the `nonce` attribute is reset to an empty string whenever it\n // becomes browsing-context connected.\n // See https://github.com/whatwg/html/issues/2369\n // See https://html.spec.whatwg.org/#nonce-attributes\n // The `node.getAttribute` check was added for the sake of\n // `jQuery.globalEval` so that it can fake a nonce-containing node\n // via an object.\n val = node[i] || node.getAttribute && node.getAttribute(i);\n\n if (val) {\n script.setAttribute(i, val);\n }\n }\n }\n\n doc.head.appendChild(script).parentNode.removeChild(script);\n }\n\n return DOMEval;\n});","define([\"../../core\", \"../../selector\"], function (jQuery) {\n \"use strict\";\n\n return jQuery.expr.match.needsContext;\n});","define(function () {\n \"use strict\"; // rsingleTag matches a string consisting of a single HTML element with no attributes\n // and captures the element's name\n\n return /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;\n});","define([\"../core\", \"../var/indexOf\", \"../var/isFunction\", \"./var/rneedsContext\", \"../selector\"], function (jQuery, indexOf, isFunction, rneedsContext) {\n \"use strict\"; // Implement the identical functionality for filter and not\n\n function winnow(elements, qualifier, not) {\n if (isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n return !!qualifier.call(elem, i, elem) !== not;\n });\n } // Single element\n\n\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n } // Arraylike of elements (jQuery, arguments, Array)\n\n\n if (typeof qualifier !== \"string\") {\n return jQuery.grep(elements, function (elem) {\n return indexOf.call(qualifier, elem) > -1 !== not;\n });\n } // Filtered directly for both simple and complex selectors\n\n\n return jQuery.filter(qualifier, elements, not);\n }\n\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n\n if (elems.length === 1 && elem.nodeType === 1) {\n return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\n }\n\n return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n\n jQuery.fn.extend({\n find: function find(selector) {\n var i,\n ret,\n len = this.length,\n self = this;\n\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n\n ret = this.pushStack([]);\n\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n }\n\n return len > 1 ? jQuery.uniqueSort(ret) : ret;\n },\n filter: function filter(selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function not(selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function is(selector) {\n return !!winnow(this, // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n });\n});","define([\"../core\", \"../var/document\", \"../core/readyException\", \"../deferred\"], function (jQuery, document) {\n \"use strict\"; // The deferred used on DOM ready\n\n var readyList = jQuery.Deferred();\n\n jQuery.fn.ready = function (fn) {\n readyList.then(fn) // Wrap jQuery.readyException in a function so that the lookup\n // happens at the time of error handling instead of callback\n // registration.\n [\"catch\"](function (error) {\n jQuery.readyException(error);\n });\n return this;\n };\n\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n // A counter to track how many items to wait for before\n // the ready event fires. See trac-6781\n readyWait: 1,\n // Handle when the DOM is ready\n ready: function ready(wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n } // Remember that the DOM is ready\n\n\n jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be\n\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n } // If there are functions bound, to execute\n\n\n readyList.resolveWith(document, [jQuery]);\n }\n });\n jQuery.ready.then = readyList.then; // The ready event handler and self cleanup method\n\n function completed() {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n jQuery.ready();\n } // Catch cases where $(document).ready() is called\n // after the browser event has already occurred.\n // Support: IE <=9 - 10 only\n // Older IE sometimes signals \"interactive\" too soon\n\n\n if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n window.setTimeout(jQuery.ready);\n } else {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed); // A fallback to window.onload, that will always work\n\n window.addEventListener(\"load\", completed);\n }\n});","define([\"../core\", \"../core/camelCase\", \"../var/rnothtmlwhite\", \"./var/acceptData\"], function (jQuery, camelCase, rnothtmlwhite, acceptData) {\n \"use strict\";\n\n function Data() {\n this.expando = jQuery.expando + Data.uid++;\n }\n\n Data.uid = 1;\n Data.prototype = {\n cache: function cache(owner) {\n // Check if the owner object already has a cache\n var value = owner[this.expando]; // If not, create one\n\n if (!value) {\n value = {}; // We can accept data for non-element nodes in modern browsers,\n // but we should not, see trac-8335.\n // Always return an empty object.\n\n if (acceptData(owner)) {\n // If it is a node unlikely to be stringify-ed or looped over\n // use plain assignment\n if (owner.nodeType) {\n owner[this.expando] = value; // Otherwise secure it in a non-enumerable property\n // configurable must be true to allow the property to be\n // deleted when data is removed\n } else {\n Object.defineProperty(owner, this.expando, {\n value: value,\n configurable: true\n });\n }\n }\n }\n\n return value;\n },\n set: function set(owner, data, value) {\n var prop,\n cache = this.cache(owner); // Handle: [ owner, key, value ] args\n // Always use camelCase key (gh-2257)\n\n if (typeof data === \"string\") {\n cache[camelCase(data)] = value; // Handle: [ owner, { properties } ] args\n } else {\n // Copy the properties one-by-one to the cache object\n for (prop in data) {\n cache[camelCase(prop)] = data[prop];\n }\n }\n\n return cache;\n },\n get: function get(owner, key) {\n return key === undefined ? this.cache(owner) : // Always use camelCase key (gh-2257)\n owner[this.expando] && owner[this.expando][camelCase(key)];\n },\n access: function access(owner, key, value) {\n // In cases where either:\n //\n // 1. No key was specified\n // 2. A string key was specified, but no value provided\n //\n // Take the \"read\" path and allow the get method to determine\n // which value to return, respectively either:\n //\n // 1. The entire cache object\n // 2. The data stored at the key\n //\n if (key === undefined || key && typeof key === \"string\" && value === undefined) {\n return this.get(owner, key);\n } // When the key is not a string, or both a key and value\n // are specified, set or extend (existing objects) with either:\n //\n // 1. An object of properties\n // 2. A key and value\n //\n\n\n this.set(owner, key, value); // Since the \"set\" path can have two possible entry points\n // return the expected data based on which path was taken[*]\n\n return value !== undefined ? value : key;\n },\n remove: function remove(owner, key) {\n var i,\n cache = owner[this.expando];\n\n if (cache === undefined) {\n return;\n }\n\n if (key !== undefined) {\n // Support array or space separated string of keys\n if (Array.isArray(key)) {\n // If key is an array of keys...\n // We always set camelCase keys, so remove that.\n key = key.map(camelCase);\n } else {\n key = camelCase(key); // If a key with the spaces exists, use it.\n // Otherwise, create an array by matching non-whitespace\n\n key = key in cache ? [key] : key.match(rnothtmlwhite) || [];\n }\n\n i = key.length;\n\n while (i--) {\n delete cache[key[i]];\n }\n } // Remove the expando if there's no more data\n\n\n if (key === undefined || jQuery.isEmptyObject(cache)) {\n // Support: Chrome <=35 - 45\n // Webkit & Blink performance suffers when deleting properties\n // from DOM nodes, so set to undefined instead\n // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n if (owner.nodeType) {\n owner[this.expando] = undefined;\n } else {\n delete owner[this.expando];\n }\n }\n },\n hasData: function hasData(owner) {\n var cache = owner[this.expando];\n return cache !== undefined && !jQuery.isEmptyObject(cache);\n }\n };\n return Data;\n});","define([\"../Data\"], function (Data) {\n \"use strict\";\n\n return new Data();\n});","define(function () {\n \"use strict\";\n\n return /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n});","define([\"../../core\", \"../../core/isAttached\" // css is assumed\n], function (jQuery, isAttached) {\n \"use strict\"; // isHiddenWithinTree reports if an element has a non-\"none\" display style (inline and/or\n // through the CSS cascade), which is useful in deciding whether or not to make it visible.\n // It differs from the :hidden selector (jQuery.expr.pseudos.hidden) in two important ways:\n // * A hidden ancestor does not force an element to be classified as hidden.\n // * Being disconnected from the document does not force an element to be classified as hidden.\n // These differences improve the behavior of .toggle() et al. when applied to elements that are\n // detached or contained within hidden ancestors (gh-2404, gh-2863).\n\n return function (elem, el) {\n // isHiddenWithinTree might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem; // Inline style trumps all\n\n return elem.style.display === \"none\" || elem.style.display === \"\" && // Otherwise, check computed style\n // Support: Firefox <=43 - 45\n // Disconnected elements can have computed display: none, so first confirm that elem is\n // in the document.\n isAttached(elem) && jQuery.css(elem, \"display\") === \"none\";\n };\n});","define([\"../core\", \"../var/rcssNum\"], function (jQuery, rcssNum) {\n \"use strict\";\n\n function adjustCSS(elem, prop, valueParts, tween) {\n var adjusted,\n scale,\n maxIterations = 20,\n currentValue = tween ? function () {\n return tween.cur();\n } : function () {\n return jQuery.css(elem, prop, \"\");\n },\n initial = currentValue(),\n unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n // Starting value computation is required for potential unit mismatches\n initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n\n if (initialInUnit && initialInUnit[3] !== unit) {\n // Support: Firefox <=54\n // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n initial = initial / 2; // Trust units reported by jQuery.css\n\n unit = unit || initialInUnit[3]; // Iteratively approximate from a nonzero starting point\n\n initialInUnit = +initial || 1;\n\n while (maxIterations--) {\n // Evaluate and update our best guess (doubling guesses that zero out).\n // Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n jQuery.style(elem, prop, initialInUnit + unit);\n\n if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\n maxIterations = 0;\n }\n\n initialInUnit = initialInUnit / scale;\n }\n\n initialInUnit = initialInUnit * 2;\n jQuery.style(elem, prop, initialInUnit + unit); // Make sure we update the tween properties later on\n\n valueParts = valueParts || [];\n }\n\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0; // Apply relative offset (+=/-=) if specified\n\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n\n return adjusted;\n }\n\n return adjustCSS;\n});","define(function () {\n \"use strict\"; // rtagName captures the name from the first start tag in a string of HTML\n // https://html.spec.whatwg.org/multipage/syntax.html#tag-open-state\n // https://html.spec.whatwg.org/multipage/syntax.html#tag-name-state\n\n return /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n});","define(function () {\n \"use strict\";\n\n return /^$|^module$|\\/(?:java|ecma)script/i;\n});","define([\"./support\"], function (support) {\n \"use strict\"; // We have to close these tags to support XHTML (trac-13200)\n\n var wrapMap = {\n // XHTML parsers do not magically insert elements in the\n // same way that tag soup parsers do. So we cannot shorten\n // this by omitting or other required elements.\n thead: [1, \"
/ elements with colspans.\n SOLUTION: making individual
\", \"
\"],\n col: [2, \"\", \"
\"],\n tr: [2, \"\", \"
\"],\n td: [3, \"\", \"
\"],\n _default: [0, \"\", \"\"]\n };\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td; // Support: IE <=9 only\n\n if (!support.option) {\n wrapMap.optgroup = wrapMap.option = [1, \"\"];\n }\n\n return wrapMap;\n});","define([\"../var/document\", \"../var/support\"], function (document, support) {\n \"use strict\";\n\n (function () {\n var fragment = document.createDocumentFragment(),\n div = fragment.appendChild(document.createElement(\"div\")),\n input = document.createElement(\"input\"); // Support: Android 4.0 - 4.3 only\n // Check state lost if the name is set (trac-11217)\n // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (trac-14901)\n\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input); // Support: Android <=4.1 only\n // Older WebKit doesn't clone checked state correctly in fragments\n\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; // Support: IE <=11 only\n // Make sure textarea (and checkbox) defaultValue is properly cloned\n\n div.innerHTML = \"\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; // Support: IE <=9 only\n // IE <=9 replaces \";\n support.option = !!div.lastChild;\n })();\n\n return support;\n});","define([\"../core\", \"../core/nodeName\"], function (jQuery, nodeName) {\n \"use strict\";\n\n function getAll(context, tag) {\n // Support: IE <=9 - 11 only\n // Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n var ret;\n\n if (typeof context.getElementsByTagName !== \"undefined\") {\n ret = context.getElementsByTagName(tag || \"*\");\n } else if (typeof context.querySelectorAll !== \"undefined\") {\n ret = context.querySelectorAll(tag || \"*\");\n } else {\n ret = [];\n }\n\n if (tag === undefined || tag && nodeName(context, tag)) {\n return jQuery.merge([context], ret);\n }\n\n return ret;\n }\n\n return getAll;\n});","define([\"../data/var/dataPriv\"], function (dataPriv) {\n \"use strict\"; // Mark scripts as having already been evaluated\n\n function setGlobalEval(elems, refElements) {\n var i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n dataPriv.set(elems[i], \"globalEval\", !refElements || dataPriv.get(refElements[i], \"globalEval\"));\n }\n }\n\n return setGlobalEval;\n});","define([\"../core\", \"../core/toType\", \"../core/isAttached\", \"./var/rtagName\", \"./var/rscriptType\", \"./wrapMap\", \"./getAll\", \"./setGlobalEval\"], function (jQuery, toType, isAttached, rtagName, rscriptType, wrapMap, getAll, setGlobalEval) {\n \"use strict\";\n\n var rhtml = /<|&#?\\w+;/;\n\n function buildFragment(elems, context, scripts, selection, ignored) {\n var elem,\n tmp,\n tag,\n wrap,\n attached,\n j,\n fragment = context.createDocumentFragment(),\n nodes = [],\n i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n elem = elems[i];\n\n if (elem || elem === 0) {\n // Add nodes directly\n if (toType(elem) === \"object\") {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, elem.nodeType ? [elem] : elem); // Convert non-html into a text node\n } else if (!rhtml.test(elem)) {\n nodes.push(context.createTextNode(elem)); // Convert html into DOM nodes\n } else {\n tmp = tmp || fragment.appendChild(context.createElement(\"div\")); // Deserialize a standard representation\n\n tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2]; // Descend through wrappers to the right content\n\n j = wrap[0];\n\n while (j--) {\n tmp = tmp.lastChild;\n } // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n\n\n jQuery.merge(nodes, tmp.childNodes); // Remember the top-level container\n\n tmp = fragment.firstChild; // Ensure the created nodes are orphaned (trac-12392)\n\n tmp.textContent = \"\";\n }\n }\n } // Remove wrapper from fragment\n\n\n fragment.textContent = \"\";\n i = 0;\n\n while (elem = nodes[i++]) {\n // Skip elements already in the context collection (trac-4087)\n if (selection && jQuery.inArray(elem, selection) > -1) {\n if (ignored) {\n ignored.push(elem);\n }\n\n continue;\n }\n\n attached = isAttached(elem); // Append to fragment\n\n tmp = getAll(fragment.appendChild(elem), \"script\"); // Preserve script evaluation history\n\n if (attached) {\n setGlobalEval(tmp);\n } // Capture executables\n\n\n if (scripts) {\n j = 0;\n\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n\n return fragment;\n }\n\n return buildFragment;\n});","define(function () {\n \"use strict\";\n\n return /^--/;\n});","define(function () {\n \"use strict\";\n\n return function (elem) {\n // Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n var view = elem.ownerDocument.defaultView;\n\n if (!view || !view.opener) {\n view = window;\n }\n\n return view.getComputedStyle(elem);\n };\n});","define([\"../core\", \"../core/isAttached\", \"./var/rboxStyle\", \"./var/rnumnonpx\", \"./var/getStyles\", \"./var/rcustomProp\", \"../var/rtrimCSS\", \"./support\"], function (jQuery, isAttached, rboxStyle, rnumnonpx, getStyles, rcustomProp, rtrimCSS, support) {\n \"use strict\";\n\n function curCSS(elem, name, computed) {\n var width,\n minWidth,\n maxWidth,\n ret,\n isCustomProp = rcustomProp.test(name),\n // Support: Firefox 51+\n // Retrieving style before computed somehow\n // fixes an issue with getting wrong values\n // on detached elements\n style = elem.style;\n computed = computed || getStyles(elem); // getPropertyValue is needed for:\n // .css('filter') (IE 9 only, trac-12537)\n // .css('--customProperty) (gh-3144)\n\n if (computed) {\n // Support: IE <=9 - 11+\n // IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n // it's only available as `\"cssFloat\"`. We no longer modify properties\n // sent to `.css()` apart from camelCasing, so we need to check both.\n // Normally, this would create difference in behavior: if\n // `getPropertyValue` returns an empty string, the value returned\n // by `.css()` would be `undefined`. This is usually the case for\n // disconnected elements. However, in IE even disconnected elements\n // with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n ret = computed.getPropertyValue(name) || computed[name];\n\n if (isCustomProp && ret) {\n // Support: Firefox 105+, Chrome <=105+\n // Spec requires trimming whitespace for custom properties (gh-4926).\n // Firefox only trims leading whitespace. Chrome just collapses\n // both leading & trailing whitespace to a single space.\n //\n // Fall back to `undefined` if empty string returned.\n // This collapses a missing definition with property defined\n // and set to an empty string but there's no standard API\n // allowing us to differentiate them without a performance penalty\n // and returning `undefined` aligns with older jQuery.\n //\n // rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n // as whitespace while CSS does not, but this is not a problem\n // because CSS preprocessing replaces them with U+000A LINE FEED\n // (which *is* CSS whitespace)\n // https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n ret = ret.replace(rtrimCSS, \"$1\") || undefined;\n }\n\n if (ret === \"\" && !isAttached(elem)) {\n ret = jQuery.style(elem, name);\n } // A tribute to the \"awesome hack by Dean Edwards\"\n // Android Browser returns percentage for some values,\n // but width seems to be reliably pixels.\n // This is against the CSSOM draft spec:\n // https://drafts.csswg.org/cssom/#resolved-values\n\n\n if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\n // Remember the original values\n width = style.width;\n minWidth = style.minWidth;\n maxWidth = style.maxWidth; // Put in the new values to get a computed value out\n\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width; // Revert the changed values\n\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n }\n\n return ret !== undefined ? // Support: IE <=9 - 11 only\n // IE returns zIndex value as an integer.\n ret + \"\" : ret;\n }\n\n return curCSS;\n});","define(function () {\n \"use strict\";\n\n function addGetHookIf(conditionFn, hookFn) {\n // Define the hook, we'll check on the first run if it's really needed.\n return {\n get: function get() {\n if (conditionFn()) {\n // Hook not needed (or it's not possible to use it due\n // to missing dependency), remove it.\n delete this.get;\n return;\n } // Hook needed; redefine it so that the support test is not executed again.\n\n\n return (this.get = hookFn).apply(this, arguments);\n }\n };\n }\n\n return addGetHookIf;\n});","define([\"../var/document\", \"../core\"], function (document, jQuery) {\n \"use strict\";\n\n var cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\n emptyStyle = document.createElement(\"div\").style,\n vendorProps = {}; // Return a vendor-prefixed property or undefined\n\n function vendorPropName(name) {\n // Check for vendor prefixed names\n var capName = name[0].toUpperCase() + name.slice(1),\n i = cssPrefixes.length;\n\n while (i--) {\n name = cssPrefixes[i] + capName;\n\n if (name in emptyStyle) {\n return name;\n }\n }\n } // Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n\n\n function finalPropName(name) {\n var _final = jQuery.cssProps[name] || vendorProps[name];\n\n if (_final) {\n return _final;\n }\n\n if (name in emptyStyle) {\n return name;\n }\n\n return vendorProps[name] = vendorPropName(name) || name;\n }\n\n return finalPropName;\n});","define([\"../core\", \"../core/access\", \"./support\", \"../selector\"], function (jQuery, access, support) {\n \"use strict\";\n\n var rfocusable = /^(?:input|select|textarea|button)$/i,\n rclickable = /^(?:a|area)$/i;\n jQuery.fn.extend({\n prop: function prop(name, value) {\n return access(this, jQuery.prop, name, value, arguments.length > 1);\n },\n removeProp: function removeProp(name) {\n return this.each(function () {\n delete this[jQuery.propFix[name] || name];\n });\n }\n });\n jQuery.extend({\n prop: function prop(elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set properties on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n // Fix name and attach hooks\n name = jQuery.propFix[name] || name;\n hooks = jQuery.propHooks[name];\n }\n\n if (value !== undefined) {\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n return elem[name] = value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n return elem[name];\n },\n propHooks: {\n tabIndex: {\n get: function get(elem) {\n // Support: IE <=9 - 11 only\n // elem.tabIndex doesn't always return the\n // correct value when it hasn't been explicitly set\n // Use proper attribute retrieval (trac-12072)\n var tabindex = jQuery.find.attr(elem, \"tabindex\");\n\n if (tabindex) {\n return parseInt(tabindex, 10);\n }\n\n if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {\n return 0;\n }\n\n return -1;\n }\n }\n },\n propFix: {\n \"for\": \"htmlFor\",\n \"class\": \"className\"\n }\n }); // Support: IE <=11 only\n // Accessing the selectedIndex property\n // forces the browser to respect setting selected\n // on the option\n // The getter ensures a default option is selected\n // when in an optgroup\n // eslint rule \"no-unused-expressions\" is disabled for this code\n // since it considers such accessions noop\n\n if (!support.optSelected) {\n jQuery.propHooks.selected = {\n get: function get(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent && parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n\n return null;\n },\n set: function set(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent) {\n parent.selectedIndex;\n\n if (parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n }\n }\n };\n }\n\n jQuery.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () {\n jQuery.propFix[this.toLowerCase()] = this;\n });\n});","define(function () {\n \"use strict\";\n\n return {\n guid: Date.now()\n };\n});","define(function () {\n \"use strict\";\n\n return /\\?/;\n});","define([\"../core\"], function (jQuery) {\n \"use strict\"; // Cross-browser xml parsing\n\n jQuery.parseXML = function (data) {\n var xml, parserErrorElem;\n\n if (!data || typeof data !== \"string\") {\n return null;\n } // Support: IE 9 - 11 only\n // IE throws on parseFromString with invalid input.\n\n\n try {\n xml = new window.DOMParser().parseFromString(data, \"text/xml\");\n } catch (e) {}\n\n parserErrorElem = xml && xml.getElementsByTagName(\"parsererror\")[0];\n\n if (!xml || parserErrorElem) {\n jQuery.error(\"Invalid XML: \" + (parserErrorElem ? jQuery.map(parserErrorElem.childNodes, function (el) {\n return el.textContent;\n }).join(\"\\n\") : data));\n }\n\n return xml;\n };\n\n return jQuery.parseXML;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"./core\", \"./core/toType\", \"./var/rcheckableType\", \"./var/isFunction\", \"./core/init\", \"./traversing\", // filter\n\"./attributes/prop\"], function (jQuery, toType, rcheckableType, isFunction) {\n \"use strict\";\n\n var rbracket = /\\[\\]$/,\n rCRLF = /\\r?\\n/g,\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n rsubmittable = /^(?:input|select|textarea|keygen)/i;\n\n function buildParams(prefix, obj, traditional, add) {\n var name;\n\n if (Array.isArray(obj)) {\n // Serialize array item.\n jQuery.each(obj, function (i, v) {\n if (traditional || rbracket.test(prefix)) {\n // Treat each array item as a scalar.\n add(prefix, v);\n } else {\n // Item is non-scalar (array or object), encode its numeric index.\n buildParams(prefix + \"[\" + (_typeof(v) === \"object\" && v != null ? i : \"\") + \"]\", v, traditional, add);\n }\n });\n } else if (!traditional && toType(obj) === \"object\") {\n // Serialize object item.\n for (name in obj) {\n buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\n }\n } else {\n // Serialize scalar item.\n add(prefix, obj);\n }\n } // Serialize an array of form elements or a set of\n // key/values into a query string\n\n\n jQuery.param = function (a, traditional) {\n var prefix,\n s = [],\n add = function add(key, valueOrFunction) {\n // If value is a function, invoke it and use its return value\n var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction;\n s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value == null ? \"\" : value);\n };\n\n if (a == null) {\n return \"\";\n } // If an array was passed in, assume that it is an array of form elements.\n\n\n if (Array.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {\n // Serialize the form elements\n jQuery.each(a, function () {\n add(this.name, this.value);\n });\n } else {\n // If traditional, encode the \"old\" way (the way 1.3.2 or older\n // did it), otherwise encode params recursively.\n for (prefix in a) {\n buildParams(prefix, a[prefix], traditional, add);\n }\n } // Return the resulting serialization\n\n\n return s.join(\"&\");\n };\n\n jQuery.fn.extend({\n serialize: function serialize() {\n return jQuery.param(this.serializeArray());\n },\n serializeArray: function serializeArray() {\n return this.map(function () {\n // Can add propHook for \"elements\" to filter or add form elements\n var elements = jQuery.prop(this, \"elements\");\n return elements ? jQuery.makeArray(elements) : this;\n }).filter(function () {\n var type = this.type; // Use .is( \":disabled\" ) so that fieldset[disabled] works\n\n return this.name && !jQuery(this).is(\":disabled\") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));\n }).map(function (_i, elem) {\n var val = jQuery(this).val();\n\n if (val == null) {\n return null;\n }\n\n if (Array.isArray(val)) {\n return jQuery.map(val, function (val) {\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n });\n }\n\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n }).get();\n }\n });\n return jQuery;\n});","define([\"../core\", \"../var/document\", \"./var/rsingleTag\", \"../manipulation/buildFragment\", // This is the only module that needs core/support\n\"./support\"], function (jQuery, document, rsingleTag, buildFragment, support) {\n \"use strict\"; // Argument \"data\" should be string of html\n // context (optional): If specified, the fragment will be created in this context,\n // defaults to document\n // keepScripts (optional): If true, will include scripts passed in the html string\n\n jQuery.parseHTML = function (data, context, keepScripts) {\n if (typeof data !== \"string\") {\n return [];\n }\n\n if (typeof context === \"boolean\") {\n keepScripts = context;\n context = false;\n }\n\n var base, parsed, scripts;\n\n if (!context) {\n // Stop scripts or inline event handlers from being executed immediately\n // by using document.implementation\n if (support.createHTMLDocument) {\n context = document.implementation.createHTMLDocument(\"\"); // Set the base href for the created document\n // so any parsed elements with URLs\n // are based on the document's URL (gh-2965)\n\n base = context.createElement(\"base\");\n base.href = document.location.href;\n context.head.appendChild(base);\n } else {\n context = document;\n }\n }\n\n parsed = rsingleTag.exec(data);\n scripts = !keepScripts && []; // Single tag\n\n if (parsed) {\n return [context.createElement(parsed[1])];\n }\n\n parsed = buildFragment([data], context, scripts);\n\n if (scripts && scripts.length) {\n jQuery(scripts).remove();\n }\n\n return jQuery.merge([], parsed.childNodes);\n };\n\n return jQuery.parseHTML;\n});","import React, { useState } from 'react'\nimport FullCalendar from '@fullcalendar/react'\nimport dayGridPlugin from '@fullcalendar/daygrid'\nimport timeGridPlugin from '@fullcalendar/timegrid'\nimport listPlugin from '@fullcalendar/list'\nimport jaLocale from '@fullcalendar/core/locales/ja'\nimport interactionPlugin from '@fullcalendar/interaction'\nimport dayjs from 'dayjs'\nimport timezone from 'dayjs/plugin/timezone'\nimport utc from 'dayjs/plugin/utc'\nimport isBetween from 'dayjs/plugin/isBetween'\nimport ReserveEvents from './ReserveEvents'\n\ndayjs.extend(isBetween)\ndayjs.extend(utc)\ndayjs.extend(timezone)\ndayjs.tz.setDefault('Asia/Tokyo')\n\nconst Calendar = ({ events, handleEventClick }) => {\n const [selectDayEvents, setSelectDayEvents] = useState([])\n const calendarEvents = events.map((event, index) => {\n return {\n id: event.id,\n title: '予約空枠',\n start: event.start_at,\n end: event.end_at,\n counselorId: event.counselor_id,\n advisorId: event.advisor_id\n }\n })\n const viewEvents = events.map((event, index) => {\n return {\n id: event.id,\n start: dayjs(event.start_at).tz().format('YYYY-MM-DD'),\n end: dayjs(event.end_at).tz().format('YYYY-MM-DD'),\n display: 'background',\n counselorId: event.counselor_id,\n advisorId: event.advisor_id\n }\n })\n\n const now = dayjs().add(1, \"day\").tz().format('YYYY-MM-DD')\n const three_month_later = dayjs().tz().add(3, \"month\").endOf('month').format('YYYY-MM-DD')\n\n const handleDateClick = (info) => {\n const events = getDateEvent(info.date)\n setSelectDayEvents(events)\n location.href = '#reserves'\n }\n\n const getDateEvent = (day) => {\n const startDate = dayjs(day).hour(0).minute(0).format()\n const endDate = dayjs(day).hour(23).minute(59).format()\n\n return calendarEvents.map((event, index) => {\n const eventStartDate = dayjs(event.start).hour(0).minute(0).format()\n const eventEndDate = dayjs(event.end).hour(23).minute(59).format()\n // 日付の一致を確認\n if (startDate === eventStartDate && endDate === eventEndDate) {\n return event\n }\n }).filter(e => e)\n }\n\n const hasEvents = (date) => {\n const events = getDateEvent(date)\n return events && (events.length > 0)\n }\n\n const eventCounts = (date) => {\n const events = getDateEvent(date)\n if (!events) return 0\n return events.length\n }\n\n return (\n <>\n 0) {\n const markText = eventLength > 3 ? '◯' : '△'\n const markColor = eventLength > 3 ? '#fd5353' : '#1cac09'\n\n const dateElement = createElement(\n 'span',\n {\n style: {\n fontWeight: 'bold',\n fontStyle: 'normal',\n right: \"10%\",\n }\n },\n info.dayNumberText,\n )\n const markElement = createElement(\n 'div',\n {\n className: 'fc-daygrid-day-marker',\n style: {\n color: markColor,\n textAlign: 'center',\n fontStyle: 'normal',\n fontWeight: 'bold',\n position: 'relative',\n }\n },\n markText\n )\n\n return [dateElement, markElement]\n }\n },\n dayCellClassNames: function (info) {\n //if (hasEvents(info.date)) return ['fc-day-disabled']\n }\n }\n }}\n />\n \n \n )\n}\n\nexport default Calendar\n","function _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof2(exports)) === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) : typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) : (global = global || self, factory(global.ReactStripe = {}, global.React));\n})(this, function (exports, React) {\n 'use strict';\n\n React = React && Object.prototype.hasOwnProperty.call(React, 'default') ? React['default'] : React;\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\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\n\n var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n var ReactPropTypesSecret_1 = ReactPropTypesSecret;\n\n function emptyFunction() {}\n\n function emptyFunctionWithReset() {}\n\n emptyFunctionWithReset.resetWarningCache = emptyFunction;\n\n var factoryWithThrowingShims = function factoryWithThrowingShims() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret_1) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n } // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n };\n\n var propTypes = createCommonjsModule(function (module) {\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 {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = factoryWithThrowingShims();\n }\n });\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]);\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n\n 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 }\n\n var usePrevious = function usePrevious(value) {\n var ref = React.useRef(value);\n React.useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref.current;\n };\n\n var isUnknownObject = function isUnknownObject(raw) {\n return raw !== null && _typeof(raw) === 'object';\n };\n\n var isPromise = function isPromise(raw) {\n return isUnknownObject(raw) && typeof raw.then === 'function';\n }; // We are using types to enforce the `stripe` prop in this lib,\n // but in an untyped integration `stripe` could be anything, so we need\n // to do some sanity validation to prevent type errors.\n\n\n var isStripe = function isStripe(raw) {\n return isUnknownObject(raw) && typeof raw.elements === 'function' && typeof raw.createToken === 'function' && typeof raw.createPaymentMethod === 'function' && typeof raw.confirmCardPayment === 'function';\n };\n\n var PLAIN_OBJECT_STR = '[object Object]';\n\n var isEqual = function isEqual(left, right) {\n if (!isUnknownObject(left) || !isUnknownObject(right)) {\n return left === right;\n }\n\n var leftArray = Array.isArray(left);\n var rightArray = Array.isArray(right);\n if (leftArray !== rightArray) return false;\n var leftPlainObject = Object.prototype.toString.call(left) === PLAIN_OBJECT_STR;\n var rightPlainObject = Object.prototype.toString.call(right) === PLAIN_OBJECT_STR;\n if (leftPlainObject !== rightPlainObject) return false; // not sure what sort of special object this is (regexp is one option), so\n // fallback to reference check.\n\n if (!leftPlainObject && !leftArray) return left === right;\n var leftKeys = Object.keys(left);\n var rightKeys = Object.keys(right);\n if (leftKeys.length !== rightKeys.length) return false;\n var keySet = {};\n\n for (var i = 0; i < leftKeys.length; i += 1) {\n keySet[leftKeys[i]] = true;\n }\n\n for (var _i = 0; _i < rightKeys.length; _i += 1) {\n keySet[rightKeys[_i]] = true;\n }\n\n var allKeys = Object.keys(keySet);\n\n if (allKeys.length !== leftKeys.length) {\n return false;\n }\n\n var l = left;\n var r = right;\n\n var pred = function pred(key) {\n return isEqual(l[key], r[key]);\n };\n\n return allKeys.every(pred);\n };\n\n var extractAllowedOptionsUpdates = function extractAllowedOptionsUpdates(options, prevOptions, immutableKeys) {\n if (!isUnknownObject(options)) {\n return null;\n }\n\n return Object.keys(options).reduce(function (newOptions, key) {\n var isUpdated = !isUnknownObject(prevOptions) || !isEqual(options[key], prevOptions[key]);\n\n if (immutableKeys.includes(key)) {\n if (isUpdated) {\n console.warn(\"Unsupported prop change: options.\".concat(key, \" is not a mutable property.\"));\n }\n\n return newOptions;\n }\n\n if (!isUpdated) {\n return newOptions;\n }\n\n return _objectSpread2(_objectSpread2({}, newOptions || {}), {}, _defineProperty({}, key, options[key]));\n }, null);\n };\n\n var INVALID_STRIPE_ERROR = 'Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.'; // We are using types to enforce the `stripe` prop in this lib, but in a real\n // integration `stripe` could be anything, so we need to do some sanity\n // validation to prevent type errors.\n\n var validateStripe = function validateStripe(maybeStripe) {\n if (maybeStripe === null || isStripe(maybeStripe)) {\n return maybeStripe;\n }\n\n throw new Error(INVALID_STRIPE_ERROR);\n };\n\n var parseStripeProp = function parseStripeProp(raw) {\n if (isPromise(raw)) {\n return {\n tag: 'async',\n stripePromise: Promise.resolve(raw).then(validateStripe)\n };\n }\n\n var stripe = validateStripe(raw);\n\n if (stripe === null) {\n return {\n tag: 'empty'\n };\n }\n\n return {\n tag: 'sync',\n stripe: stripe\n };\n };\n\n var ElementsContext = /*#__PURE__*/React.createContext(null);\n ElementsContext.displayName = 'ElementsContext';\n\n var parseElementsContext = function parseElementsContext(ctx, useCase) {\n if (!ctx) {\n throw new Error(\"Could not find Elements context; You need to wrap the part of your app that \".concat(useCase, \" in an provider.\"));\n }\n\n return ctx;\n };\n /**\n * The `Elements` provider allows you to use [Element components](https://stripe.com/docs/stripe-js/react#element-components) and access the [Stripe object](https://stripe.com/docs/js/initializing) in any nested component.\n * Render an `Elements` provider at the root of your React app so that it is available everywhere you need it.\n *\n * To use the `Elements` provider, call `loadStripe` from `@stripe/stripe-js` with your publishable key.\n * The `loadStripe` function will asynchronously load the Stripe.js script and initialize a `Stripe` object.\n * Pass the returned `Promise` to `Elements`.\n *\n * @docs https://stripe.com/docs/stripe-js/react#elements-provider\n */\n\n\n var Elements = function Elements(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp);\n }, [rawStripeProp]); // For a sync stripe instance, initialize into context\n\n var _React$useState = React.useState(function () {\n return {\n stripe: parsed.tag === 'sync' ? parsed.stripe : null,\n elements: parsed.tag === 'sync' ? parsed.stripe.elements(options) : null\n };\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n ctx = _React$useState2[0],\n setContext = _React$useState2[1];\n\n React.useEffect(function () {\n var isMounted = true;\n\n var safeSetContext = function safeSetContext(stripe) {\n setContext(function (ctx) {\n // no-op if we already have a stripe instance (https://github.com/stripe/react-stripe-js/issues/296)\n if (ctx.stripe) return ctx;\n return {\n stripe: stripe,\n elements: stripe.elements(options)\n };\n });\n }; // For an async stripePromise, store it in context once resolved\n\n\n if (parsed.tag === 'async' && !ctx.stripe) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe && isMounted) {\n // Only update Elements context if the component is still mounted\n // and stripe is not null. We allow stripe to be null to make\n // handling SSR easier.\n safeSetContext(stripe);\n }\n });\n } else if (parsed.tag === 'sync' && !ctx.stripe) {\n // Or, handle a sync stripe instance going from null -> populated\n safeSetContext(parsed.stripe);\n }\n\n return function () {\n isMounted = false;\n };\n }, [parsed, ctx, options]); // Warn on changes to stripe prop\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Apply updates to elements when options prop has relevant changes\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (!ctx.elements) {\n return;\n }\n\n var updates = extractAllowedOptionsUpdates(options, prevOptions, ['clientSecret', 'fonts']);\n\n if (updates) {\n ctx.elements.update(updates);\n }\n }, [options, prevOptions, ctx.elements]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n var anyStripe = ctx.stripe;\n\n if (!anyStripe || !anyStripe._registerWrapper || !anyStripe.registerAppInfo) {\n return;\n }\n\n anyStripe._registerWrapper({\n name: 'react-stripe-js',\n version: \"1.12.0\"\n });\n\n anyStripe.registerAppInfo({\n name: 'react-stripe-js',\n version: \"1.12.0\",\n url: 'https://stripe.com/docs/stripe-js/react'\n });\n }, [ctx.stripe]);\n return /*#__PURE__*/React.createElement(ElementsContext.Provider, {\n value: ctx\n }, children);\n };\n\n var useElementsContextWithUseCase = function useElementsContextWithUseCase(useCaseMessage) {\n var ctx = React.useContext(ElementsContext);\n return parseElementsContext(ctx, useCaseMessage);\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#useelements-hook\n */\n\n\n var useElements = function useElements() {\n var _useElementsContextWi = useElementsContextWithUseCase('calls useElements()'),\n elements = _useElementsContextWi.elements;\n\n return elements;\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#usestripe-hook\n */\n\n\n var useStripe = function useStripe() {\n var _useElementsContextWi2 = useElementsContextWithUseCase('calls useStripe()'),\n stripe = _useElementsContextWi2.stripe;\n\n return stripe;\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#elements-consumer\n */\n\n\n var ElementsConsumer = function ElementsConsumer(_ref2) {\n var children = _ref2.children;\n var ctx = useElementsContextWithUseCase('mounts '); // Assert to satisfy the busted React.FC return type (it should be ReactNode)\n\n return children(ctx);\n };\n\n ElementsConsumer.propTypes = {\n children: propTypes.func.isRequired\n };\n\n var useCallbackReference = function useCallbackReference(cb) {\n var ref = React.useRef(cb);\n React.useEffect(function () {\n ref.current = cb;\n }, [cb]);\n return function () {\n if (ref.current) {\n ref.current.apply(ref, arguments);\n }\n };\n };\n\n var noop = function noop() {};\n\n var capitalized = function capitalized(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n };\n\n var createElementComponent = function createElementComponent(type, isServer) {\n var displayName = \"\".concat(capitalized(type), \"Element\");\n\n var ClientElement = function ClientElement(_ref) {\n var id = _ref.id,\n className = _ref.className,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n _ref$onBlur = _ref.onBlur,\n onBlur = _ref$onBlur === void 0 ? noop : _ref$onBlur,\n _ref$onFocus = _ref.onFocus,\n onFocus = _ref$onFocus === void 0 ? noop : _ref$onFocus,\n _ref$onReady = _ref.onReady,\n onReady = _ref$onReady === void 0 ? noop : _ref$onReady,\n _ref$onChange = _ref.onChange,\n onChange = _ref$onChange === void 0 ? noop : _ref$onChange,\n _ref$onEscape = _ref.onEscape,\n onEscape = _ref$onEscape === void 0 ? noop : _ref$onEscape,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === void 0 ? noop : _ref$onClick,\n _ref$onLoadError = _ref.onLoadError,\n onLoadError = _ref$onLoadError === void 0 ? noop : _ref$onLoadError,\n _ref$onLoaderStart = _ref.onLoaderStart,\n onLoaderStart = _ref$onLoaderStart === void 0 ? noop : _ref$onLoaderStart,\n _ref$onNetworksChange = _ref.onNetworksChange,\n onNetworksChange = _ref$onNetworksChange === void 0 ? noop : _ref$onNetworksChange;\n\n var _useElementsContextWi = useElementsContextWithUseCase(\"mounts <\".concat(displayName, \">\")),\n elements = _useElementsContextWi.elements;\n\n var elementRef = React.useRef(null);\n var domNode = React.useRef(null);\n var callOnReady = useCallbackReference(onReady);\n var callOnBlur = useCallbackReference(onBlur);\n var callOnFocus = useCallbackReference(onFocus);\n var callOnClick = useCallbackReference(onClick);\n var callOnChange = useCallbackReference(onChange);\n var callOnEscape = useCallbackReference(onEscape);\n var callOnLoadError = useCallbackReference(onLoadError);\n var callOnLoaderStart = useCallbackReference(onLoaderStart);\n var callOnNetworksChange = useCallbackReference(onNetworksChange);\n React.useLayoutEffect(function () {\n if (elementRef.current == null && elements && domNode.current != null) {\n var element = elements.create(type, options);\n elementRef.current = element;\n element.mount(domNode.current);\n element.on('ready', function () {\n return callOnReady(element);\n });\n element.on('change', callOnChange);\n element.on('blur', callOnBlur);\n element.on('focus', callOnFocus);\n element.on('escape', callOnEscape); // Users can pass an onLoadError prop on any Element component\n // just as they could listen for the `loaderror` event on any Element,\n // but only certain Elements will trigger the event.\n\n element.on('loaderror', callOnLoadError); // Users can pass an onLoaderStart prop on any Element component\n // just as they could listen for the `loaderstart` event on any Element,\n // but only certain Elements will trigger the event.\n\n element.on('loaderstart', callOnLoaderStart); // Users can pass an onNetworksChange prop on any Element component\n // just as they could listen for the `networkschange` event on any Element,\n // but only the Card and CardNumber Elements will trigger the event.\n\n element.on('networkschange', callOnNetworksChange); // Users can pass an onClick prop on any Element component\n // just as they could listen for the `click` event on any Element,\n // but only the PaymentRequestButton will actually trigger the event.\n\n element.on('click', callOnClick);\n }\n });\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (!elementRef.current) {\n return;\n }\n\n var updates = extractAllowedOptionsUpdates(options, prevOptions, ['paymentRequest']);\n\n if (updates) {\n elementRef.current.update(updates);\n }\n }, [options, prevOptions]);\n React.useLayoutEffect(function () {\n return function () {\n if (elementRef.current) {\n elementRef.current.destroy();\n elementRef.current = null;\n }\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className,\n ref: domNode\n });\n }; // Only render the Element wrapper in a server environment.\n\n\n var ServerElement = function ServerElement(props) {\n // Validate that we are in the right context by calling useElementsContextWithUseCase.\n useElementsContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n var id = props.id,\n className = props.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className\n });\n };\n\n var Element = isServer ? ServerElement : ClientElement;\n Element.propTypes = {\n id: propTypes.string,\n className: propTypes.string,\n onChange: propTypes.func,\n onBlur: propTypes.func,\n onFocus: propTypes.func,\n onReady: propTypes.func,\n onClick: propTypes.func,\n onLoadError: propTypes.func,\n onLoaderStart: propTypes.func,\n onNetworksChange: propTypes.func,\n options: propTypes.object\n };\n Element.displayName = displayName;\n Element.__elementType = type;\n return Element;\n };\n\n var isServer = typeof window === 'undefined';\n /**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AuBankAccountElement = createElementComponent('auBankAccount', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardElement = createElementComponent('card', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardNumberElement = createElementComponent('cardNumber', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardExpiryElement = createElementComponent('cardExpiry', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardCvcElement = createElementComponent('cardCvc', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var FpxBankElement = createElementComponent('fpxBank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var IbanElement = createElementComponent('iban', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var IdealBankElement = createElementComponent('idealBank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var P24BankElement = createElementComponent('p24Bank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var EpsBankElement = createElementComponent('epsBank', isServer);\n var PaymentElement = createElementComponent('payment', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var PaymentRequestButtonElement = createElementComponent('paymentRequestButton', isServer);\n /**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var LinkAuthenticationElement = createElementComponent('linkAuthentication', isServer);\n /**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AddressElement = createElementComponent('address', isServer);\n /**\n * @deprecated\n * Use `AddressElement` instead.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var ShippingAddressElement = createElementComponent('shippingAddress', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var PaymentMethodMessagingElement = createElementComponent('paymentMethodMessaging', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AffirmMessageElement = createElementComponent('affirmMessage', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AfterpayClearpayMessageElement = createElementComponent('afterpayClearpayMessage', isServer);\n exports.AddressElement = AddressElement;\n exports.AffirmMessageElement = AffirmMessageElement;\n exports.AfterpayClearpayMessageElement = AfterpayClearpayMessageElement;\n exports.AuBankAccountElement = AuBankAccountElement;\n exports.CardCvcElement = CardCvcElement;\n exports.CardElement = CardElement;\n exports.CardExpiryElement = CardExpiryElement;\n exports.CardNumberElement = CardNumberElement;\n exports.Elements = Elements;\n exports.ElementsConsumer = ElementsConsumer;\n exports.EpsBankElement = EpsBankElement;\n exports.FpxBankElement = FpxBankElement;\n exports.IbanElement = IbanElement;\n exports.IdealBankElement = IdealBankElement;\n exports.LinkAuthenticationElement = LinkAuthenticationElement;\n exports.P24BankElement = P24BankElement;\n exports.PaymentElement = PaymentElement;\n exports.PaymentMethodMessagingElement = PaymentMethodMessagingElement;\n exports.PaymentRequestButtonElement = PaymentRequestButtonElement;\n exports.ShippingAddressElement = ShippingAddressElement;\n exports.useElements = useElements;\n exports.useStripe = useStripe;\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n!function (e, i) {\n \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) && \"undefined\" != typeof module ? module.exports = i() : \"function\" == typeof define && define.amd ? define(i) : (e = \"undefined\" != typeof globalThis ? globalThis : e || self).dayjs_plugin_isBetween = i();\n}(this, function () {\n \"use strict\";\n\n return function (e, i, t) {\n i.prototype.isBetween = function (e, i, s, f) {\n var n = t(e),\n o = t(i),\n r = \"(\" === (f = f || \"()\")[0],\n u = \")\" === f[1];\n return (r ? this.isAfter(n, s) : !this.isBefore(n, s)) && (u ? this.isBefore(o, s) : !this.isAfter(o, s)) || (r ? this.isBefore(n, s) : !this.isAfter(n, s)) && (u ? this.isAfter(o, s) : !this.isBefore(o, s));\n };\n };\n});","define([\"./fnToString\"], function (fnToString) {\n \"use strict\";\n\n return fnToString.call(Object);\n});","define([\"./core\", \"../external/sizzle/dist/sizzle\"], function (jQuery, Sizzle) {\n \"use strict\";\n\n jQuery.find = Sizzle;\n jQuery.expr = Sizzle.selectors; // Deprecated\n\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\n jQuery.text = Sizzle.getText;\n jQuery.isXMLDoc = Sizzle.isXML;\n jQuery.contains = Sizzle.contains;\n jQuery.escapeSelector = Sizzle.escape;\n});","/*!\n * Sizzle CSS Selector Engine v2.3.9\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2022-12-19\n */\n(function (window) {\n var i,\n support,\n Expr,\n getText,\n isXML,\n tokenize,\n compile,\n select,\n outermostContext,\n sortInput,\n hasDuplicate,\n // Local document vars\n setDocument,\n document,\n docElem,\n documentIsHTML,\n rbuggyQSA,\n rbuggyMatches,\n matches,\n contains,\n // Instance-specific data\n expando = \"sizzle\" + 1 * new Date(),\n preferredDoc = window.document,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n nonnativeSelectorCache = createCache(),\n sortOrder = function sortOrder(a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n\n return 0;\n },\n // Instance methods\n hasOwn = {}.hasOwnProperty,\n arr = [],\n pop = arr.pop,\n pushNative = arr.push,\n push = arr.push,\n slice = arr.slice,\n // Use a stripped-down indexOf as it's faster than native\n // https://jsperf.com/thor-indexof-vs-for/5\n indexOf = function indexOf(list, elem) {\n var i = 0,\n len = list.length;\n\n for (; i < len; i++) {\n if (list[i] === elem) {\n return i;\n }\n }\n\n return -1;\n },\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" + \"ismap|loop|multiple|open|readonly|required|scoped\",\n // Regular expressions\n // http://www.w3.org/TR/css3-selectors/#whitespace\n whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n identifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace + // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace + // \"Attribute values must be CSS identifiers [capture 5]\n // or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + identifier + \")(?:\\\\((\" + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" + // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" + // 3. anything else (capture 2)\n \".*\" + \")\\\\)|)\",\n // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n rtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\"),\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n rdescend = new RegExp(whitespace + \"|>\"),\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n matchExpr = {\n \"ID\": new RegExp(\"^#(\" + identifier + \")\"),\n \"CLASS\": new RegExp(\"^\\\\.(\" + identifier + \")\"),\n \"TAG\": new RegExp(\"^(\" + identifier + \"|[*])\"),\n \"ATTR\": new RegExp(\"^\" + attributes),\n \"PSEUDO\": new RegExp(\"^\" + pseudos),\n \"CHILD\": new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n \"bool\": new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n // For use in libraries implementing .is()\n // We use this for POS matching in `select`\n \"needsContext\": new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n rhtml = /HTML$/i,\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n rnative = /^[^{]+\\{\\s*\\[native \\w/,\n // Easily-parseable/retrievable ID or TAG or CLASS selectors\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n rsibling = /[+~]/,\n // CSS escapes\n // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n runescape = new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\"),\n funescape = function funescape(escape, nonHex) {\n var high = \"0x\" + escape.slice(1) - 0x10000;\n return nonHex ? // Strip the backslash prefix from a non-hex escape sequence\n nonHex : // Replace a hexadecimal escape sequence with the encoded Unicode code point\n // Support: IE <=11+\n // For values outside the Basic Multilingual Plane (BMP), manually construct a\n // surrogate pair\n high < 0 ? String.fromCharCode(high + 0x10000) : String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n },\n // CSS string/identifier serialization\n // https://drafts.csswg.org/cssom/#common-serializing-idioms\n rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n fcssescape = function fcssescape(ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === \"\\0\") {\n return \"\\uFFFD\";\n } // Control characters and (dependent upon position) numbers get escaped as code points\n\n\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n } // Other potentially-special ASCII characters get backslash-escaped\n\n\n return \"\\\\\" + ch;\n },\n // Used for iframes\n // See setDocument()\n // Removing the function wrapper causes a \"Permission Denied\"\n // error in IE\n unloadHandler = function unloadHandler() {\n setDocument();\n },\n inDisabledFieldset = addCombinator(function (elem) {\n return elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n }, {\n dir: \"parentNode\",\n next: \"legend\"\n }); // Optimize for push.apply( _, NodeList )\n\n\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes); // Support: Android<4.0\n // Detect silently failing push.apply\n // eslint-disable-next-line no-unused-expressions\n\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: arr.length ? // Leverage slice if possible\n function (target, els) {\n pushNative.apply(target, slice.call(els));\n } : // Support: IE<9\n // Otherwise append directly\n function (target, els) {\n var j = target.length,\n i = 0; // Can't trust NodeList.length\n\n while (target[j++] = els[i++]) {}\n\n target.length = j - 1;\n }\n };\n }\n\n function Sizzle(selector, context, results, seed) {\n var m,\n i,\n elem,\n nid,\n match,\n groups,\n newSelector,\n newContext = context && context.ownerDocument,\n // nodeType defaults to 9, since context defaults to document\n nodeType = context ? context.nodeType : 9;\n results = results || []; // Return early from calls with invalid selector or context\n\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n } // Try to shortcut find operations (as opposed to filters) in HTML documents\n\n\n if (!seed) {\n setDocument(context);\n context = context || document;\n\n if (documentIsHTML) {\n // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n // (excepting DocumentFragment context, where the methods don't exist)\n if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n // ID selector\n if (m = match[1]) {\n // Document context\n if (nodeType === 9) {\n if (elem = context.getElementById(m)) {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (elem.id === m) {\n results.push(elem);\n return results;\n }\n } else {\n return results;\n } // Element context\n\n } else {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (newContext && (elem = newContext.getElementById(m)) && contains(context, elem) && elem.id === m) {\n results.push(elem);\n return results;\n }\n } // Type selector\n\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results; // Class selector\n } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n } // Take advantage of querySelectorAll\n\n\n if (support.qsa && !nonnativeSelectorCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector)) && ( // Support: IE 8 only\n // Exclude object elements\n nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\")) {\n newSelector = selector;\n newContext = context; // qSA considers elements outside a scoping root when evaluating child or\n // descendant combinators, which is not what we want.\n // In such cases, we work around the behavior by prefixing every selector in the\n // list with an ID selector referencing the scope context.\n // The technique has to be used as well when a leading combinator is used\n // as such selectors are not recognized by querySelectorAll.\n // Thanks to Andrew Dupont for this technique.\n\n if (nodeType === 1 && (rdescend.test(selector) || rcombinators.test(selector))) {\n // Expand context for sibling selectors\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context; // We can use :scope instead of the ID hack if the browser\n // supports it & if we're not changing the context.\n\n if (newContext !== context || !support.scope) {\n // Capture the context ID, setting it first if necessary\n if (nid = context.getAttribute(\"id\")) {\n nid = nid.replace(rcssescape, fcssescape);\n } else {\n context.setAttribute(\"id\", nid = expando);\n }\n } // Prefix every selector in the list\n\n\n groups = tokenize(selector);\n i = groups.length;\n\n while (i--) {\n groups[i] = (nid ? \"#\" + nid : \":scope\") + \" \" + toSelector(groups[i]);\n }\n\n newSelector = groups.join(\",\");\n }\n\n try {\n // `qSA` may not throw for unrecognized parts using forgiving parsing:\n // https://drafts.csswg.org/selectors/#forgiving-selector\n // like the `:has()` pseudo-class:\n // https://drafts.csswg.org/selectors/#relational\n // `CSS.supports` is still expected to return `false` then:\n // https://drafts.csswg.org/css-conditional-4/#typedef-supports-selector-fn\n // https://drafts.csswg.org/css-conditional-4/#dfn-support-selector\n if (support.cssSupportsSelector && // eslint-disable-next-line no-undef\n !CSS.supports(\"selector(:is(\" + newSelector + \"))\")) {\n // Support: IE 11+\n // Throw to get to the same code path as an error directly in qSA.\n // Note: once we only support browser supporting\n // `CSS.supports('selector(...)')`, we can most likely drop\n // the `try-catch`. IE doesn't implement the API.\n throw new Error();\n }\n\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {\n nonnativeSelectorCache(selector, true);\n } finally {\n if (nid === expando) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n } // All others\n\n\n return select(selector.replace(rtrim, \"$1\"), context, results, seed);\n }\n /**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\n\n\n function createCache() {\n var keys = [];\n\n function cache(key, value) {\n // Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n if (keys.push(key + \" \") > Expr.cacheLength) {\n // Only keep the most recent entries\n delete cache[keys.shift()];\n }\n\n return cache[key + \" \"] = value;\n }\n\n return cache;\n }\n /**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\n\n\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\n\n\n function assert(fn) {\n var el = document.createElement(\"fieldset\");\n\n try {\n return !!fn(el);\n } catch (e) {\n return false;\n } finally {\n // Remove from its parent by default\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n } // release memory in IE\n\n\n el = null;\n }\n }\n /**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\n\n\n function addHandle(attrs, handler) {\n var arr = attrs.split(\"|\"),\n i = arr.length;\n\n while (i--) {\n Expr.attrHandle[arr[i]] = handler;\n }\n }\n /**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\n\n\n function siblingCheck(a, b) {\n var cur = b && a,\n diff = cur && a.nodeType === 1 && b.nodeType === 1 && a.sourceIndex - b.sourceIndex; // Use IE sourceIndex if available on both nodes\n\n if (diff) {\n return diff;\n } // Check if b follows a\n\n\n if (cur) {\n while (cur = cur.nextSibling) {\n if (cur === b) {\n return -1;\n }\n }\n }\n\n return a ? 1 : -1;\n }\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n\n\n function createInputPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n\n\n function createButtonPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return (name === \"input\" || name === \"button\") && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\n\n\n function createDisabledPseudo(disabled) {\n // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n return function (elem) {\n // Only certain elements can match :enabled or :disabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n if (\"form\" in elem) {\n // Check for inherited disabledness on relevant non-disabled elements:\n // * listed form-associated elements in a disabled fieldset\n // https://html.spec.whatwg.org/multipage/forms.html#category-listed\n // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n // * option elements in a disabled optgroup\n // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n // All such elements have a \"form\" property.\n if (elem.parentNode && elem.disabled === false) {\n // Option elements defer to a parent optgroup if present\n if (\"label\" in elem) {\n if (\"label\" in elem.parentNode) {\n return elem.parentNode.disabled === disabled;\n } else {\n return elem.disabled === disabled;\n }\n } // Support: IE 6 - 11\n // Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\n\n return elem.isDisabled === disabled || // Where there is no isDisabled, check manually\n\n /* jshint -W018 */\n elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled;\n }\n\n return elem.disabled === disabled; // Try to winnow out elements that can't be disabled before trusting the disabled property.\n // Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n // even exist on them, let alone have a boolean value.\n } else if (\"label\" in elem) {\n return elem.disabled === disabled;\n } // Remaining elements are neither :enabled nor :disabled\n\n\n return false;\n };\n }\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n\n\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length; // Match elements found at the specified indexes\n\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\n });\n }\n /**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\n\n\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n } // Expose support vars for convenience\n\n\n support = Sizzle.support = {};\n /**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\n\n isXML = Sizzle.isXML = function (elem) {\n var namespace = elem && elem.namespaceURI,\n docElem = elem && (elem.ownerDocument || elem).documentElement; // Support: IE <=8\n // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n // https://bugs.jquery.com/ticket/4833\n\n return !rhtml.test(namespace || docElem && docElem.nodeName || \"HTML\");\n };\n /**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\n\n\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare,\n subWindow,\n doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (doc == document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n } // Update global variables\n\n\n document = doc;\n docElem = document.documentElement;\n documentIsHTML = !isXML(document); // Support: IE 9 - 11+, Edge 12 - 18+\n // Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (preferredDoc != document && (subWindow = document.defaultView) && subWindow.top !== subWindow) {\n // Support: IE 11, Edge\n if (subWindow.addEventListener) {\n subWindow.addEventListener(\"unload\", unloadHandler, false); // Support: IE 9 - 10 only\n } else if (subWindow.attachEvent) {\n subWindow.attachEvent(\"onunload\", unloadHandler);\n }\n } // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n // Safari 4 - 5 only, Opera <=11.6 - 12.x only\n // IE/Edge & older browsers don't support the :scope pseudo-class.\n // Support: Safari 6.0 only\n // Safari 6.0 supports :scope but it's an alias of :root there.\n\n\n support.scope = assert(function (el) {\n docElem.appendChild(el).appendChild(document.createElement(\"div\"));\n return typeof el.querySelectorAll !== \"undefined\" && !el.querySelectorAll(\":scope fieldset div\").length;\n }); // Support: Chrome 105+, Firefox 104+, Safari 15.4+\n // Make sure forgiving mode is not used in `CSS.supports( \"selector(...)\" )`.\n //\n // `:is()` uses a forgiving selector list as an argument and is widely\n // implemented, so it's a good one to test against.\n\n support.cssSupportsSelector = assert(function () {\n /* eslint-disable no-undef */\n return CSS.supports(\"selector(*)\") && // Support: Firefox 78-81 only\n // In old Firefox, `:is()` didn't use forgiving parsing. In that case,\n // fail this test as there's no selector to test against that.\n // `CSS.supports` uses unforgiving parsing\n document.querySelectorAll(\":is(:jqfake)\") && // `*` is needed as Safari & newer Chrome implemented something in between\n // for `:has()` - it throws in `qSA` if it only contains an unsupported\n // argument but multiple ones, one of which is supported, are fine.\n // We want to play safe in case `:is()` gets the same treatment.\n !CSS.supports(\"selector(:is(*,:jqfake))\");\n /* eslint-enable */\n });\n /* Attributes\n ---------------------------------------------------------------------- */\n // Support: IE<8\n // Verify that getAttribute really returns attributes and not properties\n // (excepting IE8 booleans)\n\n support.attributes = assert(function (el) {\n el.className = \"i\";\n return !el.getAttribute(\"className\");\n });\n /* getElement(s)By*\n ---------------------------------------------------------------------- */\n // Check if getElementsByTagName(\"*\") returns only elements\n\n support.getElementsByTagName = assert(function (el) {\n el.appendChild(document.createComment(\"\"));\n return !el.getElementsByTagName(\"*\").length;\n }); // Support: IE<9\n\n support.getElementsByClassName = rnative.test(document.getElementsByClassName); // Support: IE<10\n // Check if getElementById returns elements by name\n // The broken getElementById methods don't pick up programmatically-set names,\n // so use a roundabout getElementsByName test\n\n support.getById = assert(function (el) {\n docElem.appendChild(el).id = expando;\n return !document.getElementsByName || !document.getElementsByName(expando).length;\n }); // ID filter and find\n\n if (support.getById) {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var elem = context.getElementById(id);\n return elem ? [elem] : [];\n }\n };\n } else {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n }; // Support: IE 6 - 7 only\n // getElementById is not reliable as a find shortcut\n\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var node,\n i,\n elems,\n elem = context.getElementById(id);\n\n if (elem) {\n // Verify the id attribute\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n } // Fall back on getElementsByName\n\n\n elems = context.getElementsByName(id);\n i = 0;\n\n while (elem = elems[i++]) {\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n }\n }\n }\n\n return [];\n }\n };\n } // Tag\n\n\n Expr.find[\"TAG\"] = support.getElementsByTagName ? function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag); // DocumentFragment nodes don't have gEBTN\n } else if (support.qsa) {\n return context.querySelectorAll(tag);\n }\n } : function (tag, context) {\n var elem,\n tmp = [],\n i = 0,\n // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n results = context.getElementsByTagName(tag); // Filter out possible comments\n\n if (tag === \"*\") {\n while (elem = results[i++]) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n\n return tmp;\n }\n\n return results;\n }; // Class\n\n Expr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\n if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n // QSA and matchesSelector support\n // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\n\n rbuggyMatches = []; // qSa(:focus) reports false when true (Chrome 21)\n // We allow this because of a bug in IE8/9 that throws an error\n // whenever `document.activeElement` is accessed on an iframe\n // So, we allow :focus to pass through QSA all the time to avoid the IE error\n // See https://bugs.jquery.com/ticket/13378\n\n rbuggyQSA = [];\n\n if (support.qsa = rnative.test(document.querySelectorAll)) {\n // Build QSA regex\n // Regex strategy adopted from Diego Perini\n assert(function (el) {\n var input; // Select is set to empty string on purpose\n // This is to test IE's treatment of not explicitly\n // setting a boolean content attribute,\n // since its presence should be enough\n // https://bugs.jquery.com/ticket/12359\n\n docElem.appendChild(el).innerHTML = \"\" + \"\"; // Support: IE8, Opera 11-12.16\n // Nothing should be selected when empty strings follow ^= or $= or *=\n // The test attribute must be unknown in Opera but \"safe\" for WinRT\n // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\n if (el.querySelectorAll(\"[msallowcapture^='']\").length) {\n rbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Support: IE8\n // Boolean attributes and \"value\" are not treated correctly\n\n\n if (!el.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\n\n if (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\n } // Support: IE 11+, Edge 15 - 18+\n // IE 11/Edge don't find elements on a `[name='']` query in some cases.\n // Adding a temporary attribute to the document before the selection works\n // around the issue.\n // Interestingly, IE 10 & older don't seem to have the issue.\n\n\n input = document.createElement(\"input\");\n input.setAttribute(\"name\", \"\");\n el.appendChild(input);\n\n if (!el.querySelectorAll(\"[name='']\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Webkit/Opera - :checked should return selected option elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n // IE8 throws error here and will not see later tests\n\n\n if (!el.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n } // Support: Safari 8+, iOS 8+\n // https://bugs.webkit.org/show_bug.cgi?id=136851\n // In-page `selector#id sibling-combinator selector` fails\n\n\n if (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n } // Support: Firefox <=3.6 - 5 only\n // Old Firefox doesn't throw on a badly-escaped identifier.\n\n\n el.querySelectorAll(\"\\\\\\f\");\n rbuggyQSA.push(\"[\\\\r\\\\n\\\\f]\");\n });\n assert(function (el) {\n el.innerHTML = \"\" + \"\"; // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n\n var input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n el.appendChild(input).setAttribute(\"name\", \"D\"); // Support: IE8\n // Enforce case-sensitivity of name attribute\n\n if (el.querySelectorAll(\"[name=d]\").length) {\n rbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\n } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n // IE8 throws error here and will not see later tests\n\n\n if (el.querySelectorAll(\":enabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: IE9-11+\n // IE's :disabled selector does not pick up the children of disabled fieldsets\n\n\n docElem.appendChild(el).disabled = true;\n\n if (el.querySelectorAll(\":disabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: Opera 10 - 11 only\n // Opera 10-11 does not throw on post-comma invalid pseudos\n\n\n el.querySelectorAll(\"*,:x\");\n rbuggyQSA.push(\",.*:\");\n });\n }\n\n if (support.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) {\n assert(function (el) {\n // Check to see if it's possible to do matchesSelector\n // on a disconnected node (IE 9)\n support.disconnectedMatch = matches.call(el, \"*\"); // This should fail with an exception\n // Gecko does not error, returns false instead\n\n matches.call(el, \"[s!='']:x\");\n rbuggyMatches.push(\"!=\", pseudos);\n });\n }\n\n if (!support.cssSupportsSelector) {\n // Support: Chrome 105+, Safari 15.4+\n // `:has()` uses a forgiving selector list as an argument so our regular\n // `try-catch` mechanism fails to catch `:has()` with arguments not supported\n // natively like `:has(:contains(\"Foo\"))`. Where supported & spec-compliant,\n // we now use `CSS.supports(\"selector(:is(SELECTOR_TO_BE_TESTED))\")`, but\n // outside that we mark `:has` as buggy.\n rbuggyQSA.push(\":has\");\n }\n\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\n /* Contains\n ---------------------------------------------------------------------- */\n\n hasCompare = rnative.test(docElem.compareDocumentPosition); // Element contains another\n // Purposefully self-exclusive\n // As in, an element does not contain itself\n\n contains = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\n // Support: IE <9 only\n // IE doesn't have `contains` on `document` so we need to check for\n // `documentElement` presence.\n // We need to fall back to `a` when `documentElement` is missing\n // as `ownerDocument` of elements within `