{"version":3,"sources":["webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/adapters/xhr.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/unipointer/unipointer.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/get-iterator-method.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/vue-chartjs/legacy/index.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/unidragger/unidragger.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/core/dispatchRequest.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/node-libs-browser/mock/process.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/to-primitive.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/set-species.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/chart.js/dist/chunks/helpers.segment.mjs","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/chart.js/dist/chart.mjs","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/object-keys.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.string.match-all.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.regexp.to-string.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/object-get-prototype-of.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/is-pure.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/tslib/tslib.es6.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.array.splice.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.number.to-fixed.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/flickity/js/slide.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/dom-iterables.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/helpers/combineURLs.js","webpack:///../src/util.ts","webpack:///../src/namespaced.ts","webpack:///../src/index.ts","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/portal-vue/dist/portal-vue.common.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/same-value.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/an-object.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/cancel/Cancel.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/vue-scexpeditor/index.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/array-method-has-species-support.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/helpers/validator.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.date.to-primitive.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/uid.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/array-includes.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/@vue/babel-preset-app/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/@vue/babel-preset-app/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/@vue/babel-preset-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/@vue/babel-preset-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/@vue/babel-preset-app/node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///../../src/SimplePromiseQueue.ts","webpack:///../../src/utils.ts","webpack:///../../src/index.ts","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/@vue/babel-preset-app/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/helpers/spread.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/function-bind-context.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/vee-validate/dist/vee-validate.esm.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/cancel/CancelToken.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.array.reduce.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/array-fill.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/lodash.merge/index.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.regexp.exec.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/web.url-search-params.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.string.search.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.array.filter.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/define-iterator.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/create-iterator-constructor.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.set.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/fizzy-ui-utils/utils.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.string.replace.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/shared-key.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/core/enhanceError.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.array.slice.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/to-indexed-object.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/to-object.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/core/mergeConfig.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/collection-strong.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/core/InterceptorManager.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/to-string-tag-support.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/set-global.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/path.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/utils.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/get-iterator.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/regexp-exec.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/species-constructor.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/helpers/buildURL.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/core/settle.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/env/data.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/ev-emitter/ev-emitter.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/an-instance.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/shared.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/use-symbol-as-uid.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/vue/dist/vue.esm.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/engine-v8-version.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/object-to-string.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/get-built-in.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/flickity/js/add-remove-cell.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/cancel/isCancel.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/imagesloaded/imagesloaded.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.string.match.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/create-non-enumerable-property.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/this-number-value.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/iterators.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/@vue/babel-preset-app/node_modules/@babel/runtime/helpers/typeof.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/native-url.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/v-mask/dist/v-mask.esm.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/object-to-array.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/string-trim.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/core/Axios.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.string.split.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/flickity/js/animate.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/engine-user-agent.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/flickity/js/lazyload.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.object.entries.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/object-get-own-property-names.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.symbol.iterator.js","webpack:///(webpack)/buildin/module.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/classof-raw.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/array-species-create.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/define-well-known-symbol.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/export.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/native-weak-map.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/fails.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/require-object-coercible.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/get-size/get-size.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/is-object.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/defaults.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/flickity-imagesloaded/flickity-imagesloaded.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/helpers/parseHeaders.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/ie8-dom-define.js","webpack:///(webpack)/buildin/global.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/well-known-symbol.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/array-method-is-strict.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/correct-prototype-getter.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/create-html.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/index.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.symbol.to-primitive.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/object-create.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/indexed-object.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.array.find.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.array.from.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/@vue/babel-preset-app/node_modules/@babel/runtime/helpers/toPrimitive.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.function.name.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/a-function.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.regexp.constructor.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/flickity/js/cell.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/collection.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/flickity/js/index.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.array.fill.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/to-integer.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.array.includes.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.symbol.description.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/is-regexp.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/helpers/isAxiosError.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/inherit-if-required.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/text-mask-addons/dist/createNumberMask.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/html.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.array.iterator.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/freezing.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/create-property-descriptor.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/vee-validate/dist/rules.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/array-reduce.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/string-trim-forced.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/to-absolute-index.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/flickity/js/drag.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.map.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/flickity/js/page-dots.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/vuex/dist/vuex.esm.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/lodash/lodash.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/not-a-regexp.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/own-keys.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/@vue/babel-preset-app/node_modules/@babel/runtime/helpers/objectSpread2.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/path-browserify/index.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/string-repeat.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/core/createError.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/@vue/babel-preset-app/node_modules/@babel/runtime/helpers/defineProperty.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/iterator-close.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/core/buildFullPath.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/object-define-property.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/regexp-flags.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/string-html-forced.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/enum-bug-keys.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/flickity/js/player.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/redefine-all.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.string.fixed.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/to-length.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.array.sort.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.string.trim.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/iterate.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/copy-constructor-properties.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/string-multibyte.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/redefine.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/object-define-properties.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/helpers/bind.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.array.find-index.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/object-set-prototype-of.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/vuex-persist/node_modules/flatted/esm/index.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/shared-store.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/is-array.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.string.includes.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/object-keys-internal.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/is-array-iterator-method.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/helpers/cookies.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/array-from.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/internal-state.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/array-method-uses-to-length.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.array.map.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/array-iteration.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/date-to-primitive.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/descriptors.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/hidden-keys.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.symbol.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.array.concat.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/classof.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/flickity/js/prev-next-button.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/create-property.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/vue-resize/dist/vue-resize.esm.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/@vue/composition-api/dist/vue-composition-api.module.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/inspect-source.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/regexp-exec-abstract.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/popper.js/dist/esm/popper.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/internal-metadata.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/core/transformData.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/object-property-is-enumerable.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/advance-string-index.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/native-symbol.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.string.replace-all.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/array-for-each.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.number.constructor.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/is-forced.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/add-to-unscopables.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.array.join.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.object.to-string.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/engine-is-node.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/v-tooltip/dist/v-tooltip.esm.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/has.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/axios/lib/axios.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/document-create-element.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.string.iterator.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/a-possible-prototype.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/global.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/@vue/babel-preset-app/node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/flickity/js/flickity.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/es.object.keys.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/set-to-string-tag.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/desandro-matches-selector/matches-selector.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/whitespaces.js","webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/core-js/internals/iterators-core.js"],"names":["utils","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","defaults","Cancel","module","exports","config","Promise","resolve","reject","onCanceled","requestData","data","requestHeaders","headers","responseType","done","cancelToken","unsubscribe","signal","removeEventListener","isFormData","request","XMLHttpRequest","auth","username","password","unescape","encodeURIComponent","Authorization","btoa","fullPath","baseURL","url","onloadend","responseHeaders","getAllResponseHeaders","responseData","response","responseText","status","statusText","value","err","open","method","toUpperCase","params","paramsSerializer","timeout","onreadystatechange","readyState","responseURL","indexOf","setTimeout","onabort","onerror","ontimeout","timeoutErrorMessage","transitional","clarifyTimeoutError","isStandardBrowserEnv","xsrfValue","withCredentials","xsrfCookieName","read","undefined","xsrfHeaderName","forEach","val","key","toLowerCase","setRequestHeader","isUndefined","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","type","abort","subscribe","aborted","send","window","factory","EvEmitter","noop","Unipointer","proto","prototype","Object","create","bindStartEvent","elem","this","_bindStartEvent","unbindStartEvent","isAdd","bindMethod","startEvent","PointerEvent","handleEvent","event","getTouch","touches","i","length","touch","identifier","pointerIdentifier","onmousedown","button","_pointerDown","ontouchstart","changedTouches","onpointerdown","pointer","isPointerDown","pointerId","pointerDown","_bindPostStartEvents","emitEvent","postStartEvents","mousedown","touchstart","pointerdown","events","eventName","_boundPointerEvents","_unbindPostStartEvents","onmousemove","_pointerMove","onpointermove","ontouchmove","pointerMove","onmouseup","_pointerUp","onpointerup","ontouchend","_pointerDone","pointerUp","_pointerReset","pointerDone","onpointercancel","_pointerCancel","ontouchcancel","pointerCancel","getPointerPoint","x","pageX","y","pageY","classof","Iterators","wellKnownSymbol","ITERATOR","it","ChartEmits","chartCreate","createChartFunction","chartData","chartOptions","context","emit","ChartRendered","chartUpdate","chart","update","ChartUpdated","chartDestroy","destroy","ChartDestroyed","getChartData","datasetIdKey","nextData","labels","datasets","setChartDatasets","oldData","newData","addedDatasets","map","nextDataset","currentDataset","find","dataset","includes","push","assign","setChartLabels","LabelsUpdated","setChartOptions","options","compareData","newDatasetLabels","label","oldDatasetLabels","every","index","templateError","ANNOTATION_PLUGIN_KEY","generateChart","chartId","chartType","chartController","_chartRef","props","required","default","String","width","Number","height","cssClasses","styles","plugins","Array","_chart","_id","Math","random","toString","substring","computed","ref","ref1","pluginSettings","register","$data","renderChart","$emit","watch","handler","newValue","oldValue","chartDataHandler","deep","chartOptionsHandler","methods","currentChart","getCurrentChart","$refs","canvas","Error","canvasEl2DContext","getContext","setCurrentChart","keys","isEqualLabelsAndDatasetsLength","updateChart","hasAnnotationPlugin","render","createElement","style","class","attrs","id","Line","Unidragger","bindHandles","_bindHandles","unbindHandles","touchAction","_touchActionValue","handles","handle","isOkay","okayPointerDown","pointerDownPointer","preventDefault","pointerDownBlur","cursorNodes","TEXTAREA","INPUT","SELECT","OPTION","clickTypes","radio","checkbox","submit","image","file","isCursorNode","target","nodeName","isClickType","focused","document","activeElement","canBlur","blur","body","moveVector","_dragPointerMove","_dragMove","isDragging","hasDragStarted","_dragStart","abs","_dragPointerUp","_dragEnd","_staticClick","isPreventingClicks","dragStart","dragMove","bind","dragEnd","onclick","isIgnoringMouseUp","staticClick","test","transformData","isCancel","throwIfCancellationRequested","throwIfRequested","call","transformRequest","merge","common","adapter","then","transformResponse","reason","nextTick","fn","args","slice","arguments","shift","apply","platform","arch","execPath","title","pid","browser","env","argv","binding","name","path","cwd","chdir","dir","exit","kill","umask","dlopen","uptime","memoryUsage","uvCounters","features","isObject","input","PREFERRED_STRING","valueOf","TypeError","getBuiltIn","definePropertyModule","DESCRIPTORS","SPECIES","CONSTRUCTOR_NAME","Constructor","defineProperty","f","configurable","get","uid","isNullOrUndef","isArray","isNumberFinite","isFinite","finiteOrDefault","defaultValue","valueOrDefault","toPercentage","dimension","endsWith","parseFloat","toDimension","callback","thisArg","each","loopable","reverse","len","_elementsEqual","a0","a1","ilen","v0","v1","datasetIndex","clone$1","source","klen","k","isValidKey","_merger","tval","sval","sources","merger","mergeIf","_mergerIf","hasOwnProperty","keyResolvers","v","o","resolveObjectKey","obj","resolver","_getKeyResolver","_splitKey","parts","split","tmp","part","_capitalize","str","charAt","defined","isFunction","setsEqual","a","b","size","item","has","_isClickEvent","e","PI","TAU","PITAU","INFINITY","POSITIVE_INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","sign","niceNum","range","roundedRange","round","almostEquals","niceRange","pow","floor","fraction","niceFraction","_factorize","result","sqrt","sort","pop","isNumber","n","isNaN","epsilon","almostWhole","rounded","_setMinAndMaxByKey","array","property","min","max","toRadians","degrees","toDegrees","radians","_decimalPlaces","p","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","angle","atan2","distance","distanceBetweenPoints","pt1","pt2","_angleDiff","_normalizeAngle","_angleBetween","start","end","sameAngleIsFullCircle","s","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","_int16Range","_isBetween","_lookup","table","cmp","mid","hi","lo","_lookupByKey","last","_rlookupByKey","_filterBetween","values","arrayEvents","listenArrayEvents","listener","_chartjs","listeners","enumerable","base","res","object","unlistenArrayEvents","stub","splice","_arrayUnique","items","set","Set","add","from","requestAnimFrame","requestAnimationFrame","throttled","updateFn","updateArgs","ticking","rest","debounce","delay","clearTimeout","_toLeftRightCenter","align","_alignStartEnd","_getStartAndCountOfVisiblePoints","meta","points","animationsDisabled","pointCount","count","_sorted","iScale","_parsed","axis","minDefined","maxDefined","getUserBounds","getPixelForValue","_scaleRangesChanged","xScale","yScale","_scaleRanges","newRanges","xmin","xmax","ymin","ymax","changed","atEdge","t","elasticIn","sin","elasticOut","effects","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","cos","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInBounce","easeOutBounce","m","d","easeInOutBounce","lim","l","h","p2b","n2b","b2n","n2p","map$1","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","c","hex","h1","h2","eq","isShort","r","g","hexParse","ret","hexString","HUE_RE","hsl2rgbn","hsv2rgbn","hwb2rgbn","w","rgb","hueValue","rgb2hsl","calln","hsl2rgb","hwb2rgb","hsv2rgb","hue","hueParse","exec","p1","p2","rotate","deg","hslString","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","unpack","unpacked","tkeys","j","ok","nk","replace","parseInt","nameParse","transparent","RGB_RE","rgbParse","rgbString","interpolate","rgb1","rgb2","modHSL","ratio","clone","fromObject","functionParse","Color","_rgb","_valid","color","weight","c1","c2","w2","w1","index_esm","isPatternOrGradient","getHoverColor","saturate","darken","overrides","getScope$1","node","root","scope","Defaults","_descriptors","animation","backgroundColor","borderColor","devicePixelRatio","getDevicePixelRatio","elements","font","family","lineHeight","hover","hoverBackgroundColor","ctx","hoverBorderColor","hoverColor","indexAxis","interaction","mode","intersect","includeInvisible","maintainAspectRatio","onHover","onClick","parsing","responsive","scale","scales","showLine","drawActiveElementsOnTop","describe","targetScope","targetName","scopeObject","targetScopeObject","privateName","defineProperties","writable","local","_scriptable","startsWith","_indexable","_fallback","toFontString","_measureText","gc","longest","string","textWidth","measureText","_longestText","arrayOfThings","cache","garbageCollect","save","jlen","thing","nestedThing","restore","gcLen","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","clearCanvas","resetTransform","clearRect","drawPoint","drawPointLegend","xOffset","yOffset","cornerRadius","pointStyle","rotation","radius","rad","translate","drawImage","beginPath","ellipse","arc","closePath","moveTo","lineTo","SQRT1_2","rect","fill","borderWidth","stroke","_isPointInArea","point","area","margin","left","right","top","bottom","clipArea","clip","unclipArea","_steppedLineTo","previous","flip","midpoint","_bezierCurveTo","bezierCurveTo","cp1x","cp2x","cp1y","cp2y","renderText","text","opts","lines","strokeWidth","strokeColor","line","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","matches","match","numberOrZero","_readValueToProps","objProps","prop","toTRBL","toTRBLCorners","toPadding","toFont","fallback","console","warn","inputs","info","cacheable","_addGrace","minmax","grace","beginAtZero","change","keepZero","createContext","parentContext","_createResolver","scopes","prefixes","rootScopes","getTarget","_resolve","Symbol","toStringTag","_cacheable","_scopes","_rootScopes","_getTarget","override","Proxy","_keys","_cached","_resolveWithPrefixes","Reflect","getOwnPropertyDescriptor","getPrototypeOf","getKeysFromAllScopes","storage","_storage","_attachContext","proxy","subProxy","descriptorDefaults","_proxy","_context","_subProxy","_stack","setContext","receiver","_resolveWithContext","allKeys","ownKeys","scriptable","indexable","_allKeys","isScriptable","isIndexable","readKey","prefix","needsSubResolver","constructor","descriptors","_resolveScriptable","_resolveArray","join","delete","createSubResolver","arr","filter","resolveFallback","getScope","parent","addScopes","parentScopes","parentFallback","allScopes","addScopesFromKey","subGetTarget","resolveKeysFromAllScopes","_parseObjectDataRadialScale","_parsing","parsed","parse","EPSILON","getPoint","skip","getValueAxis","splineCurve","firstPoint","middlePoint","afterPoint","current","next","d01","d12","s01","s12","fa","fb","monotoneAdjust","deltaK","mK","pointsLen","alphaK","betaK","tauK","squaredMagnitude","pointCurrent","pointAfter","monotoneCompute","valueAxis","delta","pointBefore","iPixel","vPixel","splineCurveMonotone","slopeDelta","capControlPoint","pt","capBezierPoints","inArea","inAreaPrev","inAreaNext","_updateBezierControlPoints","loop","controlPoints","spanGaps","cubicInterpolationMode","prev","tension","_isDomSupported","_getParentNode","domNode","parentNode","host","parseMaxStyle","styleValue","parentProperty","valueInPixels","getComputedStyle","element","getStyle","el","getPropertyValue","positions","getPositionedStyle","suffix","pos","useOffsetPos","shadowRoot","getCanvasPosition","offsetX","offsetY","box","getBoundingClientRect","clientX","clientY","getRelativePosition","evt","borderBox","boxSizing","paddings","borders","getContainerSize","maxHeight","container","containerStyle","containerBorder","containerPadding","clientWidth","clientHeight","round1","getMaximumSize","bbWidth","bbHeight","aspectRatio","margins","containerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","setTransform","supportsEventListenerOptions","passiveSupported","readUsedSize","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","intlCache","Map","getNumberFormat","locale","cacheKey","JSON","stringify","formatter","Intl","NumberFormat","formatNumber","num","format","getRightToLeftAdapter","rectX","itemWidth","getLeftToRightAdapter","_itemWidth","getRtlAdapter","rtl","overrideTextDirection","direction","original","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","propertyFn","between","compare","normalize","normalizeSegment","getSegment","segment","bounds","startBound","endBound","_boundSegment","prevValue","inside","subStart","startIsBefore","endIsBefore","shouldStart","shouldStop","_boundSegments","segments","sub","findStartAndEnd","solidSegments","cur","stop","_computeSegments","segmentOptions","_loop","splitByStyles","completeLoop","_fullLoop","doSplitByStyles","chartContext","baseStyle","readStyle","_datasetIndex","prevStyle","addStyle","st","p0","p0DataIndex","p1DataIndex","styleChanged","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","_request","_charts","_running","_lastDate","anims","date","callbacks","numSteps","duration","initial","currentStep","_update","_refresh","Date","now","remaining","running","draw","_active","_total","tick","_notify","charts","complete","progress","cb","_getAnims","reduce","acc","_duration","animator","interpolators","to","factor","c0","valid","mix","cfg","currentValue","_fn","_easing","easing","_start","_target","_prop","_from","_to","_promises","elapsed","remain","promises","rej","resolved","numbers","colors","properties","active","resize","show","animations","visible","hide","_properties","configure","animatedProps","getOwnPropertyNames","option","newOptions","resolveTargetOptions","_createAnimations","$shared","awaitAll","$animations","_animateOptions","anim","wait","all","scaleClip","allowedOverflow","defaultClip","toClip","disabled","getSortedDatasetIndices","filterVisible","metasets","_getSortedDatasetMetas","applyStack","stack","dsIndex","singleMode","otherValue","convertObjectDataToArray","adata","isStacked","stacked","getStackKey","indexScale","valueScale","NEGATIVE_INFINITY","getOrCreateStack","stacks","stackKey","indexValue","subStack","getLastIndexInStack","vScale","positive","getMatchingVisibleMetas","updateStacks","controller","_cachedMeta","_stacks","iAxis","vAxis","itemStacks","_top","_bottom","getFirstScaleId","createDatasetContext","createDataContext","dataIndex","raw","clearStacks","isDirectUpdateMode","cloneIfNotShared","cached","shared","createStack","canStack","hidden","_stacked","_ctx","_cachedDataOpts","getMeta","_type","_data","_objectData","_sharedOptions","_drawStart","_drawCount","enableOptionSharing","supportsDecimation","$context","_syncList","initialize","linkScales","addElements","getDataset","chooseId","xid","xAxisID","yid","yAxisID","rid","rAxisID","iid","iAxisID","vid","vAxisID","getScaleForId","rScale","getDatasetMeta","scaleID","isExtensible","_dataCheck","datasetElementType","resetNewElements","stackChanged","oldStacked","_resyncElements","scopeKeys","datasetScopeKeys","getOptionScopes","createResolver","sorted","parseArrayData","parseObjectData","parsePrimitiveData","isNotInOrderComparedToPrev","getLabels","singleScale","xAxisKey","yAxisKey","parsedValue","NaN","otherScale","_getOtherScale","otherMin","otherMax","_skip","updateRangeFromParsed","getParsed","getLabelForValue","_clip","getMaxOverflow","chartArea","resolveDatasetElementOptions","resolveDataElementOptions","_resolveElementOptions","dataElementType","elementType","sharing","datasetElementScopeKeys","names","resolveNamedOptions","freeze","transition","datasetAnimationScopeKeys","sharedOptions","_animationsDisabled","firstOpts","previouslySharedOptions","getSharedOptions","includeOptions","updateSharedOptions","_resolveAnimations","_setStyle","arg1","arg2","numMeta","numData","_insertElements","_removeElements","move","updateElements","removed","_dataChanges","_sync","newCount","getAllScaleValues","_cache","$bar","visibleMetas","concat","getAllParsedValues","computeMinSampleSize","curr","_length","updateMinAndPrev","ticks","getPixelForTick","computeFitCategoryTraits","ruler","stackCount","thickness","barThickness","categoryPercentage","barPercentage","chunk","pixels","computeFlexCategoryTraits","percent","parseFloatBar","entry","startValue","endValue","barStart","barEnd","_custom","parseValue","parseArrayOrPrimitive","isFloatBar","custom","barSign","actualBase","isHorizontal","borderProps","horizontal","setBorderSkipped","edge","borderSkipped","enableBorderRadius","parseEdge","swap","startEnd","orig","v2","setInflateAmount","inflateAmount","iAxisKey","vAxisKey","super","bars","reset","getBasePixel","_getRuler","_getSharedOptions","vpixels","head","_calculateBarValuePixels","ipixels","_calculateBarIndexPixels","center","updateElement","grouped","skipNull","_getStacks","_startPixel","_endPixel","_getStackCount","baseValue","minBarLength","floating","getDataVisibility","startPixel","getPixelForDecimal","endPixel","halfGrid","getLineWidthForValue","maxBarThickness","Infinity","stackIndex","_getStackIndex","rects","_index_","offset","grid","_value_","getRatioAndOffset","circumference","cutout","ratioX","ratioY","startAngle","endAngle","startX","startY","endX","endY","calcMax","calcMin","maxX","maxY","minX","minY","tooltip","innerRadius","outerRadius","getter","isDatasetVisible","_getRotation","_getCircumference","arcs","spacing","getMaxBorderWidth","getMaxOffset","maxSize","chartWeight","_getRingWeight","_getRotationExtents","maxRadius","radiusLength","_getVisibleDatasetWeightTotal","total","calculateTotal","_getRingWeightOffset","animateRotate","calculateCircumference","animationOpts","centerX","centerY","animateScale","_circumference","metaData","borderAlign","hoverBorderWidth","hoverOffset","ringWeightOffset","legend","legendItem","toggleDataVisibility","tooltipItem","dataLabel","formattedValue","_dataset","_decimated","animated","maxGapLength","directUpdate","prevParsed","nullData","border","lastPoint","updateControlPoints","_updateRadius","minSize","cutoutPercentage","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getIndexAngle","defaultAngle","countVisibleElements","_computeAngle","getDistanceFromCenterForValue","angleLines","display","circular","pointLabels","PieController","pointPosition","getPointPositionForValue","useFinalPosition","getProps","final","defaultRoutes","formatters","tickValue","notation","maxTick","calculateDelta","logDelta","numDecimal","minimumFractionDigits","maximumFractionDigits","numeric","Ticks","autoSkip","tickOpts","ticksLimit","maxTicksLimit","determineMaxTicks","majorIndices","major","enabled","getMajorIndices","numMajorIndices","first","newTicks","skipMajors","calculateSpacing","avgMajorSpacing","tickLength","_tickSize","maxScale","maxChart","_maxLength","evenMajorSpacing","getEvenSpacing","factors","ceil","majorStart","majorEnd","diff","drawBorder","drawOnChartArea","drawTicks","tickWidth","tickColor","padding","minRotation","maxRotation","mirror","textStrokeWidth","textStrokeColor","autoSkipPadding","labelOffset","minor","crossAlign","showLabelBackdrop","backdropColor","backdropPadding","route","reverseAlign","offsetFromEdge","sample","numItems","increment","getPixelForGridLine","offsetGridLines","validIndex","lineValue","caches","getTickMarkLength","getTitleHeight","createScaleContext","createTickContext","titleAlign","position","titleArgs","titleX","titleY","positionAxisID","_margins","paddingTop","paddingBottom","paddingLeft","paddingRight","labelRotation","_range","_gridLineItems","_labelItems","_labelSizes","_longestTextCache","_reversePixels","_userMax","_userMin","_suggestedMax","_suggestedMin","_ticksLength","_borderValue","_dataLimitsCached","suggestedMin","suggestedMax","metas","getMinMax","xLabels","yLabels","beforeUpdate","sampleSize","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","samplingEnabled","_convertTicksToLabels","beforeCalculateLabelRotation","calculateLabelRotation","afterCalculateLabelRotation","afterAutoSkip","beforeFit","fit","afterFit","afterUpdate","reversePixels","_alignToPixels","alignToPixels","notifyPlugins","_callHooks","beforeTickToLabelConversion","afterTickToLabelConversion","numTicks","maxLabelDiagonal","_isVisible","labelSizes","_getLabelSizes","maxLabelWidth","widest","maxLabelHeight","highest","asin","titleOpts","gridOpts","titleHeight","tickPadding","angleRadians","labelHeight","labelWidth","_calculatePadding","_handleMargins","isRotated","labelsBelowTicks","offsetLeft","offsetRight","fullSize","generateTickLabels","_computeLabelSizes","widths","heights","tickFont","fontString","nestedLabel","widestLabelSize","highestLabelSize","_resolveTickFontOptions","valueAt","idx","decimal","getBaseValue","optionTicks","rot","ticksLength","tl","borderOpts","axisWidth","axisHalfWidth","alignBorderValue","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","x1","y1","x2","y2","limit","step","optsAtIndex","lineColor","tickBorderDash","tickBorderDashOffset","tickAndPadding","hTickAndPadding","lineCount","textOffset","_getXAxisLabelAlignment","_getYAxisLabelAlignment","halfCount","backdrop","tickTextAlign","labelPadding","fillRect","findIndex","_computeGridLineItems","drawLine","setLineDash","lineDashOffset","lastLineWidth","_computeLabelArea","_computeLabelItems","drawBackground","drawGrid","drawTitle","drawLabels","tz","z","gz","getSortedVisibleDatasetMetas","axisID","fontSize","isPrototypeOf","parentScope","isIChartComponent","registerDefaults","itemDefaults","routeDefaults","routes","propertyParts","sourceName","sourceScope","controllers","_typedRegistries","_each","_get","typedRegistry","arg","reg","_getRegistryForType","isForType","_exec","itemReg","registry","component","camelMethod","getElement","DateAdapter","timestamp","amount","unit","weekday","members","adapters","_date","binarySearch","metaset","lookupMethod","getRange","evaluateInteractionItems","getDistanceMetricForAxis","useX","useY","deltaX","deltaY","getIntersectItems","isPointInArea","evaluationFunc","inRange","getNearestRadialItems","getNearestCartesianItems","distanceMetric","minDistance","getCenterPoint","pointInArea","getNearestItems","getAxisItems","rangeMethod","intersectsItem","Interaction","modes","STATIC_POSITIONS","filterByPosition","filterDynamicPositionByAxis","sortByWeight","wrapBoxes","boxes","layoutBoxes","stackWeight","buildStacks","layouts","wrap","placed","setLayoutDims","vBoxMaxWidth","hBoxMaxHeight","layout","availableWidth","availableHeight","buildLayoutBoxes","centerHorizontal","centerVertical","leftAndTop","rightAndBottom","vertical","getCombinedMax","maxPadding","updateMaxPadding","boxPadding","updateDims","getPadding","newWidth","outerWidth","newHeight","outerHeight","widthChanged","heightChanged","same","other","handleMaxPadding","updatePos","getMargins","marginForPositions","fitBoxes","refitBoxes","refit","setBoxDims","placeBoxes","userPadding","autoPadding","_layers","layoutItem","minPadding","verticalBoxes","horizontalBoxes","beforeLayout","visibleVerticalBoxCount","BasePlatform","BasicPlatform","EXPANDO_KEY","EVENT_TYPES","touchmove","touchend","pointerenter","pointermove","pointerup","pointerleave","pointerout","isNullOrEmpty","initCanvas","renderHeight","getAttribute","renderWidth","displayWidth","displayHeight","eventListenerOptions","passive","addListener","removeListener","fromNativeEvent","native","nodeListContains","nodeList","contains","createAttachObserver","observer","MutationObserver","entries","trigger","addedNodes","removedNodes","observe","childList","subtree","createDetachObserver","drpListeningCharts","oldDevicePixelRatio","onWindowResize","dpr","listenDevicePixelRatioChanges","unlistenDevicePixelRatioChanges","createResizeObserver","ResizeObserver","contentRect","releaseObserver","disconnect","createProxyAndListen","removeAttribute","setAttribute","proxies","$proxies","handlers","attach","detach","isConnected","_detectPlatform","OffscreenCanvas","_init","hook","_createDescriptors","descriptor","plugin","cancelable","_oldCache","_notifyStateChanges","allPlugins","createDescriptors","previousDescriptors","some","localIds","getPlugin","getOpts","pluginOpts","pluginScopeKeys","getIndexAxis","datasetDefaults","datasetOptions","getAxisFromDefaultScaleID","getDefaultScaleIDFromAxis","axisFromPosition","determineAxis","scaleOptions","mergeScaleConfig","chartDefaults","configScales","chartIndexAxis","firstIDs","scaleConf","error","defaultId","defaultScaleOptions","defaultID","initOptions","initData","initConfig","keyCache","keysCached","cachedKeys","generate","addIfFound","_config","_scopeCache","_resolverCache","clearCache","clear","datasetType","additionalOptionScopes","mainScope","resetCache","keyLists","_cachedScopes","subPrefixes","getResolver","needContext","subResolver","resolverCache","hasFunction","version","KNOWN_POSITIONS","positionIsHorizontal","compare2Level","l1","l2","onAnimationsComplete","animationOptions","onComplete","onAnimationProgress","onProgress","getCanvas","getElementById","instances","getChart","moveNumericKeys","intKey","determineLastEvent","lastEvent","inChartArea","isClick","userConfig","initialCanvas","existingChart","chartOptionScopes","updateConfig","acquireContext","_options","_aspectRatio","_metasets","_lastEvent","_listeners","_responsiveListeners","_sortedMetasets","_plugins","_hiddenIndices","attached","_doResize","resizeDelay","listen","_initialize","bindEvents","_resizeBeforeDraw","_resize","newSize","newRatio","onResize","scalesOptions","axisOptions","scaleOpts","updated","isRadial","dposition","dtype","scaleType","scaleClass","getScale","init","hasUpdated","addBox","_destroyDatasetMeta","newControllers","_removeUnreferencedMetasets","order","updateIndex","ControllerClass","getController","_updateMetasets","_resetElements","animsDisabled","_updateScales","_checkEventBindings","_updateHiddenIndices","invalidate","buildOrUpdateControllers","buildOrUpdateElements","_minPadding","_updateLayout","_updateDatasets","_eventHandler","_updateHoverStyles","removeBox","ensureScalesHaveIDs","buildOrUpdateScales","existingEvents","newEvents","unbindEvents","changes","_getUniformDataChanges","datasetCount","makeSet","changeSet","noArea","_idx","_updateDataset","layers","_drawDatasets","_drawDataset","useClip","setDatasetVisibility","_updateVisibility","_destroy","remove","_stop","releaseContext","toDataURL","bindUserEvents","bindResponsiveEvents","_add","_remove","detached","isAttached","activeElements","lastActive","notify","replay","hoverOptions","deactivated","activated","updateHoverStyle","eventFilter","_handleEvent","_getActiveElements","getElementsAtEventForMode","invalidatePlugins","clipArc","pixelMargin","angleMargin","toRadiusCorners","parseBorderRadius$1","angleDelta","borderRadius","halfThickness","innerLimit","computeOuterLimit","outerArcLimit","outerStart","outerEnd","innerStart","innerEnd","rThetaToXY","theta","pathArc","innerR","spacingOffset","alpha","noSpacingInnerRadius","noSpacingOuterRadius","avNogSpacingRadius","adjustedAngle","beta","angleOffset","outerStartAdjustedRadius","outerEndAdjustedRadius","outerStartAdjustedAngle","outerEndAdjustedAngle","innerStartAdjustedRadius","innerEndAdjustedRadius","innerStartAdjustedAngle","innerEndAdjustedAngle","pCenter","p4","p8","outerStartX","outerStartY","outerEndX","outerEndY","drawArc","fullCircles","drawFullCircleBorders","inner","lineJoin","unregister","chartX","chartY","rAdjust","betweenAngles","withinRadius","halfAngle","halfRadius","radiusOffset","setStyle","lineCap","getLineMethod","stepped","pathVars","paramsStart","paramsEnd","segmentStart","segmentEnd","outside","pathSegment","lineMethod","fastPathSegment","prevX","lastY","avgX","countX","pointIndex","drawX","truncX","_getSegmentMethod","useFastPath","_getInterpolationMethod","strokePathWithCache","_path","Path2D","strokePathDirect","segmentMethod","usePath2D","_points","_segments","_pointsUpdated","_interpolate","interpolated","inRange$1","hitRadius","mouseX","mouseY","hoverRadius","getBarBounds","bar","half","skipOrLimit","parseBorderWidth","maxW","maxH","parseBorderRadius","maxR","enableBorder","boundingRects","outer","skipX","skipY","skipBoth","hasRadius","addNormalRectPath","inflateRect","refRect","addRectPath","_padding","textSize","fontOpts","_drawArgs","createTitle","titleBlock","plugin_title","_element","_args","WeakMap","positioners","hasValue","tooltipPosition","eventPosition","nearestElement","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","getLabelAndValue","getTooltipSize","footer","boxWidth","boxHeight","bodyFont","titleFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","before","after","beforeBody","afterBody","titleSpacing","titleMarginBottom","bodyLineHeight","displayColors","bodySpacing","footerMarginTop","footerSpacing","widthPadding","maxLineWidth","determineYAlign","doesNotFitWithAlign","xAlign","caret","caretSize","caretPadding","determineXAlign","yAlign","chartWidth","determineAlignment","alignX","alignY","paddingAndSize","getBackgroundPoint","alignment","getAlignedX","getBeforeAfterBodyLines","createTooltipContext","tooltipItems","overrideCallbacks","opacity","_eventPosition","_size","_cachedAnimations","_tooltipItems","dataPoints","caretX","caretY","labelColors","labelPointStyles","labelTextColors","beforeTitle","afterTitle","bodyItems","scoped","beforeLabel","afterLabel","beforeFooter","afterFooter","itemSort","labelColor","labelPointStyle","labelTextColor","_createItems","getTitle","getBeforeBody","getBody","getAfterBody","getFooter","positionAndSize","backgroundPoint","external","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","rtlHelper","titleColor","colorX","rtlColorX","yOffSet","colorY","usePointStyle","drawOptions","leftForLtr","multiKeyBackground","outerX","innerX","xPlus","strokeRect","bodyAlign","xLinePadding","fillLineOfText","bodyAlignForCalculation","textColor","bodyColor","_drawColorBox","footerAlign","footerColor","tooltipSize","drawCaret","quadraticCurveTo","animX","animY","_updateAnimationTarget","hasTooltipContent","globalAlpha","textDirection","drawBody","drawFooter","positionChanged","_positionChanged","_ignoreReplayEvents","plugin_tooltip","_willRender","labelCount","addIfString","addedLabels","unshift","findOrAddLabel","lastIndexOf","_startValue","_valueRange","_addedLabels","added","getDecimalForPixel","generateTicks$1","generationOptions","dataRange","MIN_SPACING","precision","maxTicks","maxDigits","includeBounds","maxSpaces","rmin","rmax","countDefined","minSpacing","niceMin","niceMax","numSpaces","decimalPlaces","relativeLabelSize","_endValue","setMin","setMax","minSign","maxSign","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","stepSize","computeTickLimit","getTickLimit","numericGeneratorOptions","_maxDigits","handleTickRangeOptions","isMajor","tickVal","generateTicks","endExp","endSignificand","exp","significand","lastTick","_zero","getTickBackdropHeight","measureLabelSize","determineLimits","fitWithPointLabels","limits","valueCount","_pointLabels","pointLabelOpts","additionalAngle","centerPointLabels","getPointLabelContext","getPointPosition","drawingArea","plFont","hLimits","vLimits","updateLimits","setCenterPoint","_pointLabelItems","buildPointLabelItems","extra","outerDistance","pointLabelPosition","yForAngle","getTextAlignForAngle","leftForTextAlign","drawPointLabels","backdropLeft","backdropTop","backdropWidth","backdropHeight","pathRadiusLine","drawRadiusLine","gridLineOpts","createPointLabelContext","logarithmic","leftMovement","rightMovement","topMovement","bottomMovement","angleMultiplier","scalingFactor","scaledDistance","pointLabel","distanceFromCenter","animate","INTERVALS","millisecond","steps","second","minute","hour","day","week","month","quarter","year","UNITS","sorter","_adapter","parser","isoWeekday","_parseOpts","startOf","determineUnitForAutoTicks","minUnit","capacity","interval","determineUnitForFormatting","determineMajorUnit","addTick","time","timestamps","setMajorTicks","majorUnit","ticksFromTimestamps","_unit","_majorUnit","_offsets","_normalized","displayFormats","formats","normalized","_applyBounds","_getLabelBounds","endOf","getLabelTimestamps","timeOpts","_generate","_getLabelCapacity","initOffsets","offsetAfterAutoskip","getDecimalForValue","hasWeekday","getDataTimestamps","tooltipFormat","datetime","minorFormat","majorFormat","_tickFormatFunction","offsets","ticksOpts","tickLabelWidth","cosRotation","sinRotation","tickFontSize","exampleTime","exampleLabel","_getLabelSize","prevSource","nextSource","prevTarget","nextTarget","span","TimeSeriesScale","_table","_minPos","_tableRange","_getTimestampsForTable","buildLookupTable","internalObjectKeys","enumBugKeys","$","createIteratorConstructor","requireObjectCoercible","toLength","aFunction","anObject","isRegExp","getRegExpFlags","createNonEnumerableProperty","fails","speciesConstructor","advanceStringIndex","InternalStateModule","IS_PURE","MATCH_ALL","REGEXP_STRING","REGEXP_STRING_ITERATOR","setInternalState","getInternalState","getterFor","RegExpPrototype","regExpBuiltinExec","nativeMatchAll","matchAll","WORKS_WITH_NON_GLOBAL_REGEX","regExpExec","$RegExpStringIterator","regexp","global","fullUnicode","unicode","state","lastIndex","$matchAll","flagsValue","flags","matcher","forced","rx","redefine","TO_STRING","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","unsafe","toObject","sharedKey","CORRECT_PROTOTYPE_GETTER","IE_PROTO","ObjectPrototype","__assign","__awaiter","_arguments","generator","adopt","fulfilled","rejected","__generator","_","sent","trys","ops","verb","iterator","op","__read","ar","__spreadArray","pack","toAbsoluteIndex","toInteger","arraySpeciesCreate","createProperty","arrayMethodHasSpeciesSupport","arrayMethodUsesToLength","HAS_SPECIES_SUPPORT","USES_TO_LENGTH","ACCESSORS","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","deleteCount","insertCount","actualDeleteCount","actualStart","argumentsLength","thisNumberValue","repeat","nativeToFixed","toFixed","log","FORCED","fractionDigits","number","fractDigits","multiply","divide","dataToString","RangeError","Slide","isOriginLeft","originSide","cells","addCell","cell","beginMargin","firstMargin","updateTarget","endMargin","lastCell","getLastCell","lastMargin","slideWidth","cellAlign","select","unselect","getCellElements","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","relativeURL","_interopDefault","ex","Vue","_typeof","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","arr2","iter","inBrowser","combinePassengers","transports","slotProps","passengers","transport","temp","newPassengers","stableSort","compareFn","pick","targets","Wormhole","extend","trackInstances","_transport$order","newTransport","currentIndex","$_getTransportIndex","newTransports","close","force","registerTarget","vm","$set","unregisterTarget","$delete","registerSource","unregisterSource","hasTarget","hasSource","hasContentFor","_ref","wormhole","Portal","Boolean","slim","tag","created","_this","$nextTick","mounted","sendUpdate","beforeDestroy","closer","normalizeSlots","$scopedSlots","$slots","normalizeOwnChildren","children","slotContent","Tag","PortalTarget","multiple","Function","firstRender","ownTransports","newVal","oldVal","_this2","noWrapper","_id$1","portalProps","targetProps","MountingPortal","inheritAttrs","append","bail","mountTo","targetSlim","targetSlotProps","targetTag","querySelector","$props","portalTarget","mountEl","appendChild","_props","$parent","propsData","$el","removeChild","$destroy","manual","$attrs","on","$listeners","scopedSlots","content","install","Vue$$1","portalName","portalTargetName","MountingPortalName","is","message","__CANCEL__","__esModule","Sitecore","PageModes","ChromeTypes","Placeholder","insertRendering","chrome","components","getElementsByTagName","ChromeManager","resetChromes","emptyLookFillerCssClass","getDefaultAjaxOptions","$placeholderKeys","mixin","beforeCreate","chrometype","kind","toIndexedObject","getOwnPropertyDescriptorModule","stat","sham","getOwnPropertyDescriptors","propertyIsEnumerableModule","createPropertyDescriptor","toPrimitive","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","V8_VERSION","METHOD_NAME","foo","VERSION","validators","deprecatedWarnings","assertOptions","schema","allowUnknown","opt","validator","formatMessage","desc","dateToPrimitive","TO_PRIMITIVE","DatePrototype","postfix","createMethod","IS_INCLUDES","$this","fromIndex","_toPrimitive","hint","prim","_toPropertyKey","_defineProperty","toPropertyKey","_classCallCheck","instance","_defineProperties","_createClass","protoProps","staticProps","_queue","_flushing","promise","flushQueue","chain","nextTask","into","FlattedJSON","_mutex","subscriber","store","subscribed","supportCircular","localStorage","reducer","modules","mutation","strictMode","RESTORE_MUTATION","savedState","mergedState","propertyName","_vm","asyncStorage","restoreState","getItem","saveState","setItem","restored","commit","replaceState","enqueue","that","__spreadArrays","il","jl","isNullOrUndefined","isEmptyArray","isRefEqual","lhs","rhs","isSpecified","isCallable","isLocator","__locatorRef","arrayLike","predicate","toArray","collection","_copyArray","createFlags","untouched","touched","dirty","pristine","invalid","validated","pending","passed","failed","token","cancelled","_i","later","template","RULES","normalizeSchema","_a","param","RuleContainer","rule","lazy","computesRequired","isLazy","isRequireRule","getRuleDefinition","ruleName","guardExtend","validate","DEFAULT_CONFIG","defaultMessage","skipOptional","classes","bails","useConstraintAttrs","currentConfig","getConfig","normalizeRules","rules","_$$isNormalized","buildParams","parsedRule","parseRule","provided","ruleSchema","definedParams","lastDefinedParam_1","isTarget","createLocator","cast","castFn","locator","crossTable","extractLocators","shouldBail","skipIfEmpty","field","errors","failedRules","regenerateMap","forceRequired","customMessages","_validate","msg","_b","isInitial","_c","shouldSkip","_d","_shouldSkip","_test","requireRules","isEmpty","isEmptyAndOptional","isRequired","normalizedValue","values_1","castValue","fillTargetValues","_field_","_rule_","_generateFieldError","ruleTargets","_getRuleTargets","_getUserTargets","userTargets","userMessage","_normalizeMessage","numTargets","ruleConfig","name_1","targetPart","aggressive","eager","EVENT_BUS","Dictionary","dictionary","_e","_f","_g","_h","fieldContainer","fields","messageContainer","messages","hasRule","fastDeepEqual","equal","isEvent","Event","srcElement","normalizeEventValue","files","_vModifiers","valueAsNumber","trim","trimmedValue","isTextInput","vnode","elm","findModel","nonStandardVNodeData","model","directives","findValue","findModelConfig","componentOptions","propsDataWithValue","domProps","extractChildren","findInputNodes","nodes","candidates","Ctor","mergeVNodeListeners","fns","invoker","addNativeNodeListener","addComponentNodeListener","addVNodeListener","getInputEventName","event_1","modifiers","isHTMLNode","resolveTextualRules","email","pattern","regex","maxlength","minlength","min_value","max_value","resolveRules","htmlTags","normalizeChildren","shouldValidate","_ignoreImmediate","immediate","normalizedEvents","_needsValidation","initialized","createValidationCtx","ariaInput","ariaMsg","onRenderUpdate","initialValue","validateNow","triggerThreadSafeValidation","validateSilent","$once","computeModeSetting","compute","pendingPromise","_pendingValidation","applyResult","createCommonHandlers","$veeOnInput","syncValue","setFlags","onInput","$veeOnBlur","onBlur","onValidate","$veeHandler","$veeDebounce","_pendingReset","addListeners","_inputEventName","PROVIDER_COUNTER","data$1","fieldName","defaultValues","isActive","ValidationProvider","inject","$_veeObserver","$vnode","createObserver","detectInput","fieldDeps","normalizedRules","deps","dep","depName","watchCrossFieldDep","_resolvedRules","computeClassObj","onLocaleChanged","_regenerateMap","errors_1","failedRules_1","$on","$off","registerField","unobserve","flag","createLookup","setErrors","updateRenderingContextRefs","checkComputesRequiredState","_loop_1","className","cls","providers","refs","reduced","extractId","providedId","withHooks","_veeWatchers","$watch","isComputesRequired","FLAGS_STRATEGIES","OBSERVER_COUNTER","createObserverFlags","observers","provideSelf","ValidationObserver","provide","onChange","computeObserverState","prepareSlotProps","provider","validateWithInfo","silent","results","isValid","obs","handleSubmit","errorArr","passes","vms","getOwnPropertySymbols","iteratorClose","ENTRIES","CancelToken","executor","resolvePromise","onfulfilled","$reduce","arrayMethodIsStrict","CHROME_VERSION","IS_NODE","STRICT_METHOD","CHROME_BUG","callbackfn","endPos","LARGE_ARRAY_SIZE","HASH_UNDEFINED","HOT_COUNT","HOT_SPAN","argsTag","arrayTag","asyncTag","boolTag","dateTag","errorTag","funcTag","genTag","mapTag","numberTag","nullTag","objectTag","proxyTag","regexpTag","setTag","stringTag","undefinedTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reRegExpChar","reIsHostCtor","reIsUint","typedArrayTags","freeGlobal","freeSelf","self","freeExports","nodeType","freeModule","moduleExports","freeProcess","process","nodeUtil","types","require","nodeIsTypedArray","isTypedArray","func","baseTimes","iteratee","baseUnary","getValue","overArg","transform","arrayProto","funcProto","objectProto","coreJsData","funcToString","maskSrcKey","nativeObjectToString","objectCtorString","reIsNative","Buffer","Uint8Array","allocUnsafe","getPrototype","objectCreate","propertyIsEnumerable","symToStringTag","getNative","nativeIsBuffer","isBuffer","nativeMax","nativeNow","nativeCreate","baseCreate","Hash","hashClear","__data__","hashDelete","hashGet","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","Stack","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","isIndex","assignMergeValue","baseAssignValue","assignValue","objValue","baseFor","createBaseFor","baseGetTag","getRawTag","objectToString","baseIsArguments","isObjectLike","baseIsNative","isMasked","toSource","baseIsTypedArray","isLength","baseKeysIn","nativeKeysIn","isProto","isPrototype","baseMerge","srcIndex","customizer","srcValue","baseMergeDeep","safeGet","keysIn","mergeFunc","isCommon","isTyped","isArrayLikeObject","copyArray","cloneBuffer","cloneTypedArray","isPlainObject","toPlainObject","initCloneObject","baseRest","setToString","overRest","identity","baseSetToString","constant","buffer","isDeep","copy","cloneArrayBuffer","arrayBuffer","byteLength","typedArray","byteOffset","copyObject","isNew","createAssigner","assigner","guard","isIterateeCall","fromRight","keysFunc","iterable","isKeyable","isOwn","unmasked","isArrayLike","otherArgs","shortOut","lastCalled","stamp","stubFalse","USE_NATIVE_URL","redefineAll","setToStringTag","anInstance","hasOwn","getIterator","getIteratorMethod","$fetch","Headers","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","plus","sequences","percentSequence","bytes","percentDecode","sequence","decodeURIComponent","deserialize","replacer","serialize","parseSearchParams","query","attribute","attributes","updateSearchParams","validateArgumentsLength","URLSearchParamsIterator","URLSearchParamsConstructor","iteratorMethod","entryIterator","entryNext","updateURL","URLSearchParamsPrototype","getAll","found","entriesIndex","sliceIndex","boundFunction","URLSearchParams","fetch","getState","normalizeComponent","scriptExports","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","_compiled","functional","_scopeId","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","_injectStyles","originalRender","existing","fixRegExpWellKnownSymbolLogic","sameValue","SEARCH","nativeSearch","maybeCallNative","searcher","previousLastIndex","$filter","setPrototypeOf","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","TO_STRING_TAG","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","collectionStrong","RE","UNSUPPORTED_Y","re","BROKEN_CARET","matchesSelector","div","arraySlice","makeArray","removeFrom","ary","getParent","selector","getQueryElement","filterFindElements","elems","ffElems","HTMLElement","childElems","querySelectorAll","debounceMethod","_class","methodName","threshold","timeoutName","docReady","toDashed","$1","$2","htmlInit","WidgetClass","namespace","dashedNamespace","dataAttr","dataAttrElems","jsDashElems","dataOptionsAttr","jQuery","attr","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","REPLACE","nativeReplace","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","functionalReplace","matchStr","accumulatedResult","nextSourcePosition","matched","captures","namedCaptures","groups","replacerArgs","replacement","getSubstitution","tailPos","symbols","ch","capture","code","isAxiosError","toJSON","description","fileName","lineNumber","columnNumber","nativeSlice","fin","IndexedObject","argument","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","iterate","defineIterator","setSpecies","fastKey","internalStateGetterFor","getConstructor","wrapper","IS_MAP","ADDER","AS_ENTRIES","define","getEntry","setStrong","ITERATOR_NAME","getInternalCollectionState","iterated","InterceptorManager","use","synchronous","runWhen","eject","MATCH","error1","error2","isArrayBuffer","FormData","isArrayBufferView","ArrayBuffer","isView","isString","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","navigator","product","stripBOM","charCodeAt","regexpFlags","stickyHelpers","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","NPCG_INCLUDED","PATCH","reCopy","sticky","charsAdded","strCopy","multiline","defaultConstructor","encode","serializedParams","toISOString","hashmarkIndex","validateStatus","_events","once","onceEvents","_onceEvents","onceListeners","off","isOnce","allOff","copyright","NATIVE_SYMBOL","emptyObject","isUndef","isDef","isTrue","isFalse","isPrimitive","_toString","isValidArrayIndex","isPromise","catch","toNumber","makeMap","expectsLowerCase","list","isBuiltInTag","isReservedAttribute","hit","camelizeRE","camelize","capitalize","hyphenateRE","hyphenate","polyfillBind","boundFn","nativeBind","no","genStaticKeys","staticKeys","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","getTime","keysA","keysB","looseIndexOf","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","optionMergeStrategies","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","async","_lifecycleHooks","unicodeRegExp","isReserved","def","bailRE","parsePath","_isServer","hasProto","inWeex","WXEnvironment","weexPlatform","UA","userAgent","isIE","isIE9","isEdge","isIOS","isFF","nativeWatch","supportsPassive","isServerRendering","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","_Set","hasSymbol","Dep","subs","addSub","removeSub","depend","addDep","targetStack","pushTarget","popTarget","VNode","asyncFactory","ns","fnContext","fnOptions","fnScopeId","componentInstance","isStatic","isRootInsert","isComment","isCloned","asyncMeta","isAsyncPlaceholder","prototypeAccessors","child","createEmptyVNode","createTextVNode","cloneVNode","cloned","arrayMethods","methodsToPatch","inserted","ob","__ob__","observeArray","arrayKeys","shouldObserve","toggleObserving","Observer","vmCount","protoAugment","copyAugment","walk","src","__proto__","asRootData","_isVue","defineReactive$$1","customSetter","shallow","setter","childOb","dependArray","del","strats","mergeData","toVal","fromVal","mergeDataOrFn","parentVal","childVal","instanceData","defaultData","mergeHook","dedupeHooks","hooks","mergeAssets","key$1","defaultStrat","normalizeProps","normalizeInject","normalizeDirectives","dirs","def$$1","mergeOptions","_base","extends","mixins","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","absent","booleanIndex","getTypeIndex","stringIndex","getPropDefaultValue","prevShouldObserve","getType","functionTypeCheckRE","isSameType","expectedTypes","handleError","errorCaptured","globalHandleError","invokeWithErrorHandling","_handled","logError","timerFunc","isUsingMicroTask","flushCallbacks","copies","setImmediate","counter","textNode","createTextNode","characterData","seenObjects","traverse","_traverse","seen","isA","isFrozen","depId","normalizeEvent","once$$1","createFnInvoker","arguments$1","updateListeners","oldOn","remove$$1","createOnceHandler","old","mergeVNodeHook","hookKey","oldHook","wrappedHook","merged","extractPropsFromVNodeData","altKey","checkProp","hash","preserve","simpleNormalizeChildren","normalizeArrayChildren","isTextNode","nestedIndex","_isVList","initProvide","_provided","initInjections","resolveInject","provideKey","provideDefault","resolveSlots","slots","slot","name$1","isWhitespace","normalizeScopedSlots","normalSlots","prevSlots","hasNormalSlots","isStable","$stable","$key","$hasNormal","normalizeScopedSlot","key$2","proxyNormalSlot","renderList","renderSlot","fallbackRender","bindObject","scopedSlotFn","$createElement","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","tree","_renderProxy","markStatic","markOnce","markStaticNode","bindObjectListeners","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","bindDynamicKeys","baseObj","prependModifier","symbol","installRenderHelpers","_o","_n","_s","_l","_t","_q","_m","_k","_v","_u","_p","FunctionalRenderContext","contextVm","this$1","_original","isCompiled","needNormalization","injections","createFunctionalComponent","mergeProps","renderContext","cloneAndMarkFunctionalResult","vnodes","componentVNodeHooks","hydrating","_isDestroyed","keepAlive","mountedNode","prepatch","createComponentInstanceForVnode","activeInstance","$mount","oldVnode","updateChildComponent","insert","_isMounted","callHook","queueActivatedComponent","activateChildComponent","deactivateChildComponent","hooksToMerge","createComponent","baseCtor","cid","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","transformModel","nativeOn","abstract","installComponentHooks","_isComponent","_parentVnode","inlineTemplate","toMerge","_merged","mergeHook$1","f1","f2","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","normalizationType","alwaysNormalize","_createElement","pre","applyNS","registerDeepBindings","initRender","_vnode","parentVnode","_renderChildren","parentData","_parentListeners","currentRenderingInstance","renderMixin","_render","ensureCtor","comp","errorComp","owner","owners","loading","loadingComp","sync","timerLoading","timerTimeout","forceRender","renderCompleted","$forceUpdate","getFirstComponentChild","initEvents","_hasHookEvent","updateComponentListeners","remove$1","onceHandler","oldListeners","eventsMixin","hookRE","i$1","cbs","setActiveInstance","prevActiveInstance","initLifecycle","$children","_watcher","_inactive","_directInactive","_isBeingDestroyed","lifecycleMixin","prevEl","prevVnode","restoreActiveInstance","__patch__","__vue__","teardown","_watchers","mountComponent","updateComponent","Watcher","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","propKeys","_propKeys","isInInactiveTree","direct","queue","activatedChildren","waiting","flushing","resetSchedulerState","currentFlushTimestamp","getNow","createEvent","timeStamp","flushSchedulerQueue","watcher","run","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","queueWatcher","uid$2","expOrFn","isRenderWatcher","user","newDeps","depIds","newDepIds","expression","cleanupDeps","evaluate","sharedPropertyDefinition","sourceKey","initState","initProps","initMethods","initComputed","initWatch","propsOptions","isRoot","getData","computedWatcherOptions","watchers","_computedWatchers","isSSR","userDef","defineComputed","shouldCache","createComputedGetter","createGetterInvoker","createWatcher","stateMixin","dataDef","propsDef","uid$3","initMixin","_uid","initInternalComponent","_self","vnodeComponentOptions","_componentTag","superOptions","cachedSuperOptions","modifiedOptions","resolveModifiedOptions","extendOptions","modified","latest","sealed","sealedOptions","initUse","installedPlugins","_installedPlugins","initMixin$1","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","initProps$1","initComputed$1","Comp","initAssetRegisters","definition","getComponentName","pruneCache","keepAliveInstance","pruneCacheEntry","patternTypes","KeepAlive","include","exclude","cacheVNode","vnodeToCache","keyToCache","destroyed","ref$1","builtInComponents","initGlobalAPI","configDef","util","defineReactive","observable","acceptValue","isEnumeratedAttr","isValidContentEditableValue","convertEnumeratedValue","isFalsyAttrValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","genClassForVnode","childNode","mergeClassData","renderClass","staticClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","stringified","namespaceMap","svg","math","isHTMLTag","isSVG","isPreTag","unknownElementCache","HTMLUnknownElement","isTextInputType","selected","createElement$1","tagName","createElementNS","createComment","insertBefore","newNode","referenceNode","nextSibling","setTextContent","textContent","setStyleScope","nodeOps","registerRef","isRemoval","refInFor","emptyNode","sameVnode","sameInputType","typeA","typeB","createKeyToOldIdx","beginIdx","endIdx","createPatchFunction","backend","emptyNodeAt","createRmCb","childElm","removeNode","createElm","insertedVnodeQueue","parentElm","refElm","nested","ownerArray","setScope","createChildren","invokeCreateHooks","isReactivated","initComponent","reactivateComponent","pendingInsert","isPatchable","innerNode","activate","ref$$1","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","removeAndInvokeRemoveHook","rm","updateChildren","oldCh","newCh","removeOnly","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","patchVnode","findIdxInOld","hydrate","postpatch","invokeInsertHook","isRenderedModule","inVPre","hasChildNodes","innerHTML","childrenMatch","firstChild","fullInvoke","isInitialPatch","isRealElement","hasAttribute","oldElm","_leaveCb","patchable","i$2","updateDirectives","oldDir","isCreate","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","callHook$1","componentUpdated","callInsert","emptyModifiers","getRawDirName","rawName","baseModules","updateAttrs","oldAttrs","setAttr","removeAttributeNS","isInPre","baseSetAttr","setAttributeNS","__ieph","blocker","stopImmediatePropagation","updateClass","transitionClass","_transitionClasses","_prevClass","chr","index$1","expressionPos","expressionEndPos","klass","validDivisionCharRE","parseFilters","filters","inSingle","inDouble","inTemplateString","inRegex","curly","square","paren","lastFilterIndex","pushFilter","wrapFilter","baseWarn","pluckModuleFunction","addProp","dynamic","rangeSetItem","plain","addAttr","dynamicAttrs","addRawAttr","attrsMap","attrsList","addDirective","isDynamicArg","prependModifierMarker","addHandler","important","middle","nativeEvents","newHandler","getRawBindingAttr","rawAttrsMap","getBindingAttr","getStatic","dynamicValue","getAndRemoveAttr","staticValue","removeFromMap","getAndRemoveAttrByRegex","genComponentModel","baseValueExpression","valueExpression","assignment","genAssignmentCode","parseModel","eof","isStringStart","parseString","parseBracket","inBracket","stringQuote","target$1","RANGE_TOKEN","CHECKBOX_RADIO_TOKEN","_warn","genSelect","genCheckboxModel","genRadioModel","genDefaultModel","valueBinding","trueValueBinding","falseValueBinding","selectedVal","needCompositionGuard","normalizeEvents","createOnceHandler$1","remove$2","useMicrotaskFix","add$1","attachedTimestamp","_wrapper","currentTarget","ownerDocument","updateDOMListeners","svgContainer","updateDOMProps","oldProps","childNodes","_value","strCur","shouldUpdateValue","checkVal","composing","isNotInFocusAndDirty","isDirtyWithModifiers","notInFocus","parseStyleText","cssText","listDelimiter","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","checkChild","styleData","emptyStyle","cssVarRE","importantRE","setProp","normalizedName","vendorNames","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","whitespaceRE","addClass","classList","removeClass","tar","resolveTransition","css","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","ended","onEnd","transformRE","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","enter","toggleDisplay","_enterCb","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","transitionNode","isAppear","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","pendingNode","_pending","isValidDuration","leave","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","platformModules","patch","vmodel","directive","_vOptions","setSelected","onCompositionStart","onCompositionEnd","prevOptions","curOptions","needReset","hasNoMatchingOption","actuallySetSelected","isMultiple","selectedIndex","initEvent","dispatchEvent","locateNode","transition$$1","originalDisplay","__vOriginalDisplay","unbind","platformDirectives","transitionProps","getRealChild","compOptions","extractTransitionData","placeholder","rawChild","hasParentTransition","isSameChild","oldChild","isNotTextNode","isVShowDirective","Transition","_leaving","oldRawChild","delayedLeave","moveClass","TransitionGroup","beforeMount","kept","prevChildren","rawChildren","transitionData","c$1","hasMove","callPendingCbs","recordPosition","applyTranslation","_reflow","offsetHeight","moved","WebkitTransform","transitionDuration","_moveCb","_hasMove","cloneNode","newPos","oldPos","dx","dy","platformComponents","defaultTagRE","regexEscapeRE","buildRegex","delimiters","parseText","tagRE","tokenValue","tokens","rawTokens","transformNode","classBinding","genData","klass$1","transformNode$1","styleBinding","genData$1","decoder","style$1","he","decode","html","isUnaryTag","canBeLeftOpenTag","isNonPhrasingTag","dynamicArgAttribute","ncname","qnameCapture","startTagOpen","startTagClose","endTag","doctype","comment","conditionalComment","isPlainTextElement","reCache","decodingMap","encodedAttr","encodedAttrWithNewLines","isIgnoreNewlineTag","shouldIgnoreFirstNewline","decodeAttr","shouldDecodeNewlines","parseHTML","lastTag","expectHTML","isUnaryTag$$1","canBeLeftOpenTag$$1","endTagLength","stackedTag","reStackedTag","rest$1","chars","parseEndTag","textEnd","commentEnd","shouldKeepComment","advance","conditionalEnd","doctypeMatch","endTagMatch","curIndex","startTagMatch","parseStartTag","handleStartTag","unarySlash","unary","shouldDecodeNewlinesForHref","lowerCasedTag","lowerCasedTagName","warn$2","transforms","preTransforms","postTransforms","platformIsPreTag","platformMustUseProp","platformGetTagNamespace","onRE","dirRE","forAliasRE","forIteratorRE","stripParensRE","dynamicArgRE","argRE","bindRE","modifierRE","slotRE","lineBreakRE","whitespaceRE$1","decodeHTMLCached","emptySlotScopeToken","createASTElement","makeAttrsMap","currentParent","preserveWhitespace","whitespaceOption","whitespace","inPre","closeElement","trimEndingWhitespace","processed","processElement","if","elseif","else","addIfCondition","block","forbidden","processIfConditions","slotScope","slotTarget","lastNode","comments","outputSourceRange","start$1","guardIESVGBug","isForbiddenTag","processPre","processRawAttrs","processFor","processIf","processOnce","end$1","isTextTag","processKey","processRef","processSlotContent","processSlotOutlet","processComponent","processAttrs","checkInFor","parseFor","inMatch","for","alias","iteratorMatch","iterator1","iterator2","findPrevElement","condition","ifConditions","slotTargetDynamic","slotBinding","getSlotName","slotBinding$1","dynamic$1","slotContainer","slotName","syncGen","isDynamic","hasBindings","parseModifiers","camel","argMatch","ieNSBug","ieNSPrefix","preTransformNode","typeBinding","ifCondition","ifConditionExtra","hasElse","elseIfCondition","branch0","cloneASTElement","branch1","branch2","model$1","modules$1","isStaticKey","isPlatformReservedTag","directives$1","baseOptions","genStaticKeysCached","genStaticKeys$1","optimize","markStatic$1","markStaticRoots","static","l$1","staticInFor","staticRoot","isDirectChildOfTemplateFor","fnExpRE","fnInvokeRE","simplePathRE","esc","tab","space","up","down","keyNames","genGuard","modifierCode","prevent","ctrl","alt","genHandlers","staticHandlers","dynamicHandlers","handlerCode","genHandler","isMethodPath","isFunctionExpression","isFunctionInvocation","genModifierCode","keyModifier","genKeyFilter","genFilterCode","keyVal","keyCode","keyName","wrapListeners","bind$1","wrapData","baseDirectives","cloak","CodegenState","dataGenFns","maybeComponent","onceId","ast","genElement","staticProcessed","genStatic","onceProcessed","genOnce","forProcessed","genFor","ifProcessed","genIf","genSlot","genComponent","genData$2","genChildren","originalPreState","altGen","altEmpty","genIfConditions","conditions","genTernaryExp","altHelper","genDirectives","genProps","genScopedSlots","genInlineTemplate","needRuntime","hasRuntime","gen","inlineRenderFns","containsSlotChild","needsKey","generatedSlots","genScopedSlot","isLegacySyntax","reverseProxy","checkSkip","altGenElement","altGenNode","el$1","normalizationType$1","getNormalizationType","genNode","needsNormalization","genComment","genText","transformSpecialNewlines","bind$$1","componentName","dynamicProps","createFunction","createCompileToFunctionFn","compile","compiled","fnGenErrors","createCompilerCreator","baseCompile","finalOptions","tips","tip","compileToFunctions","createCompiler","getShouldDecode","href","idToTemplate","mount","getOuterHTML","outerHTML","documentElement","versions","v8","TO_STRING_TAG_SUPPORT","variable","Flickity","getCellsFragment","fragment","createDocumentFragment","_makeCells","isAppend","slider","insertCellElement","endCells","_sizeCells","cellChange","prepend","getCells","minCellIndex","cellSizeChange","getCell","getSize","changedCellIndex","isPositioningSlider","prevSelectedElem","selectedElement","_positionCells","_getWrapShiftCells","setGallerySize","getCellSlideIndex","slides","positionSliderAtSelected","ImagesLoaded","onAlways","queryElem","getImages","jqDeferred","Deferred","check","images","addElementImages","addImage","background","addElementBackgroundImages","elementNodeTypes","childImgs","img","11","LoadingImage","Background","Image","reURL","backgroundImage","addBackground","loadingImage","progressedCount","hasAnyBroken","isLoaded","debug","isComplete","jqMethod","getIsImageComplete","confirm","naturalWidth","proxyImage","onload","makeJQueryPlugin","imagesLoaded","nativeMatch","URL","searchParams","pathname","enumerableOnly","sym","_objectSpread2","placeholderChar","strFunction","emptyArray$1","convertMaskToPlaceholder","mask","placeholderChar$1","char","strCaretTrap","processCaretTraps","indexOfCaretTrap","indexes","maskWithoutCaretTraps","emptyArray","emptyString","conformToMask","rawValue","_config$guide","guide","_config$previousConfo","previousConformedValue","_config$placeholderCh","_config$placeholder","currentCaretPosition","keepCharPositions","suppressGuide","rawValueLength","previousConformedValueLength","placeholderLength","maskLength","editDistance","isAddition","indexOfFirstChange","indexOfLastChange","compensatingPlaceholderChars","rawValueArr","shouldOffset","conformedValue","someCharsRejected","placeholderLoop","_i2","charInPlaceholder","_rawValueArr$shift","rawValueChar","rawValueArrLength","indexOfNextAvailablePlaceholderChar","_i3","charData","substr","indexOfLastFilledPlaceholderChar","_i4","NEXT_CHAR_OPTIONAL","__nextCharOptional__","defaultMaskReplacers","stringToRegexp","lastSlash","makeRegexpOptional","charRegexp","escapeIfNeeded","isRegexp$1","entity","castToRegexp","maskToRegExpMask","maskReplacers","maskChar","previousChar","previousMaskChar","stringMaskToRegExpMask","stringMask","arrayMaskToRegExpMask","arrayMask","flattenedMask","queryInputElementInside","HTMLInputElement","isRegexp","parseMask","inputMask","createOptions","elementOptions","defaultOptions","previousValue","partiallyUpdate","extendMaskReplacers","baseMaskReplacers","extendedMaskReplacers","triggerInputUpdate","updateValue","_options$get","isValueChanged","isLengthIncreased","isUpdateNeeded","_conformToMask","updateMask","maskToString","maskArray","filteredMaskArray","createDirective","directiveOptions","instanceMaskReplacers","placeholders","_ref2","isMaskChanged","createFilter","filterOptions","objectKeys","TO_ENTRIES","whitespaces","ltrim","rtrim","TYPE","dispatchRequest","mergeConfig","Axios","instanceConfig","interceptors","silentJSONParsing","boolean","forcedJSONParsing","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","newConfig","onFulfilled","onRejected","getUri","callRegExpExec","regexpExec","arrayPush","MAX_UINT32","SUPPORTS_Y","SPLIT","nativeSplit","internalSplit","separator","lastLength","output","ignoreCase","lastLastIndex","separatorCopy","splitter","unicodeMatching","q","isAnimating","restingFrames","applyDragForce","applySelectedAttraction","previousX","integratePhysics","positionSlider","wrapAround","modulo","slideableWidth","shiftWrapCells","setTranslateX","dispatchScrollEvent","is3d","cursorPosition","rightToLeft","translateX","getPositionValue","firstSlide","positionX","slidesWidth","selectedSlide","velocity","percentPosition","innerWidth","isFreeScrolling","beforeGap","_shiftCells","beforeShiftCells","afterGap","afterShiftCells","gap","cellShift","wrapShift","getFrictionFactor","isDraggable","dragVelocity","dragX","dragForce","applyForce","dragDown","selectedAttraction","createMethods","getCellLazyImages","cellElem","lazyloadAttr","srcAttr","srcsetAttr","lazySelector","imgs","LazyLoader","flickity","load","_createLazyload","lazyLoad","adjCount","cellElems","getAdjacentCellElements","lazyImages","lazyCellImages","srcset","getParentCell","$entries","hiddenKeys","defineWellKnownSymbol","webpackPolyfill","deprecate","paths","originalArray","wrappedWellKnownSymbolModule","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","noTargetGet","inspectSource","getStyleSize","measurements","measurementsLength","getZeroSize","innerHeight","measurement","isBoxSizeOuter","isSetup","setup","borderStyle","offsetWidth","isBorderBox","paddingWidth","paddingHeight","marginWidth","marginLeft","marginRight","marginHeight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderHeight","borderTopWidth","borderBottomWidth","isBorderBoxSizeOuter","styleWidth","styleHeight","FAILS_ON_PRIMITIVES","normalizeHeaderName","enhanceError","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","getDefaultAdapter","stringifySafely","encoder","strictJSONParsing","maxContentLength","maxBodyLength","_createImagesLoaded","onImagesLoadedProgress","freeScroll","ignoreDuplicateOf","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","quot","activeXDocument","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","write","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","contentWindow","NullProtoObject","domain","ActiveXObject","Properties","$find","addToUnscopables","FIND","SKIPS_HOLES","checkCorrectnessOfIteration","INCORRECT_ITERATION","FunctionPrototype","FunctionPrototypeToString","nameRE","inheritIfRequired","getFlags","NativeRegExp","CORRECT_NEW","RegExpWrapper","thisIsRegExp","patternIsRegExp","flagsAreUndefined","Cell","side","setPosition","renderPosition","setDefaultTarget","marginProperty","InternalMetadataModule","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","nativeMethod","REQUIRED","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","$includes","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","payload","Wrapper","NewTarget","NewTargetPrototype","loaded","u","includeThousandsSeparator","thousandsSeparatorSymbol","allowDecimal","decimalSymbol","decimalLimit","requireDecimal","allowNegative","allowLeadingZeroes","integerLimit","instanceOf","DOMIterables","ArrayIteratorMethods","ArrayValues","COLLECTION_NAME","Collection","CollectionPrototype","ARRAY_ITERATOR","Arguments","preventExtensions","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","forceStringMethod","stringMethod","regexMethod","bitmap","validate$l","strVal","params$e","digits","validate$j","emailStr","params$c","validate$d","params$b","validate$9","params$7","validate$6","params$5","en","validate$5","testValue","strValue","validate$3","allowFalse","computesRequired$1","params$3","IS_RIGHT","memo","non","integer","draggable","dragThreshold","isTouch","isTouchmoveScrollCanceled","_createDrag","onActivateDrag","_uiChangeDrag","onDeactivateDrag","updateDraggable","viewport","bindDrag","unbindDrag","_pointerDownPreventDefault","pointerDownFocus","pointerDownScroll","getScrollPosition","_pointerDownDefault","focusNodes","pageXOffset","pageYOffset","isFocusNode","focus","isTouchStart","isTouchPointer","pointerType","isTouchScrolling","dragStartPosition","startAnimation","previousDragX","originBound","getLastSlide","dragMoveTime","dragEndRestingSelect","restingX","getRestingPosition","dragEndBoostSelect","isDragSelect","getSlideDistance","positiveResting","_getClosestResting","negativeResting","contain","md","isWrapAround","slideIndex","slide","clickedCell","cellIndex","onscroll","scroll","scrollMoveX","scrollMoveY","PageDots","_create","holder","dots","handleClick","childUIPointerDown","setDots","deactivate","addDots","removeDots","newDots","dot","updateSelected","selectedDot","onTap","uiChange","pageDots","_createPageDots","activatePageDots","updateSelectedPageDots","updatePageDots","deactivatePageDots","applyMixin","vuexInit","$store","devtoolHook","devtoolPlugin","_devtoolHook","targetState","forEachValue","partial","Module","rawModule","runtime","_children","_rawModule","rawState","namespaced","addChild","getChild","actions","mutations","getters","forEachChild","forEachGetter","forEachAction","forEachMutation","ModuleCollection","rawRootModule","targetModule","newModule","getNamespace","rawChildModule","Store","strict","_committing","_actions","_actionSubscribers","_mutations","_wrappedGetters","_modules","_modulesNamespaceMap","_subscribers","_watcherVM","_makeLocalGettersCache","dispatch","installModule","resetStoreVM","useDevtools","prototypeAccessors$1","genericSubscribe","resetStore","hot","oldVm","wrappedGetters","$$state","enableStrictMode","_withCommit","rootState","parentState","getNestedState","moduleName","makeLocalContext","namespacedType","registerMutation","action","registerAction","registerGetter","noNamespace","_payload","unifyObjectStyle","makeLocalGetters","gettersProxy","splitPos","localType","rootGetters","rawGetter","_Vue","subscribeAction","registerModule","preserveState","unregisterModule","hotUpdate","committing","mapState","normalizeNamespace","states","normalizeMap","getModuleByNamespace","vuex","mapMutations","mapGetters","mapActions","createNamespacedHelpers","isValidMap","helper","CORE_ERROR_TEXT","FUNC_ERROR_TEXT","INVALID_TEMPL_VAR_ERROR_TEXT","MAX_MEMOIZE_SIZE","PLACEHOLDER","CLONE_DEEP_FLAG","CLONE_FLAT_FLAG","CLONE_SYMBOLS_FLAG","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","WRAP_BIND_FLAG","WRAP_BIND_KEY_FLAG","WRAP_CURRY_BOUND_FLAG","WRAP_CURRY_FLAG","WRAP_CURRY_RIGHT_FLAG","WRAP_PARTIAL_FLAG","WRAP_PARTIAL_RIGHT_FLAG","WRAP_ARY_FLAG","WRAP_REARG_FLAG","WRAP_FLIP_FLAG","DEFAULT_TRUNC_LENGTH","DEFAULT_TRUNC_OMISSION","LAZY_FILTER_FLAG","LAZY_MAP_FLAG","LAZY_WHILE_FLAG","MAX_INTEGER","NAN","MAX_ARRAY_LENGTH","MAX_ARRAY_INDEX","HALF_MAX_ARRAY_LENGTH","wrapFlags","domExcTag","promiseTag","symbolTag","weakSetTag","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","reEscapedHtml","reUnescapedHtml","reHasEscapedHtml","reHasUnescapedHtml","reEscape","reEvaluate","reInterpolate","reIsDeepProp","reIsPlainProp","rePropName","reHasRegExpChar","reTrimStart","reWhitespace","reWrapComment","reWrapDetails","reSplitDetails","reAsciiWord","reForbiddenIdentifierChars","reEscapeChar","reEsTemplate","reFlags","reIsBadHex","reIsBinary","reIsOctal","reLatin","reNoMatch","reUnescapedString","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsDingbatRange","rsLowerRange","rsMathOpRange","rsNonCharRange","rsPunctuationRange","rsSpaceRange","rsUpperRange","rsVarRange","rsBreakRange","rsApos","rsAstral","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsZWJ","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsOptVar","rsOptJoin","rsOrdLower","rsOrdUpper","rsSeq","rsEmoji","rsSymbol","reApos","reComboMark","reUnicode","reUnicodeWord","reHasUnicode","reHasUnicodeWord","contextProps","templateCounter","cloneableTags","deburredLetters","htmlEscapes","htmlUnescapes","stringEscapes","freeParseFloat","freeParseInt","nodeIsArrayBuffer","nodeIsDate","nodeIsMap","isMap","nodeIsRegExp","nodeIsSet","isSet","arrayAggregator","accumulator","arrayEach","arrayEachRight","arrayEvery","arrayFilter","resIndex","arrayIncludes","baseIndexOf","arrayIncludesWith","comparator","arrayMap","arrayReduce","initAccum","arrayReduceRight","arraySome","asciiSize","baseProperty","asciiToArray","asciiWords","baseFindKey","eachFunc","baseFindIndex","strictIndexOf","baseIsNaN","baseIndexOfWith","baseMean","baseSum","basePropertyOf","baseReduce","baseSortBy","comparer","baseToPairs","baseTrim","trimmedEndIndex","baseValues","cacheHas","charsStartIndex","strSymbols","chrSymbols","charsEndIndex","countHolders","deburrLetter","escapeHtmlChar","escapeStringChar","hasUnicode","hasUnicodeWord","iteratorToArray","mapToArray","replaceHolders","setToArray","setToPairs","strictLastIndexOf","stringSize","unicodeSize","stringToArray","unicodeToArray","unescapeHtmlChar","unicodeWords","runInContext","idCounter","oldDash","spreadableSymbol","isConcatSpreadable","symIterator","ctxClearTimeout","ctxNow","ctxSetTimeout","nativeCeil","nativeFloor","nativeGetSymbols","nativeIsFinite","nativeJoin","nativeKeys","nativeMin","nativeParseInt","nativeRandom","nativeReverse","DataView","metaMap","realNames","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","lodash","LazyWrapper","LodashWrapper","wrapperClone","baseLodash","chainAll","__wrapped__","__actions__","__chain__","__index__","__values__","__dir__","__filtered__","__iteratees__","__takeCount__","__views__","lazyClone","lazyReverse","lazyValue","isRight","arrLength","view","getView","iteratees","iterLength","takeCount","baseWrapperValue","iterIndex","SetCache","setCacheAdd","setCacheHas","arraySample","baseRandom","arraySampleSize","shuffleSelf","baseClamp","arrayShuffle","baseAggregator","baseEach","baseAssign","baseAssignIn","baseAt","lower","upper","baseClone","bitmask","isFlat","isFull","initCloneArray","getTag","isFunc","copySymbolsIn","copySymbols","initCloneByTag","subValue","getAllKeysIn","getAllKeys","baseConforms","baseConformsTo","baseDelay","baseDifference","valuesLength","valuesIndex","templateSettings","createBaseEach","baseForOwn","baseEachRight","baseForOwnRight","baseEvery","baseExtremum","isSymbol","baseFill","baseFilter","baseFlatten","depth","isStrict","isFlattenable","baseForRight","baseFunctions","baseGet","castPath","toKey","baseGetAllKeys","symbolsFunc","baseGt","baseHas","baseHasIn","baseInRange","baseIntersection","arrays","othLength","othIndex","maxLength","baseInverter","baseInvoke","baseIsArrayBuffer","baseIsDate","baseIsEqual","baseIsEqualDeep","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","equalObjects","baseIsMap","baseIsMatch","matchData","noCustomizer","baseIsRegExp","baseIsSet","baseIteratee","baseMatchesProperty","baseMatches","baseKeys","baseLt","baseMap","getMatchData","matchesStrictComparable","isKey","isStrictComparable","hasIn","baseNth","baseOrderBy","orders","getIteratee","criteria","compareMultiple","basePick","basePickBy","baseSet","basePropertyDeep","basePullAll","basePullAt","baseUnset","baseRange","baseRepeat","baseSample","baseSampleSize","baseSetData","baseShuffle","baseSlice","baseSome","baseSortedIndex","retHighest","low","high","baseSortedIndexBy","valIsNaN","valIsNull","valIsSymbol","valIsUndefined","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","setLow","baseSortedUniq","baseToNumber","baseToString","baseUniq","createSet","seenIndex","baseUpdate","updater","baseWhile","isDrop","baseXor","baseZipObject","assignFunc","valsLength","castArrayLikeObject","castFunction","stringToPath","castRest","castSlice","cloneDataView","dataView","cloneRegExp","cloneSymbol","compareAscending","valIsDefined","valIsReflexive","objCriteria","othCriteria","ordersLength","composeArgs","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","composeArgsRight","holdersIndex","rightIndex","rightLength","getSymbols","getSymbolsIn","createAggregator","initializer","createBind","isBind","createCtor","createCaseFirst","trailing","createCompounder","words","deburr","thisBinding","createCurry","arity","getHolder","createRecurry","createHybrid","createFind","findIndexFunc","createFlow","flatRest","funcs","prereq","thru","getFuncName","funcName","isLaziable","plant","partialsRight","holdersRight","argPos","isAry","isBindKey","isFlip","holdersCount","newHolders","reorder","createInverter","toIteratee","createMathOperation","operator","createOver","arrayFunc","createPadding","charsLength","createPartial","createRange","toFinite","createRelationalOperation","wrapFunc","isCurry","newHoldersRight","newPartials","newPartialsRight","setData","setWrapToString","createRound","pair","createToPairs","createWrap","customDefaultsAssignIn","customDefaultsMerge","customOmitClone","isPartial","arrStacked","othStacked","arrValue","othValue","compared","convert","objLength","othProps","objStacked","skipCtor","objCtor","othCtor","flatten","otherFunc","stubArray","getWrapDetails","hasPath","hasFunc","insertWrapDetails","details","ctorString","isMaskable","memoizeCapped","memoize","srcBitmask","newBitmask","isCombo","oldArray","reference","updateWrapDetails","rand","quote","subString","compact","difference","differenceBy","differenceWith","drop","dropRight","dropRightWhile","dropWhile","findLastIndex","flattenDeep","flattenDepth","fromPairs","intersection","mapped","intersectionBy","intersectionWith","nth","pull","pullAll","pullAllBy","pullAllWith","pullAt","sortedIndex","sortedIndexBy","sortedIndexOf","sortedLastIndex","sortedLastIndexBy","sortedLastIndexOf","sortedUniq","sortedUniqBy","tail","take","takeRight","takeRightWhile","takeWhile","union","unionBy","unionWith","uniq","uniqBy","uniqWith","unzip","group","unzipWith","without","xor","xorBy","xorWith","zip","zipObject","zipObjectDeep","zipWith","tap","wrapperAt","wrapperChain","wrapperCommit","wrapperNext","wrapperToIterator","wrapperPlant","wrapperReverse","wrapped","wrapperValue","countBy","findLast","flatMap","flatMapDeep","flatMapDepth","forEachRight","groupBy","invokeMap","keyBy","orderBy","partition","reduceRight","negate","shuffle","sortBy","bindKey","curry","curryRight","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","flush","debounced","isInvoking","defer","memoized","Cache","overArgs","funcsLength","partialRight","rearg","spread","throttle","castArray","cloneWith","cloneDeep","cloneDeepWith","conformsTo","gt","gte","isBoolean","isElement","isEqual","isEqualWith","isError","isInteger","isMatch","isMatchWith","isNull","isNil","isSafeInteger","isWeakMap","isWeakSet","lt","lte","remainder","isBinary","toSafeInteger","assignIn","assignInWith","assignWith","at","propsIndex","propsLength","defaultsDeep","mergeWith","findKey","findLastKey","forIn","forInRight","forOwn","forOwnRight","functions","functionsIn","invert","invertBy","invoke","mapKeys","mapValues","omit","omitBy","pickBy","setWith","toPairs","toPairsIn","isArrLike","unset","updateWith","valuesIn","clamp","camelCase","word","upperFirst","escape","escapeRegExp","kebabCase","lowerCase","lowerFirst","pad","strLength","padEnd","padStart","radix","snakeCase","startCase","settings","isEscaping","isEvaluating","imports","importsKeys","importsValues","reDelimiters","sourceURL","escapeValue","interpolateValue","esTemplateValue","evaluateValue","attempt","toLower","toUpper","trimEnd","trimStart","truncate","omission","search","newEnd","upperCase","bindAll","methodNames","cond","conforms","defaultTo","flow","flowRight","matchesProperty","methodOf","noConflict","nthArg","over","overEvery","overSome","propertyOf","rangeRight","stubObject","stubString","stubTrue","times","toPath","uniqueId","augend","addend","dividend","divisor","maxBy","mean","meanBy","minBy","multiplier","multiplicand","subtract","minuend","subtrahend","sum","sumBy","entriesIn","extendWith","eachRight","isFilter","takeName","dropName","checkIteratee","isTaker","lodashFunc","retUnwrapped","useLazy","isHybrid","isUnwrapped","onlyLazy","chainName","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","normalizeArray","allowAboveRoot","basename","matchedSlash","xs","resolvedPath","resolvedAbsolute","isAbsolute","trailingSlash","relative","fromParts","toParts","samePartsLength","outputParts","sep","delimiter","dirname","hasRoot","ext","extname","startDot","startPart","preDotState","returnMethod","isAbsoluteURL","combineURLs","requestedURL","nativeDefineProperty","Attributes","dotAll","Player","onVisibilityChange","visibilityChange","onVisibilityPlay","visibilityPlay","play","isPageHidden","autoPlay","pause","unpause","pauseAutoPlayOnHover","_createPlayer","player","activatePlayer","stopPlayer","deactivatePlayer","playPlayer","pausePlayer","unpausePlayer","onmouseenter","onmouseleave","createHTML","forcedStringHTMLMethod","fixed","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","comparefn","$trim","forcedStringTrimMethod","isArrayIteratorMethod","Result","stopped","unboundFunction","iterFn","IS_ITERATOR","INTERRUPTED","callFn","CONVERT_TO_STRING","codeAt","enforceInternalState","enforce","TEMPLATE","simple","$findIndex","FIND_INDEX","aPossiblePrototype","CORRECT_SETTER","Flatted","Primitive","primitive","reviver","Primitives","primitives","revive","firstRun","known","SHARED","notARegExp","correctIsRegExpLogic","searchString","ArrayPrototype","expires","secure","cookie","toGMTString","callWithSafeIterationClosing","mapfn","mapping","NATIVE_WEAK_MAP","objectHas","wmget","wmhas","wmset","metadata","facade","STATE","thrower","argument0","argument1","$map","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","specificCreate","originURL","msie","urlParsingNode","resolveURL","protocol","hostname","port","location","requestURL","nativeObjectCreate","getOwnPropertyNamesExternal","$forEach","HIDDEN","$Symbol","$stringify","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","$defineProperty","$defineProperties","$getOwnPropertySymbols","$propertyIsEnumerable","$create","$getOwnPropertyDescriptor","$getOwnPropertyNames","IS_OBJECT_PROTOTYPE","keyFor","useSetter","useSimple","FORCED_JSON_STRINGIFY","$replacer","IS_CONCAT_SPREADABLE","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","spreadable","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","svgURI","PrevNextButton","getArrowMovements","shape","x0","isEnabled","isPrevious","leftDirection","isLeft","disable","createSVG","pathMovements","arrowShape","enable","boundIndex","prevNextButtons","_createPrevNextButtons","prevButton","nextButton","activatePrevNextButtons","deactivatePrevNextButtons","propertyKey","getInternetExplorerVersion","ua","trident","rv","initCompat","compareAndNotify","_w","addResizeHandlers","_resizeObject","contentDocument","defaultView","removeResizeHandlers","GlobalVue","noopFn","assert","currentVue","currentVM","getCurrentVue","setCurrentVue","vue","getCurrentVM","setCurrentVM","__values","__spread","currentVMInFn","defineComponentInstance","isComponentInstance","createSlotProxy","createSymbol","WatcherPreFlushQueueKey","WatcherPostFlushQueueKey","AccessControlIdentifierKey","ReactiveIdentifierKey","RawIdentifierKey","RefKey","RefImpl","createRef","seal","isRef","reactive","toRefs","isReactive","toRef","AccessControlIdentifier","ReactiveIdentifier","RawIdentifier","isRaw","setupAccessControl","defineAccessControl","observed","markReactive","markRaw","_install","set$1","__secret_vfa_state__","vmStateManager","unwrapRefProxy","e_1","e_1_1","return","asVmProperty","propName","propValue","updateTemplateRef","rawBindings","oldRefKeys","setupValue","newKeys","validNewKeys","slotsProxy","parentVode","curSlots","slotNames","activateCurrentInstance","onError","preVm","functionApiInit","initSetup","createSetupContext","bindingFunc_1","bindingObj_1","bindingValue","methodReturnVoid","targetKey","srcKey","defineComponent","genName","createLifeCycle","lifeCyclehook","injectHookOption","mergeFn","wrapHookCall","fallbackVM","onMounted","onBeforeUnmount","flushPreQueue","flushPostQueue","hasWatchEnv","installWatchEnv","getWatcherOption","getWatchEffectOption","getWatcherVM","queueFlushJob","fallbackFlush","createVueWatcher","immediateInvokeCallback","noRun","patchWatcherTeardown","runCleanup","_teardown","cleanup","flushMode","registerCleanup","createScheduler","getter_1","watcher_1","originGet","applyCb","originalCallbck_1","shiftCallback_1","watchEffect","effect","computedHost","functionToString","isBrowser","timeoutDuration","longerTimeoutBrowsers","microtaskDebounce","taskDebounce","scheduled","supportsMicroTasks","functionToCheck","getStyleComputedProperty","getParentNode","getScrollParent","_getStyleComputedProp","overflow","overflowX","overflowY","getReferenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","isOffsetContainer","firstElementChild","getRoot","findCommonOffsetParent","element1","element2","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","setStart","setEnd","commonAncestorContainer","element1root","getScroll","upperSide","scrollingElement","includeScroll","scrollTop","scrollLeft","modifier","getBordersSize","sideA","sideB","computedStyle","getWindowSizes","classCallCheck","createClass","_extends","getClientRect","sizes","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","placement","sortedAreas","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","getOppositePlacement","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","secondaryMeasurement","runModifiers","ends","modifiersToRun","isDestroyed","arrowStyles","flipped","positionFixed","originalPlacement","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","getSupportedPropertyName","upperProp","toCheck","willChange","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","removeEventListeners","cancelAnimationFrame","isNumeric","setStyles","setAttributes","applyStyle","arrowElement","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","_data$offsets","noRound","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","prefixedProperty","invertTop","invertLeft","arrow","isModifierRequired","requestingName","requestedName","requesting","_requesting","requested","_data$offsets$arrow","sideCapitalized","altSide","opSide","arrowElementSize","popperMarginSide","popperBorderSide","sideValue","getOppositeVariation","placements","validPlacements","clockwise","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","placementOpposite","flipOrder","behavior","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","keepTogether","toValue","parseOffset","basePlacement","useHeight","fragments","frag","divider","splitRegex","mergeWithPrevious","index2","preventOverflow","transformProp","popperStyles","priority","primary","escapeWithReference","secondary","shiftvariation","shiftOffsets","bound","subtractLength","onLoad","Popper","jquery","Utils","PopperUtils","FREEZING","METADATA","setMetadata","objectID","weakData","getWeakData","onFreeze","NASHORN_BUG","replaceAll","IS_REG_EXP","NUMBER","NativeNumber","NumberPrototype","BROKEN_CLASSOF","third","maxCode","NumberWrapper","feature","detection","POLYFILL","NATIVE","UNSCOPABLES","windowNames","getWindowNames","ES3_STRINGS","SVGAnimatedString","convertToArray","addClasses","newClasses","baseVal","newClass","SVGElement","removeClasses","_listCacheClear","eq_1","_assocIndexOf","_listCacheDelete","_listCacheGet","_listCacheHas","_listCacheSet","_ListCache","_stackClear","_stackDelete","_stackGet","_stackHas","commonjsGlobal","globalThis","createCommonjsModule","_freeGlobal","_root","Symbol$1","_Symbol","_getRawTag","objectProto$1","nativeObjectToString$1","_objectToString","symToStringTag$1","_baseGetTag","isObject_1","isFunction_1","_coreJsData","_isMasked","_toSource","funcProto$1","objectProto$2","funcToString$1","hasOwnProperty$1","_baseIsNative","_getValue","_getNative","_Map","_nativeCreate","_hashClear","_hashDelete","objectProto$3","hasOwnProperty$2","_hashGet","objectProto$4","hasOwnProperty$3","_hashHas","HASH_UNDEFINED$1","_hashSet","_Hash","_mapCacheClear","_isKeyable","_getMapData","_mapCacheDelete","_mapCacheGet","_mapCacheHas","_mapCacheSet","_MapCache","_stackSet","_Stack","HASH_UNDEFINED$2","_setCacheAdd","_setCacheHas","_SetCache","_arraySome","_cacheHas","_equalArrays","_Uint8Array","_mapToArray","_setToArray","COMPARE_PARTIAL_FLAG$1","COMPARE_UNORDERED_FLAG$1","_equalByTag","_arrayPush","isArray_1","_baseGetAllKeys","_arrayFilter","stubArray_1","objectProto$5","_getSymbols","_baseTimes","isObjectLike_1","_baseIsArguments","objectProto$6","hasOwnProperty$4","propertyIsEnumerable$1","isArguments_1","stubFalse_1","isBuffer_1","_isIndex","MAX_SAFE_INTEGER$1","isLength_1","argsTag$1","boolTag$1","dateTag$1","errorTag$1","funcTag$1","mapTag$1","numberTag$1","regexpTag$1","setTag$1","stringTag$1","arrayBufferTag$1","dataViewTag$1","_baseIsTypedArray","_baseUnary","_nodeUtil","isTypedArray_1","objectProto$7","hasOwnProperty$5","_arrayLikeKeys","objectProto$8","_isPrototype","_overArg","_nativeKeys","objectProto$9","hasOwnProperty$6","_baseKeys","isArrayLike_1","keys_1","_getAllKeys","COMPARE_PARTIAL_FLAG$2","objectProto$a","hasOwnProperty$7","_equalObjects","_DataView","Promise$1","_Promise","_WeakMap","mapTag$2","objectTag$1","setTag$2","weakMapTag$1","dataViewTag$2","_getTag","COMPARE_PARTIAL_FLAG$3","argsTag$2","arrayTag$1","objectTag$2","objectProto$b","hasOwnProperty$8","_baseIsEqualDeep","_baseIsEqual","isEqual_1","DEFAULT_OPTIONS","openTooltips","Tooltip","_reference","relatedreference","toElement","relatedTarget","evt2","relatedreference2","_tooltipNode","_scheduleHide","_isOpen","_show","_hide","_dispose","_classes","_setContent","classesUpdated","defaultClass","setClasses","getOptions","needPopperUpdate","needRestart","isOpen","dispose","popperInstance","_isDisposed","_enableDocumentTouch","_setEventListeners","$_originalTitle","tooltipGenerator","tooltipNode","autoHide","asyncContent","_applyContent","_this3","allowHtml","rootNode","titleNode","innerSelector","loadingClass","loadingContent","asyncResult","innerText","_disposeTimer","updateClasses","_ensureShown","_this4","_findContainer","_append","popperOptions","arrowSelector","_this5","_noLongerOpen","disposeTime","disposeTimeout","_removeTooltipNode","_this6","_this7","directEvents","oppositeEvents","hideOnTargetClick","usedByTooltip","_scheduleShow","_this8","computedDelay","_scheduleTimer","_this9","_setTooltipNodeEvent","_onDocumentTouch","defaultPlacement","defaultTargetClass","defaultHtml","defaultTemplate","defaultArrowSelector","defaultInnerSelector","defaultDelay","defaultTrigger","defaultOffset","defaultContainer","defaultBoundariesElement","defaultPopperOptions","defaultLoadingClass","defaultLoadingContent","defaultHideOnTargetClick","popover","defaultBaseClass","defaultWrapperClass","defaultInnerClass","defaultArrowClass","defaultOpenClass","defaultAutoHide","defaultHandleResize","typeofOffset","getPlacement","getContent","createTooltip","_tooltip","_vueEl","targetClasses","_tooltipTargetClasses","destroyTooltip","_tooltipOldShow","setContent","setOptions","onTouchStart","removeListeners","onTouchEnd","onTouchCancel","closePopover","$_vclosepopover_touch","closeAllPopover","$_closePopoverModifiers","$_vclosepopover_touchPoint","firstTouch","screenY","screenX","vclosepopover","getDefault","MSStream","openPopovers","Element","script","popoverClass","popoverBaseClass","popoverInnerClass","popoverWrapperClass","popoverArrowClass","handleResize","openGroup","openClass","cssClass","popoverId","popoverNode","$_findContainer","$_removeEventListeners","$_addEventListeners","$_updatePopper","$_isDisposed","$_mounted","$_events","$_preventOpen","$_init","_ref2$force","skipDelay","$_scheduleShow","$_beingShowed","_ref3","$_scheduleHide","$_show","$_disposeTimer","$_getOffset","$_hide","$_scheduleTimer","$_setTooltipNodeEvent","event2","_ref4","$_restartPopper","$_handleGlobalClose","$_handleResize","handleGlobalClick","handleGlobalClose","handleGlobalTouchend","isFunctionalTemplate","createInjector","createInjectorSSR","createInjectorShadow","__vue_script__","__vue_render__","tabindex","visibility","keyup","__vue_staticRenderFns__","_withStripped","__vue_inject_styles__","__vue_scope_id__","__vue_module_identifier__","__vue_is_functional_template__","__vue_component__","_defineProperty$1","_baseAssignValue","_assignMergeValue","_createBaseFor","_baseFor","_cloneBuffer","_cloneArrayBuffer","_cloneTypedArray","_baseCreate","_getPrototype","_initCloneObject","isArrayLikeObject_1","objectTag$3","funcProto$2","objectProto$c","funcToString$2","hasOwnProperty$9","isPlainObject_1","_safeGet","objectProto$d","hasOwnProperty$a","_assignValue","_copyObject","_nativeKeysIn","objectProto$e","hasOwnProperty$b","_baseKeysIn","keysIn_1","toPlainObject_1","_baseMergeDeep","_baseMerge","identity_1","_apply","_overRest","constant_1","_baseSetToString","_shortOut","_setToString","_baseRest","_isIterateeCall","_createAssigner","merge_1","styleInject","insertAt","styleSheet","installed","VTooltip","VClosePopover","VPopover","createInstance","defaultConfig","axios","EXISTS","STRING_ITERATOR","animatePrototype","moveElements","toElem","GUID","queryElement","flickityGUID","$element","accessibility","freeScrollFriction","friction","namespaceJQueryEvents","guid","_createSlider","watchCSS","_filterFindCellElements","reloadCells","tabIndex","selectInitialIndex","isInitActivated","cellSelector","positionCells","maxCellHeight","cellX","startCell","updateSlides","_containSlides","nextMargin","canCellFit","_getCanCellFit","updateSelectedSlide","groupCells","percentMatch","reposition","setCellAlign","cellAlignShorthands","shorthand","adaptiveHeight","_unshiftCells","gapX","_getGapCells","isRightToLeft","contentWidth","isContentSmaller","beginBound","emitArgs","jQEvent","isWrap","isInstant","_wrapSelect","prevIndex","isWrapping","wrapIndex","backWrapDelta","forewardWrapDelta","unselectSelectedSlide","selectedCells","selectedElements","selectedCell","initialIndex","queryCell","selectCell","onresize","watchOption","afterContent","onkeydown","isNotFocused","keyboardHandlers","37","leftMethod","39","rightMethod","prevScrollY","preventScroll","scrollTo","removeData","bridget","setJQuery","jq","TAG","matchesMethod","ElemProto","PrototypeOfArrayIteratorPrototype","arrayIterator"],"mappings":"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","file":"js/chunk-vendors.js","sourcesContent":["'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n var transitional = config.transitional || defaults.transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","/*!\n * Unipointer v2.4.0\n * base class for doing one thing with pointer event\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*global define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter')\n );\n } else {\n // browser global\n window.Unipointer = factory(\n window,\n window.EvEmitter\n );\n }\n\n}( window, function factory( window, EvEmitter ) {\n\n'use strict';\n\nfunction noop() {}\n\nfunction Unipointer() {}\n\n// inherit EvEmitter\nvar proto = Unipointer.prototype = Object.create( EvEmitter.prototype );\n\nproto.bindStartEvent = function( elem ) {\n this._bindStartEvent( elem, true );\n};\n\nproto.unbindStartEvent = function( elem ) {\n this._bindStartEvent( elem, false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd - remove if falsey\n */\nproto._bindStartEvent = function( elem, isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n\n // default to mouse events\n var startEvent = 'mousedown';\n if ( 'ontouchstart' in window ) {\n // HACK prefer Touch Events as you can preventDefault on touchstart to\n // disable scroll in iOS & mobile Chrome metafizzy/flickity#1177\n startEvent = 'touchstart';\n } else if ( window.PointerEvent ) {\n // Pointer Events\n startEvent = 'pointerdown';\n }\n elem[ bindMethod ]( startEvent, this );\n};\n\n// trigger handler methods for events\nproto.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// returns the touch that we're keeping track of\nproto.getTouch = function( touches ) {\n for ( var i=0; i < touches.length; i++ ) {\n var touch = touches[i];\n if ( touch.identifier == this.pointerIdentifier ) {\n return touch;\n }\n }\n};\n\n// ----- start event ----- //\n\nproto.onmousedown = function( event ) {\n // dismiss clicks from right or middle buttons\n var button = event.button;\n if ( button && ( button !== 0 && button !== 1 ) ) {\n return;\n }\n this._pointerDown( event, event );\n};\n\nproto.ontouchstart = function( event ) {\n this._pointerDown( event, event.changedTouches[0] );\n};\n\nproto.onpointerdown = function( event ) {\n this._pointerDown( event, event );\n};\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto._pointerDown = function( event, pointer ) {\n // dismiss right click and other pointers\n // button = 0 is okay, 1-4 not\n if ( event.button || this.isPointerDown ) {\n return;\n }\n\n this.isPointerDown = true;\n // save pointer identifier to match up touch events\n this.pointerIdentifier = pointer.pointerId !== undefined ?\n // pointerId for pointer events, touch.indentifier for touch events\n pointer.pointerId : pointer.identifier;\n\n this.pointerDown( event, pointer );\n};\n\nproto.pointerDown = function( event, pointer ) {\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// hash of events to be bound after start event\nvar postStartEvents = {\n mousedown: [ 'mousemove', 'mouseup' ],\n touchstart: [ 'touchmove', 'touchend', 'touchcancel' ],\n pointerdown: [ 'pointermove', 'pointerup', 'pointercancel' ],\n};\n\nproto._bindPostStartEvents = function( event ) {\n if ( !event ) {\n return;\n }\n // get proper events to match start event\n var events = postStartEvents[ event.type ];\n // bind events to node\n events.forEach( function( eventName ) {\n window.addEventListener( eventName, this );\n }, this );\n // save these arguments\n this._boundPointerEvents = events;\n};\n\nproto._unbindPostStartEvents = function() {\n // check for _boundEvents, in case dragEnd triggered twice (old IE8 bug)\n if ( !this._boundPointerEvents ) {\n return;\n }\n this._boundPointerEvents.forEach( function( eventName ) {\n window.removeEventListener( eventName, this );\n }, this );\n\n delete this._boundPointerEvents;\n};\n\n// ----- move event ----- //\n\nproto.onmousemove = function( event ) {\n this._pointerMove( event, event );\n};\n\nproto.onpointermove = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerMove( event, event );\n }\n};\n\nproto.ontouchmove = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerMove( event, touch );\n }\n};\n\n/**\n * pointer move\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerMove = function( event, pointer ) {\n this.pointerMove( event, pointer );\n};\n\n// public\nproto.pointerMove = function( event, pointer ) {\n this.emitEvent( 'pointerMove', [ event, pointer ] );\n};\n\n// ----- end event ----- //\n\n\nproto.onmouseup = function( event ) {\n this._pointerUp( event, event );\n};\n\nproto.onpointerup = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerUp( event, event );\n }\n};\n\nproto.ontouchend = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerUp( event, touch );\n }\n};\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerUp = function( event, pointer ) {\n this._pointerDone();\n this.pointerUp( event, pointer );\n};\n\n// public\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n};\n\n// ----- pointer done ----- //\n\n// triggered on pointer up & pointer cancel\nproto._pointerDone = function() {\n this._pointerReset();\n this._unbindPostStartEvents();\n this.pointerDone();\n};\n\nproto._pointerReset = function() {\n // reset properties\n this.isPointerDown = false;\n delete this.pointerIdentifier;\n};\n\nproto.pointerDone = noop;\n\n// ----- pointer cancel ----- //\n\nproto.onpointercancel = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerCancel( event, event );\n }\n};\n\nproto.ontouchcancel = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerCancel( event, touch );\n }\n};\n\n/**\n * pointer cancel\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerCancel = function( event, pointer ) {\n this._pointerDone();\n this.pointerCancel( event, pointer );\n};\n\n// public\nproto.pointerCancel = function( event, pointer ) {\n this.emitEvent( 'pointerCancel', [ event, pointer ] );\n};\n\n// ----- ----- //\n\n// utility function for getting x/y coords from event\nUnipointer.getPointerPoint = function( pointer ) {\n return {\n x: pointer.pageX,\n y: pointer.pageY\n };\n};\n\n// ----- ----- //\n\nreturn Unipointer;\n\n}));\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","import { Chart, BarController, DoughnutController, LineController, PieController, PolarAreaController, RadarController, BubbleController, ScatterController } from 'chart.js';\n\nvar ChartEmits;\n(function(ChartEmits) {\n ChartEmits[\"ChartRendered\"] = \"chart:rendered\";\n ChartEmits[\"ChartUpdated\"] = \"chart:updated\";\n ChartEmits[\"ChartDestroyed\"] = \"chart:destroyed\";\n ChartEmits[\"LabelsUpdated\"] = \"labels:updated\";\n})(ChartEmits || (ChartEmits = {}));\nfunction chartCreate(createChartFunction, chartData, chartOptions, context) {\n createChartFunction(chartData, chartOptions);\n if (context !== undefined) {\n context.emit(ChartEmits.ChartRendered);\n }\n}\nfunction chartUpdate(chart, context) {\n chart.update();\n if (context !== undefined) {\n context.emit(ChartEmits.ChartUpdated);\n }\n}\nfunction chartDestroy(chart, context) {\n chart.destroy();\n if (context !== undefined) {\n context.emit(ChartEmits.ChartDestroyed);\n }\n}\nfunction getChartData(data, datasetIdKey) {\n const nextData = {\n labels: typeof data.labels === \"undefined\" ? [] : [\n ...data.labels\n ],\n datasets: []\n };\n setChartDatasets(nextData, {\n ...data\n }, datasetIdKey);\n return nextData;\n}\nfunction setChartDatasets(oldData, newData, datasetIdKey) {\n const addedDatasets = [];\n oldData.datasets = newData.datasets.map((nextDataset)=>{\n // given the new set, find it's current match\n const currentDataset = oldData.datasets.find((dataset)=>dataset[datasetIdKey] === nextDataset[datasetIdKey]);\n // There is no original to update, so simply add new one\n if (!currentDataset || !nextDataset.data || addedDatasets.includes(currentDataset)) {\n return {\n ...nextDataset\n };\n }\n addedDatasets.push(currentDataset);\n Object.assign(currentDataset, nextDataset);\n return currentDataset;\n });\n}\nfunction setChartLabels(chart, labels, context) {\n chart.data.labels = labels;\n if (context !== undefined) {\n context.emit(ChartEmits.LabelsUpdated);\n }\n}\nfunction setChartOptions(chart, options) {\n chart.options = {\n ...options\n };\n}\nfunction compareData(newData, oldData) {\n // Get new and old DataSet Labels\n const newDatasetLabels = newData.datasets.map((dataset)=>{\n return dataset.label;\n });\n const oldDatasetLabels = oldData.datasets.map((dataset)=>{\n return dataset.label;\n });\n // Check if Labels are equal and if dataset length is equal\n return oldData.datasets.length === newData.datasets.length && newDatasetLabels.every((value, index)=>value === oldDatasetLabels[index]);\n}\nconst templateError = \"Please remove the tags from your chart component. See https://vue-chartjs.org/guide/#vue-single-file-components\";\n\nconst ANNOTATION_PLUGIN_KEY = \"annotation\";\nfunction generateChart(chartId, chartType, chartController) {\n let _chartRef = {};\n return {\n props: {\n chartData: {\n type: Object,\n required: true\n },\n chartOptions: {\n type: Object,\n default: ()=>{}\n },\n datasetIdKey: {\n type: String,\n default: \"label\"\n },\n chartId: {\n type: String,\n default: chartId\n },\n width: {\n type: Number,\n default: 400\n },\n height: {\n type: Number,\n default: 400\n },\n cssClasses: {\n type: String,\n default: \"\"\n },\n styles: {\n type: Object,\n default: ()=>{}\n },\n plugins: {\n type: Array,\n default: ()=>[]\n }\n },\n data () {\n return {\n _chart: null,\n _id: Math.random().toString(36).substring(2)\n };\n },\n computed: {\n hasAnnotationPlugin () {\n var ref, ref1;\n const pluginSettings = (ref = this.chartOptions) === null || ref === void 0 ? void 0 : (ref1 = ref.plugins) === null || ref1 === void 0 ? void 0 : ref1[ANNOTATION_PLUGIN_KEY];\n return typeof pluginSettings !== \"undefined\";\n }\n },\n created () {\n Chart.register(chartController);\n },\n mounted () {\n _chartRef[this.$data._id] = null;\n if (\"datasets\" in this.chartData && this.chartData.datasets.length > 0) {\n chartCreate(this.renderChart, this.chartData, this.chartOptions);\n this.$emit(ChartEmits.ChartRendered);\n }\n },\n watch: {\n chartData: {\n handler: function(newValue, oldValue) {\n this.chartDataHandler(newValue, oldValue);\n },\n deep: true\n },\n chartOptions: {\n handler: function(newValue) {\n this.chartOptionsHandler(newValue);\n },\n deep: true\n }\n },\n methods: {\n renderChart (data, options) {\n const currentChart = this.getCurrentChart();\n if (currentChart !== null) {\n chartDestroy(currentChart);\n this.$emit(ChartEmits.ChartDestroyed);\n }\n if (!this.$refs.canvas) {\n throw new Error(templateError);\n } else {\n const chartData = getChartData(data, this.datasetIdKey);\n const canvasEl2DContext = this.$refs.canvas.getContext(\"2d\");\n if (canvasEl2DContext !== null) {\n this.setCurrentChart(new Chart(canvasEl2DContext, {\n type: chartType,\n data: chartData,\n options,\n plugins: this.plugins\n }));\n }\n }\n },\n chartDataHandler (newValue, oldValue) {\n const newData = {\n ...newValue\n };\n const oldData = {\n ...oldValue\n };\n const currentChart = this.getCurrentChart();\n if (Object.keys(oldData).length > 0) {\n const isEqualLabelsAndDatasetsLength = compareData(newData, oldData);\n if (isEqualLabelsAndDatasetsLength && currentChart !== null) {\n setChartDatasets(currentChart.data, newData, this.datasetIdKey);\n if (newData.labels !== undefined) {\n setChartLabels(currentChart, newData.labels);\n this.$emit(ChartEmits.LabelsUpdated);\n }\n this.updateChart();\n this.$emit(ChartEmits.ChartUpdated);\n } else {\n if (currentChart !== null) {\n chartDestroy(currentChart);\n this.$emit(ChartEmits.ChartDestroyed);\n }\n chartCreate(this.renderChart, this.chartData, this.chartOptions);\n this.$emit(ChartEmits.ChartRendered);\n }\n } else {\n if (currentChart !== null) {\n chartDestroy(currentChart);\n this.$emit(ChartEmits.ChartDestroyed);\n }\n chartCreate(this.renderChart, this.chartData, this.chartOptions);\n this.$emit(ChartEmits.ChartRendered);\n }\n },\n chartOptionsHandler (options) {\n const currentChart = this.getCurrentChart();\n if (currentChart !== null) {\n setChartOptions(currentChart, options);\n this.updateChart();\n } else {\n chartCreate(this.renderChart, this.chartData, this.chartOptions);\n }\n },\n updateChart () {\n const currentChart = this.getCurrentChart();\n chartUpdate(currentChart);\n },\n getCurrentChart () {\n return this.hasAnnotationPlugin ? _chartRef[this.$data._id] : this.$data._chart;\n },\n setCurrentChart (chart) {\n this.hasAnnotationPlugin ? _chartRef[this.$data._id] = chart : this.$data._chart = chart;\n }\n },\n beforeDestroy () {\n const currentChart = this.getCurrentChart();\n if (currentChart !== null) {\n chartDestroy(currentChart);\n this.$emit(ChartEmits.ChartDestroyed);\n }\n },\n render: function(createElement) {\n return createElement(\"div\", {\n style: this.styles,\n class: this.cssClasses\n }, [\n createElement(\"canvas\", {\n attrs: {\n id: this.chartId,\n width: this.width,\n height: this.height\n },\n ref: \"canvas\"\n })\n ]);\n }\n };\n}\n/** @type Object */ const Bar = /* #__PURE__ */ generateChart(\"bar-chart\", \"bar\", BarController);\n/** @type Object */ const Doughnut = /* #__PURE__ */ generateChart(\"doughnut-chart\", \"doughnut\", DoughnutController);\n/** @type Object */ const Line = /* #__PURE__ */ generateChart(\"line-chart\", \"line\", LineController);\n/** @type Object */ const Pie = /* #__PURE__ */ generateChart(\"pie-chart\", \"pie\", PieController);\n/** @type Object */ const PolarArea = /* #__PURE__ */ generateChart(\"polar-chart\", \"polarArea\", PolarAreaController);\n/** @type Object */ const Radar = /* #__PURE__ */ generateChart(\"radar-chart\", \"radar\", RadarController);\n/** @type Object */ const Bubble = /* #__PURE__ */ generateChart(\"bubble-chart\", \"bubble\", BubbleController);\n/** @type Object */ const Scatter = /* #__PURE__ */ generateChart(\"scatter-chart\", \"scatter\", ScatterController);\n\nexport { Bar, Bubble, Doughnut, Line, Pie, PolarArea, Radar, Scatter, generateChart };\n//# sourceMappingURL=index.js.map\n","/*!\n * Unidragger v2.4.0\n * Draggable base class\n * MIT license\n */\n\n/*jshint browser: true, unused: true, undef: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'unipointer/unipointer'\n ], function( Unipointer ) {\n return factory( window, Unipointer );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('unipointer')\n );\n } else {\n // browser global\n window.Unidragger = factory(\n window,\n window.Unipointer\n );\n }\n\n}( window, function factory( window, Unipointer ) {\n\n'use strict';\n\n// -------------------------- Unidragger -------------------------- //\n\nfunction Unidragger() {}\n\n// inherit Unipointer & EvEmitter\nvar proto = Unidragger.prototype = Object.create( Unipointer.prototype );\n\n// ----- bind start ----- //\n\nproto.bindHandles = function() {\n this._bindHandles( true );\n};\n\nproto.unbindHandles = function() {\n this._bindHandles( false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd\n */\nproto._bindHandles = function( isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n // bind each handle\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n var touchAction = isAdd ? this._touchActionValue : '';\n for ( var i=0; i < this.handles.length; i++ ) {\n var handle = this.handles[i];\n this._bindStartEvent( handle, isAdd );\n handle[ bindMethod ]( 'click', this );\n // touch-action: none to override browser touch gestures. metafizzy/flickity#540\n if ( window.PointerEvent ) {\n handle.style.touchAction = touchAction;\n }\n }\n};\n\n// prototype so it can be overwriteable by Flickity\nproto._touchActionValue = 'none';\n\n// ----- start event ----- //\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerDown = function( event, pointer ) {\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. flickity#842\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n\n event.preventDefault();\n this.pointerDownBlur();\n // bind move and end events\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// nodes that have text fields\nvar cursorNodes = {\n TEXTAREA: true,\n INPUT: true,\n SELECT: true,\n OPTION: true,\n};\n\n// input types that do not have text fields\nvar clickTypes = {\n radio: true,\n checkbox: true,\n button: true,\n submit: true,\n image: true,\n file: true,\n};\n\n// dismiss inputs with text fields. flickity#403, flickity#404\nproto.okayPointerDown = function( event ) {\n var isCursorNode = cursorNodes[ event.target.nodeName ];\n var isClickType = clickTypes[ event.target.type ];\n var isOkay = !isCursorNode || isClickType;\n if ( !isOkay ) {\n this._pointerReset();\n }\n return isOkay;\n};\n\n// kludge to blur previously focused input\nproto.pointerDownBlur = function() {\n var focused = document.activeElement;\n // do not blur body for IE10, metafizzy/flickity#117\n var canBlur = focused && focused.blur && focused != document.body;\n if ( canBlur ) {\n focused.blur();\n }\n};\n\n// ----- move event ----- //\n\n/**\n * drag move\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.emitEvent( 'pointerMove', [ event, pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\n// base pointer move logic\nproto._dragPointerMove = function( event, pointer ) {\n var moveVector = {\n x: pointer.pageX - this.pointerDownPointer.pageX,\n y: pointer.pageY - this.pointerDownPointer.pageY\n };\n // start drag if pointer has moved far enough to start drag\n if ( !this.isDragging && this.hasDragStarted( moveVector ) ) {\n this._dragStart( event, pointer );\n }\n return moveVector;\n};\n\n// condition if pointer has moved far enough to start drag\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > 3 || Math.abs( moveVector.y ) > 3;\n};\n\n// ----- end event ----- //\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto._dragPointerUp = function( event, pointer ) {\n if ( this.isDragging ) {\n this._dragEnd( event, pointer );\n } else {\n // pointer didn't move enough for drag to start\n this._staticClick( event, pointer );\n }\n};\n\n// -------------------------- drag -------------------------- //\n\n// dragStart\nproto._dragStart = function( event, pointer ) {\n this.isDragging = true;\n // prevent clicks\n this.isPreventingClicks = true;\n this.dragStart( event, pointer );\n};\n\nproto.dragStart = function( event, pointer ) {\n this.emitEvent( 'dragStart', [ event, pointer ] );\n};\n\n// dragMove\nproto._dragMove = function( event, pointer, moveVector ) {\n // do not drag if not dragging yet\n if ( !this.isDragging ) {\n return;\n }\n\n this.dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n event.preventDefault();\n this.emitEvent( 'dragMove', [ event, pointer, moveVector ] );\n};\n\n// dragEnd\nproto._dragEnd = function( event, pointer ) {\n // set flags\n this.isDragging = false;\n // re-enable clicking async\n setTimeout( function() {\n delete this.isPreventingClicks;\n }.bind( this ) );\n\n this.dragEnd( event, pointer );\n};\n\nproto.dragEnd = function( event, pointer ) {\n this.emitEvent( 'dragEnd', [ event, pointer ] );\n};\n\n// ----- onclick ----- //\n\n// handle all clicks and prevent clicks when dragging\nproto.onclick = function( event ) {\n if ( this.isPreventingClicks ) {\n event.preventDefault();\n }\n};\n\n// ----- staticClick ----- //\n\n// triggered after pointer down & up with no/tiny movement\nproto._staticClick = function( event, pointer ) {\n // ignore emulated mouse up clicks\n if ( this.isIgnoringMouseUp && event.type == 'mouseup' ) {\n return;\n }\n\n this.staticClick( event, pointer );\n\n // set flag for emulated clicks 300ms after touchend\n if ( event.type != 'mouseup' ) {\n this.isIgnoringMouseUp = true;\n // reset flag after 300ms\n setTimeout( function() {\n delete this.isIgnoringMouseUp;\n }.bind( this ), 400 );\n }\n};\n\nproto.staticClick = function( event, pointer ) {\n this.emitEvent( 'staticClick', [ event, pointer ] );\n};\n\n// ----- utils ----- //\n\nUnidragger.getPointerPoint = Unipointer.getPointerPoint;\n\n// ----- ----- //\n\nreturn Unidragger;\n\n}));\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","exports.nextTick = function nextTick(fn) {\n var args = Array.prototype.slice.call(arguments);\n args.shift();\n setTimeout(function () {\n fn.apply(null, args);\n }, 0);\n};\n\nexports.platform = exports.arch = \nexports.execPath = exports.title = 'browser';\nexports.pid = 1;\nexports.browser = true;\nexports.env = {};\nexports.argv = [];\n\nexports.binding = function (name) {\n\tthrow new Error('No such module. (Possibly not yet loaded)')\n};\n\n(function () {\n var cwd = '/';\n var path;\n exports.cwd = function () { return cwd };\n exports.chdir = function (dir) {\n if (!path) path = require('path');\n cwd = path.resolve(dir, cwd);\n };\n})();\n\nexports.exit = exports.kill = \nexports.umask = exports.dlopen = \nexports.uptime = exports.memoryUsage = \nexports.uvCounters = function() {};\nexports.features = {};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","/*!\n * Chart.js v3.9.1\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\n */\nfunction noop() {}\nconst uid = (function() {\n let id = 0;\n return function() {\n return id++;\n };\n}());\nfunction isNullOrUndef(value) {\n return value === null || typeof value === 'undefined';\n}\nfunction isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\nconst isNumberFinite = (value) => (typeof value === 'number' || value instanceof Number) && isFinite(+value);\nfunction finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\nfunction valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100\n : value / dimension;\nconst toDimension = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100 * dimension\n : +value;\nfunction callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\nfunction _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\nfunction clone$1(source) {\n if (isArray(source)) {\n return source.map(clone$1);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for (; k < klen; ++k) {\n target[keys[k]] = clone$1(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\nfunction _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n merge(tval, sval, options);\n } else {\n target[key] = clone$1(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [source];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n for (let i = 0; i < ilen; ++i) {\n source = sources[i];\n if (!isObject(source)) {\n continue;\n }\n const keys = Object.keys(source);\n for (let k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, source, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n return merge(target, source, {merger: _mergerIf});\n}\nfunction _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone$1(sval);\n }\n}\nfunction _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous +\n\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\nconst keyResolvers = {\n '': v => v,\n x: o => o.x,\n y: o => o.y\n};\nfunction resolveObjectKey(obj, key) {\n const resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n return resolver(obj);\n}\nfunction _getKeyResolver(key) {\n const keys = _splitKey(key);\n return obj => {\n for (const k of keys) {\n if (k === '') {\n break;\n }\n obj = obj && obj[k];\n }\n return obj;\n };\n}\nfunction _splitKey(key) {\n const parts = key.split('.');\n const keys = [];\n let tmp = '';\n for (const part of parts) {\n tmp += part;\n if (tmp.endsWith('\\\\')) {\n tmp = tmp.slice(0, -1) + '.';\n } else {\n keys.push(tmp);\n tmp = '';\n }\n }\n return keys;\n}\nfunction _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value) => typeof value !== 'undefined';\nconst isFunction = (value) => typeof value === 'function';\nconst setsEqual = (a, b) => {\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a) {\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\nfunction _isClickEvent(e) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\nconst PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction niceNum(range) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\nfunction _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b) => a - b).pop();\n return result;\n}\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return ((rounded - epsilon) <= x) && ((rounded + epsilon) >= x);\n}\nfunction _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\nfunction _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n return p;\n}\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < (-0.5 * PI)) {\n angle += TAU;\n }\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\nfunction _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\nfunction _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\nfunction _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || (sameAngleIsFullCircle && s === e)\n || (angleToStart > angleToEnd && startToAngle < endToAngle);\n}\nfunction _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\nfunction _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\nfunction _isBetween(value, start, end, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || ((index) => table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while (hi - lo > 1) {\n mid = (lo + hi) >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {lo, hi};\n}\nconst _lookupByKey = (table, key, value, last) =>\n _lookup(table, value, last\n ? index => table[index][key] <= value\n : index => table[index][key] < value);\nconst _rlookupByKey = (table, key, value) =>\n _lookup(table, value, index => table[index][key] >= value);\nfunction _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while (start < end && values[start] < min) {\n start++;\n }\n while (end > start && values[end - 1] > max) {\n end--;\n }\n return start > 0 || end < values.length\n ? values.slice(start, end)\n : values;\n}\nconst arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n arrayEvents.forEach((key) => {\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value(...args) {\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach((object) => {\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach((key) => {\n delete array[key];\n });\n delete array._chartjs;\n}\nfunction _arrayUnique(items) {\n const set = new Set();\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n set.add(items[i]);\n }\n if (set.size === ilen) {\n return items;\n }\n return Array.from(set);\n}\n\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\nconst requestAnimFrame = (function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}());\nfunction throttled(fn, thisArg, updateFn) {\n const updateArgs = updateFn || ((args) => Array.prototype.slice.call(args));\n let ticking = false;\n let args = [];\n return function(...rest) {\n args = updateArgs(rest);\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, () => {\n ticking = false;\n fn.apply(thisArg, args);\n });\n }\n };\n}\nfunction debounce(fn, delay) {\n let timeout;\n return function(...args) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\nconst _toLeftRightCenter = (align) => align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\nconst _alignStartEnd = (align, start, end) => align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\nconst _textX = (align, left, right, rtl) => {\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\nfunction _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n const pointCount = points.length;\n let start = 0;\n let count = pointCount;\n if (meta._sorted) {\n const {iScale, _parsed} = meta;\n const axis = iScale.axis;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(Math.min(\n _lookupByKey(_parsed, iScale.axis, min).lo,\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo),\n 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(Math.max(\n _lookupByKey(_parsed, iScale.axis, max, true).hi + 1,\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1),\n start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n return {start, count};\n}\nfunction _scaleRangesChanged(meta) {\n const {xScale, yScale, _scaleRanges} = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min\n\t\t|| _scaleRanges.xmax !== xScale.max\n\t\t|| _scaleRanges.ymin !== yScale.min\n\t\t|| _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nconst atEdge = (t) => t === 0 || t === 1;\nconst elasticIn = (t, s, p) => -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p) => Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\nconst effects = {\n linear: t => t,\n easeInQuad: t => t * t,\n easeOutQuad: t => -t * (t - 2),\n easeInOutQuad: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t\n : -0.5 * ((--t) * (t - 2) - 1),\n easeInCubic: t => t * t * t,\n easeOutCubic: t => (t -= 1) * t * t + 1,\n easeInOutCubic: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t\n : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: t => t * t * t * t,\n easeOutQuart: t => -((t -= 1) * t * t * t - 1),\n easeInOutQuart: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t\n : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: t => t * t * t * t * t,\n easeOutQuint: t => (t -= 1) * t * t * t * t + 1,\n easeInOutQuint: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t * t\n : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: t => -Math.cos(t * HALF_PI) + 1,\n easeOutSine: t => Math.sin(t * HALF_PI),\n easeInOutSine: t => -0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: t => (t === 0) ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: t => (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: t => atEdge(t) ? t : t < 0.5\n ? 0.5 * Math.pow(2, 10 * (t * 2 - 1))\n : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: t => (t >= 1) ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: t => Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: t => ((t /= 0.5) < 1)\n ? -0.5 * (Math.sqrt(1 - t * t) - 1)\n : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: t => atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: t => atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic(t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t :\n t < 0.5\n ? 0.5 * elasticIn(t * 2, s, p)\n : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack(t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack(t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n },\n easeInBounce: t => 1 - effects.easeOutBounce(1 - t),\n easeOutBounce(t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < (1 / d)) {\n return m * t * t;\n }\n if (t < (2 / d)) {\n return m * (t -= (1.5 / d)) * t + 0.75;\n }\n if (t < (2.5 / d)) {\n return m * (t -= (2.25 / d)) * t + 0.9375;\n }\n return m * (t -= (2.625 / d)) * t + 0.984375;\n },\n easeInOutBounce: t => (t < 0.5)\n ? effects.easeInBounce(t * 2) * 0.5\n : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5,\n};\n\n/*!\n * @kurkle/color v0.2.1\n * https://github.com/kurkle/color#readme\n * (c) 2022 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v\n ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n : undefined;\n}\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return ((g - b) / d) + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (\n Array.isArray(a)\n ? f(a[0], a[1], a[2])\n : f(a, b, c)\n ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255\n ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n : `hsl(${h}, ${s}%, ${l}%)`;\n}\nconst map = {\n x: 'dark',\n Z: 'light',\n Y: 're',\n X: 'blu',\n W: 'gr',\n V: 'medium',\n U: 'slate',\n A: 'ee',\n T: 'ol',\n S: 'or',\n B: 'ra',\n C: 'lateg',\n D: 'ights',\n R: 'in',\n Q: 'turquois',\n E: 'hi',\n P: 'ro',\n O: 'al',\n N: 'le',\n M: 'de',\n L: 'yello',\n F: 'en',\n K: 'ch',\n G: 'arks',\n H: 'ea',\n I: 'ightg',\n J: 'wh'\n};\nconst names$1 = {\n OiceXe: 'f0f8ff',\n antiquewEte: 'faebd7',\n aqua: 'ffff',\n aquamarRe: '7fffd4',\n azuY: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '0',\n blanKedOmond: 'ffebcd',\n Xe: 'ff',\n XeviTet: '8a2be2',\n bPwn: 'a52a2a',\n burlywood: 'deb887',\n caMtXe: '5f9ea0',\n KartYuse: '7fff00',\n KocTate: 'd2691e',\n cSO: 'ff7f50',\n cSnflowerXe: '6495ed',\n cSnsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: 'ffff',\n xXe: '8b',\n xcyan: '8b8b',\n xgTMnPd: 'b8860b',\n xWay: 'a9a9a9',\n xgYF: '6400',\n xgYy: 'a9a9a9',\n xkhaki: 'bdb76b',\n xmagFta: '8b008b',\n xTivegYF: '556b2f',\n xSange: 'ff8c00',\n xScEd: '9932cc',\n xYd: '8b0000',\n xsOmon: 'e9967a',\n xsHgYF: '8fbc8f',\n xUXe: '483d8b',\n xUWay: '2f4f4f',\n xUgYy: '2f4f4f',\n xQe: 'ced1',\n xviTet: '9400d3',\n dAppRk: 'ff1493',\n dApskyXe: 'bfff',\n dimWay: '696969',\n dimgYy: '696969',\n dodgerXe: '1e90ff',\n fiYbrick: 'b22222',\n flSOwEte: 'fffaf0',\n foYstWAn: '228b22',\n fuKsia: 'ff00ff',\n gaRsbSo: 'dcdcdc',\n ghostwEte: 'f8f8ff',\n gTd: 'ffd700',\n gTMnPd: 'daa520',\n Way: '808080',\n gYF: '8000',\n gYFLw: 'adff2f',\n gYy: '808080',\n honeyMw: 'f0fff0',\n hotpRk: 'ff69b4',\n RdianYd: 'cd5c5c',\n Rdigo: '4b0082',\n ivSy: 'fffff0',\n khaki: 'f0e68c',\n lavFMr: 'e6e6fa',\n lavFMrXsh: 'fff0f5',\n lawngYF: '7cfc00',\n NmoncEffon: 'fffacd',\n ZXe: 'add8e6',\n ZcSO: 'f08080',\n Zcyan: 'e0ffff',\n ZgTMnPdLw: 'fafad2',\n ZWay: 'd3d3d3',\n ZgYF: '90ee90',\n ZgYy: 'd3d3d3',\n ZpRk: 'ffb6c1',\n ZsOmon: 'ffa07a',\n ZsHgYF: '20b2aa',\n ZskyXe: '87cefa',\n ZUWay: '778899',\n ZUgYy: '778899',\n ZstAlXe: 'b0c4de',\n ZLw: 'ffffe0',\n lime: 'ff00',\n limegYF: '32cd32',\n lRF: 'faf0e6',\n magFta: 'ff00ff',\n maPon: '800000',\n VaquamarRe: '66cdaa',\n VXe: 'cd',\n VScEd: 'ba55d3',\n VpurpN: '9370db',\n VsHgYF: '3cb371',\n VUXe: '7b68ee',\n VsprRggYF: 'fa9a',\n VQe: '48d1cc',\n VviTetYd: 'c71585',\n midnightXe: '191970',\n mRtcYam: 'f5fffa',\n mistyPse: 'ffe4e1',\n moccasR: 'ffe4b5',\n navajowEte: 'ffdead',\n navy: '80',\n Tdlace: 'fdf5e6',\n Tive: '808000',\n TivedBb: '6b8e23',\n Sange: 'ffa500',\n SangeYd: 'ff4500',\n ScEd: 'da70d6',\n pOegTMnPd: 'eee8aa',\n pOegYF: '98fb98',\n pOeQe: 'afeeee',\n pOeviTetYd: 'db7093',\n papayawEp: 'ffefd5',\n pHKpuff: 'ffdab9',\n peru: 'cd853f',\n pRk: 'ffc0cb',\n plum: 'dda0dd',\n powMrXe: 'b0e0e6',\n purpN: '800080',\n YbeccapurpN: '663399',\n Yd: 'ff0000',\n Psybrown: 'bc8f8f',\n PyOXe: '4169e1',\n saddNbPwn: '8b4513',\n sOmon: 'fa8072',\n sandybPwn: 'f4a460',\n sHgYF: '2e8b57',\n sHshell: 'fff5ee',\n siFna: 'a0522d',\n silver: 'c0c0c0',\n skyXe: '87ceeb',\n UXe: '6a5acd',\n UWay: '708090',\n UgYy: '708090',\n snow: 'fffafa',\n sprRggYF: 'ff7f',\n stAlXe: '4682b4',\n tan: 'd2b48c',\n teO: '8080',\n tEstN: 'd8bfd8',\n tomato: 'ff6347',\n Qe: '40e0d0',\n viTet: 'ee82ee',\n JHt: 'f5deb3',\n wEte: 'ffffff',\n wEtesmoke: 'f5f5f5',\n Lw: 'ffff00',\n LwgYF: '9acd32'\n};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (\n v.a < 255\n ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n : `rgb(${v.r}, ${v.g}, ${v.b})`\n );\n}\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {r: 0, g: 0, b: 0, a: 255};\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {r: input[0], g: input[1], b: input[2], a: 255};\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\nfunction index_esm(input) {\n return new Color(input);\n}\n\nfunction isPatternOrGradient(value) {\n if (value && typeof value === 'object') {\n const type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n return false;\n}\nfunction color(value) {\n return isPatternOrGradient(value) ? value : index_esm(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value)\n ? value\n : index_esm(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\nfunction getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for (let i = 0, n = keys.length; i < n; ++i) {\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\nclass Defaults {\n constructor(_descriptors) {\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context) => context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options) => getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options) => getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options) => getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true,\n includeInvisible: false\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n this.describe(_descriptors);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get() {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set(value) {\n this[privateName] = value;\n }\n }\n });\n }\n}\nvar defaults = new Defaults({\n _scriptable: (name) => !name.startsWith('on'),\n _indexable: (name) => name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false,\n }\n});\n\nfunction toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\nfunction _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n if (thing !== undefined && thing !== null && isArray(thing) !== true) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\nfunction _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\nfunction clearCanvas(canvas, ctx) {\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n drawPointLegend(ctx, options, x, y, null);\n}\nfunction drawPointLegend(ctx, options, x, y, w) {\n let type, xOffset, yOffset, size, cornerRadius, width;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch (style) {\n default:\n if (w) {\n ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n } else {\n ctx.arc(x, y, radius, 0, TAU);\n }\n ctx.closePath();\n break;\n case 'triangle':\n ctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n ctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n width = w ? w / 2 : size;\n ctx.rect(x - width, y - size, 2 * width, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n case 'rectRot':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + yOffset, y - xOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n case 'cross':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'star':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n rad += QUARTER_PI;\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'line':\n xOffset = w ? w / 2 : Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\nfunction _isPointInArea(point, area, margin) {\n margin = margin || 0.5;\n return !area || (point && point.x > area.left - margin && point.x < area.right + margin &&\n\t\tpoint.y > area.top - margin && point.y < area.bottom + margin);\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\nfunction _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\nfunction _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(\n flip ? previous.cp1x : previous.cp2x,\n flip ? previous.cp1y : previous.cp2y,\n flip ? target.cp2x : target.cp1x,\n flip ? target.cp2y : target.cp1y,\n target.x,\n target.y);\n}\nfunction renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [text];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += font.lineHeight;\n }\n ctx.restore();\n}\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\nfunction addRoundedRectPath(ctx, rect) {\n const {x, y, w, h, radius} = rect;\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, -HALF_PI, PI, true);\n ctx.lineTo(x, y + h - radius.bottomLeft);\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n ctx.lineTo(x + w, y + radius.topRight);\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nconst LINE_HEIGHT = new RegExp(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\nconst FONT_STYLE = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);\nfunction toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch (matches[3]) {\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = v => +v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value)\n ? objProps\n ? prop => valueOrDefault(value[prop], value[props[prop]])\n : prop => value[prop]\n : () => value;\n for (const prop of keys) {\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\nfunction toTRBL(value) {\n return _readValueToProps(value, {top: 'y', right: 'x', bottom: 'y', left: 'x'});\n}\nfunction toTRBLCorners(value) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\nfunction toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\nfunction toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = '';\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\nfunction resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\nfunction _addGrace(minmax, grace, beginAtZero) {\n const {min, max} = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value, add) => beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\nfunction _createResolver(scopes, prefixes = [''], rootScopes = scopes, fallback, getTarget = () => scopes[0]) {\n if (!defined(fallback)) {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: rootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope) => _createResolver([scope, ...scopes], prefixes, rootScopes, fallback),\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete target._keys;\n delete scopes[0][prop];\n return true;\n },\n get(target, prop) {\n return _cached(target, prop,\n () => _resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n has(target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n set(target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value;\n delete target._keys;\n return true;\n }\n });\n}\nfunction _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx) => _attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope) => _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete proxy[prop];\n return true;\n },\n get(target, prop, receiver) {\n return _cached(target, prop,\n () => _resolveWithContext(target, prop, receiver));\n },\n getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys\n ? Reflect.has(proxy, prop) ? {enumerable: true, configurable: true} : undefined\n : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n set(target, prop, value) {\n proxy[prop] = value;\n delete target[prop];\n return true;\n }\n });\n}\nfunction _descriptors(proxy, defaults = {scriptable: true, indexable: true}) {\n const {_scriptable = defaults.scriptable, _indexable = defaults.indexable, _allKeys = defaults.allKeys} = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : () => _scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : () => _indexable\n };\n}\nconst readKey = (prefix, name) => prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value) => isObject(value) && prop !== 'adapters' &&\n (Object.getPrototypeOf(value) === null || value.constructor === Object);\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop)) {\n return target[prop];\n }\n const value = resolve();\n target[prop] = value;\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n let value = _proxy[prop];\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, value, target, receiver) {\n const {_proxy, _context, _subProxy, _stack} = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n value = value(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n if (defined(_context.index) && isIndexable(prop)) {\n value = value[_context.index % value.length];\n } else if (isObject(value[0])) {\n const arr = value;\n const scopes = _proxy._scopes.filter(s => s !== arr);\n value = [];\n for (const item of arr) {\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent) => key === true ? parent\n : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n for (const parent of parentScopes) {\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (defined(fallback) && fallback !== key && fallback !== parentFallback) {\n return fallback;\n }\n } else if (scope === false && defined(parentFallback) && key !== parentFallback) {\n return null;\n }\n }\n return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [...parentScopes, ...rootScopes];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (defined(fallback) && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [''], rootScopes, fallback,\n () => subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n return value;\n }\n return target;\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes) {\n value = _resolve(readKey(prefix, prop), scopes);\n if (defined(value)) {\n return needsSubResolver(prop, value)\n ? createSubResolver(scopes, proxy, prop, value)\n : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes) {\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (defined(value)) {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes) {\n for (const key of Object.keys(scope).filter(k => !k.startsWith('_'))) {\n set.add(key);\n }\n }\n return Array.from(set);\n}\nfunction _parseObjectDataRadialScale(meta, data, start, count) {\n const {iScale} = meta;\n const {key = 'r'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n r: iScale.parse(resolveObjectKey(item, key), index)\n };\n }\n return parsed;\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i) => i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis) => indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01;\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\nfunction monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\nfunction splineCurveMonotone(points, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i]\n : !pointAfter ? deltaK[i - 1]\n : (sign(deltaK[i - 1]) !== sign(deltaK[i])) ? 0\n : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\nfunction _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n if (options.spanGaps) {\n points = points.filter((pt) => !pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(\n prev,\n point,\n points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen],\n options.tension\n );\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\nfunction _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\nfunction _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\nfunction parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = (element) => window.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = ['top', 'right', 'bottom', 'left'];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for (let i = 0; i < 4; i++) {\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target) => (x > 0 || y > 0) && (!target || !target.shadowRoot);\nfunction getCanvasPosition(e, canvas) {\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const {offsetX, offsetY} = source;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {x, y, box};\n}\nfunction getRelativePosition(evt, chart) {\n if ('native' in evt) {\n return evt;\n }\n const {canvas, currentDevicePixelRatio} = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const {x, y, box} = getCanvasPosition(evt, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let {width, height} = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect();\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = v => Math.round(v * 10) / 10;\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let {width, height} = containerSize;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n height = round1(width / 2);\n }\n return {\n width,\n height\n };\n}\nfunction retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = Math.floor(chart.height * pixelRatio);\n const deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = deviceHeight / pixelRatio;\n chart.width = deviceWidth / pixelRatio;\n const canvas = chart.canvas;\n if (canvas.style && (forceStyle || (!canvas.style.height && !canvas.style.width))) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio\n || canvas.height !== deviceHeight\n || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\nconst supportsEventListenerOptions = (function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive() {\n passiveSupported = true;\n return false;\n }\n };\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {\n }\n return passiveSupported;\n}());\nfunction readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\nfunction _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\nfunction _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y\n : mode === 'after' ? t < 1 ? p1.y : p2.y\n : t > 0 ? p2.y : p1.y\n };\n}\nfunction _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {x: p1.cp2x, y: p1.cp2y};\n const cp2 = {x: p2.cp1x, y: p2.cp1y};\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n return {\n x(x) {\n return rectX + rectX + width - x;\n },\n setWidth(w) {\n width = w;\n },\n textAlign(align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus(x, value) {\n return x - value;\n },\n leftForLtr(x, itemWidth) {\n return x - itemWidth;\n },\n };\n};\nconst getLeftToRightAdapter = function() {\n return {\n x(x) {\n return x;\n },\n setWidth(w) {\n },\n textAlign(align) {\n return align;\n },\n xPlus(x, value) {\n return x + value;\n },\n leftForLtr(x, _itemWidth) {\n return x;\n },\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction'),\n ];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle,\n };\n }\n return {\n between: _isBetween,\n compare: (a, b) => a - b,\n normalize: x => x\n };\n}\nfunction normalizeSegment({start, end, count, loop, style}) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const {property, start: startBound, end: endBound} = bounds;\n const {between, normalize} = propertyFn(property);\n const count = points.length;\n let {start, end, loop} = segment;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {start, end, loop, style: segment.style};\n}\nfunction _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n const {property, start: startBound, end: endBound} = bounds;\n const count = points.length;\n const {compare, between, normalize} = propertyFn(property);\n const {start, end, loop, style} = getSegment(segment, points, bounds);\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = () => between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = () => compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = () => inside || startIsBefore();\n const shouldStop = () => !inside || endIsBefore();\n for (let i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({start: subStart, end: i, loop, count, style}));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({start: subStart, end, loop, count, style}));\n }\n return result;\n}\nfunction _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for (let i = 0; i < segments.length; i++) {\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n while (start < count && points[start].skip) {\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while (end > start && points[end % count].skip) {\n end--;\n }\n end %= count;\n return {start, end};\n}\nfunction solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for (end = start + 1; end <= max; ++end) {\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({start: start % count, end: (end - 1) % count, loop});\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({start: start % count, end: last % count, loop});\n }\n return result;\n}\nfunction _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const {start, end} = findStartAndEnd(points, count, loop, spanGaps);\n if (spanGaps === true) {\n return splitByStyles(line, [{start, end, loop}], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\nfunction splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\nfunction doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const {_datasetIndex: datasetIndex, options: {spanGaps}} = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n s += count;\n while (points[s % count].skip) {\n s -= dir;\n }\n while (points[e % count].skip) {\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({start: s % count, end: e % count, loop: l, style: st});\n prevStyle = st;\n start = e % count;\n }\n }\n for (const segment of segments) {\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for (i = start + 1; i <= segment.end; i++) {\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n return prevStyle && JSON.stringify(style) !== JSON.stringify(prevStyle);\n}\n\nexport { _isPointInArea as $, _factorize as A, finiteOrDefault as B, callback as C, _addGrace as D, _limitValue as E, toDegrees as F, _measureText as G, HALF_PI as H, _int16Range as I, _alignPixel as J, toPadding as K, clipArea as L, renderText as M, unclipArea as N, toFont as O, PI as P, each as Q, _toLeftRightCenter as R, _alignStartEnd as S, TAU as T, overrides as U, merge as V, _capitalize as W, getRelativePosition as X, _rlookupByKey as Y, _lookupByKey as Z, _arrayUnique as _, resolve as a, toLineHeight as a$, getAngleFromPoint as a0, getMaximumSize as a1, _getParentNode as a2, readUsedSize as a3, throttled as a4, supportsEventListenerOptions as a5, _isDomSupported as a6, descriptors as a7, isFunction as a8, _attachContext as a9, getRtlAdapter as aA, overrideTextDirection as aB, _textX as aC, restoreTextDirection as aD, drawPointLegend as aE, noop as aF, distanceBetweenPoints as aG, _setMinAndMaxByKey as aH, niceNum as aI, almostWhole as aJ, almostEquals as aK, _decimalPlaces as aL, _longestText as aM, _filterBetween as aN, _lookup as aO, isPatternOrGradient as aP, getHoverColor as aQ, clone$1 as aR, _merger as aS, _mergerIf as aT, _deprecated as aU, _splitKey as aV, toFontString as aW, splineCurve as aX, splineCurveMonotone as aY, getStyle as aZ, fontString as a_, _createResolver as aa, _descriptors as ab, mergeIf as ac, uid as ad, debounce as ae, retinaScale as af, clearCanvas as ag, setsEqual as ah, _elementsEqual as ai, _isClickEvent as aj, _isBetween as ak, _readValueToProps as al, _updateBezierControlPoints as am, _computeSegments as an, _boundSegments as ao, _steppedInterpolation as ap, _bezierInterpolation as aq, _pointInLine as ar, _steppedLineTo as as, _bezierCurveTo as at, drawPoint as au, addRoundedRectPath as av, toTRBL as aw, toTRBLCorners as ax, _boundSegment as ay, _normalizeAngle as az, isArray as b, PITAU as b0, INFINITY as b1, RAD_PER_DEG as b2, QUARTER_PI as b3, TWO_THIRDS_PI as b4, _angleDiff as b5, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, createContext as h, isObject as i, defined as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, _getStartAndCountOfVisiblePoints as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _scaleRangesChanged as w, isNumber as x, _parseObjectDataRadialScale as y, log10 as z };\n","/*!\n * Chart.js v3.9.1\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as color, d as defaults, i as isObject, b as isArray, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as createContext, j as defined, s as sign, k as isNullOrUndef, _ as _arrayUnique, t as toRadians, m as toPercentage, n as toDimension, T as TAU, o as formatNumber, p as _angleBetween, H as HALF_PI, P as PI, q as _getStartAndCountOfVisiblePoints, w as _scaleRangesChanged, x as isNumber, y as _parseObjectDataRadialScale, z as log10, A as _factorize, B as finiteOrDefault, C as callback, D as _addGrace, E as _limitValue, F as toDegrees, G as _measureText, I as _int16Range, J as _alignPixel, K as toPadding, L as clipArea, M as renderText, N as unclipArea, O as toFont, Q as each, R as _toLeftRightCenter, S as _alignStartEnd, U as overrides, V as merge, W as _capitalize, X as getRelativePosition, Y as _rlookupByKey, Z as _lookupByKey, $ as _isPointInArea, a0 as getAngleFromPoint, a1 as getMaximumSize, a2 as _getParentNode, a3 as readUsedSize, a4 as throttled, a5 as supportsEventListenerOptions, a6 as _isDomSupported, a7 as descriptors, a8 as isFunction, a9 as _attachContext, aa as _createResolver, ab as _descriptors, ac as mergeIf, ad as uid, ae as debounce, af as retinaScale, ag as clearCanvas, ah as setsEqual, ai as _elementsEqual, aj as _isClickEvent, ak as _isBetween, al as _readValueToProps, am as _updateBezierControlPoints, an as _computeSegments, ao as _boundSegments, ap as _steppedInterpolation, aq as _bezierInterpolation, ar as _pointInLine, as as _steppedLineTo, at as _bezierCurveTo, au as drawPoint, av as addRoundedRectPath, aw as toTRBL, ax as toTRBLCorners, ay as _boundSegment, az as _normalizeAngle, aA as getRtlAdapter, aB as overrideTextDirection, aC as _textX, aD as restoreTextDirection, aE as drawPointLegend, aF as noop, aG as distanceBetweenPoints, aH as _setMinAndMaxByKey, aI as niceNum, aJ as almostWhole, aK as almostEquals, aL as _decimalPlaces, aM as _longestText, aN as _filterBetween, aO as _lookup } from './chunks/helpers.segment.mjs';\nexport { d as defaults } from './chunks/helpers.segment.mjs';\n\nclass Animator {\n constructor() {\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n callbacks.forEach(fn => fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n this._request = requestAnimFrame.call(window, () => {\n this._update();\n this._request = null;\n if (this._running) {\n this._refresh();\n }\n });\n }\n _update(date = Date.now()) {\n let remaining = 0;\n this._charts.forEach((anims, chart) => {\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n for (; i >= 0; --i) {\n item = items[i];\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n remaining += items.length;\n });\n this._lastDate = date;\n if (remaining === 0) {\n this._running = false;\n }\n }\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur) => Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n for (; i >= 0; --i) {\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\nvar animator = new Animator();\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean(from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color(from, to, factor) {\n const c0 = color(from || transparent);\n const c1 = c0.valid && color(to || transparent);\n return c1 && c1.valid\n ? c1.mix(c0, factor).hexString()\n : to;\n },\n number(from, to, factor) {\n return from + (to - from) * factor;\n }\n};\nclass Animation {\n constructor(cfg, target, prop, to) {\n const currentValue = target[prop];\n to = resolve([cfg.to, to, currentValue, cfg.from]);\n const from = resolve([cfg.from, currentValue, to]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n active() {\n return this._active;\n }\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([cfg.to, to, currentValue, cfg.from]);\n this._from = resolve([cfg.from, currentValue, to]);\n }\n }\n cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n this._active = from !== to && (loop || (elapsed < duration));\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n factor = (elapsed / duration) % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n this._target[prop] = this._fn(from, to, factor);\n }\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej) => {\n promises.push({res, rej});\n });\n }\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for (let i = 0; i < promises.length; i++) {\n promises[i][method]();\n }\n }\n}\n\nconst numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nconst colors = ['color', 'borderColor', 'backgroundColor'];\ndefaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined,\n});\nconst animationOptions = Object.keys(defaults.animation);\ndefaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name) => name !== 'onProgress' && name !== 'onComplete' && name !== 'fn',\n});\ndefaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n },\n});\ndefaults.describe('animations', {\n _fallback: 'animation',\n});\ndefaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n },\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: v => v | 0\n },\n }\n }\n});\nclass Animations {\n constructor(chart, config) {\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n const animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach(key => {\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions) {\n resolved[option] = cfg[option];\n }\n (isArray(cfg.properties) && cfg.properties || [key]).forEach((prop) => {\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(() => {\n target.options = newOptions;\n }, () => {\n });\n }\n return animations;\n }\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n for (i = props.length - 1; i >= 0; --i) {\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n const animations = this._createAnimations(target, values);\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for (let i = 0; i < keys.length; i++) {\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {$shared: false, $animations: {}});\n }\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\nfunction toClip(value) {\n let t, r, b, l;\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n keys.push(metasets[i].index);\n }\n return keys;\n}\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n if (value === null) {\n return;\n }\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isNumberFinite(otherValue) && (singleMode || (value === 0 || sign(value) === sign(otherValue)))) {\n value += otherValue;\n }\n }\n return value;\n}\nfunction convertObjectDataToArray(data) {\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n adata[i] = {\n x: key,\n y: data[key]\n };\n }\n return adata;\n}\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || (stacked === undefined && meta.stack !== undefined);\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n const {min, max, minDefined, maxDefined} = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()) {\n const value = stack[meta.index];\n if ((positive && value > 0) || (!positive && value < 0)) {\n return meta.index;\n }\n }\n return null;\n}\nfunction updateStacks(controller, parsed) {\n const {chart, _cachedMeta: meta} = controller;\n const stacks = chart._stacks || (chart._stacks = {});\n const {iScale, vScale, index: datasetIndex} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n for (let i = 0; i < ilen; ++i) {\n const item = parsed[i];\n const {[iAxis]: index, [vAxis]: value} = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n }\n}\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter(key => scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n return createContext(parent,\n {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n }\n );\n}\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\nfunction clearStacks(meta, items) {\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n items = items || meta._parsed;\n for (const parsed of items) {\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n }\n}\nconst isDirectUpdateMode = (mode) => mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared) => shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart) => canStack && !meta.hidden && meta._stacked\n && {keys: getSortedDatasetIndices(chart, true), values: null};\nclass DatasetController {\n constructor(chart, datasetIndex) {\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.supportsDecimation = false;\n this.$context = undefined;\n this._syncList = [];\n this.initialize();\n }\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n }\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n const chooseId = (axis, x, y, r) => axis === 'x' ? x : axis === 'r' ? r : y;\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale\n ? meta.vScale\n : meta.iScale;\n }\n reset() {\n this._update('reset');\n }\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n if (isObject(data)) {\n this._data = convertObjectDataToArray(data);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, this);\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n addElements() {\n const meta = this._cachedMeta;\n this._dataCheck();\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n this._dataCheck();\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n this._resyncElements(resetNewElements);\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n }\n }\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n this._cachedDataOpts = {};\n }\n parse(start, count) {\n const {_cachedMeta: meta, _data: data} = this;\n const {iScale, _stacked} = meta;\n const iAxis = iScale.axis;\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n const isNotInOrderComparedToPrev = () => cur[iAxis] === null || (prev && cur[iAxis] < prev[iAxis]);\n for (i = 0; i < count; ++i) {\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n parsePrimitiveData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]\n };\n return applyStack(stack, value, meta.index, {mode});\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n const {min: otherMin, max: otherMax} = getUserBounds(otherScale);\n let i, parsed;\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n for (i = 0; i < ilen; ++i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n break;\n }\n }\n if (sorted) {\n for (i = ilen - 1; i >= 0; --i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n for (i = 0, ilen = parsed.length; i < ilen; ++i) {\n value = parsed[i][scale.axis];\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n getMaxOverflow() {\n return false;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n _update(mode) {\n const meta = this._cachedMeta;\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n update(mode) {}\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || (elements.length - start);\n const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n let i;\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n for (i = start; i < start + count; ++i) {\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n for (i = 0; i < active.length; ++i) {\n active[i].draw(ctx, area);\n }\n }\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset\n ? this.resolveDatasetElementOptions(mode)\n : this.resolveDataElementOptions(index || 0, mode);\n }\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context ||\n (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context ||\n (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [`${elementType}Hover`, 'hover', elementType, ''] : [elementType, ''];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n const context = () => this.getContext(index, active);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n return values;\n }\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n _getSharedOptions(start, mode) {\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const previouslySharedOptions = this._sharedOptions;\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions) || (sharedOptions !== previouslySharedOptions);\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n return {sharedOptions, includeOptions};\n }\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n options: (!active && this.getSharedOptions(options)) || options\n });\n }\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n for (const [method, arg1, arg2] of this._syncList) {\n this[method](arg1, arg2);\n }\n this._syncList = [];\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n if (count) {\n this.parse(0, count);\n }\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n const move = (arr) => {\n arr.length += count;\n for (i = arr.length - 1; i >= end; i--) {\n arr[i] = arr[i - count];\n }\n };\n move(data);\n for (i = start; i < end; ++i) {\n data[i] = new this.dataElementType();\n }\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n updateElements(element, start, count, mode) {}\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n this.chart._dataChanges.push([this.index, ...args]);\n }\n _onDataPush() {\n const count = arguments.length;\n this._sync(['_insertElements', this.getDataset().data.length - count, count]);\n }\n _onDataPop() {\n this._sync(['_removeElements', this._cachedMeta.data.length - 1, 1]);\n }\n _onDataShift() {\n this._sync(['_removeElements', 0, 1]);\n }\n _onDataSplice(start, count) {\n if (count) {\n this._sync(['_removeElements', start, count]);\n }\n const newCount = arguments.length - 2;\n if (newCount) {\n this._sync(['_insertElements', start, newCount]);\n }\n }\n _onDataUnshift() {\n this._sync(['_insertElements', 0, arguments.length]);\n }\n}\nDatasetController.defaults = {};\nDatasetController.prototype.datasetElementType = null;\nDatasetController.prototype.dataElementType = null;\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n for (let i = 0, ilen = visibleMetas.length; i < ilen; i++) {\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b) => a - b));\n }\n return scale._cache.$bar;\n}\nfunction computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = () => {\n if (curr === 32767 || curr === -32768) {\n return;\n }\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n for (i = 0, ilen = values.length; i < ilen; ++i) {\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n prev = undefined;\n for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) {\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n return min;\n}\nfunction computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - (size / 2)\n };\n}\nfunction computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n if (next === null) {\n next = curr + curr - prev;\n }\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {start, end, reverse, top, bottom};\n}\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n if (edge === true) {\n properties.borderSkipped = {top: true, right: true, bottom: true, left: true};\n return;\n }\n const {start, end, reverse, top, bottom} = borderProps(properties);\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction setInflateAmount(properties, {inflateAmount}, ratio) {\n properties.inflateAmount = inflateAmount === 'auto'\n ? ratio === 1 ? 0.33 : 0\n : inflateAmount;\n}\nclass BarController extends DatasetController {\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseObjectData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n getMaxOverflow() {\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {iScale, vScale} = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom)\n ? '[' + custom.start + ', ' + custom.end + ']'\n : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const {index, _cachedMeta: {vScale}} = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n for (let i = start; i < start + count; i++) {\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {base, head: base} : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || (index === stack._top || index === stack._bottom),\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n _getStacks(last, dataIndex) {\n const {iScale} = this._cachedMeta;\n const metasets = iScale.getMatchingVisibleMetas(this._type)\n .filter(meta => meta.controller.options.grouped);\n const stacked = iScale.options.stacked;\n const stacks = [];\n const skipNull = (meta) => {\n const parsed = meta.controller.getParsed(dataIndex);\n const val = parsed && parsed[meta.vScale.axis];\n if (isNullOrUndef(val) || isNaN(val)) {\n return true;\n }\n };\n for (const meta of metasets) {\n if (dataIndex !== undefined && skipNull(meta)) {\n continue;\n }\n if (stacked === false || stacks.indexOf(meta.stack) === -1 ||\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\n stacks.push(meta.stack);\n }\n if (meta.index === last) {\n break;\n }\n }\n if (!stacks.length) {\n stacks.push(undefined);\n }\n return stacks;\n }\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = (name !== undefined)\n ? stacks.indexOf(name)\n : -1;\n return (index === -1)\n ? stacks.length - 1\n : index;\n }\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n for (i = 0, ilen = meta.data.length; i < ilen; ++i) {\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n _calculateBarValuePixels(index) {\n const {_cachedMeta: {vScale, _stacked}, options: {base: baseValue, minBarLength}} = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n if (length !== value) {\n start = length - value;\n length = value;\n }\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n size = head - base;\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n const startPixel = vScale.getPixelForDecimal(0);\n const endPixel = vScale.getPixelForDecimal(1);\n const min = Math.min(startPixel, endPixel);\n const max = Math.max(startPixel, endPixel);\n base = Math.max(Math.min(base, max), min);\n head = base + size;\n }\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex'\n ? computeFlexCategoryTraits(index, ruler, options, stackCount)\n : computeFitCategoryTraits(index, ruler, options, stackCount);\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined);\n center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n for (; i < ilen; ++i) {\n if (this.getParsed(i)[vScale.axis] !== null) {\n rects[i].draw(this._ctx);\n }\n }\n }\n}\nBarController.id = 'bar';\nBarController.defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'base', 'width', 'height']\n }\n }\n};\nBarController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true,\n }\n }\n};\n\nclass BubbleController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {xScale, yScale} = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n return {\n label: meta.label,\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n update(mode) {\n const points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale} = this._cachedMeta;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n if (reset) {\n properties.options.radius = 0;\n }\n }\n this.updateElement(point, i, properties, mode);\n }\n }\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n if (values.$shared) {\n values = Object.assign({}, values, {$shared: false});\n }\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n}\nBubbleController.id = 'bubble';\nBubbleController.defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'borderWidth', 'radius']\n }\n }\n};\nBubbleController.overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n }\n }\n }\n }\n};\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {ratioX, ratioY, offsetX, offsetY};\n}\nclass DoughnutController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n linkScales() {}\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = (i) => +data[i];\n if (isObject(data[start])) {\n const {key = 'value'} = this._parsing;\n getter = (i) => +resolveObjectKey(data[i], key);\n }\n let i, ilen;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n meta._parsed[i] = getter(i);\n }\n }\n }\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n for (let i = 0; i < this.chart.data.datasets.length; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n return {\n rotation: min,\n circumference: max - min,\n };\n }\n update(mode) {\n const chart = this.chart;\n const {chartArea} = chart;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n const {circumference, rotation} = this._getRotationExtents();\n const {ratioX, ratioY, offsetX, offsetY} = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n meta.total = this.calculateTotal();\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if ((reset && opts.animation.animateRotate) || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n let startAngle = this._getRotation();\n let i;\n for (i = 0; i < start; ++i) {\n startAngle += this._circumference(i, reset);\n }\n for (i = start; i < start + count; ++i) {\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n }\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n for (i = 0; i < metaData.length; i++) {\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n return total;\n }\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n if (!arcs) {\n for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n break;\n }\n }\n }\n if (!arcs) {\n return 0;\n }\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n getMaxOffset(arcs) {\n let max = 0;\n for (let i = 0, ilen = arcs.length; i < ilen; ++i) {\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n for (let i = 0; i < datasetIndex; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n return ringWeightOffset;\n }\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\nDoughnutController.id = 'doughnut';\nDoughnutController.defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['circumference', 'endAngle', 'innerRadius', 'outerRadius', 'startAngle', 'x', 'y', 'offset', 'borderWidth', 'spacing']\n },\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r',\n};\nDoughnutController.descriptors = {\n _scriptable: (name) => name !== 'spacing',\n _indexable: (name) => name !== 'spacing',\n};\nDoughnutController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(tooltipItem) {\n let dataLabel = tooltipItem.label;\n const value = ': ' + tooltipItem.formattedValue;\n if (isArray(dataLabel)) {\n dataLabel = dataLabel.slice();\n dataLabel[0] += value;\n } else {\n dataLabel += value;\n }\n return dataLabel;\n }\n }\n }\n }\n};\n\nclass LineController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n this.supportsDecimation = true;\n super.initialize();\n }\n update(mode) {\n const meta = this._cachedMeta;\n const {dataset: line, data: points = [], _dataset} = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let {start, count} = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const {spanGaps, segment} = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for (let i = start; i < start + count; ++i) {\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (Math.abs(parsed[iAxis] - prevParsed[iAxis])) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\nLineController.id = 'line';\nLineController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false,\n};\nLineController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n },\n _value_: {\n type: 'linear',\n },\n }\n};\n\nclass PolarAreaController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const arcs = this._cachedMeta.data;\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n getMinMax() {\n const meta = this._cachedMeta;\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n meta.data.forEach((element, index) => {\n const parsed = this.getParsed(index).r;\n if (!isNaN(parsed) && this.chart.getDataVisibility(index)) {\n if (parsed < range.min) {\n range.min = parsed;\n }\n if (parsed > range.max) {\n range.max = parsed;\n }\n }\n });\n return range;\n }\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? (outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - (radiusLength * this.index);\n this.innerRadius = this.outerRadius - radiusLength;\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n const defaultAngle = 360 / this.countVisibleElements();\n for (i = 0; i < start; ++i) {\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for (i = start; i < start + count; i++) {\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(this.getParsed(i).r) : 0;\n angle = endAngle;\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n countVisibleElements() {\n const meta = this._cachedMeta;\n let count = 0;\n meta.data.forEach((element, index) => {\n if (!isNaN(this.getParsed(index).r) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index)\n ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle)\n : 0;\n }\n}\nPolarAreaController.id = 'polarArea';\nPolarAreaController.defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius']\n },\n },\n indexAxis: 'r',\n startAngle: 0,\n};\nPolarAreaController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(context) {\n return context.chart.data.labels[context.dataIndex] + ': ' + context.formattedValue;\n }\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n};\n\nclass PieController extends DoughnutController {\n}\nPieController.id = 'pie';\nPieController.defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n};\n\nclass RadarController extends DatasetController {\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n line.points = points;\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, this.getParsed(i).r);\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n}\nRadarController.id = 'radar';\nRadarController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n },\n};\nRadarController.overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear',\n }\n }\n};\n\nclass Element {\n constructor() {\n this.x = undefined;\n this.y = undefined;\n this.active = false;\n this.options = undefined;\n this.$animations = undefined;\n }\n tooltipPosition(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n getProps(props, final) {\n const anims = this.$animations;\n if (!final || !anims) {\n return this;\n }\n const ret = {};\n props.forEach(prop => {\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop];\n });\n return ret;\n }\n}\nElement.defaults = {};\nElement.defaultRoutes = undefined;\n\nconst formatters = {\n values(value) {\n return isArray(value) ? value : '' + value;\n },\n numeric(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue;\n if (ticks.length > 1) {\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n delta = calculateDelta(tickValue, ticks);\n }\n const logDelta = log10(Math.abs(delta));\n const numDecimal = Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n const options = {notation, minimumFractionDigits: numDecimal, maximumFractionDigits: numDecimal};\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = tickValue / (Math.pow(10, Math.floor(log10(tickValue))));\n if (remain === 1 || remain === 2 || remain === 5) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n};\nfunction calculateDelta(tickValue, ticks) {\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\nvar Ticks = {formatters};\n\ndefaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawBorder: true,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options) => options.lineWidth,\n tickColor: (_ctx, options) => options.color,\n offset: false,\n borderDash: [],\n borderDashOffset: 0.0,\n borderWidth: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2,\n }\n});\ndefaults.route('scale.ticks', 'color', '', 'color');\ndefaults.route('scale.grid', 'color', '', 'borderColor');\ndefaults.route('scale.grid', 'borderColor', '', 'borderColor');\ndefaults.route('scale.title', 'color', '', 'color');\ndefaults.describe('scale', {\n _fallback: false,\n _scriptable: (name) => !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name) => name !== 'borderDash' && name !== 'tickBorderDash',\n});\ndefaults.describe('scales', {\n _fallback: 'scale',\n});\ndefaults.describe('scale.ticks', {\n _scriptable: (name) => name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name) => name !== 'backdropPadding',\n});\n\nfunction autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const ticksLimit = tickOpts.maxTicksLimit || determineMaxTicks(scale);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\nfunction calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n const factors = _factorize(evenMajorSpacing);\n for (let i = 0, ilen = factors.length - 1; i < ilen; i++) {\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\nfunction getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\nfunction skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n spacing = Math.ceil(spacing);\n for (i = 0; i < ticks.length; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\nfunction skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n next = start;\n while (next < 0) {\n count++;\n next = Math.round(start + count * spacing);\n }\n for (i = Math.max(start, 0); i < end; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\nfunction getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n if (len < 2) {\n return false;\n }\n for (diff = arr[0], i = 1; i < len; ++i) {\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n\nconst reverseAlign = (align) => align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset) => edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nfunction sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n for (; i < len; i += increment) {\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6;\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\nfunction garbageCollect(caches, length) {\n each(caches, (cache) => {\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for (i = 0; i < gcLen; ++i) {\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\nfunction getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\nfunction getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n return (lines * font.lineHeight) + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\nfunction titleAlign(align, position, reverse) {\n let ret = _toLeftRightCenter(align);\n if ((reverse && position !== 'right') || (!reverse && position === 'right')) {\n ret = reverseAlign(ret);\n }\n return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n const {top, left, bottom, right, chart} = scale;\n const {chartArea, scales} = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {titleX, titleY, maxWidth, rotation};\n}\nclass Scale extends Element {\n constructor(cfg) {\n super();\n this.id = cfg.id;\n this.type = cfg.type;\n this.options = undefined;\n this.ctx = cfg.ctx;\n this.chart = cfg.chart;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n this.maxWidth = undefined;\n this.maxHeight = undefined;\n this.paddingTop = undefined;\n this.paddingBottom = undefined;\n this.paddingLeft = undefined;\n this.paddingRight = undefined;\n this.axis = undefined;\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n this.ticks = [];\n this._gridLineItems = null;\n this._labelItems = null;\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n this._startPixel = undefined;\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n init(options) {\n this.options = options.setContext(this.getContext());\n this.axis = options.axis;\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n parse(raw, index) {\n return raw;\n }\n getUserBounds() {\n let {_userMin, _userMax, _suggestedMin, _suggestedMax} = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n getMinMax(canStack) {\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n let range;\n if (minDefined && maxDefined) {\n return {min, max};\n }\n const metas = this.getMatchingVisibleMetas();\n for (let i = 0, ilen = metas.length; i < ilen; ++i) {\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n getTicks() {\n return this.ticks;\n }\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n beforeUpdate() {\n callback(this.options.beforeUpdate, [this]);\n }\n update(maxWidth, maxHeight, margins) {\n const {beginAtZero, grace, ticks: tickOpts} = this.options;\n const sampleSize = tickOpts.sampleSize;\n this.beforeUpdate();\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n this._maxLength = this.isHorizontal()\n ? this.width + margins.left + margins.right\n : this.height + margins.top + margins.bottom;\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n this.afterAutoSkip();\n }\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n afterUpdate() {\n callback(this.options.afterUpdate, [this]);\n }\n beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [this]);\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = 0;\n this.bottom = this.height;\n }\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n callback(this.options.afterSetDimensions, [this]);\n }\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n callback(this.options[name], [this]);\n }\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [this]);\n }\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [tick.value, i, ticks], this);\n }\n }\n afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [this]);\n }\n beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [this]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = this.ticks.length;\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid)\n\t\t\t\t- tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(\n Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)),\n Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))\n ));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [this]);\n }\n afterAutoSkip() {}\n beforeFit() {\n callback(this.options.beforeFit, [this]);\n }\n fit() {\n const minSize = {\n width: 0,\n height: 0\n };\n const {chart, options: {ticks: tickOpts, title: titleOpts, grid: gridOpts}} = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n if (tickOpts.display && this.ticks.length) {\n const {first, last, widest, highest} = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n if (isHorizontal) {\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n this._handleMargins();\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n _calculatePadding(first, last, sin, cos) {\n const {ticks: {align, padding}, position} = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else if (align !== 'inner') {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n afterFit() {\n callback(this.options.afterFit, [this]);\n }\n isHorizontal() {\n const {axis, position} = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n isFullSize() {\n return this.options.fullSize;\n }\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n this.afterTickToLabelConversion();\n }\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length);\n }\n return labelSizes;\n }\n _computeLabelSizes(ticks, length) {\n const {ctx, _longestTextCache: caches} = this;\n const widths = [];\n const heights = [];\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n for (i = 0; i < length; ++i) {\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {data: {}, gc: []};\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for (j = 0, jlen = label.length; j < jlen; ++j) {\n nestedLabel = label[j];\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n const valueAt = (idx) => ({width: widths[idx] || 0, height: heights[idx] || 0});\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights,\n };\n }\n getLabelForValue(value) {\n return value;\n }\n getPixelForValue(value, index) {\n return NaN;\n }\n getValueForPixel(pixel) {}\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n getBaseValue() {\n const {min, max} = this;\n return min < 0 && max < 0 ? max :\n min > 0 && max > 0 ? min :\n 0;\n }\n getContext(index) {\n const ticks = this.ticks || [];\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context ||\n\t\t\t\t(tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context ||\n\t\t\t(this.$context = createScaleContext(this.chart.getContext(), this));\n }\n _tickSize() {\n const optionTicks = this.options.ticks;\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal()\n ? h * cos > w * sin ? w / cos : h / sin\n : h * sin < w * cos ? h / cos : w / sin;\n }\n _isVisible() {\n const display = this.options.display;\n if (display !== 'auto') {\n return !!display;\n }\n return this.getMatchingVisibleMetas().length > 0;\n }\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const {grid, position} = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = borderOpts.drawBorder ? borderOpts.borderWidth : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for (i = 0; i < ticksLength; i += step) {\n const optsAtIndex = grid.setContext(this.getContext(i));\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = optsAtIndex.borderDash || [];\n const borderDashOffset = optsAtIndex.borderDashOffset;\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n if (lineValue === undefined) {\n continue;\n }\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset,\n });\n }\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const {position, ticks: optionTicks} = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const {align, crossAlign, padding, mirror} = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = ((chartArea.top + chartArea.bottom) / 2) + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = ((chartArea.left + chartArea.right) / 2) - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n const labelSizes = this._getLabelSizes();\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n label = tick.label;\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n let tickTextAlign = textAlign;\n if (isHorizontal) {\n x = pixel;\n if (textAlign === 'inner') {\n if (i === ilen - 1) {\n tickTextAlign = !this.options.reverse ? 'right' : 'left';\n } else if (i === 0) {\n tickTextAlign = !this.options.reverse ? 'left' : 'right';\n } else {\n tickTextAlign = 'center';\n }\n }\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n let backdrop;\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n let top = y + textOffset - labelPadding.top;\n let left = x - labelPadding.left;\n switch (textBaseline) {\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n }\n switch (textAlign) {\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n }\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor,\n };\n }\n items.push({\n rotation,\n label,\n font,\n color,\n strokeColor,\n strokeWidth,\n textOffset,\n textAlign: tickTextAlign,\n textBaseline,\n translation: [x, y],\n backdrop,\n });\n }\n return items;\n }\n _getXAxisLabelAlignment() {\n const {position, ticks} = this.options;\n const rotation = -toRadians(this.labelRotation);\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n let align = 'center';\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n } else if (ticks.align === 'inner') {\n align = 'inner';\n }\n return align;\n }\n _getYAxisLabelAlignment(tl) {\n const {position, ticks: {crossAlign, mirror, padding}} = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n let textAlign;\n let x;\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += (widest / 2);\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n return {textAlign, x};\n }\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n const chart = this.chart;\n const position = this.options.position;\n if (position === 'left' || position === 'right') {\n return {top: 0, left: this.left, bottom: chart.height, right: this.right};\n } if (position === 'top' || position === 'bottom') {\n return {top: this.top, left: 0, bottom: this.bottom, right: chart.width};\n }\n }\n drawBackground() {\n const {ctx, options: {backgroundColor}, left, top, width, height} = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex(t => t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n const drawLine = (p1, p2, style) => {\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n if (grid.display) {\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n if (grid.drawOnChartArea) {\n drawLine(\n {x: item.x1, y: item.y1},\n {x: item.x2, y: item.y2},\n item\n );\n }\n if (grid.drawTicks) {\n drawLine(\n {x: item.tx1, y: item.ty1},\n {x: item.tx2, y: item.ty2},\n {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n }\n );\n }\n }\n }\n }\n drawBorder() {\n const {chart, ctx, options: {grid}} = this;\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = grid.drawBorder ? borderOpts.borderWidth : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.borderWidth;\n ctx.strokeStyle = borderOpts.borderColor;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n if (!optionTicks.display) {\n return;\n }\n const ctx = this.ctx;\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n const tickFont = item.font;\n const label = item.label;\n if (item.backdrop) {\n ctx.fillStyle = item.backdrop.color;\n ctx.fillRect(item.backdrop.left, item.backdrop.top, item.backdrop.width, item.backdrop.height);\n }\n let y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, item);\n }\n if (area) {\n unclipArea(ctx);\n }\n }\n drawTitle() {\n const {ctx, options: {position, title, reverse}} = this;\n if (!title.display) {\n return;\n }\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n const {titleX, titleY, maxWidth, rotation} = titleArgs(this, offset, position, align);\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [{\n z: tz,\n draw: (chartArea) => {\n this.draw(chartArea);\n }\n }];\n }\n return [{\n z: gz,\n draw: (chartArea) => {\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n }, {\n z: gz + 1,\n draw: () => {\n this.drawBorder();\n }\n }, {\n z: tz,\n draw: (chartArea) => {\n this.drawLabels(chartArea);\n }\n }];\n }\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n\nclass TypedRegistry {\n constructor(type, scope, override) {\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n if (id in items) {\n return scope;\n }\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n return scope;\n }\n get(id) {\n return this.items[id];\n }\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n if (id in items) {\n delete items[id];\n }\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\nfunction registerDefaults(item, scope, parentScope) {\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n defaults.set(scope, itemDefaults);\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach(property => {\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [scope].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nclass Registry {\n constructor() {\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [this.controllers, this.scales, this.elements];\n }\n add(...args) {\n this._each('register', args);\n }\n remove(...args) {\n this._each('unregister', args);\n }\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n _each(method, args, typedRegistry) {\n [...args].forEach(arg => {\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || (reg === this.plugins && arg.id)) {\n this._exec(method, reg, arg);\n } else {\n each(arg, item => {\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n _getRegistryForType(type) {\n for (let i = 0; i < this._typedRegistries.length; i++) {\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n return this.plugins;\n }\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n}\nvar registry = new Registry();\n\nclass ScatterController extends DatasetController {\n update(mode) {\n const meta = this._cachedMeta;\n const {data: points = []} = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let {start, count} = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n if (this.options.showLine) {\n const {dataset: line, _dataset} = meta;\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n }\n this.updateElements(points, start, count, mode);\n }\n addElements() {\n const {showLine} = this.options;\n if (!this.datasetElementType && showLine) {\n this.datasetElementType = registry.getElement('line');\n }\n super.addElements();\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const {spanGaps, segment} = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for (let i = start; i < start + count; ++i) {\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (Math.abs(parsed[iAxis] - prevParsed[iAxis])) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const data = meta.data || [];\n if (!this.options.showLine) {\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n}\nScatterController.id = 'scatter';\nScatterController.defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n showLine: false,\n fill: false\n};\nScatterController.overrides = {\n interaction: {\n mode: 'point'\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(item) {\n return '(' + item.label + ', ' + item.formattedValue + ')';\n }\n }\n }\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n};\n\nvar controllers = /*#__PURE__*/Object.freeze({\n__proto__: null,\nBarController: BarController,\nBubbleController: BubbleController,\nDoughnutController: DoughnutController,\nLineController: LineController,\nPolarAreaController: PolarAreaController,\nPieController: PieController,\nRadarController: RadarController,\nScatterController: ScatterController\n});\n\nfunction abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\nclass DateAdapter {\n constructor(options) {\n this.options = options || {};\n }\n init(chartOptions) {}\n formats() {\n return abstract();\n }\n parse(value, format) {\n return abstract();\n }\n format(timestamp, format) {\n return abstract();\n }\n add(timestamp, amount, unit) {\n return abstract();\n }\n diff(a, b, unit) {\n return abstract();\n }\n startOf(timestamp, unit, weekday) {\n return abstract();\n }\n endOf(timestamp, unit) {\n return abstract();\n }\n}\nDateAdapter.override = function(members) {\n Object.assign(DateAdapter.prototype, members);\n};\nvar adapters = {\n _date: DateAdapter\n};\n\nfunction binarySearch(metaset, axis, value, intersect) {\n const {controller, data, _sorted} = metaset;\n const iScale = controller._cachedMeta.iScale;\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n return lookupMethod(data, axis, value);\n } else if (controller._sharedOptions) {\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {lo: start.lo, hi: end.hi};\n }\n }\n }\n return {lo: 0, hi: data.length - 1};\n}\nfunction evaluateInteractionItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n const {index, data} = metasets[i];\n const {lo, hi} = binarySearch(metasets[i], axis, value, intersect);\n for (let j = lo; j <= hi; ++j) {\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\nfunction getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\nfunction getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n const items = [];\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (!includeInvisible && !_isPointInArea(element, chart.chartArea, 0)) {\n return;\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n };\n evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\nfunction getNearestRadialItems(chart, position, axis, useFinalPosition) {\n let items = [];\n function evaluationFunc(element, datasetIndex, index) {\n const {startAngle, endAngle} = element.getProps(['startAngle', 'endAngle'], useFinalPosition);\n const {angle} = getAngleFromPoint(element, {x: position.x, y: position.y});\n if (_angleBetween(angle, startAngle, endAngle)) {\n items.push({element, datasetIndex, index});\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n let items = [];\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n function evaluationFunc(element, datasetIndex, index) {\n const inRange = element.inRange(position.x, position.y, useFinalPosition);\n if (intersect && !inRange) {\n return;\n }\n const center = element.getCenterPoint(useFinalPosition);\n const pointInArea = !!includeInvisible || chart.isPointInArea(center);\n if (!pointInArea && !inRange) {\n return;\n }\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [{element, datasetIndex, index}];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({element, datasetIndex, index});\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return [];\n }\n return axis === 'r' && !intersect\n ? getNearestRadialItems(chart, position, axis, useFinalPosition)\n : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\nfunction getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n const items = [];\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n evaluateInteractionItems(chart, axis, position, (element, datasetIndex, index) => {\n if (element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({element, datasetIndex, index});\n intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n }\n });\n if (intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\nvar Interaction = {\n evaluateInteractionItems,\n modes: {\n index(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'x';\n const includeInvisible = options.includeInvisible || false;\n const items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible)\n : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n const elements = [];\n if (!items.length) {\n return [];\n }\n chart.getSortedVisibleDatasetMetas().forEach((meta) => {\n const index = items[0].index;\n const element = meta.data[index];\n if (element && !element.skip) {\n elements.push({element, datasetIndex: meta.index, index});\n }\n });\n return elements;\n },\n dataset(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n let items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) :\n getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for (let i = 0; i < data.length; ++i) {\n items.push({element: data[i], datasetIndex, index: i});\n }\n }\n return items;\n },\n point(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n },\n nearest(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n },\n x(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n },\n y(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n }\n }\n};\n\nconst STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];\nfunction filterByPosition(array, position) {\n return array.filter(v => v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter(v => STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b) => {\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ?\n v0.index - v1.index :\n v0.weight - v1.weight;\n });\n}\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n box = boxes[i];\n ({position: pos, options: {stack, stackWeight = 1}} = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && (pos + stack),\n stackWeight\n });\n }\n return layoutBoxes;\n}\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts) {\n const {stack, pos, stackWeight} = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {count: 0, placed: 0, weight: 0, size: 0});\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\nfunction setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const {vBoxMaxWidth, hBoxMaxHeight} = params;\n let i, ilen, layout;\n for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n layout = layouts[i];\n const {fullSize} = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter(wrap => wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout, stacks) {\n const {pos, box} = layout;\n const maxPadding = chartArea.maxPadding;\n if (!isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {size: 0, count: 1};\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal\n ? {same: widthChanged, other: heightChanged}\n : {same: heightChanged, other: widthChanged};\n}\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n function marginForPositions(positions) {\n const margin = {left: 0, top: 0, right: 0, bottom: 0};\n positions.forEach((pos) => {\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n return horizontal\n ? marginForPositions(['left', 'right'])\n : marginForPositions(['top', 'bottom']);\n}\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n for (i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n box.update(\n layout.width || chartArea.w,\n layout.height || chartArea.h,\n getMargins(layout.horizontal, chartArea)\n );\n const {same, other} = updateDims(chartArea, params, layout, stacks);\n refit |= same && refitBoxes.length;\n changed = changed || other;\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let {x, y} = chartArea;\n for (const layout of boxes) {\n const box = layout.box;\n const stack = stacks[layout.stack] || {count: 1, placed: 0, weight: 1};\n const weight = (layout.stackWeight / stack.weight) || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n chartArea.x = x;\n chartArea.y = y;\n}\ndefaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n});\nvar layouts = {\n addBox(chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n item._layers = item._layers || function() {\n return [{\n z: 0,\n draw(chartArea) {\n item.draw(chartArea);\n }\n }];\n };\n chart.boxes.push(item);\n },\n removeBox(chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure(chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update(chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n each(chart.boxes, box => {\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap) =>\n wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w,\n };\n each(boxes.chartArea, (layout) => {\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {left: 0, top: 0, right: 0, bottom: 0});\n });\n }\n};\n\nclass BasePlatform {\n acquireContext(canvas, aspectRatio) {}\n releaseContext(context) {\n return false;\n }\n addEventListener(chart, type, listener) {}\n removeEventListener(chart, type, listener) {}\n getDevicePixelRatio() {\n return 1;\n }\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n isAttached(canvas) {\n return true;\n }\n updateConfig(config) {\n }\n}\n\nclass BasicPlatform extends BasePlatform {\n acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n\nconst EXPANDO_KEY = '$chartjs';\nconst EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\nconst isNullOrEmpty = value => value === null || value === '';\nfunction initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n return canvas;\n}\nconst eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\nfunction addListener(node, type, listener) {\n node.addEventListener(type, listener, eventListenerOptions);\n}\nfunction removeListener(chart, type, listener) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n}\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const {x, y} = getRelativePosition(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null,\n };\n}\nfunction nodeListContains(nodeList, canvas) {\n for (const node of nodeList) {\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n}\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart) => {\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height) => {\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n const observer = new ResizeObserver(entries => {\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event) => {\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart, (args) => {\n const event = args[0];\n return [event, event.offsetX, event.offsetY];\n });\n addListener(canvas, type, proxy);\n return proxy;\n}\nclass DomPlatform extends BasePlatform {\n acquireContext(canvas, aspectRatio) {\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n return null;\n }\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n const initial = canvas[EXPANDO_KEY].initial;\n ['height', 'width'].forEach((prop) => {\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n const style = initial.style || {};\n Object.keys(style).forEach((key) => {\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n if (!proxy) {\n return;\n }\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n isAttached(canvas) {\n const container = _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n\nfunction _detectPlatform(canvas) {\n if (!_isDomSupported() || (typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas)) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nclass PluginService {\n constructor() {\n this._init = [];\n }\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n }\n return result;\n }\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors) {\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [chart, args, descriptor.options];\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n return true;\n }\n invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n const descriptors = this._cache = this._createDescriptors(chart);\n this._notifyStateChanges(chart);\n return descriptors;\n }\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b) => a.filter(x => !b.some(y => x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\nfunction allPlugins(config) {\n const localIds = {};\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for (let i = 0; i < keys.length; i++) {\n plugins.push(registry.getPlugin(keys[i]));\n }\n const local = config.plugins || [];\n for (let i = 0; i < local.length; i++) {\n const plugin = local[i];\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n localIds[plugin.id] = true;\n }\n }\n return {plugins, localIds};\n}\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\nfunction createDescriptors(chart, {plugins, localIds}, options, all) {\n const result = [];\n const context = chart.getContext();\n for (const plugin of plugins) {\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, {plugin, local: localIds[id]}, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, {plugin, local}, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n if (local && plugin.defaults) {\n scopes.push(plugin.defaults);\n }\n return config.createResolver(scopes, context, [''], {\n scriptable: false,\n indexable: false,\n allKeys: true\n });\n}\n\nfunction getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\nfunction determineAxis(id, scaleOptions) {\n if (id === 'x' || id === 'y') {\n return id;\n }\n return scaleOptions.axis || axisFromPosition(scaleOptions.position) || id.charAt(0).toLowerCase();\n}\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {scales: {}};\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const firstIDs = Object.create(null);\n const scales = Object.create(null);\n Object.keys(configScales).forEach(id => {\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n firstIDs[axis] = firstIDs[axis] || id;\n scales[id] = mergeIf(Object.create(null), [{axis}, scaleConf, defaultScaleOptions[axis], defaultScaleOptions[defaultId]]);\n });\n config.data.datasets.forEach(dataset => {\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach(defaultID => {\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || firstIDs[axis] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [{axis}, configScales[id], defaultScaleOptions[defaultID]]);\n });\n });\n Object.keys(scales).forEach(key => {\n const scale = scales[key];\n mergeIf(scale, [defaults.scales[scale.type], defaults.scale]);\n });\n return scales;\n}\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\nconst addIfFound = (set, obj, key) => {\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\nclass Config {\n constructor(config) {\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n get platform() {\n return this._config.platform;\n }\n get type() {\n return this._config.type;\n }\n set type(type) {\n this._config.type = type;\n }\n get data() {\n return this._config.data;\n }\n set data(data) {\n this._config.data = initData(data);\n }\n get options() {\n return this._config.options;\n }\n set options(options) {\n this._config.options = options;\n }\n get plugins() {\n return this._config.plugins;\n }\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType,\n () => [[\n `datasets.${datasetType}`,\n ''\n ]]);\n }\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`,\n () => [\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`,\n ],\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`,\n () => [[\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]]);\n }\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`,\n () => [[\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || [],\n ]]);\n }\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n getOptionScopes(mainScope, keyLists, resetCache) {\n const {options, type} = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n const scopes = new Set();\n keyLists.forEach(keys => {\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach(key => addIfFound(scopes, mainScope, key));\n }\n keys.forEach(key => addIfFound(scopes, options, key));\n keys.forEach(key => addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach(key => addIfFound(scopes, defaults, key));\n keys.forEach(key => addIfFound(scopes, descriptors, key));\n });\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n chartOptionScopes() {\n const {options, type} = this;\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {},\n {type},\n defaults,\n descriptors\n ];\n }\n resolveNamedOptions(scopes, names, context, prefixes = ['']) {\n const result = {$shared: true};\n const {resolver, subPrefixes} = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n for (const prop of names) {\n result[prop] = options[prop];\n }\n return result;\n }\n createResolver(scopes, context, prefixes = [''], descriptorDefaults) {\n const {resolver} = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context)\n ? _attachContext(resolver, context, undefined, descriptorDefaults)\n : resolver;\n }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter(p => !p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\nconst hasFunction = value => isObject(value)\n && Object.getOwnPropertyNames(value).reduce((acc, key) => acc || isFunction(value[key]), false);\nfunction needContext(proxy, names) {\n const {isScriptable, isIndexable} = _descriptors(proxy);\n for (const prop of names) {\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if ((scriptable && (isFunction(value) || hasFunction(value)))\n || (indexable && isArray(value))) {\n return true;\n }\n }\n return false;\n}\n\nvar version = \"3.9.1\";\n\nconst KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || (KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x');\n}\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1]\n ? a[l2] - b[l2]\n : a[l1] - b[l1];\n };\n}\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [context], chart);\n}\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [context], chart);\n}\nfunction getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n if (item && item.canvas) {\n item = item.canvas;\n }\n return item;\n}\nconst instances = {};\nconst getChart = (key) => {\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c) => c.canvas === canvas).pop();\n};\nfunction moveNumericKeys(obj, start, move) {\n const keys = Object.keys(obj);\n for (const key of keys) {\n const intKey = +key;\n if (intKey >= start) {\n const value = obj[key];\n delete obj[key];\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\nfunction determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n if (isClick) {\n return lastEvent;\n }\n return e;\n}\nclass Chart {\n constructor(item, userConfig) {\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error(\n 'Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' +\n\t\t\t\t' must be destroyed before the canvas with ID \\'' + existingChart.canvas.id + '\\' can be reused.'\n );\n }\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce(mode => this.update(mode), options.resizeDelay || 0);\n this._dataChanges = [];\n instances[this.id] = this;\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n get aspectRatio() {\n const {options: {aspectRatio, maintainAspectRatio}, width, height, _aspectRatio} = this;\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n return height ? width / height : null;\n }\n get data() {\n return this.config.data;\n }\n set data(data) {\n this.config.data = data;\n }\n get options() {\n return this._options;\n }\n set options(options) {\n this.config.options = options;\n }\n _initialize() {\n this.notifyPlugins('beforeInit');\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n stop() {\n animator.stop(this);\n return this;\n }\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {width, height};\n }\n }\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n this.notifyPlugins('resize', {size: newSize});\n callback(options.onResize, [this, newSize], this);\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n each(scalesOptions, (axisOptions, axisID) => {\n axisOptions.id = axisID;\n });\n }\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id) => {\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n if (scaleOpts) {\n items = items.concat(\n Object.keys(scaleOpts).map((id) => {\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n })\n );\n }\n each(items, (item) => {\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n scale.init(scaleOptions, options);\n });\n each(updated, (hasUpdated, id) => {\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, (scale) => {\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n metasets.sort((a, b) => a.index - b.index);\n if (numMeta > numData) {\n for (let i = numData; i < numMeta; ++i) {\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n _removeUnreferencedMetasets() {\n const {_metasets: metasets, data: {datasets}} = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index) => {\n if (datasets.filter(x => x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n this._removeUnreferencedMetasets();\n for (i = 0, ilen = datasets.length; i < ilen; i++) {\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const {datasetElementType, dataElementType} = defaults.datasets[type];\n Object.assign(ControllerClass.prototype, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n this._updateMetasets();\n return newControllers;\n }\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex) => {\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n update(mode) {\n const config = this.config;\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n const animsDisabled = this._animationsDisabled = !options.animation;\n this._updateScales();\n this._checkEventBindings();\n this._updateHiddenIndices();\n this._plugins.invalidate();\n if (this.notifyPlugins('beforeUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n const newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n let minPadding = 0;\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; i++) {\n const {controller} = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n if (!animsDisabled) {\n each(newControllers, (controller) => {\n controller.reset();\n });\n }\n this._updateDatasets(mode);\n this.notifyPlugins('afterUpdate', {mode});\n this._layers.sort(compare2Level('z', '_idx'));\n const {_active, _lastEvent} = this;\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n this.render();\n }\n _updateScales() {\n each(this.scales, (scale) => {\n layouts.removeBox(this, scale);\n });\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n _checkEventBindings() {\n const options = this.options;\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n }\n _updateHiddenIndices() {\n const {_hiddenIndices} = this;\n const changes = this._getUniformDataChanges() || [];\n for (const {method, start, count} of changes) {\n const move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n }\n _getUniformDataChanges() {\n const _dataChanges = this._dataChanges;\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n this._dataChanges = [];\n const datasetCount = this.data.datasets.length;\n const makeSet = (idx) => new Set(\n _dataChanges\n .filter(c => c[0] === idx)\n .map((c, i) => i + ',' + c.splice(1).join(','))\n );\n const changeSet = makeSet(0);\n for (let i = 1; i < datasetCount; i++) {\n if (!setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n return Array.from(changeSet)\n .map(c => c.split(','))\n .map(a => ({method: a[1], start: +a[2], count: +a[3]}));\n }\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {cancelable: true}) === false) {\n return;\n }\n layouts.update(this, this.width, this.height, minPadding);\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n each(this.boxes, (box) => {\n if (noArea && box.position === 'chartArea') {\n return;\n }\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n this._layers.forEach((item, index) => {\n item._idx = index;\n });\n this.notifyPlugins('afterLayout');\n }\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this.getDatasetMeta(i).controller.configure();\n }\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._updateDataset(i, isFunction(mode) ? mode({datasetIndex: i}) : mode);\n }\n this.notifyPlugins('afterDatasetsUpdate', {mode});\n }\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {meta, index, mode, cancelable: true};\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n meta.controller._update(mode);\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n render() {\n if (this.notifyPlugins('beforeRender', {cancelable: true}) === false) {\n return;\n }\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({chart: this});\n }\n }\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const {width, height} = this._resizeBeforeDraw;\n this._resize(width, height);\n this._resizeBeforeDraw = null;\n }\n this.clear();\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n if (this.notifyPlugins('beforeDraw', {cancelable: true}) === false) {\n return;\n }\n const layers = this._layers;\n for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n layers[i].draw(this.chartArea);\n }\n this._drawDatasets();\n for (; i < layers.length; ++i) {\n layers[i].draw(this.chartArea);\n }\n this.notifyPlugins('afterDraw');\n }\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n return result;\n }\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {cancelable: true}) === false) {\n return;\n }\n const metasets = this.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n this._drawDataset(metasets[i]);\n }\n this.notifyPlugins('afterDatasetsDraw');\n }\n _drawDataset(meta) {\n const ctx = this.ctx;\n const clip = meta._clip;\n const useClip = !clip.disabled;\n const area = this.chartArea;\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n if (useClip) {\n clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? this.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? this.height : area.bottom + clip.bottom\n });\n }\n meta.controller.draw();\n if (useClip) {\n unclipArea(ctx);\n }\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n isPointInArea(point) {\n return _isPointInArea(point, this.chartArea, this._minPadding);\n }\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n return [];\n }\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter(x => x && x._dataset === dataset).pop();\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n return meta;\n }\n getContext() {\n return this.$context || (this.$context = createContext(null, {chart: this, type: 'chart'}));\n }\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n const meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {visible});\n this.update((ctx) => ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n for (i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._destroyDatasetMeta(i);\n }\n }\n destroy() {\n this.notifyPlugins('beforeDestroy');\n const {canvas, ctx} = this;\n this._stop();\n this.config.clearCache();\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n this.notifyPlugins('destroy');\n delete instances[this.id];\n this.notifyPlugins('afterDestroy');\n }\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const listener = (e, x, y) => {\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n each(this.options.events, (type) => _add(type, listener));\n }\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener) => {\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n const listener = (width, height) => {\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n let detached;\n const attached = () => {\n _remove('attach', attached);\n this.attached = true;\n this.resize();\n _add('resize', listener);\n _add('detach', detached);\n };\n detached = () => {\n this.attached = false;\n _remove('resize', listener);\n this._stop();\n this._resize(0, 0);\n _add('attach', attached);\n };\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n unbindEvents() {\n each(this._listeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n each(this._responsiveListeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n if (changed) {\n this._active = active;\n this._lastEvent = null;\n this._updateHoverStyles(active, lastActive);\n }\n }\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b) => a.filter(x => !b.some(y => x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n _eventHandler(e, replay) {\n const args = {\n event: e,\n replay,\n cancelable: true,\n inChartArea: this.isPointInArea(e)\n };\n const eventFilter = (plugin) => (plugin.options.events || this.options.events).includes(e.native.type);\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n const changed = this._handleEvent(e, replay, args.inChartArea);\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n if (changed || args.changed) {\n this.render();\n }\n return this;\n }\n _handleEvent(e, replay, inChartArea) {\n const {_active: lastActive = [], options} = this;\n const useFinalPosition = replay;\n const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n const isClick = _isClickEvent(e);\n const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n if (inChartArea) {\n this._lastEvent = null;\n callback(options.onHover, [e, active, this], this);\n if (isClick) {\n callback(options.onClick, [e, active, this], this);\n }\n }\n const changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n this._lastEvent = lastEvent;\n return changed;\n }\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n}\nconst invalidatePlugins = () => each(Chart.instances, (chart) => chart._plugins.invalidate());\nconst enumerable = true;\nObject.defineProperties(Chart, {\n defaults: {\n enumerable,\n value: defaults\n },\n instances: {\n enumerable,\n value: instances\n },\n overrides: {\n enumerable,\n value: overrides\n },\n registry: {\n enumerable,\n value: registry\n },\n version: {\n enumerable,\n value: version\n },\n getChart: {\n enumerable,\n value: getChart\n },\n register: {\n enumerable,\n value: (...items) => {\n registry.add(...items);\n invalidatePlugins();\n }\n },\n unregister: {\n enumerable,\n value: (...items) => {\n registry.remove(...items);\n invalidatePlugins();\n }\n }\n});\n\nfunction clipArc(ctx, element, endAngle) {\n const {startAngle, pixelMargin, x, y, outerRadius, innerRadius} = element;\n let angleMargin = pixelMargin / outerRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);\n}\nfunction parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n const computeOuterLimit = (val) => {\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit),\n };\n}\nfunction rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta),\n };\n}\nfunction pathArc(ctx, element, offset, spacing, end, circular) {\n const {x, y, startAngle: start, pixelMargin, innerRadius: innerR} = element;\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n let spacingOffset = 0;\n const alpha = end - start;\n if (spacing) {\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? (alpha * avNogSpacingRadius) / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const {outerStart, outerEnd, innerStart, innerEnd} = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle);\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n if (circular) {\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerEndAdjustedAngle);\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n ctx.arc(x, y, innerRadius, endAngle - (innerEnd / innerRadius), startAngle + (innerStart / innerRadius), true);\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n } else {\n ctx.moveTo(x, y);\n const outerStartX = Math.cos(outerStartAdjustedAngle) * outerRadius + x;\n const outerStartY = Math.sin(outerStartAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerStartX, outerStartY);\n const outerEndX = Math.cos(outerEndAdjustedAngle) * outerRadius + x;\n const outerEndY = Math.sin(outerEndAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerEndX, outerEndY);\n }\n ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing, circular) {\n const {fullCircles, startAngle, circumference} = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, startAngle + TAU, circular);\n for (let i = 0; i < fullCircles; ++i) {\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + circumference % TAU;\n if (circumference % TAU === 0) {\n endAngle += TAU;\n }\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.fill();\n return endAngle;\n}\nfunction drawFullCircleBorders(ctx, element, inner) {\n const {x, y, startAngle, pixelMargin, fullCircles} = element;\n const outerRadius = Math.max(element.outerRadius - pixelMargin, 0);\n const innerRadius = element.innerRadius + pixelMargin;\n let i;\n if (inner) {\n clipArc(ctx, element, startAngle + TAU);\n }\n ctx.beginPath();\n ctx.arc(x, y, innerRadius, startAngle + TAU, startAngle, true);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle, startAngle + TAU);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n}\nfunction drawBorder(ctx, element, offset, spacing, endAngle, circular) {\n const {options} = element;\n const {borderWidth, borderJoinStyle} = options;\n const inner = options.borderAlign === 'inner';\n if (!borderWidth) {\n return;\n }\n if (inner) {\n ctx.lineWidth = borderWidth * 2;\n ctx.lineJoin = borderJoinStyle || 'round';\n } else {\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = borderJoinStyle || 'bevel';\n }\n if (element.fullCircles) {\n drawFullCircleBorders(ctx, element, inner);\n }\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.stroke();\n}\nclass ArcElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(chartX, chartY, useFinalPosition) {\n const point = this.getProps(['x', 'y'], useFinalPosition);\n const {angle, distance} = getAngleFromPoint(point, {x: chartX, y: chartY});\n const {startAngle, endAngle, innerRadius, outerRadius, circumference} = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = this.options.spacing / 2;\n const _circumference = valueOrDefault(circumference, endAngle - startAngle);\n const betweenAngles = _circumference >= TAU || _angleBetween(angle, startAngle, endAngle);\n const withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n return (betweenAngles && withinRadius);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, startAngle, endAngle, innerRadius, outerRadius} = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference',\n ], useFinalPosition);\n const {offset, spacing} = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n draw(ctx) {\n const {options, circumference} = this;\n const offset = (options.offset || 0) / 2;\n const spacing = (options.spacing || 0) / 2;\n const circular = options.circular;\n this.pixelMargin = (options.borderAlign === 'inner') ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n ctx.save();\n let radiusOffset = 0;\n if (offset) {\n radiusOffset = offset / 2;\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * radiusOffset, Math.sin(halfAngle) * radiusOffset);\n if (this.circumference >= PI) {\n radiusOffset = offset;\n }\n }\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n const endAngle = drawArc(ctx, this, radiusOffset, spacing, circular);\n drawBorder(ctx, this, radiusOffset, spacing, endAngle, circular);\n ctx.restore();\n }\n}\nArcElement.id = 'arc';\nArcElement.defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderJoinStyle: undefined,\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n circular: true,\n};\nArcElement.defaultRoutes = {\n backgroundColor: 'backgroundColor'\n};\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\nfunction getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n return lineTo;\n}\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const {start: paramsStart = 0, end: paramsEnd = count - 1} = params;\n const {start: segmentStart, end: segmentEnd} = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\nfunction pathSegment(ctx, line, segment, params) {\n const {points, options} = line;\n const {count, start, loop, ilen} = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n let {move = true, reverse} = params || {};\n let i, point, prev;\n for (i = 0; i <= ilen; ++i) {\n point = points[(start + (reverse ? ilen - i : i)) % count];\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n prev = point;\n }\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n return !!loop;\n}\nfunction fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const {count, start, ilen} = pathVars(points, segment, params);\n const {move = true, reverse} = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n const pointIndex = (index) => (start + (reverse ? ilen - index : index)) % count;\n const drawX = () => {\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n for (i = 0; i <= ilen; ++i) {\n point = points[pointIndex(i)];\n if (point.skip) {\n continue;\n }\n const x = point.x;\n const y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n lastY = y;\n }\n drawX();\n}\nfunction _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\nfunction _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n return _pointInLine;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n const {segments, options} = line;\n const segmentMethod = _getSegmentMethod(line);\n for (const segment of segments) {\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {start, end: start + count - 1})) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\nclass LineElement extends Element {\n constructor(cfg) {\n super();\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n get points() {\n return this._points;\n }\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {property, start: value, end: value});\n if (!segments.length) {\n return;\n }\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for (i = 0, ilen = segments.length; i < ilen; ++i) {\n const {start, end} = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n start = start || 0;\n count = count || (this.points.length - start);\n for (const segment of segments) {\n loop &= segmentMethod(ctx, this, segment, {start, end: start + count - 1});\n }\n return !!loop;\n }\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n if (points.length && options.borderWidth) {\n ctx.save();\n draw(ctx, this, start, count);\n ctx.restore();\n }\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\nLineElement.id = 'line';\nLineElement.defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0,\n};\nLineElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\nLineElement.descriptors = {\n _scriptable: true,\n _indexable: (name) => name !== 'borderDash' && name !== 'fill',\n};\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n const options = el.options;\n const {[axis]: value} = el.getProps([axis], useFinalPosition);\n return (Math.abs(pos - value) < options.radius + options.hitRadius);\n}\nclass PointElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n const options = this.options;\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return ((Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2)) < Math.pow(options.hitRadius + options.radius, 2));\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n size(options) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n draw(ctx, area) {\n const options = this.options;\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n getRange() {\n const options = this.options || {};\n return options.radius + options.hitRadius;\n }\n}\nPointElement.id = 'point';\nPointElement.defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n};\nPointElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nfunction getBarBounds(bar, useFinalPosition) {\n const {x, y, base, width, height} = bar.getProps(['x', 'y', 'base', 'width', 'height'], useFinalPosition);\n let left, right, top, bottom, half;\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n return {left, top, right, bottom};\n}\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n const {enableBorderRadius} = bar.getProps(['enableBorderRadius']);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n const enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r)),\n }\n }\n };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds\n\t\t&& (skipX || _isBetween(x, bounds.left, bounds.right))\n\t\t&& (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\nfunction addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\nclass BarElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n draw(ctx) {\n const {inflateAmount, options: {borderColor, backgroundColor}} = this;\n const {inner, outer} = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, base, horizontal} = this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition);\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\nBarElement.id = 'bar';\nBarElement.defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n};\nBarElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nvar elements = /*#__PURE__*/Object.freeze({\n__proto__: null,\nArcElement: ArcElement,\nLineElement: LineElement,\nPointElement: PointElement,\nBarElement: BarElement\n});\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n const samples = options.samples || availableWidth;\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n const decimated = [];\n const bucketWidth = (count - 2) / (samples - 2);\n let sampledIndex = 0;\n const endIndex = start + count - 1;\n let a = start;\n let i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n for (i = 0; i < samples - 2; i++) {\n let avgX = 0;\n let avgY = 0;\n let j;\n const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n for (j = avgRangeStart; j < avgRangeEnd; j++) {\n avgX += data[j].x;\n avgY += data[j].y;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n const {x: pointAx, y: pointAy} = data[a];\n maxArea = area = -1;\n for (j = rangeOffs; j < rangeTo; j++) {\n area = 0.5 * Math.abs(\n (pointAx - avgX) * (data[j].y - pointAy) -\n (pointAx - data[j].x) * (avgY - pointAy)\n );\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n let avgX = 0;\n let countX = 0;\n let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n const decimated = [];\n const endIndex = start + count - 1;\n const xMin = data[start].x;\n const xMax = data[endIndex].x;\n const dx = xMax - xMin;\n for (i = start; i < start + count; ++i) {\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n const lastIndex = i - 1;\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n const intermediateIndex1 = Math.min(minIndex, maxIndex);\n const intermediateIndex2 = Math.max(minIndex, maxIndex);\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex1],\n x: avgX,\n });\n }\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex2],\n x: avgX\n });\n }\n }\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n const data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {value: data});\n }\n}\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach((dataset) => {\n cleanDecimatedDataset(dataset);\n });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n const pointCount = points.length;\n let start = 0;\n let count;\n const {iScale} = meta;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n return {start, count};\n}\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false,\n },\n beforeElementsUpdate: (chart, args, options) => {\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n const availableWidth = chart.width;\n chart.data.datasets.forEach((dataset, datasetIndex) => {\n const {_data, indexAxis} = dataset;\n const meta = chart.getDatasetMeta(datasetIndex);\n const data = _data || dataset.data;\n if (resolve([indexAxis, chart.options.indexAxis]) === 'y') {\n return;\n }\n if (!meta.controller.supportsDecimation) {\n return;\n }\n const xAxis = chart.scales[meta.xAxisID];\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n if (chart.options.parsing) {\n return;\n }\n let {start, count} = getStartAndCountOfVisiblePointsSimplified(meta, data);\n const threshold = options.threshold || 4 * availableWidth;\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this._decimated;\n },\n set: function(d) {\n this._data = d;\n }\n });\n }\n let decimated;\n switch (options.algorithm) {\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n }\n dataset._decimated = decimated;\n });\n },\n destroy(chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction _segments(line, target, property) {\n const segments = line.segments;\n const points = line.points;\n const tpoints = target.points;\n const parts = [];\n for (const segment of segments) {\n let {start, end} = segment;\n end = _findSegmentEnd(start, end, points);\n const bounds = _getBounds(property, points[start], points[end], segment.loop);\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n const targetSegments = _boundSegments(target, bounds);\n for (const tgt of targetSegments) {\n const subBounds = _getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n const fillSources = _boundSegment(segment, points, subBounds);\n for (const fillSource of fillSources) {\n parts.push({\n source: fillSource,\n target: tgt,\n start: {\n [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n },\n end: {\n [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n }\n });\n }\n }\n }\n return parts;\n}\nfunction _getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n let start = first[property];\n let end = last[property];\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n return {property, start, end};\n}\nfunction _pointsFromSegments(boundary, line) {\n const {x = null, y = null} = boundary || {};\n const linePoints = line.points;\n const points = [];\n line.segments.forEach(({start, end}) => {\n end = _findSegmentEnd(start, end, linePoints);\n const first = linePoints[start];\n const last = linePoints[end];\n if (y !== null) {\n points.push({x: first.x, y});\n points.push({x: last.x, y});\n } else if (x !== null) {\n points.push({x, y: first.y});\n points.push({x, y: last.y});\n }\n });\n return points;\n}\nfunction _findSegmentEnd(start, end, points) {\n for (;end > start; end--) {\n const point = points[end];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n return end;\n}\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n return a ? a[prop] : b ? b[prop] : 0;\n}\n\nfunction _createBoundaryLine(boundary, line) {\n let points = [];\n let _loop = false;\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = _pointsFromSegments(boundary, line);\n }\n return points.length ? new LineElement({\n points,\n options: {tension: 0},\n _loop,\n _fullLoop: _loop\n }) : null;\n}\nfunction _shouldApplyFill(source) {\n return source && source.fill !== false;\n}\n\nfunction _resolveTarget(sources, index, propagate) {\n const source = sources[index];\n let fill = source.fill;\n const visited = [index];\n let target;\n if (!propagate) {\n return fill;\n }\n while (fill !== false && visited.indexOf(fill) === -1) {\n if (!isNumberFinite(fill)) {\n return fill;\n }\n target = sources[fill];\n if (!target) {\n return false;\n }\n if (target.visible) {\n return fill;\n }\n visited.push(fill);\n fill = target.fill;\n }\n return false;\n}\nfunction _decodeFill(line, index, count) {\n const fill = parseFillOption(line);\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n let target = parseFloat(fill);\n if (isNumberFinite(target) && Math.floor(target) === target) {\n return decodeTargetIndex(fill[0], index, target, count);\n }\n return ['origin', 'start', 'end', 'stack', 'shape'].indexOf(fill) >= 0 && fill;\n}\nfunction decodeTargetIndex(firstCh, index, target, count) {\n if (firstCh === '-' || firstCh === '+') {\n target = index + target;\n }\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n return target;\n}\nfunction _getTargetPixel(fill, scale) {\n let pixel = null;\n if (fill === 'start') {\n pixel = scale.bottom;\n } else if (fill === 'end') {\n pixel = scale.top;\n } else if (isObject(fill)) {\n pixel = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n pixel = scale.getBasePixel();\n }\n return pixel;\n}\nfunction _getTargetValue(fill, scale, startValue) {\n let value;\n if (fill === 'start') {\n value = startValue;\n } else if (fill === 'end') {\n value = scale.options.reverse ? scale.min : scale.max;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n return value;\n}\nfunction parseFillOption(line) {\n const options = line.options;\n const fillOption = options.fill;\n let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n if (fill === false || fill === null) {\n return false;\n }\n if (fill === true) {\n return 'origin';\n }\n return fill;\n}\n\nfunction _buildStackLine(source) {\n const {scale, index, line} = source;\n const points = [];\n const segments = line.segments;\n const sourcePoints = line.points;\n const linesBelow = getLinesBelow(scale, index);\n linesBelow.push(_createBoundaryLine({x: null, y: scale.bottom}, line));\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n for (let j = segment.start; j <= segment.end; j++) {\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n return new LineElement({points, options: {}});\n}\nfunction getLinesBelow(scale, index) {\n const below = [];\n const metas = scale.getMatchingVisibleMetas('line');\n for (let i = 0; i < metas.length; i++) {\n const meta = metas[i];\n if (meta.index === index) {\n break;\n }\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n return below;\n}\nfunction addPointsBelow(points, sourcePoint, linesBelow) {\n const postponed = [];\n for (let j = 0; j < linesBelow.length; j++) {\n const line = linesBelow[j];\n const {first, last, point} = findPoint(line, sourcePoint, 'x');\n if (!point || (first && last)) {\n continue;\n }\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n if (!last) {\n break;\n }\n }\n }\n points.push(...postponed);\n}\nfunction findPoint(line, sourcePoint, property) {\n const point = line.interpolate(sourcePoint, property);\n if (!point) {\n return {};\n }\n const pointValue = point[property];\n const segments = line.segments;\n const linePoints = line.points;\n let first = false;\n let last = false;\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n const firstValue = linePoints[segment.start][property];\n const lastValue = linePoints[segment.end][property];\n if (_isBetween(pointValue, firstValue, lastValue)) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n return {first, last, point};\n}\n\nclass simpleArc {\n constructor(opts) {\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n pathSegment(ctx, bounds, opts) {\n const {x, y, radius} = this;\n bounds = bounds || {start: 0, end: TAU};\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n interpolate(point) {\n const {x, y, radius} = this;\n const angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle\n };\n }\n}\n\nfunction _getTarget(source) {\n const {chart, fill, line} = source;\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n if (fill === 'stack') {\n return _buildStackLine(source);\n }\n if (fill === 'shape') {\n return true;\n }\n const boundary = computeBoundary(source);\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n return _createBoundaryLine(boundary, line);\n}\nfunction getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\n}\nfunction computeLinearBoundary(source) {\n const {scale = {}, fill} = source;\n const pixel = _getTargetPixel(fill, scale);\n if (isNumberFinite(pixel)) {\n const horizontal = scale.isHorizontal();\n return {\n x: horizontal ? pixel : null,\n y: horizontal ? null : pixel\n };\n }\n return null;\n}\nfunction computeCircularBoundary(source) {\n const {scale, fill} = source;\n const options = scale.options;\n const length = scale.getLabels().length;\n const start = options.reverse ? scale.max : scale.min;\n const value = _getTargetValue(fill, scale, start);\n const target = [];\n if (options.grid.circular) {\n const center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n for (let i = 0; i < length; ++i) {\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\n\nfunction _drawfill(ctx, source, area) {\n const target = _getTarget(source);\n const {line, scale, axis} = source;\n const lineOpts = line.options;\n const fillOption = lineOpts.fill;\n const color = lineOpts.backgroundColor;\n const {above = color, below = color} = fillOption || {};\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {line, target, above, below, area, scale, axis});\n unclipArea(ctx);\n }\n}\nfunction doFill(ctx, cfg) {\n const {line, target, above, below, area, scale} = cfg;\n const property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n if (property === 'x' && below !== above) {\n clipVertical(ctx, target, area.top);\n fill(ctx, {line, target, color: above, scale, property});\n ctx.restore();\n ctx.save();\n clipVertical(ctx, target, area.bottom);\n }\n fill(ctx, {line, target, color: below, scale, property});\n ctx.restore();\n}\nfunction clipVertical(ctx, target, clipY) {\n const {segments, points} = target;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments) {\n const {start, end} = segment;\n const firstPoint = points[start];\n const lastPoint = points[_findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(firstPoint.x, clipY);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {move: lineLoop});\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(lastPoint.x, clipY);\n }\n }\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\nfunction fill(ctx, cfg) {\n const {line, target, property, color, scale} = cfg;\n const segments = _segments(line, target, property);\n for (const {source: src, target: tgt, start, end} of segments) {\n const {style: {backgroundColor = color} = {}} = src;\n const notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, notShape && _getBounds(property, start, end));\n ctx.beginPath();\n const lineLoop = !!line.pathSegment(ctx, src);\n let loop;\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n const targetLoop = !!target.pathSegment(ctx, tgt, {move: lineLoop, reverse: true});\n loop = lineLoop && targetLoop;\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n}\nfunction clipBounds(ctx, scale, bounds) {\n const {top, bottom} = scale.chart.chartArea;\n const {property, start, end} = bounds || {};\n if (property === 'x') {\n ctx.beginPath();\n ctx.rect(start, top, end - start, bottom - top);\n ctx.clip();\n }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n const interpolatedPoint = target.interpolate(point, property);\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\n\nvar index = {\n id: 'filler',\n afterDatasetsUpdate(chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n for (i = 0; i < count; ++i) {\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: _decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line,\n };\n }\n meta.$filler = source;\n sources.push(source);\n }\n for (i = 0; i < count; ++i) {\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n source.fill = _resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw(chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n source.line.updateControlPoints(area, source.axis);\n if (draw && source.fill) {\n _drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw(chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n const metasets = chart.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (_shouldApplyFill(source)) {\n _drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw(chart, args, options) {\n const source = args.meta.$filler;\n if (!_shouldApplyFill(source) || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n _drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nconst getBoxSize = (labelOpts, fontSize) => {\n let {boxHeight = fontSize, boxWidth = fontSize} = labelOpts;\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = labelOpts.pointStyleWidth || Math.min(boxWidth, fontSize);\n }\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\nconst itemsEqual = (a, b) => a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n constructor(config) {\n super();\n this._added = false;\n this.legendHitBoxes = [];\n this._hoveredItem = null;\n this.doughnutMode = false;\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = callback(labelOpts.generateLabels, [this.chart], this) || [];\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item) => labelOpts.filter(item, this.chart.data));\n }\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b) => labelOpts.sort(a, b, this.chart.data));\n }\n if (this.options.reverse) {\n legendItems.reverse();\n }\n this.legendItems = legendItems;\n }\n fit() {\n const {options, ctx} = this;\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const {boxWidth, itemHeight} = getBoxSize(labelOpts, fontSize);\n let width, height;\n ctx.font = labelFont.string;\n if (this.isHorizontal()) {\n width = this.maxWidth;\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight;\n width = this._fitCols(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n }\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxWidth, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const lineWidths = this.lineWidths = [0];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n hitboxes[i] = {left: 0, top, row, width: itemWidth, height: itemHeight};\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n _fitCols(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxHeight, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n let left = 0;\n let col = 0;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n hitboxes[i] = {left, top: currentColHeight, col, width: itemWidth, height: itemHeight};\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n return totalWidth;\n }\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const {legendHitBoxes: hitboxes, options: {align, labels: {padding}, rtl}} = this;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes) {\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes) {\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n this._draw();\n unclipArea(ctx);\n }\n }\n _draw() {\n const {options: opts, columnSizes, lineWidths, ctx} = this;\n const {align, labels: labelOpts} = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const {color: fontColor, padding} = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n this.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n const {boxWidth, boxHeight, itemHeight} = getBoxSize(labelOpts, fontSize);\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n ctx.save();\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n if (labelOpts.usePointStyle) {\n const drawOptions = {\n radius: boxHeight * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n drawPointLegend(ctx, drawOptions, centerX, centerY, labelOpts.pointStyleWidth && boxWidth);\n } else {\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n if (Object.values(borderRadius).some(v => v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + (itemHeight / 2), labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n overrideTextDirection(this.ctx, opts.textDirection);\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i) => {\n ctx.strokeStyle = legendItem.fontColor || fontColor;\n ctx.fillStyle = legendItem.fontColor || fontColor;\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n rtlHelper.setWidth(this.width);\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n const realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n if (isHorizontal) {\n cursor.x += width + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n if (!titleOpts.display) {\n return;\n }\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n let left = this.left;\n let maxWidth = this.width;\n if (this.isHorizontal()) {\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n const maxHeight = this.columnSizes.reduce((acc, size) => Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n const x = _alignStartEnd(position, left, left + maxWidth);\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n if (_isBetween(x, this.left, this.right)\n && _isBetween(y, this.top, this.bottom)) {\n lh = this.legendHitBoxes;\n for (i = 0; i < lh.length; ++i) {\n hitBox = lh[i];\n if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width)\n && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n return this.legendItems[i];\n }\n }\n }\n return null;\n }\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n callback(opts.onLeave, [e, previous, this], this);\n }\n this._hoveredItem = hoveredItem;\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [e, hoveredItem, this], this);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [e, hoveredItem, this], this);\n }\n }\n}\nfunction isListened(type, opts) {\n if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start(chart, _args, options) {\n const legend = chart.legend = new Legend({ctx: chart.ctx, options, chart});\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop(chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate(chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate(chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent(chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick(e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: (ctx) => ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n generateLabels(chart) {\n const datasets = chart.data.datasets;\n const {labels: {usePointStyle, pointStyle, textAlign, color}} = chart.legend.options;\n return chart._getSortedDatasetMetas().map((meta) => {\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: 0,\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: (ctx) => ctx.chart.options.color,\n display: false,\n position: 'center',\n text: '',\n }\n },\n descriptors: {\n _scriptable: (name) => !name.startsWith('on'),\n labels: {\n _scriptable: (name) => !['generateLabels', 'filter', 'sort'].includes(name),\n }\n },\n};\n\nclass Title extends Element {\n constructor(config) {\n super();\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight) {\n const opts = this.options;\n this.left = 0;\n this.top = 0;\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n _drawArgs(offset) {\n const {top, left, bottom, right, options} = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {titleX, titleY, maxWidth, rotation};\n }\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n if (!opts.display) {\n return;\n }\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const {titleX, titleY, maxWidth, rotation} = this._drawArgs(offset);\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n}\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start(chart, _args, options) {\n createTitle(chart, options);\n },\n stop(chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate(chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold',\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start(chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop(chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate(chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal',\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst positioners = {\n average(items) {\n if (!items.length) {\n return false;\n }\n let i, len;\n let x = 0;\n let y = 0;\n let count = 0;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n x += pos.x;\n y += pos.y;\n ++count;\n }\n }\n return {\n x: x / count,\n y: y / count\n };\n },\n nearest(items, eventPosition) {\n if (!items.length) {\n return false;\n }\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n return {\n x,\n y\n };\n }\n};\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n return base;\n}\nfunction splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\nfunction createTooltipItem(chart, item) {\n const {element, datasetIndex, index} = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const {label, value} = controller.getLabelAndValue(index);\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\nfunction getTooltipSize(tooltip, options) {\n const ctx = tooltip.chart.ctx;\n const {body, footer, title} = tooltip;\n const {boxWidth, boxHeight} = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n let combinedBodyLength = body.reduce((count, bodyItem) => count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight\n\t\t\t+ (titleLineCount - 1) * options.titleSpacing\n\t\t\t+ options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight\n\t\t\t+ (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight\n\t\t\t+ (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop\n\t\t\t+ footerLineCount * footerFont.lineHeight\n\t\t\t+ (footerLineCount - 1) * options.footerSpacing;\n }\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? (boxWidth + 2 + options.boxPadding) : 0;\n each(body, (bodyItem) => {\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {width, height};\n}\nfunction determineYAlign(chart, size) {\n const {y, height} = size;\n if (y < height / 2) {\n return 'top';\n } else if (y > (chart.height - height / 2)) {\n return 'bottom';\n }\n return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const {x, width} = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n const {x, width} = size;\n const {width: chartWidth, chartArea: {left, right}} = chart;\n let xAlign = 'center';\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n return xAlign;\n}\nfunction determineAlignment(chart, options, size) {\n const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\nfunction alignX(size, xAlign) {\n let {x, width} = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= (width / 2);\n }\n return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n let {y, height} = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= (height / 2);\n }\n return y;\n}\nfunction getBackgroundPoint(options, size, alignment, chart) {\n const {caretSize, caretPadding, cornerRadius} = options;\n const {xAlign, yAlign} = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretSize;\n }\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n return align === 'center'\n ? tooltip.x + tooltip.width / 2\n : align === 'right'\n ? tooltip.x + tooltip.width - padding.right\n : tooltip.x + padding.left;\n}\nfunction getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\nclass Tooltip extends Element {\n constructor(config) {\n super();\n this.opacity = 0;\n this._active = [];\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.chart = config.chart || config._chart;\n this._chart = this.chart;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n if (cached) {\n return cached;\n }\n const chart = this.chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this.chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n return animations;\n }\n getContext() {\n return this.$context ||\n\t\t\t(this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n getTitle(context, options) {\n const {callbacks} = options;\n const beforeTitle = callbacks.beforeTitle.apply(this, [context]);\n const title = callbacks.title.apply(this, [context]);\n const afterTitle = callbacks.afterTitle.apply(this, [context]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.beforeBody.apply(this, [tooltipItems]));\n }\n getBody(tooltipItems, options) {\n const {callbacks} = options;\n const bodyItems = [];\n each(tooltipItems, (context) => {\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(scoped.beforeLabel.call(this, context)));\n pushOrConcat(bodyItem.lines, scoped.label.call(this, context));\n pushOrConcat(bodyItem.after, splitNewlines(scoped.afterLabel.call(this, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.afterBody.apply(this, [tooltipItems]));\n }\n getFooter(tooltipItems, options) {\n const {callbacks} = options;\n const beforeFooter = callbacks.beforeFooter.apply(this, [tooltipItems]);\n const footer = callbacks.footer.apply(this, [tooltipItems]);\n const afterFooter = callbacks.afterFooter.apply(this, [tooltipItems]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n _createItems(options) {\n const active = this._active;\n const data = this.chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n for (i = 0, len = active.length; i < len; ++i) {\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array) => options.filter(element, index, array, data));\n }\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b) => options.itemSort(a, b, data));\n }\n each(tooltipItems, (context) => {\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(scoped.labelColor.call(this, context));\n labelPointStyles.push(scoped.labelPointStyle.call(this, context));\n labelTextColors.push(scoped.labelTextColor.call(this, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this.chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n if (changed && options.external) {\n options.external.call(this, {chart: this.chart, tooltip: this, replay});\n }\n }\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n getCaretPosition(tooltipPoint, size, options) {\n const {xAlign, yAlign} = this;\n const {caretSize, cornerRadius} = options;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n const {x: ptX, y: ptY} = tooltipPoint;\n const {width, height} = size;\n let x1, x2, x3, y1, y2, y3;\n if (yAlign === 'center') {\n y2 = ptY + (height / 2);\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + (caretSize);\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {x1, x2, x3, y1, y2, y3};\n }\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColors = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const {boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColors.borderColor;\n ctx.fillStyle = labelColors.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = isObject(labelColors.borderWidth) ? Math.max(...Object.values(labelColors.borderWidth)) : (labelColors.borderWidth || 1);\n ctx.strokeStyle = labelColors.borderColor;\n ctx.setLineDash(labelColors.borderDash || []);\n ctx.lineDashOffset = labelColors.borderDashOffset || 0;\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth - boxPadding);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - boxPadding - 2);\n const borderRadius = toTRBLCorners(labelColors.borderRadius);\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n ctx.fillStyle = this.labelTextColors[i];\n }\n drawBody(pt, ctx, options) {\n const {body} = this;\n const {bodySpacing, bodyAlign, displayColors, boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right'\n ? bodyAlign === 'center' ? (boxWidth / 2 + boxPadding) : (boxWidth + 2 + boxPadding)\n : 0;\n for (i = 0, ilen = body.length; i < ilen; ++i) {\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n for (j = 0, jlen = lines.length; j < jlen; ++j) {\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n each(bodyItem.after, fillLineOfText);\n }\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n drawBackground(pt, ctx, tooltipSize, options) {\n const {xAlign, yAlign} = this;\n const {x, y} = pt;\n const {width, height} = tooltipSize;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(options.cornerRadius);\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n _updateAnimationTarget(options) {\n const chart = this.chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n _willRender() {\n return !!this.opacity;\n }\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n if (!opacity) {\n return;\n }\n this._updateAnimationTarget(options);\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n const padding = toPadding(options.padding);\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n this.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n this.drawTitle(pt, ctx, options);\n this.drawBody(pt, ctx, options);\n this.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.chart.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n handleEvent(e, replay, inChartArea = true) {\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n this._ignoreReplayEvents = false;\n const options = this.options;\n const lastActive = this._active || [];\n const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n const positionChanged = this._positionChanged(active, e);\n const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n if (changed) {\n this._active = active;\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n this.update(true, replay);\n }\n }\n return changed;\n }\n _getActiveElements(e, lastActive, replay, inChartArea) {\n const options = this.options;\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n if (options.reverse) {\n active.reverse();\n }\n return active;\n }\n _positionChanged(active, e) {\n const {caretX, caretY, options} = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\nTooltip.positioners = positioners;\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n afterInit(chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({chart, options});\n }\n },\n beforeUpdate(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw(chart) {\n const tooltip = chart.tooltip;\n if (tooltip && tooltip._willRender()) {\n const args = {\n tooltip\n };\n if (chart.notifyPlugins('beforeTooltipDraw', args) === false) {\n return;\n }\n tooltip.draw(chart.ctx);\n chart.notifyPlugins('afterTooltipDraw', args);\n }\n },\n afterEvent(chart, args) {\n if (chart.tooltip) {\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold',\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {\n },\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold',\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts) => opts.bodyFont.size,\n boxWidth: (ctx, opts) => opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart',\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'width', 'height', 'caretX', 'caretY'],\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: {\n beforeTitle: noop,\n title(tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label(tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n let label = tooltipItem.dataset.label || '';\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0,\n };\n },\n labelTextColor() {\n return this.options.bodyColor;\n },\n labelPointStyle(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation,\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n }\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: (name) => name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false,\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: ['interaction']\n};\n\nvar plugins = /*#__PURE__*/Object.freeze({\n__proto__: null,\nDecimation: plugin_decimation,\nFiller: index,\nLegend: plugin_legend,\nSubTitle: plugin_subtitle,\nTitle: plugin_title,\nTooltip: plugin_tooltip\n});\n\nconst addIfString = (labels, raw, index, addedLabels) => {\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({index, label: raw});\n } else if (isNaN(raw)) {\n index = null;\n }\n return index;\n};\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\nconst validIndex = (index, max) => index === null ? null : _limitValue(Math.round(index), 0, max);\nclass CategoryScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this._startValue = undefined;\n this._valueRange = 0;\n this._addedLabels = [];\n }\n init(scaleOptions) {\n const added = this._addedLabels;\n if (added.length) {\n const labels = this.getLabels();\n for (const {index, label} of added) {\n if (labels[index] === label) {\n labels.splice(index, 1);\n }\n }\n this._addedLabels = [];\n }\n super.init(scaleOptions);\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index\n : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n determineDataLimits() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this.getMinMax(true);\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n labels = (min === 0 && max === labels.length - 1) ? labels : labels.slice(min, max + 1);\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n for (let value = min; value <= max; value++) {\n ticks.push({value});\n }\n return ticks;\n }\n getLabelForValue(value) {\n const labels = this.getLabels();\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n }\n configure() {\n super.configure();\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n getBasePixel() {\n return this.bottom;\n }\n}\nCategoryScale.id = 'category';\nCategoryScale.defaults = {\n ticks: {\n callback: CategoryScale.prototype.getLabelForValue\n }\n};\n\nfunction generateTicks$1(generationOptions, dataRange) {\n const ticks = [];\n const MIN_SPACING = 1e-14;\n const {bounds, step, min, max, precision, count, maxTicks, maxDigits, includeBounds} = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const {min: rmin, max: rmax} = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [{value: rmin}, {value: rmax}];\n }\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n const decimalPlaces = Math.max(\n _decimalPlaces(spacing),\n _decimalPlaces(niceMin)\n );\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({value: min});\n if (niceMin < min) {\n j++;\n }\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n for (; j < numSpaces; ++j) {\n ticks.push({value: Math.round((niceMin + j * spacing) * factor) / factor});\n }\n if (maxDefined && includeBounds && niceMax !== max) {\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({value: max});\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({value: niceMax});\n }\n return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, {horizontal, minRotation}) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._endValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n return +raw;\n }\n handleTickRangeOptions() {\n const {beginAtZero} = this.options;\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n if (min === max) {\n let offset = 1;\n if (max >= Number.MAX_SAFE_INTEGER || min <= Number.MIN_SAFE_INTEGER) {\n offset = Math.abs(max * 0.05);\n }\n setMax(max + offset);\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n getTickLimit() {\n const tickOpts = this.options.ticks;\n let {maxTicksLimit, stepSize} = tickOpts;\n let maxTicks;\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n return maxTicks;\n }\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n super.configure();\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n}\n\nclass LinearScale extends LinearScaleBase {\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? min : 0;\n this.max = isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\nLinearScale.id = 'linear';\nLinearScale.defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n};\n\nfunction isMajor(tickVal) {\n const remain = tickVal / (Math.pow(10, Math.floor(log10(tickVal))));\n return remain === 1;\n}\nfunction generateTicks(generationOptions, dataRange) {\n const endExp = Math.floor(log10(dataRange.max));\n const endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\n const ticks = [];\n let tickVal = finiteOrDefault(generationOptions.min, Math.pow(10, Math.floor(log10(dataRange.min))));\n let exp = Math.floor(log10(tickVal));\n let significand = Math.floor(tickVal / Math.pow(10, exp));\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n do {\n ticks.push({value: tickVal, major: isMajor(tickVal)});\n ++significand;\n if (significand === 10) {\n significand = 1;\n ++exp;\n precision = exp >= 0 ? 1 : precision;\n }\n tickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\n } while (exp < endExp || (exp === endExp && significand < endSignificand));\n const lastTick = finiteOrDefault(generationOptions.max, tickVal);\n ticks.push({value: lastTick, major: isMajor(tickVal)});\n return ticks;\n}\nclass LogarithmicScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n this.handleTickRangeOptions();\n }\n handleTickRangeOptions() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n const exp = (v, m) => Math.pow(10, Math.floor(log10(v)) + m);\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(exp(min, -1));\n setMax(exp(max, +1));\n }\n }\n if (min <= 0) {\n setMin(exp(max, -1));\n }\n if (max <= 0) {\n setMax(exp(min, +1));\n }\n if (this._zero && this.min !== this._suggestedMin && min === exp(this.min, 0)) {\n setMin(exp(min, -1));\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const opts = this.options;\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n getLabelForValue(value) {\n return value === undefined\n ? '0'\n : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n configure() {\n const start = this.min;\n super.configure();\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min\n ? 0\n : (log10(value) - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\nLogarithmicScale.id = 'logarithmic';\nLogarithmicScale.defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n};\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [label];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - (size / 2),\n end: pos + (size / 2)\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n return {\n start: pos,\n end: pos + size\n };\n}\nfunction fitWithPointLabels(scale) {\n const orig = {\n l: scale.left + scale._padding.left,\n r: scale.right - scale._padding.right,\n t: scale.top + scale._padding.top,\n b: scale.bottom - scale._padding.bottom\n };\n const limits = Object.assign({}, orig);\n const labelSizes = [];\n const padding = [];\n const valueCount = scale._pointLabels.length;\n const pointLabelOpts = scale.options.pointLabels;\n const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n for (let i = 0; i < valueCount; i++) {\n const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n const angle = Math.round(toDegrees(angleRadians));\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n scale.setCenterPoint(\n orig.l - limits.l,\n limits.r - orig.r,\n orig.t - limits.t,\n limits.b - orig.b\n );\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n const sin = Math.abs(Math.sin(angle));\n const cos = Math.abs(Math.cos(angle));\n let x = 0;\n let y = 0;\n if (hLimits.start < orig.l) {\n x = (orig.l - hLimits.start) / sin;\n limits.l = Math.min(limits.l, orig.l - x);\n } else if (hLimits.end > orig.r) {\n x = (hLimits.end - orig.r) / sin;\n limits.r = Math.max(limits.r, orig.r + x);\n }\n if (vLimits.start < orig.t) {\n y = (orig.t - vLimits.start) / cos;\n limits.t = Math.min(limits.t, orig.t - y);\n } else if (vLimits.end > orig.b) {\n y = (vLimits.end - orig.b) / cos;\n limits.b = Math.max(limits.b, orig.b + y);\n }\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale._pointLabels.length;\n const opts = scale.options;\n const extra = getTickBackdropHeight(opts) / 2;\n const outerDistance = scale.drawingArea;\n const additionalAngle = opts.pointLabels.centerPointLabels ? PI / valueCount : 0;\n for (let i = 0; i < valueCount; i++) {\n const pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + padding[i], additionalAngle);\n const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n const size = labelSizes[i];\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n items.push({\n x: pointLabelPosition.x,\n y,\n textAlign,\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n });\n }\n return items;\n}\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= (w / 2);\n }\n return x;\n}\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= (h / 2);\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\nfunction drawPointLabels(scale, labelCount) {\n const {ctx, options: {pointLabels}} = scale;\n for (let i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n const plFont = toFont(optsAtIndex.font);\n const {x, y, textAlign, left, top, right, bottom} = scale._pointLabelItems[i];\n const {backdropColor} = optsAtIndex;\n if (!isNullOrUndef(backdropColor)) {\n const borderRadius = toTRBLCorners(optsAtIndex.borderRadius);\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillStyle = backdropColor;\n const backdropLeft = left - padding.left;\n const backdropTop = top - padding.top;\n const backdropWidth = right - left + padding.width;\n const backdropHeight = bottom - top + padding.height;\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: backdropLeft,\n y: backdropTop,\n w: backdropWidth,\n h: backdropHeight,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight);\n }\n }\n renderText(\n ctx,\n scale._pointLabels[i],\n x,\n y + (plFont.lineHeight / 2),\n plFont,\n {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n }\n );\n }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const {ctx} = scale;\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n for (let i = 1; i < labelCount; i++) {\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n const {color, lineWidth} = gridLineOpts;\n if ((!circular && !labelCount) || !color || !lineWidth || radius < 0) {\n return;\n }\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(gridLineOpts.borderDash);\n ctx.lineDashOffset = gridLineOpts.borderDashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\nclass RadialLinearScale extends LinearScaleBase {\n constructor(cfg) {\n super(cfg);\n this.xCenter = undefined;\n this.yCenter = undefined;\n this.drawingArea = undefined;\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n setDimensions() {\n const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n const w = this.width = this.maxWidth - padding.width;\n const h = this.height = this.maxHeight - padding.height;\n this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n this.drawingArea = Math.floor(Math.min(w, h) / 2);\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(false);\n this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels()\n .map((value, index) => {\n const label = callback(this.options.pointLabels.callback, [value, index], this);\n return label || label === 0 ? label : '';\n })\n .filter((v, i) => this.chart.getDataVisibility(i));\n }\n fit() {\n const opts = this.options;\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n }\n getIndexAngle(index) {\n const angleMultiplier = TAU / (this._pointLabels.length || 1);\n const startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n getPointLabelPosition(index) {\n const {left, top, right, bottom} = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom,\n };\n }\n drawBackground() {\n const {backgroundColor, grid: {circular}} = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const {angleLines, grid} = opts;\n const labelCount = this._pointLabels.length;\n let i, offset, position;\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n if (grid.display) {\n this.ticks.forEach((tick, index) => {\n if (index !== 0) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const optsAtIndex = grid.setContext(this.getContext(index - 1));\n drawRadiusLine(this, optsAtIndex, offset, labelCount);\n }\n });\n }\n if (angleLines.display) {\n ctx.save();\n for (i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const {color, lineWidth} = optsAtIndex;\n if (!lineWidth || !color) {\n continue;\n }\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = this.getDistanceFromCenterForValue(opts.ticks.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n ctx.restore();\n }\n }\n drawBorder() {}\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n if (!tickOpts.display) {\n return;\n }\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n this.ticks.forEach((tick, index) => {\n if (index === 0 && !opts.reverse) {\n return;\n }\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(\n -width / 2 - padding.left,\n -offset - tickFont.size / 2 - padding.top,\n width + padding.width,\n tickFont.size + padding.height\n );\n }\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n });\n });\n ctx.restore();\n }\n drawTitle() {}\n}\nRadialLinearScale.id = 'radialLinear';\nRadialLinearScale.defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback(label) {\n return label;\n },\n padding: 5,\n centerPointLabels: false\n }\n};\nRadialLinearScale.defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n};\nRadialLinearScale.descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n};\n\nconst INTERVALS = {\n millisecond: {common: true, size: 1, steps: 1000},\n second: {common: true, size: 1000, steps: 60},\n minute: {common: true, size: 60000, steps: 60},\n hour: {common: true, size: 3600000, steps: 24},\n day: {common: true, size: 86400000, steps: 30},\n week: {common: false, size: 604800000, steps: 4},\n month: {common: true, size: 2.628e9, steps: 12},\n quarter: {common: false, size: 7.884e9, steps: 4},\n year: {common: true, size: 3.154e10}\n};\nconst UNITS = (Object.keys(INTERVALS));\nfunction sorter(a, b) {\n return a - b;\n}\nfunction parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n const adapter = scale._adapter;\n const {parser, round, isoWeekday} = scale._parseOpts;\n let value = input;\n if (typeof parser === 'function') {\n value = parser(value);\n }\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string'\n ? adapter.parse(value, parser)\n : adapter.parse(value);\n }\n if (value === null) {\n return null;\n }\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true)\n ? adapter.startOf(value, 'isoWeek', isoWeekday)\n : adapter.startOf(value, round);\n }\n return +value;\n}\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n for (let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n return UNITS[ilen - 1];\n}\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for (let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\nfunction determineMajorUnit(unit) {\n for (let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\nfunction addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const {lo, hi} = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n for (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n const map = {};\n const ilen = values.length;\n let i, value;\n for (i = 0; i < ilen; ++i) {\n value = values[i];\n map[value] = i;\n ticks.push({\n value,\n major: false\n });\n }\n return (ilen === 0 || !majorUnit) ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n constructor(props) {\n super(props);\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n this._unit = 'day';\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n init(scaleOpts, opts) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n adapter.init(opts);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n super.init(scaleOpts);\n this._normalized = opts.normalized;\n }\n parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {min, max};\n }\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n const min = this.min;\n const max = this.max;\n const ticks = _filterBetween(timestamps, min, max);\n this._unit = timeOpts.unit || (tickOpts.autoSkip\n ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min))\n : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined\n : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n if (options.reverse) {\n ticks.reverse();\n }\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n afterAutoSkip() {\n if (this.options.offsetAfterAutoskip) {\n this.initOffsets(this.ticks.map(tick => +tick.value));\n }\n }\n initOffsets(timestamps) {\n let start = 0;\n let end = 0;\n let first, last;\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n this._offsets = {start, end, factor: 1 / (start + 1 + end)};\n }\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(timeOpts.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {\n addTick(ticks, time, timestamps);\n }\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n return Object.keys(ticks).sort((a, b) => a - b).map(x => +x);\n }\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n const label = this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n const formatter = options.ticks.callback;\n return formatter ? callback(formatter, [label, index, ticks], this) : label;\n }\n generateTickLabels(ticks) {\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n return {\n w: (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation),\n h: (tickLabelWidth * sinRotation) + (tickFontSize * cosRotation)\n };\n }\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [exampleTime], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const metas = this.getMatchingVisibleMetas();\n if (this._normalized && metas.length) {\n return (this._cache.data = metas[0].controller.getAllParsedValues(this));\n }\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n return (this._cache.data = this.normalize(timestamps));\n }\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const labels = this.getLabels();\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n timestamps.push(parse(this, labels[i]));\n }\n return (this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps));\n }\n normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n}\nTimeScale.id = 'time';\nTimeScale.defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n major: {\n enabled: false\n }\n }\n};\n\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({lo, hi} = _lookupByKey(table, 'pos', val));\n }\n ({pos: prevSource, time: prevTarget} = table[lo]);\n ({pos: nextSource, time: nextTarget} = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({lo, hi} = _lookupByKey(table, 'time', val));\n }\n ({time: prevSource, pos: prevTarget} = table[lo]);\n ({time: nextSource, pos: nextTarget} = table[hi]);\n }\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n constructor(props) {\n super(props);\n this._table = [];\n this._minPos = undefined;\n this._tableRange = undefined;\n }\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n buildLookupTable(timestamps) {\n const {min, max} = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n if (items.length < 2) {\n return [\n {time: min, pos: 0},\n {time: max, pos: 1}\n ];\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({time: curr, pos: i / (ilen - 1)});\n }\n }\n return table;\n }\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n if (timestamps.length) {\n return timestamps;\n }\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\nTimeSeriesScale.id = 'timeseries';\nTimeSeriesScale.defaults = TimeScale.defaults;\n\nvar scales = /*#__PURE__*/Object.freeze({\n__proto__: null,\nCategoryScale: CategoryScale,\nLinearScale: LinearScale,\nLogarithmicScale: LogarithmicScale,\nRadialLinearScale: RadialLinearScale,\nTimeScale: TimeScale,\nTimeSeriesScale: TimeSeriesScale\n});\n\nconst registerables = [\n controllers,\n elements,\n plugins,\n scales,\n];\n\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, index as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, _detectPlatform, animator, controllers, elements, layouts, plugins, registerables, registry, scales };\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toLength = require('../internals/to-length');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar classof = require('../internals/classof-raw');\nvar isRegExp = require('../internals/is-regexp');\nvar getRegExpFlags = require('../internals/regexp-flags');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar InternalStateModule = require('../internals/internal-state');\nvar IS_PURE = require('../internals/is-pure');\n\nvar MATCH_ALL = wellKnownSymbol('matchAll');\nvar REGEXP_STRING = 'RegExp String';\nvar REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);\nvar RegExpPrototype = RegExp.prototype;\nvar regExpBuiltinExec = RegExpPrototype.exec;\nvar nativeMatchAll = ''.matchAll;\n\nvar WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () {\n 'a'.matchAll(/./);\n});\n\nvar regExpExec = function (R, S) {\n var exec = R.exec;\n var result;\n if (typeof exec == 'function') {\n result = exec.call(R, S);\n if (typeof result != 'object') throw TypeError('Incorrect exec result');\n return result;\n } return regExpBuiltinExec.call(R, S);\n};\n\n// eslint-disable-next-line max-len\nvar $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, global, fullUnicode) {\n setInternalState(this, {\n type: REGEXP_STRING_ITERATOR,\n regexp: regexp,\n string: string,\n global: global,\n unicode: fullUnicode,\n done: false\n });\n}, REGEXP_STRING, function next() {\n var state = getInternalState(this);\n if (state.done) return { value: undefined, done: true };\n var R = state.regexp;\n var S = state.string;\n var match = regExpExec(R, S);\n if (match === null) return { value: undefined, done: state.done = true };\n if (state.global) {\n if (String(match[0]) == '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode);\n return { value: match, done: false };\n }\n state.done = true;\n return { value: match, done: false };\n});\n\nvar $matchAll = function (string) {\n var R = anObject(this);\n var S = String(string);\n var C, flagsValue, flags, matcher, global, fullUnicode;\n C = speciesConstructor(R, RegExp);\n flagsValue = R.flags;\n if (flagsValue === undefined && R instanceof RegExp && !('flags' in RegExpPrototype)) {\n flagsValue = getRegExpFlags.call(R);\n }\n flags = flagsValue === undefined ? '' : String(flagsValue);\n matcher = new C(C === RegExp ? R.source : R, flags);\n global = !!~flags.indexOf('g');\n fullUnicode = !!~flags.indexOf('u');\n matcher.lastIndex = toLength(R.lastIndex);\n return new $RegExpStringIterator(matcher, S, global, fullUnicode);\n};\n\n// `String.prototype.matchAll` method\n// https://github.com/tc39/proposal-string-matchall\n$({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {\n matchAll: function matchAll(regexp) {\n var O = requireObjectCoercible(this);\n var flags, S, matcher, rx;\n if (regexp != null) {\n if (isRegExp(regexp)) {\n flags = String(requireObjectCoercible('flags' in RegExpPrototype\n ? regexp.flags\n : getRegExpFlags.call(regexp)\n ));\n if (!~flags.indexOf('g')) throw TypeError('`.matchAll` does not allow non-global regexes');\n }\n if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll.apply(O, arguments);\n matcher = regexp[MATCH_ALL];\n if (matcher === undefined && IS_PURE && classof(regexp) == 'RegExp') matcher = $matchAll;\n if (matcher != null) return aFunction(matcher).call(regexp, O);\n } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll.apply(O, arguments);\n S = String(O);\n rx = new RegExp(regexp, 'g');\n return IS_PURE ? $matchAll.call(rx, S) : rx[MATCH_ALL](S);\n }\n});\n\nIS_PURE || MATCH_ALL in RegExpPrototype || createNonEnumerableProperty(RegExpPrototype, MATCH_ALL, $matchAll);\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","module.exports = false;\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***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\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\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\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\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('splice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar FORCED = nativeToFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.github.io/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n // eslint-disable-next-line max-statements\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toInteger(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n var multiply = function (n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n };\n\n var divide = function (n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n };\n\n var dataToString = function () {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n }\n } return s;\n };\n\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n result = dataToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n result = dataToString() + repeat.call('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat.call('0', fractDigits - k) + result\n : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","// slide\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Slide = factory();\n }\n\n}( window, function factory() {\n'use strict';\n\nfunction Slide( parent ) {\n this.parent = parent;\n this.isOriginLeft = parent.originSide == 'left';\n this.cells = [];\n this.outerWidth = 0;\n this.height = 0;\n}\n\nvar proto = Slide.prototype;\n\nproto.addCell = function( cell ) {\n this.cells.push( cell );\n this.outerWidth += cell.size.outerWidth;\n this.height = Math.max( cell.size.outerHeight, this.height );\n // first cell stuff\n if ( this.cells.length == 1 ) {\n this.x = cell.x; // x comes from first cell\n var beginMargin = this.isOriginLeft ? 'marginLeft' : 'marginRight';\n this.firstMargin = cell.size[ beginMargin ];\n }\n};\n\nproto.updateTarget = function() {\n var endMargin = this.isOriginLeft ? 'marginRight' : 'marginLeft';\n var lastCell = this.getLastCell();\n var lastMargin = lastCell ? lastCell.size[ endMargin ] : 0;\n var slideWidth = this.outerWidth - ( this.firstMargin + lastMargin );\n this.target = this.x + this.firstMargin + slideWidth * this.parent.cellAlign;\n};\n\nproto.getLastCell = function() {\n return this.cells[ this.cells.length - 1 ];\n};\n\nproto.select = function() {\n this.cells.forEach( function( cell ) {\n cell.select();\n });\n};\n\nproto.unselect = function() {\n this.cells.forEach( function( cell ) {\n cell.unselect();\n });\n};\n\nproto.getCellElements = function() {\n return this.cells.map( function( cell ) {\n return cell.element;\n });\n};\n\nreturn Slide;\n\n}));\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","import { computed, getCurrentInstance } from '@vue/composition-api';\nfunction runCB(cb, store, namespace, prop) {\n if (cb.length === 3) { // choose which signature to pass to cb function\n return cb(store, namespace, prop);\n }\n else {\n return cb(store, namespace ? `${namespace}/${prop}` : prop);\n }\n}\nfunction useFromArray(store, namespace, props, cb) {\n return props.reduce((result, prop) => {\n result[prop] = runCB(cb, store, namespace, prop);\n return result;\n }, {});\n}\nfunction useFromObject(store, namespace, props, cb) {\n const obj = {};\n for (let key in props) {\n if (props.hasOwnProperty(key)) {\n obj[key] = runCB(cb, store, namespace, props[key]);\n }\n }\n return obj;\n}\nexport function computedGetter(store, prop) {\n return computed(() => store.getters[prop]);\n}\nexport function getMutation(store, mutation) {\n return function () {\n return store.commit.apply(store, [mutation, ...arguments]);\n };\n}\nexport function getAction(store, action) {\n return function () {\n return store.dispatch.apply(store, [action, ...arguments]);\n };\n}\nexport function useMapping(store, namespace, map, cb) {\n if (!map) {\n return {};\n }\n if (map instanceof Array) {\n return useFromArray(store, namespace, map, cb);\n }\n return useFromObject(store, namespace, map, cb);\n}\nexport function getStoreFromInstance() {\n const vm = getCurrentInstance();\n if (!vm) {\n throw new Error('You must use this function within the \"setup()\" method, or insert the store as first argument.');\n }\n return vm.$store;\n}\n//# sourceMappingURL=util.js.map","import { computed } from '@vue/composition-api';\nimport { computedGetter, getAction, getMutation, getStoreFromInstance, useMapping } from './util';\nfunction computedState(store, namespace, prop) {\n return computed(() => store.state[namespace][prop]);\n}\nexport function useNamespacedState(storeOrNamespace, namespaceOrMap, map) {\n let store, namespace;\n if (arguments.length === 2) {\n store = getStoreFromInstance();\n map = namespaceOrMap;\n namespace = storeOrNamespace;\n }\n else {\n store = storeOrNamespace || getStoreFromInstance();\n namespace = namespaceOrMap;\n }\n return useMapping(store, namespace, map, computedState);\n}\nexport function useNamespacedMutations(storeOrNamespace, namespaceOrMap, map) {\n let store, namespace;\n if (arguments.length === 2) {\n store = getStoreFromInstance();\n map = namespaceOrMap;\n namespace = storeOrNamespace;\n }\n else {\n store = storeOrNamespace || getStoreFromInstance();\n namespace = namespaceOrMap;\n }\n return useMapping(store, namespace, map, getMutation);\n}\nexport function useNamespacedActions(storeOrNamespace, namespaceOrMap, map) {\n let store, namespace;\n if (arguments.length === 2) {\n store = getStoreFromInstance();\n map = namespaceOrMap;\n namespace = storeOrNamespace;\n }\n else {\n store = storeOrNamespace || getStoreFromInstance();\n namespace = namespaceOrMap;\n }\n return useMapping(store, namespace, map, getAction);\n}\nexport function useNamespacedGetters(storeOrNamespace, namespaceOrMap, map) {\n let store, namespace;\n if (arguments.length === 2) {\n store = getStoreFromInstance();\n map = namespaceOrMap;\n namespace = storeOrNamespace;\n }\n else {\n store = storeOrNamespace || getStoreFromInstance();\n namespace = namespaceOrMap;\n }\n return useMapping(store, namespace, map, computedGetter);\n}\nexport function createNamespacedHelpers(storeOrNamespace, namespace) {\n let store = undefined;\n if (arguments.length === 1) {\n namespace = storeOrNamespace;\n }\n else {\n store = storeOrNamespace;\n if (!namespace) {\n throw new Error('Namespace is missing to provide namespaced helpers');\n }\n }\n return {\n useState: (map) => useNamespacedState(store, namespace, map),\n useGetters: (map) => useNamespacedGetters(store, namespace, map),\n useMutations: (map) => useNamespacedMutations(store, namespace, map),\n useActions: (map) => useNamespacedActions(store, namespace, map),\n };\n}\n//# sourceMappingURL=namespaced.js.map","export * from './global';\nexport * from './namespaced';\nexport * from './wrapper';\n//# sourceMappingURL=index.js.map","\n /*! \n * portal-vue © Thorsten Lünborg, 2019 \n * \n * Version: 2.1.7\n * \n * LICENCE: MIT \n * \n * https://github.com/linusborg/portal-vue\n * \n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Vue = _interopDefault(require('vue'));\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar inBrowser = typeof window !== 'undefined';\nfunction freeze(item) {\n if (Array.isArray(item) || _typeof(item) === 'object') {\n return Object.freeze(item);\n }\n\n return item;\n}\nfunction combinePassengers(transports) {\n var slotProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return transports.reduce(function (passengers, transport) {\n var temp = transport.passengers[0];\n var newPassengers = typeof temp === 'function' ? temp(slotProps) : transport.passengers;\n return passengers.concat(newPassengers);\n }, []);\n}\nfunction stableSort(array, compareFn) {\n return array.map(function (v, idx) {\n return [idx, v];\n }).sort(function (a, b) {\n return compareFn(a[1], b[1]) || a[0] - b[0];\n }).map(function (c) {\n return c[1];\n });\n}\nfunction pick(obj, keys) {\n return keys.reduce(function (acc, key) {\n if (obj.hasOwnProperty(key)) {\n acc[key] = obj[key];\n }\n\n return acc;\n }, {});\n}\n\nvar transports = {};\nvar targets = {};\nvar sources = {};\nvar Wormhole = Vue.extend({\n data: function data() {\n return {\n transports: transports,\n targets: targets,\n sources: sources,\n trackInstances: inBrowser\n };\n },\n methods: {\n open: function open(transport) {\n if (!inBrowser) return;\n var to = transport.to,\n from = transport.from,\n passengers = transport.passengers,\n _transport$order = transport.order,\n order = _transport$order === void 0 ? Infinity : _transport$order;\n if (!to || !from || !passengers) return;\n var newTransport = {\n to: to,\n from: from,\n passengers: freeze(passengers),\n order: order\n };\n var keys = Object.keys(this.transports);\n\n if (keys.indexOf(to) === -1) {\n Vue.set(this.transports, to, []);\n }\n\n var currentIndex = this.$_getTransportIndex(newTransport); // Copying the array here so that the PortalTarget change event will actually contain two distinct arrays\n\n var newTransports = this.transports[to].slice(0);\n\n if (currentIndex === -1) {\n newTransports.push(newTransport);\n } else {\n newTransports[currentIndex] = newTransport;\n }\n\n this.transports[to] = stableSort(newTransports, function (a, b) {\n return a.order - b.order;\n });\n },\n close: function close(transport) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var to = transport.to,\n from = transport.from;\n if (!to || !from && force === false) return;\n\n if (!this.transports[to]) {\n return;\n }\n\n if (force) {\n this.transports[to] = [];\n } else {\n var index = this.$_getTransportIndex(transport);\n\n if (index >= 0) {\n // Copying the array here so that the PortalTarget change event will actually contain two distinct arrays\n var newTransports = this.transports[to].slice(0);\n newTransports.splice(index, 1);\n this.transports[to] = newTransports;\n }\n }\n },\n registerTarget: function registerTarget(target, vm, force) {\n if (!inBrowser) return;\n\n if (this.trackInstances && !force && this.targets[target]) {\n console.warn(\"[portal-vue]: Target \".concat(target, \" already exists\"));\n }\n\n this.$set(this.targets, target, Object.freeze([vm]));\n },\n unregisterTarget: function unregisterTarget(target) {\n this.$delete(this.targets, target);\n },\n registerSource: function registerSource(source, vm, force) {\n if (!inBrowser) return;\n\n if (this.trackInstances && !force && this.sources[source]) {\n console.warn(\"[portal-vue]: source \".concat(source, \" already exists\"));\n }\n\n this.$set(this.sources, source, Object.freeze([vm]));\n },\n unregisterSource: function unregisterSource(source) {\n this.$delete(this.sources, source);\n },\n hasTarget: function hasTarget(to) {\n return !!(this.targets[to] && this.targets[to][0]);\n },\n hasSource: function hasSource(to) {\n return !!(this.sources[to] && this.sources[to][0]);\n },\n hasContentFor: function hasContentFor(to) {\n return !!this.transports[to] && !!this.transports[to].length;\n },\n // Internal\n $_getTransportIndex: function $_getTransportIndex(_ref) {\n var to = _ref.to,\n from = _ref.from;\n\n for (var i in this.transports[to]) {\n if (this.transports[to][i].from === from) {\n return +i;\n }\n }\n\n return -1;\n }\n }\n});\nvar wormhole = new Wormhole(transports);\n\nvar _id = 1;\nvar Portal = Vue.extend({\n name: 'portal',\n props: {\n disabled: {\n type: Boolean\n },\n name: {\n type: String,\n default: function _default() {\n return String(_id++);\n }\n },\n order: {\n type: Number,\n default: 0\n },\n slim: {\n type: Boolean\n },\n slotProps: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n tag: {\n type: String,\n default: 'DIV'\n },\n to: {\n type: String,\n default: function _default() {\n return String(Math.round(Math.random() * 10000000));\n }\n }\n },\n created: function created() {\n var _this = this;\n\n this.$nextTick(function () {\n wormhole.registerSource(_this.name, _this);\n });\n },\n mounted: function mounted() {\n if (!this.disabled) {\n this.sendUpdate();\n }\n },\n updated: function updated() {\n if (this.disabled) {\n this.clear();\n } else {\n this.sendUpdate();\n }\n },\n beforeDestroy: function beforeDestroy() {\n wormhole.unregisterSource(this.name);\n this.clear();\n },\n watch: {\n to: function to(newValue, oldValue) {\n oldValue && oldValue !== newValue && this.clear(oldValue);\n this.sendUpdate();\n }\n },\n methods: {\n clear: function clear(target) {\n var closer = {\n from: this.name,\n to: target || this.to\n };\n wormhole.close(closer);\n },\n normalizeSlots: function normalizeSlots() {\n return this.$scopedSlots.default ? [this.$scopedSlots.default] : this.$slots.default;\n },\n normalizeOwnChildren: function normalizeOwnChildren(children) {\n return typeof children === 'function' ? children(this.slotProps) : children;\n },\n sendUpdate: function sendUpdate() {\n var slotContent = this.normalizeSlots();\n\n if (slotContent) {\n var transport = {\n from: this.name,\n to: this.to,\n passengers: _toConsumableArray(slotContent),\n order: this.order\n };\n wormhole.open(transport);\n } else {\n this.clear();\n }\n }\n },\n render: function render(h) {\n var children = this.$slots.default || this.$scopedSlots.default || [];\n var Tag = this.tag;\n\n if (children && this.disabled) {\n return children.length <= 1 && this.slim ? this.normalizeOwnChildren(children)[0] : h(Tag, [this.normalizeOwnChildren(children)]);\n } else {\n return this.slim ? h() : h(Tag, {\n class: {\n 'v-portal': true\n },\n style: {\n display: 'none'\n },\n key: 'v-portal-placeholder'\n });\n }\n }\n});\n\nvar PortalTarget = Vue.extend({\n name: 'portalTarget',\n props: {\n multiple: {\n type: Boolean,\n default: false\n },\n name: {\n type: String,\n required: true\n },\n slim: {\n type: Boolean,\n default: false\n },\n slotProps: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n tag: {\n type: String,\n default: 'div'\n },\n transition: {\n type: [String, Object, Function]\n }\n },\n data: function data() {\n return {\n transports: wormhole.transports,\n firstRender: true\n };\n },\n created: function created() {\n var _this = this;\n\n this.$nextTick(function () {\n wormhole.registerTarget(_this.name, _this);\n });\n },\n watch: {\n ownTransports: function ownTransports() {\n this.$emit('change', this.children().length > 0);\n },\n name: function name(newVal, oldVal) {\n /**\r\n * TODO\r\n * This should warn as well ...\r\n */\n wormhole.unregisterTarget(oldVal);\n wormhole.registerTarget(newVal, this);\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n if (this.transition) {\n this.$nextTick(function () {\n // only when we have a transition, because it causes a re-render\n _this2.firstRender = false;\n });\n }\n },\n beforeDestroy: function beforeDestroy() {\n wormhole.unregisterTarget(this.name);\n },\n computed: {\n ownTransports: function ownTransports() {\n var transports = this.transports[this.name] || [];\n\n if (this.multiple) {\n return transports;\n }\n\n return transports.length === 0 ? [] : [transports[transports.length - 1]];\n },\n passengers: function passengers() {\n return combinePassengers(this.ownTransports, this.slotProps);\n }\n },\n methods: {\n // can't be a computed prop because it has to \"react\" to $slot changes.\n children: function children() {\n return this.passengers.length !== 0 ? this.passengers : this.$scopedSlots.default ? this.$scopedSlots.default(this.slotProps) : this.$slots.default || [];\n },\n // can't be a computed prop because it has to \"react\" to this.children().\n noWrapper: function noWrapper() {\n var noWrapper = this.slim && !this.transition;\n\n if (noWrapper && this.children().length > 1) {\n console.warn('[portal-vue]: PortalTarget with `slim` option received more than one child element.');\n }\n\n return noWrapper;\n }\n },\n render: function render(h) {\n var noWrapper = this.noWrapper();\n var children = this.children();\n var Tag = this.transition || this.tag;\n return noWrapper ? children[0] : this.slim && !Tag ? h() : h(Tag, {\n props: {\n // if we have a transition component, pass the tag if it exists\n tag: this.transition && this.tag ? this.tag : undefined\n },\n class: {\n 'vue-portal-target': true\n }\n }, children);\n }\n});\n\nvar _id$1 = 0;\nvar portalProps = ['disabled', 'name', 'order', 'slim', 'slotProps', 'tag', 'to'];\nvar targetProps = ['multiple', 'transition'];\nvar MountingPortal = Vue.extend({\n name: 'MountingPortal',\n inheritAttrs: false,\n props: {\n append: {\n type: [Boolean, String]\n },\n bail: {\n type: Boolean\n },\n mountTo: {\n type: String,\n required: true\n },\n // Portal\n disabled: {\n type: Boolean\n },\n // name for the portal\n name: {\n type: String,\n default: function _default() {\n return 'mounted_' + String(_id$1++);\n }\n },\n order: {\n type: Number,\n default: 0\n },\n slim: {\n type: Boolean\n },\n slotProps: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n tag: {\n type: String,\n default: 'DIV'\n },\n // name for the target\n to: {\n type: String,\n default: function _default() {\n return String(Math.round(Math.random() * 10000000));\n }\n },\n // Target\n multiple: {\n type: Boolean,\n default: false\n },\n targetSlim: {\n type: Boolean\n },\n targetSlotProps: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n targetTag: {\n type: String,\n default: 'div'\n },\n transition: {\n type: [String, Object, Function]\n }\n },\n created: function created() {\n if (typeof document === 'undefined') return;\n var el = document.querySelector(this.mountTo);\n\n if (!el) {\n console.error(\"[portal-vue]: Mount Point '\".concat(this.mountTo, \"' not found in document\"));\n return;\n }\n\n var props = this.$props; // Target already exists\n\n if (wormhole.targets[props.name]) {\n if (props.bail) {\n console.warn(\"[portal-vue]: Target \".concat(props.name, \" is already mounted.\\n Aborting because 'bail: true' is set\"));\n } else {\n this.portalTarget = wormhole.targets[props.name];\n }\n\n return;\n }\n\n var append = props.append;\n\n if (append) {\n var type = typeof append === 'string' ? append : 'DIV';\n var mountEl = document.createElement(type);\n el.appendChild(mountEl);\n el = mountEl;\n } // get props for target from $props\n // we have to rename a few of them\n\n\n var _props = pick(this.$props, targetProps);\n\n _props.slim = this.targetSlim;\n _props.tag = this.targetTag;\n _props.slotProps = this.targetSlotProps;\n _props.name = this.to;\n this.portalTarget = new PortalTarget({\n el: el,\n parent: this.$parent || this,\n propsData: _props\n });\n },\n beforeDestroy: function beforeDestroy() {\n var target = this.portalTarget;\n\n if (this.append) {\n var el = target.$el;\n el.parentNode.removeChild(el);\n }\n\n target.$destroy();\n },\n render: function render(h) {\n if (!this.portalTarget) {\n console.warn(\"[portal-vue] Target wasn't mounted\");\n return h();\n } // if there's no \"manual\" scoped slot, so we create a ourselves\n\n\n if (!this.$scopedSlots.manual) {\n var props = pick(this.$props, portalProps);\n return h(Portal, {\n props: props,\n attrs: this.$attrs,\n on: this.$listeners,\n scopedSlots: this.$scopedSlots\n }, this.$slots.default);\n } // else, we render the scoped slot\n\n\n var content = this.$scopedSlots.manual({\n to: this.to\n }); // if user used