{"version":3,"file":"js/chunk-vendors-legacy.9a911928.js","mappings":"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","sources":["webpack://ccms/./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js","webpack://ccms/./node_modules/axios/index.js","webpack://ccms/./node_modules/axios/lib/adapters/xhr.js","webpack://ccms/./node_modules/axios/lib/axios.js","webpack://ccms/./node_modules/axios/lib/cancel/CancelToken.js","webpack://ccms/./node_modules/axios/lib/cancel/CanceledError.js","webpack://ccms/./node_modules/axios/lib/cancel/isCancel.js","webpack://ccms/./node_modules/axios/lib/core/Axios.js","webpack://ccms/./node_modules/axios/lib/core/AxiosError.js","webpack://ccms/./node_modules/axios/lib/core/InterceptorManager.js","webpack://ccms/./node_modules/axios/lib/core/buildFullPath.js","webpack://ccms/./node_modules/axios/lib/core/dispatchRequest.js","webpack://ccms/./node_modules/axios/lib/core/mergeConfig.js","webpack://ccms/./node_modules/axios/lib/core/settle.js","webpack://ccms/./node_modules/axios/lib/core/transformData.js","webpack://ccms/./node_modules/axios/lib/defaults/index.js","webpack://ccms/./node_modules/axios/lib/defaults/transitional.js","webpack://ccms/./node_modules/axios/lib/env/data.js","webpack://ccms/./node_modules/axios/lib/helpers/bind.js","webpack://ccms/./node_modules/axios/lib/helpers/buildURL.js","webpack://ccms/./node_modules/axios/lib/helpers/combineURLs.js","webpack://ccms/./node_modules/axios/lib/helpers/cookies.js","webpack://ccms/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://ccms/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://ccms/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://ccms/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://ccms/./node_modules/axios/lib/helpers/null.js","webpack://ccms/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://ccms/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://ccms/./node_modules/axios/lib/helpers/spread.js","webpack://ccms/./node_modules/axios/lib/helpers/toFormData.js","webpack://ccms/./node_modules/axios/lib/helpers/validator.js","webpack://ccms/./node_modules/axios/lib/utils.js","webpack://ccms/./node_modules/chart.js/dist/chunks/helpers.segment.js","webpack://ccms/./node_modules/chart.js/dist/chart.esm.js","webpack://ccms/./node_modules/core-js/internals/a-callable.js","webpack://ccms/./node_modules/core-js/internals/a-constructor.js","webpack://ccms/./node_modules/core-js/internals/a-possible-prototype.js","webpack://ccms/./node_modules/core-js/internals/add-to-unscopables.js","webpack://ccms/./node_modules/core-js/internals/advance-string-index.js","webpack://ccms/./node_modules/core-js/internals/an-instance.js","webpack://ccms/./node_modules/core-js/internals/an-object.js","webpack://ccms/./node_modules/core-js/internals/array-buffer-non-extensible.js","webpack://ccms/./node_modules/core-js/internals/array-fill.js","webpack://ccms/./node_modules/core-js/internals/array-for-each.js","webpack://ccms/./node_modules/core-js/internals/array-from.js","webpack://ccms/./node_modules/core-js/internals/array-includes.js","webpack://ccms/./node_modules/core-js/internals/array-iteration.js","webpack://ccms/./node_modules/core-js/internals/array-method-has-species-support.js","webpack://ccms/./node_modules/core-js/internals/array-method-is-strict.js","webpack://ccms/./node_modules/core-js/internals/array-slice-simple.js","webpack://ccms/./node_modules/core-js/internals/array-slice.js","webpack://ccms/./node_modules/core-js/internals/array-sort.js","webpack://ccms/./node_modules/core-js/internals/array-species-constructor.js","webpack://ccms/./node_modules/core-js/internals/array-species-create.js","webpack://ccms/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://ccms/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://ccms/./node_modules/core-js/internals/classof-raw.js","webpack://ccms/./node_modules/core-js/internals/classof.js","webpack://ccms/./node_modules/core-js/internals/clear-error-stack.js","webpack://ccms/./node_modules/core-js/internals/collection-strong.js","webpack://ccms/./node_modules/core-js/internals/collection.js","webpack://ccms/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://ccms/./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack://ccms/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://ccms/./node_modules/core-js/internals/create-html.js","webpack://ccms/./node_modules/core-js/internals/create-iterator-constructor.js","webpack://ccms/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://ccms/./node_modules/core-js/internals/create-property-descriptor.js","webpack://ccms/./node_modules/core-js/internals/create-property.js","webpack://ccms/./node_modules/core-js/internals/define-iterator.js","webpack://ccms/./node_modules/core-js/internals/define-well-known-symbol.js","webpack://ccms/./node_modules/core-js/internals/descriptors.js","webpack://ccms/./node_modules/core-js/internals/document-create-element.js","webpack://ccms/./node_modules/core-js/internals/dom-iterables.js","webpack://ccms/./node_modules/core-js/internals/dom-token-list-prototype.js","webpack://ccms/./node_modules/core-js/internals/engine-ff-version.js","webpack://ccms/./node_modules/core-js/internals/engine-is-browser.js","webpack://ccms/./node_modules/core-js/internals/engine-is-ie-or-edge.js","webpack://ccms/./node_modules/core-js/internals/engine-is-ios-pebble.js","webpack://ccms/./node_modules/core-js/internals/engine-is-ios.js","webpack://ccms/./node_modules/core-js/internals/engine-is-node.js","webpack://ccms/./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack://ccms/./node_modules/core-js/internals/engine-user-agent.js","webpack://ccms/./node_modules/core-js/internals/engine-v8-version.js","webpack://ccms/./node_modules/core-js/internals/engine-webkit-version.js","webpack://ccms/./node_modules/core-js/internals/enum-bug-keys.js","webpack://ccms/./node_modules/core-js/internals/error-stack-installable.js","webpack://ccms/./node_modules/core-js/internals/export.js","webpack://ccms/./node_modules/core-js/internals/fails.js","webpack://ccms/./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack://ccms/./node_modules/core-js/internals/flatten-into-array.js","webpack://ccms/./node_modules/core-js/internals/freezing.js","webpack://ccms/./node_modules/core-js/internals/function-apply.js","webpack://ccms/./node_modules/core-js/internals/function-bind-context.js","webpack://ccms/./node_modules/core-js/internals/function-bind-native.js","webpack://ccms/./node_modules/core-js/internals/function-bind.js","webpack://ccms/./node_modules/core-js/internals/function-call.js","webpack://ccms/./node_modules/core-js/internals/function-name.js","webpack://ccms/./node_modules/core-js/internals/function-uncurry-this.js","webpack://ccms/./node_modules/core-js/internals/get-built-in.js","webpack://ccms/./node_modules/core-js/internals/get-iterator-method.js","webpack://ccms/./node_modules/core-js/internals/get-iterator.js","webpack://ccms/./node_modules/core-js/internals/get-method.js","webpack://ccms/./node_modules/core-js/internals/get-substitution.js","webpack://ccms/./node_modules/core-js/internals/global.js","webpack://ccms/./node_modules/core-js/internals/has-own-property.js","webpack://ccms/./node_modules/core-js/internals/hidden-keys.js","webpack://ccms/./node_modules/core-js/internals/host-report-errors.js","webpack://ccms/./node_modules/core-js/internals/html.js","webpack://ccms/./node_modules/core-js/internals/ie8-dom-define.js","webpack://ccms/./node_modules/core-js/internals/indexed-object.js","webpack://ccms/./node_modules/core-js/internals/inherit-if-required.js","webpack://ccms/./node_modules/core-js/internals/inspect-source.js","webpack://ccms/./node_modules/core-js/internals/install-error-cause.js","webpack://ccms/./node_modules/core-js/internals/internal-metadata.js","webpack://ccms/./node_modules/core-js/internals/internal-state.js","webpack://ccms/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://ccms/./node_modules/core-js/internals/is-array.js","webpack://ccms/./node_modules/core-js/internals/is-callable.js","webpack://ccms/./node_modules/core-js/internals/is-constructor.js","webpack://ccms/./node_modules/core-js/internals/is-forced.js","webpack://ccms/./node_modules/core-js/internals/is-object.js","webpack://ccms/./node_modules/core-js/internals/is-pure.js","webpack://ccms/./node_modules/core-js/internals/is-regexp.js","webpack://ccms/./node_modules/core-js/internals/is-symbol.js","webpack://ccms/./node_modules/core-js/internals/iterate.js","webpack://ccms/./node_modules/core-js/internals/iterator-close.js","webpack://ccms/./node_modules/core-js/internals/iterators-core.js","webpack://ccms/./node_modules/core-js/internals/iterators.js","webpack://ccms/./node_modules/core-js/internals/length-of-array-like.js","webpack://ccms/./node_modules/core-js/internals/math-sign.js","webpack://ccms/./node_modules/core-js/internals/microtask.js","webpack://ccms/./node_modules/core-js/internals/native-promise-constructor.js","webpack://ccms/./node_modules/core-js/internals/native-symbol.js","webpack://ccms/./node_modules/core-js/internals/native-weak-map.js","webpack://ccms/./node_modules/core-js/internals/new-promise-capability.js","webpack://ccms/./node_modules/core-js/internals/normalize-string-argument.js","webpack://ccms/./node_modules/core-js/internals/not-a-regexp.js","webpack://ccms/./node_modules/core-js/internals/object-assign.js","webpack://ccms/./node_modules/core-js/internals/object-create.js","webpack://ccms/./node_modules/core-js/internals/object-define-properties.js","webpack://ccms/./node_modules/core-js/internals/object-define-property.js","webpack://ccms/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://ccms/./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://ccms/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://ccms/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://ccms/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://ccms/./node_modules/core-js/internals/object-is-extensible.js","webpack://ccms/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://ccms/./node_modules/core-js/internals/object-keys-internal.js","webpack://ccms/./node_modules/core-js/internals/object-keys.js","webpack://ccms/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://ccms/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://ccms/./node_modules/core-js/internals/object-to-array.js","webpack://ccms/./node_modules/core-js/internals/object-to-string.js","webpack://ccms/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://ccms/./node_modules/core-js/internals/own-keys.js","webpack://ccms/./node_modules/core-js/internals/path.js","webpack://ccms/./node_modules/core-js/internals/perform.js","webpack://ccms/./node_modules/core-js/internals/promise-resolve.js","webpack://ccms/./node_modules/core-js/internals/queue.js","webpack://ccms/./node_modules/core-js/internals/redefine-all.js","webpack://ccms/./node_modules/core-js/internals/redefine.js","webpack://ccms/./node_modules/core-js/internals/regexp-exec-abstract.js","webpack://ccms/./node_modules/core-js/internals/regexp-exec.js","webpack://ccms/./node_modules/core-js/internals/regexp-flags.js","webpack://ccms/./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://ccms/./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack://ccms/./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack://ccms/./node_modules/core-js/internals/require-object-coercible.js","webpack://ccms/./node_modules/core-js/internals/same-value.js","webpack://ccms/./node_modules/core-js/internals/set-global.js","webpack://ccms/./node_modules/core-js/internals/set-species.js","webpack://ccms/./node_modules/core-js/internals/set-to-string-tag.js","webpack://ccms/./node_modules/core-js/internals/shared-key.js","webpack://ccms/./node_modules/core-js/internals/shared-store.js","webpack://ccms/./node_modules/core-js/internals/shared.js","webpack://ccms/./node_modules/core-js/internals/species-constructor.js","webpack://ccms/./node_modules/core-js/internals/string-html-forced.js","webpack://ccms/./node_modules/core-js/internals/string-multibyte.js","webpack://ccms/./node_modules/core-js/internals/string-repeat.js","webpack://ccms/./node_modules/core-js/internals/string-trim-forced.js","webpack://ccms/./node_modules/core-js/internals/string-trim.js","webpack://ccms/./node_modules/core-js/internals/task.js","webpack://ccms/./node_modules/core-js/internals/this-number-value.js","webpack://ccms/./node_modules/core-js/internals/to-absolute-index.js","webpack://ccms/./node_modules/core-js/internals/to-indexed-object.js","webpack://ccms/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://ccms/./node_modules/core-js/internals/to-length.js","webpack://ccms/./node_modules/core-js/internals/to-object.js","webpack://ccms/./node_modules/core-js/internals/to-primitive.js","webpack://ccms/./node_modules/core-js/internals/to-property-key.js","webpack://ccms/./node_modules/core-js/internals/to-string-tag-support.js","webpack://ccms/./node_modules/core-js/internals/to-string.js","webpack://ccms/./node_modules/core-js/internals/try-to-string.js","webpack://ccms/./node_modules/core-js/internals/uid.js","webpack://ccms/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://ccms/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://ccms/./node_modules/core-js/internals/validate-arguments-length.js","webpack://ccms/./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack://ccms/./node_modules/core-js/internals/well-known-symbol.js","webpack://ccms/./node_modules/core-js/internals/whitespaces.js","webpack://ccms/./node_modules/core-js/internals/wrap-error-constructor-with-cause.js","webpack://ccms/./node_modules/core-js/modules/es.array.concat.js","webpack://ccms/./node_modules/core-js/modules/es.array.fill.js","webpack://ccms/./node_modules/core-js/modules/es.array.filter.js","webpack://ccms/./node_modules/core-js/modules/es.array.find-index.js","webpack://ccms/./node_modules/core-js/modules/es.array.find.js","webpack://ccms/./node_modules/core-js/modules/es.array.flat.js","webpack://ccms/./node_modules/core-js/modules/es.array.from.js","webpack://ccms/./node_modules/core-js/modules/es.array.includes.js","webpack://ccms/./node_modules/core-js/modules/es.array.iterator.js","webpack://ccms/./node_modules/core-js/modules/es.array.join.js","webpack://ccms/./node_modules/core-js/modules/es.array.map.js","webpack://ccms/./node_modules/core-js/modules/es.array.slice.js","webpack://ccms/./node_modules/core-js/modules/es.array.sort.js","webpack://ccms/./node_modules/core-js/modules/es.array.splice.js","webpack://ccms/./node_modules/core-js/modules/es.array.unscopables.flat.js","webpack://ccms/./node_modules/core-js/modules/es.error.cause.js","webpack://ccms/./node_modules/core-js/modules/es.function.name.js","webpack://ccms/./node_modules/core-js/modules/es.json.stringify.js","webpack://ccms/./node_modules/core-js/modules/es.map.js","webpack://ccms/./node_modules/core-js/modules/es.math.cbrt.js","webpack://ccms/./node_modules/core-js/modules/es.math.sign.js","webpack://ccms/./node_modules/core-js/modules/es.number.constructor.js","webpack://ccms/./node_modules/core-js/modules/es.number.max-safe-integer.js","webpack://ccms/./node_modules/core-js/modules/es.number.to-fixed.js","webpack://ccms/./node_modules/core-js/modules/es.object.assign.js","webpack://ccms/./node_modules/core-js/modules/es.object.freeze.js","webpack://ccms/./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack://ccms/./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack://ccms/./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack://ccms/./node_modules/core-js/modules/es.object.is.js","webpack://ccms/./node_modules/core-js/modules/es.object.keys.js","webpack://ccms/./node_modules/core-js/modules/es.object.to-string.js","webpack://ccms/./node_modules/core-js/modules/es.object.values.js","webpack://ccms/./node_modules/core-js/modules/es.promise.finally.js","webpack://ccms/./node_modules/core-js/modules/es.promise.js","webpack://ccms/./node_modules/core-js/modules/es.reflect.construct.js","webpack://ccms/./node_modules/core-js/modules/es.reflect.to-string-tag.js","webpack://ccms/./node_modules/core-js/modules/es.regexp.constructor.js","webpack://ccms/./node_modules/core-js/modules/es.regexp.dot-all.js","webpack://ccms/./node_modules/core-js/modules/es.regexp.exec.js","webpack://ccms/./node_modules/core-js/modules/es.regexp.sticky.js","webpack://ccms/./node_modules/core-js/modules/es.regexp.test.js","webpack://ccms/./node_modules/core-js/modules/es.regexp.to-string.js","webpack://ccms/./node_modules/core-js/modules/es.set.js","webpack://ccms/./node_modules/core-js/modules/es.string.anchor.js","webpack://ccms/./node_modules/core-js/modules/es.string.ends-with.js","webpack://ccms/./node_modules/core-js/modules/es.string.fixed.js","webpack://ccms/./node_modules/core-js/modules/es.string.includes.js","webpack://ccms/./node_modules/core-js/modules/es.string.iterator.js","webpack://ccms/./node_modules/core-js/modules/es.string.link.js","webpack://ccms/./node_modules/core-js/modules/es.string.match.js","webpack://ccms/./node_modules/core-js/modules/es.string.repeat.js","webpack://ccms/./node_modules/core-js/modules/es.string.replace.js","webpack://ccms/./node_modules/core-js/modules/es.string.search.js","webpack://ccms/./node_modules/core-js/modules/es.string.small.js","webpack://ccms/./node_modules/core-js/modules/es.string.split.js","webpack://ccms/./node_modules/core-js/modules/es.string.starts-with.js","webpack://ccms/./node_modules/core-js/modules/es.string.trim.js","webpack://ccms/./node_modules/core-js/modules/es.symbol.description.js","webpack://ccms/./node_modules/core-js/modules/es.symbol.iterator.js","webpack://ccms/./node_modules/core-js/modules/es.symbol.js","webpack://ccms/./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack://ccms/./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://ccms/./node_modules/quill/dist/quill.js","webpack://ccms/../../../src/components/VAlert/VAlert.ts","webpack://ccms/../../../src/directives/scroll/index.ts","webpack://ccms/../../../src/mixins/scrollable/index.ts","webpack://ccms/../../../src/components/VAppBar/VAppBar.ts","webpack://ccms/../../../src/components/VAppBar/VAppBarNavIcon.ts","webpack://ccms/../../../src/components/VApp/VApp.ts","webpack://ccms/../../../src/components/VAutocomplete/VAutocomplete.ts","webpack://ccms/../../../src/components/VAvatar/VAvatar.ts","webpack://ccms/../../../src/components/VBadge/VBadge.ts","webpack://ccms/../../../src/components/VProgressCircular/VProgressCircular.ts","webpack://ccms/../../../src/components/VProgressCircular/index.ts","webpack://ccms/../../../src/components/VBtn/VBtn.ts","webpack://ccms/../../../src/components/VBtn/index.ts","webpack://ccms/../../../src/mixins/localable/index.ts","webpack://ccms/../../../../src/components/VCalendar/mixins/mouse.ts","webpack://ccms/../../src/util/dateTimeUtils.ts","webpack://ccms/../../../../src/components/VCalendar/util/timestamp.ts","webpack://ccms/../../../../src/components/VCalendar/mixins/times.ts","webpack://ccms/../../../../src/components/VCalendar/modes/common.ts","webpack://ccms/../../../../src/components/VCalendar/modes/stack.ts","webpack://ccms/../../../../src/components/VCalendar/modes/column.ts","webpack://ccms/../../../../src/components/VCalendar/modes/index.ts","webpack://ccms/../../../../src/components/VCalendar/util/props.ts","webpack://ccms/../../../../src/components/VCalendar/mixins/calendar-base.ts","webpack://ccms/../../../../src/components/VCalendar/util/events.ts","webpack://ccms/../../../../src/components/VCalendar/mixins/calendar-with-events.ts","webpack://ccms/../../../src/components/VCalendar/VCalendarWeekly.ts","webpack://ccms/../../../src/components/VCalendar/VCalendarMonthly.ts","webpack://ccms/../../../../src/components/VCalendar/mixins/calendar-with-intervals.ts","webpack://ccms/../../../src/components/VCalendar/VCalendarDaily.ts","webpack://ccms/../../../../src/components/VCalendar/util/parser.ts","webpack://ccms/../../../src/components/VCalendar/VCalendarCategory.ts","webpack://ccms/../../../src/components/VCalendar/VCalendar.ts","webpack://ccms/../../../src/components/VCard/VCard.ts","webpack://ccms/../../../src/components/VCard/index.ts","webpack://ccms/../../../src/mixins/rippleable/index.ts","webpack://ccms/../../../src/mixins/selectable/index.ts","webpack://ccms/../../../src/components/VCheckbox/VCheckbox.ts","webpack://ccms/../../../src/components/VCheckbox/VSimpleCheckbox.ts","webpack://ccms/../../../src/components/VChip/VChip.ts","webpack://ccms/../../../src/components/VChip/index.ts","webpack://ccms/../../../src/components/VCombobox/VCombobox.ts","webpack://ccms/../../../src/components/VDataIterator/VDataFooter.ts","webpack://ccms/../../../src/components/VDataIterator/VDataIterator.ts","webpack://ccms/../../../../src/components/VDataTable/mixins/header.ts","webpack://ccms/../../../src/components/VDataTable/VDataTableHeaderMobile.ts","webpack://ccms/../../../src/components/VDataTable/VDataTableHeaderDesktop.ts","webpack://ccms/../../src/util/dedupeModelListeners.ts","webpack://ccms/../../src/util/rebuildFunctionalSlots.ts","webpack://ccms/../../../src/components/VDataTable/VDataTableHeader.ts","webpack://ccms/../../../src/components/VDataTable/Row.ts","webpack://ccms/../../../src/components/VDataTable/RowGroup.ts","webpack://ccms/../../../src/components/VDataTable/VSimpleTable.ts","webpack://ccms/../../../src/components/VDataTable/MobileRow.ts","webpack://ccms/../../../src/components/VDataTable/VDataTable.ts","webpack://ccms/../../../src/components/VData/VData.ts","webpack://ccms/../../../src/components/VDialog/VDialog.ts","webpack://ccms/../../../src/components/VDivider/VDivider.ts","webpack://ccms/../../../src/components/VExpansionPanel/VExpansionPanel.ts","webpack://ccms/../../../src/components/VExpansionPanel/VExpansionPanelContent.ts","webpack://ccms/../../../src/components/VExpansionPanel/VExpansionPanelHeader.ts","webpack://ccms/../../../src/components/VExpansionPanel/VExpansionPanels.ts","webpack://ccms/../../../src/components/VTextField/index.ts","webpack://ccms/../../../src/components/VFileInput/VFileInput.ts","webpack://ccms/../../../src/components/VGrid/VCol.ts","webpack://ccms/../../../src/components/VGrid/grid.ts","webpack://ccms/../../../src/components/VGrid/VContainer.ts","webpack://ccms/../../../src/components/VGrid/VRow.ts","webpack://ccms/../../../src/components/VGrid/VSpacer.ts","webpack://ccms/../../../src/components/VIcon/VIcon.ts","webpack://ccms/../../../src/components/VIcon/index.ts","webpack://ccms/../../../src/components/VResponsive/VResponsive.ts","webpack://ccms/../../../src/components/VResponsive/index.ts","webpack://ccms/../../../src/components/VImg/VImg.ts","webpack://ccms/../../../src/components/VMessages/VMessages.ts","webpack://ccms/../../../src/components/VMessages/index.ts","webpack://ccms/../../../src/components/VInput/VInput.ts","webpack://ccms/../../../src/components/VInput/index.ts","webpack://ccms/../../../src/components/VItemGroup/VItemGroup.ts","webpack://ccms/../../../src/components/VLabel/VLabel.ts","webpack://ccms/../../../src/components/VLabel/index.ts","webpack://ccms/../../../src/components/VList/VList.ts","webpack://ccms/../../../src/components/VList/VListItem.ts","webpack://ccms/../../../src/components/VList/VListItemAction.ts","webpack://ccms/../../../src/components/VList/VListItemGroup.ts","webpack://ccms/../../../src/components/VList/VListItemIcon.ts","webpack://ccms/../../../src/components/VList/VListGroup.ts","webpack://ccms/../../../src/components/VAvatar/index.ts","webpack://ccms/../../../src/components/VList/VListItemAvatar.ts","webpack://ccms/../../../src/components/VList/index.ts","webpack://ccms/../../../src/components/VMain/VMain.ts","webpack://ccms/../../../src/components/VMenu/VMenu.ts","webpack://ccms/../../../src/components/VNavigationDrawer/VNavigationDrawer.ts","webpack://ccms/../../../src/components/VMenu/index.ts","webpack://ccms/../../../src/components/VDivider/index.ts","webpack://ccms/../../../src/components/VSubheader/VSubheader.ts","webpack://ccms/../../../src/components/VSubheader/index.ts","webpack://ccms/../../../src/components/VSelect/VSelectList.ts","webpack://ccms/../../../src/mixins/filterable/index.ts","webpack://ccms/../../../src/components/VSelect/VSelect.ts","webpack://ccms/../../../src/components/VSheet/VSheet.ts","webpack://ccms/../../../src/components/VSheet/index.ts","webpack://ccms/../../../src/components/VStepper/VStepper.ts","webpack://ccms/../../../src/components/VStepper/VStepperStep.ts","webpack://ccms/../../../src/components/VStepper/VStepperContent.ts","webpack://ccms/../../../src/components/VStepper/index.ts","webpack://ccms/../../../src/components/VTabs/VTab.ts","webpack://ccms/../../../src/components/VSlideGroup/VSlideGroup.ts","webpack://ccms/../../../src/components/VTabs/VTabsBar.ts","webpack://ccms/../../../src/components/VWindow/VWindow.ts","webpack://ccms/../../../src/components/VTabs/VTabsItems.ts","webpack://ccms/../../../src/components/VTabs/VTabsSlider.ts","webpack://ccms/../../../src/components/VTabs/VTabs.ts","webpack://ccms/../../../src/components/VCounter/VCounter.ts","webpack://ccms/../../../src/components/VCounter/index.ts","webpack://ccms/../../../src/mixins/intersectable/index.ts","webpack://ccms/../../../src/components/VTextField/VTextField.ts","webpack://ccms/../../../src/components/VThemeProvider/VThemeProvider.ts","webpack://ccms/../../../src/components/VToolbar/VToolbar.ts","webpack://ccms/../../../src/components/VToolbar/index.ts","webpack://ccms/../../../src/components/VTooltip/VTooltip.ts","webpack://ccms/../../../src/components/VTreeview/VTreeviewNode.ts","webpack://ccms/../../../../src/components/VTreeview/util/filterTreeItems.ts","webpack://ccms/../../../src/components/VTreeview/VTreeview.ts","webpack://ccms/../../../src/components/transitions/createTransition.ts","webpack://ccms/../../../src/components/transitions/expand-transition.ts","webpack://ccms/../../../src/components/transitions/index.ts","webpack://ccms/../../../src/directives/click-outside/index.ts","webpack://ccms/../../../src/directives/intersect/index.ts","webpack://ccms/../../../src/directives/resize/index.ts","webpack://ccms/../../../src/directives/ripple/index.ts","webpack://ccms/../../../src/directives/touch/index.ts","webpack://ccms/../src/install.ts","webpack://ccms/../../src/locale/en.ts","webpack://ccms/../../../src/presets/default/index.ts","webpack://ccms/../../../src/services/presets/index.ts","webpack://ccms/../../../src/services/application/index.ts","webpack://ccms/../../../src/services/breakpoint/index.ts","webpack://ccms/../../../../src/services/icons/presets/mdi-svg.ts","webpack://ccms/../../../../src/services/icons/presets/md.ts","webpack://ccms/../../../../src/services/icons/presets/mdi.ts","webpack://ccms/../../../../src/services/icons/presets/fa.ts","webpack://ccms/../../../../src/services/icons/presets/fa4.ts","webpack://ccms/../../../../src/services/icons/presets/fa-svg.ts","webpack://ccms/../../../../src/services/icons/presets/index.ts","webpack://ccms/../../../src/services/icons/index.ts","webpack://ccms/../../../src/services/lang/index.ts","webpack://ccms/../../../src/util/color/transformSRGB.ts","webpack://ccms/../../../src/util/color/transformCIELAB.ts","webpack://ccms/../../../src/services/theme/utils.ts","webpack://ccms/../../../src/services/theme/index.ts","webpack://ccms/../src/framework.ts","webpack://ccms/../../../src/mixins/activatable/index.ts","webpack://ccms/../../../src/mixins/applicationable/index.ts","webpack://ccms/../../../src/mixins/binds-attrs/index.ts","webpack://ccms/../../../src/mixins/bootable/index.ts","webpack://ccms/../../../src/mixins/colorable/index.ts","webpack://ccms/../../../src/mixins/comparable/index.ts","webpack://ccms/../../../src/mixins/delayable/index.ts","webpack://ccms/../../../src/mixins/dependent/index.ts","webpack://ccms/../../../src/mixins/detachable/index.ts","webpack://ccms/../../../src/mixins/elevatable/index.ts","webpack://ccms/../../../src/mixins/groupable/index.ts","webpack://ccms/../../../src/components/VProgressLinear/VProgressLinear.ts","webpack://ccms/../../../src/components/VProgressLinear/index.ts","webpack://ccms/../../../src/mixins/loadable/index.ts","webpack://ccms/../../../src/mixins/measurable/index.ts","webpack://ccms/../../../src/mixins/menuable/index.ts","webpack://ccms/../../../src/mixins/mobile/index.ts","webpack://ccms/../../../src/components/VOverlay/VOverlay.ts","webpack://ccms/../../../src/components/VOverlay/index.ts","webpack://ccms/../../../src/mixins/overlayable/index.ts","webpack://ccms/../../../src/mixins/positionable/index.ts","webpack://ccms/../../../src/mixins/proxyable/index.ts","webpack://ccms/../../../src/mixins/registrable/index.ts","webpack://ccms/../../../src/mixins/returnable/index.ts","webpack://ccms/../../../src/mixins/roundable/index.ts","webpack://ccms/../../../src/mixins/routable/index.ts","webpack://ccms/../../../src/mixins/sizeable/index.ts","webpack://ccms/../../../src/mixins/ssr-bootable/index.ts","webpack://ccms/../../../src/mixins/stackable/index.ts","webpack://ccms/../../../src/mixins/themeable/index.ts","webpack://ccms/../../../src/mixins/toggleable/index.ts","webpack://ccms/../../../src/mixins/transitionable/index.ts","webpack://ccms/../../../src/mixins/validatable/index.ts","webpack://ccms/../../../src/services/goto/easing-patterns.ts","webpack://ccms/../../../src/services/goto/util.ts","webpack://ccms/../../../src/services/goto/index.ts","webpack://ccms/../../../src/services/service/index.ts","webpack://ccms/../../src/util/colorUtils.ts","webpack://ccms/../../src/util/colors.ts","webpack://ccms/../../src/util/console.ts","webpack://ccms/../../src/util/dom.ts","webpack://ccms/../../src/util/helpers.ts","webpack://ccms/../../src/util/mergeData.ts","webpack://ccms/../../src/util/mixins.ts","webpack://ccms/./node_modules/vue-chartjs/legacy/index.js","webpack://ccms/./node_modules/vue-print-nb/lib/print.umd.min.js","webpack://ccms/./node_modules/vue-router/dist/vue-router.esm.js","webpack://ccms/./node_modules/vue-toasted/dist/vue-toasted.min.js","webpack://ccms/./node_modules/vue2-editor/dist/vue2-editor.esm.js","webpack://ccms/./node_modules/vue/dist/vue.runtime.esm.js","webpack://ccms/./node_modules/vuetify-loader/lib/runtime/installComponents.js","webpack://ccms/./node_modules/vuex/dist/vuex.esm.js","webpack://ccms/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://ccms/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://ccms/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://ccms/./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack://ccms/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://ccms/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://ccms/./node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack://ccms/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://ccms/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://ccms/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://ccms/./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack://ccms/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://ccms/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://ccms/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://ccms/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://ccms/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://ccms/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://ccms/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://ccms/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://ccms/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://ccms/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://ccms/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://ccms/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://ccms/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://ccms/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"],"sourcesContent":["/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","module.exports = require('./lib/axios');","'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 transitionalDefaults = require('../defaults/transitional');\nvar AxiosError = require('../core/AxiosError');\nvar CanceledError = require('../cancel/CanceledError');\nvar parseProtocol = require('../helpers/parseProtocol');\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) && utils.isStandardBrowserEnv()) {\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\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(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, 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(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\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 CanceledError() : 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 var protocol = parseProtocol(fullPath);\n\n if (protocol && [ 'http', 'https', 'file' ].indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = require('./cancel/CanceledError');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\naxios.toFormData = require('./helpers/toFormData');\n\n// Expose AxiosError class\naxios.AxiosError = require('../lib/core/AxiosError');\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar CanceledError = require('./CanceledError');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nvar AxiosError = require('../core/AxiosError');\nvar utils = require('../utils');\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction CanceledError(message) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nmodule.exports = CanceledError;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar buildFullPath = require('./buildFullPath');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n var fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url: url,\n data: data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED'\n// eslint-disable-next-line func-names\n].forEach(function(code) {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = function(error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nmodule.exports = AxiosError;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar CanceledError = require('../cancel/CanceledError');\n\n/**\n * Throws a `CanceledError` 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 CanceledError();\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","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'beforeRedirect': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar AxiosError = require('./AxiosError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar AxiosError = require('../core/AxiosError');\nvar transitionalDefaults = require('./transitional');\nvar toFormData = require('../helpers/toFormData');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n var isObjectPayload = utils.isObject(data);\n var contentType = headers && headers['Content-Type'];\n\n var isFileList;\n\n if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) {\n var _FormData = this.env && this.env.FormData;\n return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData());\n } else if (isObjectPayload || contentType === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: require('./env/FormData')\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","module.exports = {\n \"version\": \"0.27.2\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\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","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\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');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","// eslint-disable-next-line strict\nmodule.exports = null;\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nmodule.exports = function parseProtocol(url) {\n var match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @returns {Object}\n **/\n\nfunction toFormData(obj, formData) {\n // eslint-disable-next-line no-param-reassign\n formData = formData || new FormData();\n\n var stack = [];\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n function build(data, parentKey) {\n if (utils.isPlainObject(data) || utils.isArray(data)) {\n if (stack.indexOf(data) !== -1) {\n throw Error('Circular reference detected in ' + parentKey);\n }\n\n stack.push(data);\n\n utils.forEach(data, function each(value, key) {\n if (utils.isUndefined(value)) return;\n var fullKey = parentKey ? parentKey + '.' + key : key;\n var arr;\n\n if (value && !parentKey && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {\n // eslint-disable-next-line func-names\n arr.forEach(function(el) {\n !utils.isUndefined(el) && formData.append(fullKey, convertValue(el));\n });\n return;\n }\n }\n\n build(value, fullKey);\n });\n\n stack.pop();\n } else {\n formData.append(parentKey, convertValue(data));\n }\n }\n\n build(obj);\n\n return formData;\n}\n\nmodule.exports = toFormData;\n","'use strict';\n\nvar VERSION = require('../env/data').version;\nvar AxiosError = require('../core/AxiosError');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n// eslint-disable-next-line func-names\nvar kindOf = (function(cache) {\n // eslint-disable-next-line func-names\n return function(thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n})(Object.create(null));\n\nfunction kindOfTest(type) {\n type = type.toLowerCase();\n return function isKindOf(thing) {\n return kindOf(thing) === type;\n };\n}\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nvar isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nvar isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(thing) {\n var pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nvar isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function} [filter]\n * @returns {Object}\n */\n\nfunction toFlatObject(sourceObj, destObj, filter) {\n var props;\n var i;\n var prop;\n var merged = {};\n\n destObj = destObj || {};\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if (!merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = Object.getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\nfunction endsWith(str, searchString, position) {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object\n * @param {*} [thing]\n * @returns {Array}\n */\nfunction toArray(thing) {\n if (!thing) return null;\n var i = thing.length;\n if (isUndefined(i)) return null;\n var arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n// eslint-disable-next-line func-names\nvar isTypedArray = (function(TypedArray) {\n // eslint-disable-next-line func-names\n return function(thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM,\n inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n isTypedArray: isTypedArray,\n isFileList: isFileList\n};\n","/*!\n * Chart.js v3.8.0\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\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};\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 emptyString = '';\nconst dot = '.';\nfunction indexOfDotOrLength(key, start) {\n const idx = key.indexOf(dot, start);\n return idx === -1 ? key.length : idx;\n}\nfunction resolveObjectKey(obj, key) {\n if (key === emptyString) {\n return obj;\n }\n let pos = 0;\n let idx = indexOfDotOrLength(key, pos);\n while (obj && idx > pos) {\n obj = obj[key.slice(pos, idx)];\n pos = idx + 1;\n idx = indexOfDotOrLength(key, pos);\n }\n return obj;\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\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 let type, xOffset, yOffset, size, cornerRadius;\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 ctx.arc(x, y, radius, 0, TAU);\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 ctx.rect(x - size, y - size, 2 * size, 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 = 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 _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) =>\n _lookup(table, value, 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 _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 { toFont as $, _rlookupByKey as A, _isPointInArea as B, getAngleFromPoint as C, toPadding as D, each as E, getMaximumSize as F, _getParentNode as G, HALF_PI as H, readUsedSize as I, throttled as J, supportsEventListenerOptions as K, _isDomSupported as L, log10 as M, _factorize as N, finiteOrDefault as O, PI as P, callback as Q, _addGrace as R, toDegrees as S, TAU as T, _measureText as U, _int16Range as V, _alignPixel as W, clipArea as X, renderText as Y, unclipArea as Z, _arrayUnique as _, resolve as a, QUARTER_PI as a$, _toLeftRightCenter as a0, _alignStartEnd as a1, overrides as a2, merge as a3, _capitalize as a4, descriptors as a5, isFunction as a6, _attachContext as a7, _createResolver as a8, _descriptors as a9, _textX as aA, restoreTextDirection as aB, noop as aC, distanceBetweenPoints as aD, _setMinAndMaxByKey as aE, niceNum as aF, almostWhole as aG, almostEquals as aH, _decimalPlaces as aI, _longestText as aJ, _filterBetween as aK, _lookup as aL, isPatternOrGradient as aM, getHoverColor as aN, clone$1 as aO, _merger as aP, _mergerIf as aQ, _deprecated as aR, toFontString as aS, splineCurve as aT, splineCurveMonotone as aU, getStyle as aV, fontString as aW, toLineHeight as aX, PITAU as aY, INFINITY as aZ, RAD_PER_DEG as a_, mergeIf as aa, uid as ab, debounce as ac, retinaScale as ad, clearCanvas as ae, setsEqual as af, _elementsEqual as ag, _isClickEvent as ah, _isBetween as ai, _readValueToProps as aj, _updateBezierControlPoints as ak, _computeSegments as al, _boundSegments as am, _steppedInterpolation as an, _bezierInterpolation as ao, _pointInLine as ap, _steppedLineTo as aq, _bezierCurveTo as ar, drawPoint as as, addRoundedRectPath as at, toTRBL as au, toTRBLCorners as av, _boundSegment as aw, _normalizeAngle as ax, getRtlAdapter as ay, overrideTextDirection as az, isArray as b, TWO_THIRDS_PI as b0, _angleDiff as b1, 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, isNumber as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _limitValue as w, _lookupByKey as x, _parseObjectDataRadialScale as y, getRelativePosition as z };\n","/*!\n * Chart.js v3.8.0\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 isNumber, w as _limitValue, x as _lookupByKey, y as _parseObjectDataRadialScale, z as getRelativePosition, A as _rlookupByKey, B as _isPointInArea, C as getAngleFromPoint, D as toPadding, E as each, F as getMaximumSize, G as _getParentNode, I as readUsedSize, J as throttled, K as supportsEventListenerOptions, L as _isDomSupported, M as log10, N as _factorize, O as finiteOrDefault, Q as callback, R as _addGrace, S as toDegrees, U as _measureText, V as _int16Range, W as _alignPixel, X as clipArea, Y as renderText, Z as unclipArea, $ as toFont, a0 as _toLeftRightCenter, a1 as _alignStartEnd, a2 as overrides, a3 as merge, a4 as _capitalize, a5 as descriptors, a6 as isFunction, a7 as _attachContext, a8 as _createResolver, a9 as _descriptors, aa as mergeIf, ab as uid, ac as debounce, ad as retinaScale, ae as clearCanvas, af as setsEqual, ag as _elementsEqual, ah as _isClickEvent, ai as _isBetween, aj as _readValueToProps, ak as _updateBezierControlPoints, al as _computeSegments, am as _boundSegments, an as _steppedInterpolation, ao as _bezierInterpolation, ap as _pointInLine, aq as _steppedLineTo, ar as _bezierCurveTo, as as drawPoint, at as addRoundedRectPath, au as toTRBL, av as toTRBLCorners, aw as _boundSegment, ax as _normalizeAngle, ay as getRtlAdapter, az as overrideTextDirection, aA as _textX, aB as restoreTextDirection, aC as noop, aD as distanceBetweenPoints, aE as _setMinAndMaxByKey, aF as niceNum, aG as almostWhole, aH as almostEquals, aI as _decimalPlaces, aJ as _longestText, aK as _filterBetween, aL as _lookup } from './chunks/helpers.segment.js';\nexport { d as defaults } from './chunks/helpers.segment.js';\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 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 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 firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\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 meta = this._cachedMeta;\n const iScale = meta.iScale;\n const metasets = iScale.getMatchingVisibleMetas(this._type);\n const stacked = iScale.options.stacked;\n const ilen = metasets.length;\n const stacks = [];\n let i, item;\n for (i = 0; i < ilen; ++i) {\n item = metasets[i];\n if (!item.controller.options.grouped) {\n continue;\n }\n if (typeof dataIndex !== 'undefined') {\n const val = item.controller.getParsed(dataIndex)[\n item.controller._cachedMeta.vScale.axis\n ];\n if (isNullOrUndef(val) || isNaN(val)) {\n continue;\n }\n }\n if (stacked === false || stacks.indexOf(item.stack) === -1 ||\n\t\t\t\t(stacked === undefined && item.stack === undefined)) {\n stacks.push(item.stack);\n }\n if (item.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 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 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 = 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 this.updateSharedOptions(sharedOptions, mode, firstOpts);\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 firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\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 this.updateSharedOptions(sharedOptions, mode, firstOpts);\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 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 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};\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).hi + 1,\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max)).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\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 ScatterController extends LineController {\n}\nScatterController.id = 'scatter';\nScatterController.defaults = {\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 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 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 = grid.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 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 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 }\n }\n return plugins;\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, options, all) {\n const result = [];\n const context = chart.getContext();\n for (let i = 0; i < plugins.length; i++) {\n const plugin = plugins[i];\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, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, plugin, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n return config.createResolver(scopes, context, [''], {scriptable: false, indexable: false, allKeys: true});\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.8.0\";\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 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) {\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 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 ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing) {\n const {fullCircles, startAngle, circumference} = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, startAngle + TAU);\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);\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) {\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);\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 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);\n drawBorder(ctx, this, radiusOffset, spacing, endAngle);\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};\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}\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) {\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 (source) {\n _drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw(chart, args, options) {\n const source = args.meta.$filler;\n if (!source || source.fill === false || 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 = 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: boxWidth * 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 drawPoint(ctx, drawOptions, centerX, centerY);\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 = 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 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 global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var global = require('../internals/global');\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw TypeError('Incorrect invocation');\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = lengthOfArrayLike(O);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","'use strict';\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar Array = global.Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","var global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar Array = global.Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","var global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String(Error(arg).stack); })('zxcasd');\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string') {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\nvar replace = uncurryThis(''.replace);\n\n// `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = toString(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + replace(toString(value), quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n redefine(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","var path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\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","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","module.exports = typeof window == 'object';\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\nvar global = require('../internals/global');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar redefine = require('../internals/redefine');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n redefine(String.prototype, KEY, methods[0]);\n redefine(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar bind = require('../internals/function-bind-context');\n\nvar TypeError = global.TypeError;\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg) : false;\n var element, elementLen;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n elementLen = lengthOfArrayLike(element);\n targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar Function = global.Function;\nvar concat = uncurryThis([].concat);\nvar join = uncurryThis([].join);\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!hasOwn(factories, argsLength)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n factories[argsLength] = Function('C,a', 'return new C(' + join(list, ',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\nmodule.exports = NATIVE_BIND ? Function.bind : function bind(that /* , ...args */) {\n var F = aCallable(this);\n var Prototype = F.prototype;\n var partArgs = arraySlice(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = concat(partArgs, arraySlice(arguments));\n return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args);\n };\n if (isObject(Prototype)) boundFunction.prototype = Prototype;\n return boundFunction;\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\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 getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw TypeError(tryToString(argument) + ' is not iterable');\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TypeError = global.TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n redefine(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","// `Math.sign` method implementation\n// https://tc39.es/ecma262/#sec-math.sign\n// eslint-disable-next-line es/no-math-sign -- safe\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n // strange IE + webpack dev server bug - use .bind(global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","var global = require('../internals/global');\nvar isRegExp = require('../internals/is-regexp');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var global = require('../internals/global');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\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 Object = global.Object;\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable(O, key)) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n if (this.head) this.tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n this.head = entry.next;\n if (this.tail === entry) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar TypeError = global.TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\n});\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return 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","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.21.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.21.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar global = require('../internals/global');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar RangeError = global.RangeError;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = toString(requireObjectCoercible(this));\n var result = '';\n var n = toIntegerOrInfinity(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar location, defer, channel, port;\n\ntry {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n location = global.location;\n} catch (error) { /* empty */ }\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n return passed;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar installErrorCause = require('../internals/install-error-cause');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\nvar IS_PURE = require('../internals/is-pure');\n\nmodule.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) {\n var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1;\n var path = FULL_NAME.split('.');\n var ERROR_NAME = path[path.length - 1];\n var OriginalError = getBuiltIn.apply(null, path);\n\n if (!OriginalError) return;\n\n var OriginalErrorPrototype = OriginalError.prototype;\n\n // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006\n if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause;\n\n if (!FORCED) return OriginalError;\n\n var BaseError = getBuiltIn('Error');\n\n var WrappedError = wrapper(function (a, b) {\n var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined);\n var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError();\n if (message !== undefined) createNonEnumerableProperty(result, 'message', message);\n if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(result, 'stack', clearErrorStack(result.stack, 2));\n if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError);\n if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]);\n return result;\n });\n\n WrappedError.prototype = OriginalErrorPrototype;\n\n if (ERROR_NAME !== 'Error') {\n if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError);\n else copyConstructorProperties(WrappedError, BaseError, { name: true });\n }\n\n copyConstructorProperties(WrappedError, OriginalError);\n\n if (!IS_PURE) try {\n // Safari 13- bug: WebAssembly errors does not have a proper `.name`\n if (OriginalErrorPrototype.name !== ERROR_NAME) {\n createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME);\n }\n OriginalErrorPrototype.constructor = WrappedError;\n } catch (error) { /* empty */ }\n\n return WrappedError;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\nvar TypeError = global.TypeError;\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = lengthOfArrayLike(O);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg));\n return A;\n }\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/define-iterator');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar un$Join = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return un$Join(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar un$Slice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return un$Slice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar un$Sort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? un$Sort(array) : un$Sort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = items.length;\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) delete array[index++];\n\n return array;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\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');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar TypeError = global.TypeError;\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.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\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(toIntegerOrInfinity(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","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flat');\n","/* eslint-disable no-unused-vars -- required for functions `.length` */\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar WEB_ASSEMBLY = 'WebAssembly';\nvar WebAssembly = global[WEB_ASSEMBLY];\n\nvar FORCED = Error('e', { cause: 7 }).cause !== 7;\n\nvar exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);\n $({ global: true, forced: FORCED }, O);\n};\n\nvar exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n if (WebAssembly && WebAssembly[ERROR_NAME]) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);\n $({ target: WEB_ASSEMBLY, stat: true, forced: FORCED }, O);\n }\n};\n\n// https://github.com/tc39/proposal-error-cause\nexportGlobalErrorCauseWrapper('Error', function (init) {\n return function Error(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('EvalError', function (init) {\n return function EvalError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('RangeError', function (init) {\n return function RangeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('ReferenceError', function (init) {\n return function ReferenceError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('SyntaxError', function (init) {\n return function SyntaxError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('TypeError', function (init) {\n return function TypeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('URIError', function (init) {\n return function URIError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('CompileError', function (init) {\n return function CompileError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('LinkError', function (init) {\n return function LinkError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {\n return function RuntimeError(message) { return apply(init, this, arguments); };\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\n\nvar Array = global.Array;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar fix = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nvar FORCED = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n // https://github.com/tc39/proposal-well-formed-stringify\n $({ target: 'JSON', stat: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n for (var i = 0, l = arguments.length, args = Array(l); i < l; i++) args[i] = arguments[i];\n var result = apply($stringify, null, args);\n return typeof result == 'string' ? replace(result, tester, fix) : result;\n }\n });\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\nvar abs = Math.abs;\nvar pow = Math.pow;\n\n// `Math.cbrt` method\n// https://tc39.es/ecma262/#sec-math.cbrt\n$({ target: 'Math', stat: true }, {\n cbrt: function cbrt(x) {\n return sign(x = +x) * pow(abs(x), 1 / 3);\n }\n});\n","var $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\n// `Math.sign` method\n// https://tc39.es/ecma262/#sec-math.sign\n$({ target: 'Math', stat: true }, {\n sign: sign\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = global.TypeError;\nvar arraySlice = uncurryThis(''.slice);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `ToNumeric` abstract operation\n// https://tc39.es/ecma262/#sec-tonumeric\nvar toNumeric = function (value) {\n var primValue = toPrimitive(value, 'number');\n return typeof primValue == 'bigint' ? primValue : toNumber(primValue);\n};\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (isSymbol(it)) throw TypeError('Cannot convert a Symbol value to a number');\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = charCodeAt(it, 0);\n if (first === 43 || first === 45) {\n third = charCodeAt(it, 2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (charCodeAt(it, 1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = arraySlice(it, 2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = charCodeAt(digits, index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n var dummy = this;\n // check on 1..constructor(foo) case\n return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); })\n ? inheritIfRequired(Object(n), dummy, NumberWrapper) : n;\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (hasOwn(NativeNumber, key = keys[j]) && !hasOwn(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","var $ = require('../internals/export');\n\n// `Number.MAX_SAFE_INTEGER` constant\n// https://tc39.es/ecma262/#sec-number.max_safe_integer\n$({ target: 'Number', stat: true }, {\n MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar String = global.String;\nvar floor = Math.floor;\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar un$ToFixed = uncurryThis(1.0.toFixed);\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 multiply = function (data, 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\nvar divide = function (data, 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\nvar dataToString = function (data) {\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('0', 7 - t.length) + t;\n }\n } return s;\n};\n\nvar FORCED = fails(function () {\n return un$ToFixed(0.00008, 3) !== '0.000' ||\n un$ToFixed(0.9, 0) !== '1' ||\n un$ToFixed(1.255, 2) !== '1.25' ||\n un$ToFixed(1000000000000000128.0, 0) !== '1000000000000000128';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n un$ToFixed({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toIntegerOrInfinity(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 // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare -- NaN check\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(data, 0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(data, 1e7, 0);\n j -= 7;\n }\n multiply(data, pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(data, 1 << 23);\n j -= 23;\n }\n divide(data, 1 << j);\n multiply(data, 1, 1);\n divide(data, 2);\n result = dataToString(data);\n } else {\n multiply(data, 0, z);\n multiply(data, 1 << -e, 0);\n result = dataToString(data) + repeat('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat('0', fractDigits - k) + result\n : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\n\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar $freeze = Object.freeze;\nvar FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); });\n\n// `Object.freeze` method\n// https://tc39.es/ecma262/#sec-object.freeze\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n freeze: function freeze(it) {\n return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it;\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","var $ = require('../internals/export');\nvar is = require('../internals/same-value');\n\n// `Object.is` method\n// https://tc39.es/ecma262/#sec-object.is\n$({ target: 'Object', stat: true }, {\n is: is\n});\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromise)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromise.prototype['finally'] !== method) {\n redefine(NativePromise.prototype, 'finally', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\n\nvar getInternalState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar NativePromisePrototype = NativePromise && NativePromise.prototype;\nvar PromiseConstructor = NativePromise;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar SUBCLASSING = false;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(PromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(PromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromisePrototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = new PromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_REJECTION_EVENT;\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n PromisePrototype = PromiseConstructor.prototype;\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromisePrototype, {\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n // eslint-disable-next-line unicorn/no-thenable -- safe\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.es/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromise) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\n redefine(NativePromisePrototype, 'catch', PromisePrototype['catch'], { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.es/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.es/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.es/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.es/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind');\nvar aConstructor = require('../internals/a-constructor');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\nvar ObjectPrototype = Object.prototype;\nvar push = [].push;\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\n\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\n\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aConstructor(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n apply(push, $args, args);\n return new (apply(bind, Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : ObjectPrototype);\n var result = apply(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n$({ global: true }, { Reflect: {} });\n\n// Reflect[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-reflect-@@tostringtag\nsetToStringTag(global.Reflect, 'Reflect', true);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar regExpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = global.SyntaxError;\nvar getFlags = uncurryThis(regExpFlags);\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only propper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar MISSED_STICKY = stickyHelpers.MISSED_STICKY;\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n result += chr + charAt(string, ++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = {};\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n chr = chr + charAt(string, ++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n if (exec(IS_NCG, stringSlice(string, index + 1))) {\n index += 2;\n ncg = true;\n }\n result += chr;\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || hasOwn(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named[named.length] = [groupname, groupid];\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = 'flags' in rawPattern ? rawPattern.flags : getFlags(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n if (dotAll) flags = replace(flags, /s/g, '');\n }\n\n rawFlags = flags;\n\n if (MISSED_STICKY && 'sticky' in re1) {\n sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxy(keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar classof = require('../internals/classof-raw');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar TypeError = global.TypeError;\n\n// `RegExp.prototype.dotAll` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall\nif (DESCRIPTORS && UNSUPPORTED_DOT_ALL) {\n defineProperty(RegExpPrototype, 'dotAll', {\n configurable: true,\n get: function () {\n if (this === RegExpPrototype) return undefined;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (classof(this) === 'RegExp') {\n return !!getInternalState(this).dotAll;\n }\n throw TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar MISSED_STICKY = require('../internals/regexp-sticky-helpers').MISSED_STICKY;\nvar classof = require('../internals/classof-raw');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar TypeError = global.TypeError;\n\n// `RegExp.prototype.sticky` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky\nif (DESCRIPTORS && MISSED_STICKY) {\n defineProperty(RegExpPrototype, 'sticky', {\n configurable: true,\n get: function () {\n if (this === RegExpPrototype) return undefined;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (classof(this) === 'RegExp') {\n return !!getInternalState(this).sticky;\n }\n throw TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar DELEGATES_TO_EXEC = function () {\n var execCalled = false;\n var re = /[ac]/;\n re.exec = function () {\n execCalled = true;\n return /./.exec.apply(this, arguments);\n };\n return re.test('abc') === true && execCalled;\n}();\n\nvar Error = global.Error;\nvar un$Test = uncurryThis(/./.test);\n\n// `RegExp.prototype.test` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.test\n$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {\n test: function (str) {\n var exec = this.exec;\n if (!isCallable(exec)) return un$Test(this, str);\n var result = call(exec, this, str);\n if (result !== null && !isObject(result)) {\n throw new Error('RegExp exec method returned something other than an Object or null');\n }\n return !!result;\n }\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar n$ToString = RegExpPrototype[TO_STRING];\nvar getFlags = uncurryThis(regExpFlags);\n\nvar NOT_GENERIC = fails(function () { return n$ToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/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 = $toString(R.source);\n var rf = R.flags;\n var f = $toString(rf === undefined && isPrototypeOf(RegExpPrototype, R) && !('flags' in RegExpPrototype) ? getFlags(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.anchor` method\n// https://tc39.es/ecma262/#sec-string.prototype.anchor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {\n anchor: function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar un$EndsWith = uncurryThis(''.endsWith);\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = that.length;\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = toString(searchString);\n return un$EndsWith\n ? un$EndsWith(that, search, end)\n : slice(that, end - search.length, end) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","var $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n repeat: repeat\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n var replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : getMethod(regexp, SEARCH);\n return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeSearch, rx, S);\n\n if (res.done) return res.value;\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar arraySlice = require('../internals/array-slice-simple');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar $push = [].push;\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis($push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = toString(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return call(nativeSplit, string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = call(regexpExec, separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n push(output, stringSlice(string, lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) apply($push, output, arraySlice(match, 1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !exec(separatorCopy, '')) push(output, '');\n } else push(output, stringSlice(string, lastLastIndex));\n return output.length > lim ? arraySlice(output, 0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n\n if (res.done) return res.value;\n\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar un$StartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return un$StartsWith\n ? un$StartsWith(that, search, index)\n : stringSlice(that, index, index + search.length) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';\n var symbolToString = uncurryThis(SymbolPrototype.toString);\n var symbolValueOf = uncurryThis(SymbolPrototype.valueOf);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = symbolValueOf(this);\n var string = symbolToString(symbol);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar arraySlice = require('../internals/array-slice');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n redefine(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.es/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = $toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.es/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.es/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (isCallable($replacer)) value = call($replacer, this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return apply($stringify, null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!SymbolPrototype[TO_PRIMITIVE]) {\n var valueOf = SymbolPrototype.valueOf;\n // eslint-disable-next-line no-unused-vars -- required for .length\n redefine(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n // TODO: improve hint logic\n return call(valueOf, this);\n });\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Quill\"] = factory();\n\telse\n\t\troot[\"Quill\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 109);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar format_1 = __webpack_require__(18);\nvar leaf_1 = __webpack_require__(19);\nvar scroll_1 = __webpack_require__(45);\nvar inline_1 = __webpack_require__(46);\nvar block_1 = __webpack_require__(47);\nvar embed_1 = __webpack_require__(48);\nvar text_1 = __webpack_require__(49);\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar store_1 = __webpack_require__(31);\nvar Registry = __webpack_require__(1);\nvar Parchment = {\n Scope: Registry.Scope,\n create: Registry.create,\n find: Registry.find,\n query: Registry.query,\n register: Registry.register,\n Container: container_1.default,\n Format: format_1.default,\n Leaf: leaf_1.default,\n Embed: embed_1.default,\n Scroll: scroll_1.default,\n Block: block_1.default,\n Inline: inline_1.default,\n Text: text_1.default,\n Attributor: {\n Attribute: attributor_1.default,\n Class: class_1.default,\n Style: style_1.default,\n Store: store_1.default,\n },\n};\nexports.default = Parchment;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParchmentError = /** @class */ (function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n var _this = this;\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n return ParchmentError;\n}(Error));\nexports.ParchmentError = ParchmentError;\nvar attributes = {};\nvar classes = {};\nvar tags = {};\nvar types = {};\nexports.DATA_KEY = '__blot';\nvar Scope;\n(function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope = exports.Scope || (exports.Scope = {}));\nfunction create(input, value) {\n var match = query(input);\n if (match == null) {\n throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n }\n var BlotClass = match;\n var node = \n // @ts-ignore\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n return new BlotClass(node, value);\n}\nexports.create = create;\nfunction find(node, bubble) {\n if (bubble === void 0) { bubble = false; }\n if (node == null)\n return null;\n // @ts-ignore\n if (node[exports.DATA_KEY] != null)\n return node[exports.DATA_KEY].blot;\n if (bubble)\n return find(node.parentNode, bubble);\n return null;\n}\nexports.find = find;\nfunction query(query, scope) {\n if (scope === void 0) { scope = Scope.ANY; }\n var match;\n if (typeof query === 'string') {\n match = types[query] || attributes[query];\n // @ts-ignore\n }\n else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n match = types['text'];\n }\n else if (typeof query === 'number') {\n if (query & Scope.LEVEL & Scope.BLOCK) {\n match = types['block'];\n }\n else if (query & Scope.LEVEL & Scope.INLINE) {\n match = types['inline'];\n }\n }\n else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n for (var i in names) {\n match = classes[names[i]];\n if (match)\n break;\n }\n match = match || tags[query.tagName];\n }\n if (match == null)\n return null;\n // @ts-ignore\n if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)\n return match;\n return null;\n}\nexports.query = query;\nfunction register() {\n var Definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Definitions[_i] = arguments[_i];\n }\n if (Definitions.length > 1) {\n return Definitions.map(function (d) {\n return register(d);\n });\n }\n var Definition = Definitions[0];\n if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n throw new ParchmentError('Invalid definition');\n }\n else if (Definition.blotName === 'abstract') {\n throw new ParchmentError('Cannot register abstract class');\n }\n types[Definition.blotName || Definition.attrName] = Definition;\n if (typeof Definition.keyName === 'string') {\n attributes[Definition.keyName] = Definition;\n }\n else {\n if (Definition.className != null) {\n classes[Definition.className] = Definition;\n }\n if (Definition.tagName != null) {\n if (Array.isArray(Definition.tagName)) {\n Definition.tagName = Definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n }\n else {\n Definition.tagName = Definition.tagName.toUpperCase();\n }\n var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n tagNames.forEach(function (tag) {\n if (tags[tag] == null || Definition.className == null) {\n tags[tag] = Definition;\n }\n });\n }\n }\n return Definition;\n}\nexports.register = register;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar diff = __webpack_require__(51);\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\nvar op = __webpack_require__(20);\n\n\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\n\nvar Delta = function (ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n};\n\n\nDelta.prototype.insert = function (text, attributes) {\n var newOp = {};\n if (text.length === 0) return this;\n newOp.insert = text;\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype['delete'] = function (length) {\n if (length <= 0) return this;\n return this.push({ 'delete': length });\n};\n\nDelta.prototype.retain = function (length, attributes) {\n if (length <= 0) return this;\n var newOp = { retain: length };\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = extend(true, {}, newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {\n this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (equal(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n};\n\nDelta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n};\n\nDelta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n};\n\nDelta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n};\n\nDelta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n};\n\nDelta.prototype.partition = function (predicate) {\n var passed = [], failed = [];\n this.forEach(function(op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n};\n\nDelta.prototype.reduce = function (predicate, initial) {\n return this.ops.reduce(predicate, initial);\n};\n\nDelta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + op.length(elem);\n } else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n};\n\nDelta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + op.length(elem);\n }, 0);\n};\n\nDelta.prototype.slice = function (start, end) {\n start = start || 0;\n if (typeof end !== 'number') end = Infinity;\n var ops = [];\n var iter = op.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp;\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += op.length(nextOp);\n }\n return new Delta(ops);\n};\n\n\nDelta.prototype.compose = function (other) {\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length;\n } else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) newOp.attributes = attributes;\n delta.push(newOp);\n\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n};\n\nDelta.prototype.diff = function (other, index) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta.map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = (delta === other) ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n }).join('');\n });\n var delta = new Delta();\n var diffResult = diff(strings[0], strings[1], index);\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n diffResult.forEach(function (component) {\n var length = component[1].length;\n while (length > 0) {\n var opLength = 0;\n switch (component[0]) {\n case diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n delta.push(otherIter.next(opLength));\n break;\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n delta['delete'](opLength);\n break;\n case diff.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (equal(thisOp.insert, otherOp.insert)) {\n delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\n } else {\n delta.push(otherOp)['delete'](opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return delta.chop();\n};\n\nDelta.prototype.eachLine = function (predicate, newline) {\n newline = newline || '\\n';\n var iter = op.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') return;\n var thisOp = iter.peek();\n var start = op.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string' ?\n thisOp.insert.indexOf(newline, start) - start : -1;\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\n } else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n};\n\nDelta.prototype.transform = function (other, priority) {\n priority = !!priority;\n if (typeof other === 'number') {\n return this.transformPosition(other, priority);\n }\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(op.length(thisIter.next()));\n } else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (thisOp['delete']) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n } else if (otherOp['delete']) {\n delta.push(otherOp);\n } else {\n // We retain either their retain or insert\n delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.transformPosition = function (index, priority) {\n priority = !!priority;\n var thisIter = op.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length, index - offset);\n continue;\n } else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length;\n }\n offset += length;\n }\n return index;\n};\n\n\nmodule.exports = Delta;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BlockEmbed = exports.bubbleFormats = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar NEWLINE_LENGTH = 1;\n\nvar BlockEmbed = function (_Parchment$Embed) {\n _inherits(BlockEmbed, _Parchment$Embed);\n\n function BlockEmbed() {\n _classCallCheck(this, BlockEmbed);\n\n return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments));\n }\n\n _createClass(BlockEmbed, [{\n key: 'attach',\n value: function attach() {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this);\n this.attributes = new _parchment2.default.Attributor.Store(this.domNode);\n }\n }, {\n key: 'delta',\n value: function delta() {\n return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values()));\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE);\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n this.format(name, value);\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n var block = _parchment2.default.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def);\n }\n }\n }]);\n\n return BlockEmbed;\n}(_parchment2.default.Embed);\n\nBlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n\nvar Block = function (_Parchment$Block) {\n _inherits(Block, _Parchment$Block);\n\n function Block(domNode) {\n _classCallCheck(this, Block);\n\n var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode));\n\n _this2.cache = {};\n return _this2;\n }\n\n _createClass(Block, [{\n key: 'delta',\n value: function delta() {\n if (this.cache.delta == null) {\n this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) {\n if (leaf.length() === 0) {\n return delta;\n } else {\n return delta.insert(leaf.value(), bubbleFormats(leaf));\n }\n }, new _quillDelta2.default()).insert('\\n', bubbleFormats(this));\n }\n return this.cache.delta;\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length);\n this.cache = {};\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def);\n if (value.length === 0) return;\n var lines = value.split('\\n');\n var text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n this.cache = {};\n }\n var block = this;\n lines.reduce(function (index, line) {\n block = block.split(index, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n var head = this.children.head;\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref);\n if (head instanceof _break2.default) {\n head.remove();\n }\n this.cache = {};\n }\n }, {\n key: 'length',\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n }, {\n key: 'moveChildren',\n value: function moveChildren(target, ref) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref);\n this.cache = {};\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context);\n this.cache = {};\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true);\n }\n }, {\n key: 'removeChild',\n value: function removeChild(child) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child);\n this.cache = {};\n }\n }, {\n key: 'split',\n value: function split(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n var clone = this.clone();\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n } else {\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n } else {\n var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force);\n this.cache = {};\n return next;\n }\n }\n }]);\n\n return Block;\n}(_parchment2.default.Block);\n\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = 'break';\nBlock.allowedChildren = [_inline2.default, _parchment2.default.Embed, _text2.default];\n\nfunction bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (blot == null) return formats;\n if (typeof blot.formats === 'function') {\n formats = (0, _extend2.default)(formats, blot.formats());\n }\n if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats);\n}\n\nexports.bubbleFormats = bubbleFormats;\nexports.BlockEmbed = BlockEmbed;\nexports.default = Block;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.overload = exports.expandConfig = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(50);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _editor = __webpack_require__(14);\n\nvar _editor2 = _interopRequireDefault(_editor);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _selection = __webpack_require__(15);\n\nvar _selection2 = _interopRequireDefault(_selection);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill');\n\nvar Quill = function () {\n _createClass(Quill, null, [{\n key: 'debug',\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n _logger2.default.level(limit);\n }\n }, {\n key: 'find',\n value: function find(node) {\n return node.__quill || _parchment2.default.find(node);\n }\n }, {\n key: 'import',\n value: function _import(name) {\n if (this.imports[name] == null) {\n debug.error('Cannot import ' + name + '. Are you sure it was registered?');\n }\n return this.imports[name];\n }\n }, {\n key: 'register',\n value: function register(path, target) {\n var _this = this;\n\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (typeof path !== 'string') {\n var name = path.attrName || path.blotName;\n if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register('formats/' + name, path, target);\n } else {\n Object.keys(path).forEach(function (key) {\n _this.register(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn('Overwriting ' + path + ' with', target);\n }\n this.imports[path] = target;\n if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') {\n _parchment2.default.register(target);\n } else if (path.startsWith('modules') && typeof target.register === 'function') {\n target.register();\n }\n }\n }\n }]);\n\n function Quill(container) {\n var _this2 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Quill);\n\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n var html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n this.container.__quill = this;\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.root.setAttribute('data-gramm', false);\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new _emitter4.default();\n this.scroll = _parchment2.default.create(this.root, {\n emitter: this.emitter,\n whitelist: this.options.formats\n });\n this.editor = new _editor2.default(this.scroll);\n this.selection = new _selection2.default(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options);\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.theme.init();\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) {\n if (type === _emitter4.default.events.TEXT_CHANGE) {\n _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank());\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) {\n var range = _this2.selection.lastRange;\n var index = range && range.length === 0 ? range.index : undefined;\n modify.call(_this2, function () {\n return _this2.editor.update(null, mutations, index);\n }, source);\n });\n var contents = this.clipboard.convert('
' + html + '


');\n this.setContents(contents);\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n }\n\n _createClass(Quill, [{\n key: 'addContainer',\n value: function addContainer(container) {\n var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (typeof container === 'string') {\n var className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n this.container.insertBefore(container, refNode);\n return container;\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.selection.setRange(null);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length, source) {\n var _this3 = this;\n\n var _overload = overload(index, length, source);\n\n var _overload2 = _slicedToArray(_overload, 4);\n\n index = _overload2[0];\n length = _overload2[1];\n source = _overload2[3];\n\n return modify.call(this, function () {\n return _this3.editor.deleteText(index, length);\n }, source, index, -1 * length);\n }\n }, {\n key: 'disable',\n value: function disable() {\n this.enable(false);\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n }, {\n key: 'focus',\n value: function focus() {\n var scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var _this4 = this;\n\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n var range = _this4.getSelection(true);\n var change = new _quillDelta2.default();\n if (range == null) {\n return change;\n } else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n } else if (range.length === 0) {\n _this4.selection.format(name, value);\n return change;\n } else {\n change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n _this4.setSelection(range, _emitter4.default.sources.SILENT);\n return change;\n }, source);\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length, name, value, source) {\n var _this5 = this;\n\n var formats = void 0;\n\n var _overload3 = overload(index, length, name, value, source);\n\n var _overload4 = _slicedToArray(_overload3, 4);\n\n index = _overload4[0];\n length = _overload4[1];\n formats = _overload4[2];\n source = _overload4[3];\n\n return modify.call(this, function () {\n return _this5.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length, name, value, source) {\n var _this6 = this;\n\n var formats = void 0;\n\n var _overload5 = overload(index, length, name, value, source);\n\n var _overload6 = _slicedToArray(_overload5, 4);\n\n index = _overload6[0];\n length = _overload6[1];\n formats = _overload6[2];\n source = _overload6[3];\n\n return modify.call(this, function () {\n return _this6.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var bounds = void 0;\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n var containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n }, {\n key: 'getContents',\n value: function getContents() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload7 = overload(index, length);\n\n var _overload8 = _slicedToArray(_overload7, 2);\n\n index = _overload8[0];\n length = _overload8[1];\n\n return this.editor.getContents(index, length);\n }\n }, {\n key: 'getFormat',\n value: function getFormat() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n } else {\n return this.editor.getFormat(index.index, index.length);\n }\n }\n }, {\n key: 'getIndex',\n value: function getIndex(blot) {\n return blot.offset(this.scroll);\n }\n }, {\n key: 'getLength',\n value: function getLength() {\n return this.scroll.length();\n }\n }, {\n key: 'getLeaf',\n value: function getLeaf(index) {\n return this.scroll.leaf(index);\n }\n }, {\n key: 'getLine',\n value: function getLine(index) {\n return this.scroll.line(index);\n }\n }, {\n key: 'getLines',\n value: function getLines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n } else {\n return this.scroll.lines(index, length);\n }\n }\n }, {\n key: 'getModule',\n value: function getModule(name) {\n return this.theme.modules[name];\n }\n }, {\n key: 'getSelection',\n value: function getSelection() {\n var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\n }\n }, {\n key: 'getText',\n value: function getText() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload9 = overload(index, length);\n\n var _overload10 = _slicedToArray(_overload9, 2);\n\n index = _overload10[0];\n length = _overload10[1];\n\n return this.editor.getText(index, length);\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return this.selection.hasFocus();\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n var _this7 = this;\n\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n\n return modify.call(this, function () {\n return _this7.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text, name, value, source) {\n var _this8 = this;\n\n var formats = void 0;\n\n var _overload11 = overload(index, 0, name, value, source);\n\n var _overload12 = _slicedToArray(_overload11, 4);\n\n index = _overload12[0];\n formats = _overload12[2];\n source = _overload12[3];\n\n return modify.call(this, function () {\n return _this8.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n }, {\n key: 'isEnabled',\n value: function isEnabled() {\n return !this.container.classList.contains('ql-disabled');\n }\n }, {\n key: 'off',\n value: function off() {\n return this.emitter.off.apply(this.emitter, arguments);\n }\n }, {\n key: 'on',\n value: function on() {\n return this.emitter.on.apply(this.emitter, arguments);\n }\n }, {\n key: 'once',\n value: function once() {\n return this.emitter.once.apply(this.emitter, arguments);\n }\n }, {\n key: 'pasteHTML',\n value: function pasteHTML(index, html, source) {\n this.clipboard.dangerouslyPasteHTML(index, html, source);\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length, source) {\n var _this9 = this;\n\n var _overload13 = overload(index, length, source);\n\n var _overload14 = _slicedToArray(_overload13, 4);\n\n index = _overload14[0];\n length = _overload14[1];\n source = _overload14[3];\n\n return modify.call(this, function () {\n return _this9.editor.removeFormat(index, length);\n }, source, index);\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }, {\n key: 'setContents',\n value: function setContents(delta) {\n var _this10 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n var length = _this10.getLength();\n var deleted = _this10.editor.deleteText(0, length);\n var applied = _this10.editor.applyDelta(delta);\n var lastOp = applied.ops[applied.ops.length - 1];\n if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\\n') {\n _this10.editor.deleteText(_this10.getLength() - 1, 1);\n applied.delete(1);\n }\n var ret = deleted.compose(applied);\n return ret;\n }, source);\n }\n }, {\n key: 'setSelection',\n value: function setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n var _overload15 = overload(index, length, source);\n\n var _overload16 = _slicedToArray(_overload15, 4);\n\n index = _overload16[0];\n length = _overload16[1];\n source = _overload16[3];\n\n this.selection.setRange(new _selection.Range(index, length), source);\n if (source !== _emitter4.default.sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n }, {\n key: 'setText',\n value: function setText(text) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n var delta = new _quillDelta2.default().insert(text);\n return this.setContents(delta, source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n this.selection.update(source);\n return change;\n }\n }, {\n key: 'updateContents',\n value: function updateContents(delta) {\n var _this11 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n return _this11.editor.applyDelta(delta, source);\n }, source, true);\n }\n }]);\n\n return Quill;\n}();\n\nQuill.DEFAULTS = {\n bounds: null,\n formats: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n scrollingContainer: null,\n strict: true,\n theme: 'default'\n};\nQuill.events = _emitter4.default.events;\nQuill.sources = _emitter4.default.sources;\n// eslint-disable-next-line no-undef\nQuill.version = false ? 'dev' : \"1.3.7\";\n\nQuill.imports = {\n 'delta': _quillDelta2.default,\n 'parchment': _parchment2.default,\n 'core/module': _module2.default,\n 'core/theme': _theme2.default\n};\n\nfunction expandConfig(container, userConfig) {\n userConfig = (0, _extend2.default)(true, {\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true\n }\n }, userConfig);\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = _theme2.default;\n } else {\n userConfig.theme = Quill.import('themes/' + userConfig.theme);\n if (userConfig.theme == null) {\n throw new Error('Invalid theme ' + userConfig.theme + '. Did you register it?');\n }\n }\n var themeConfig = (0, _extend2.default)(true, {}, userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function (config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function (module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n var moduleConfig = moduleNames.reduce(function (config, name) {\n var moduleClass = Quill.import('modules/' + name);\n if (moduleClass == null) {\n debug.error('Cannot load ' + name + ' module. Are you sure you registered it?');\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n return config;\n }, {});\n // Special case toolbar shorthand\n if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function (key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n return config;\n }, {});\n return userConfig;\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n if (this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) {\n return new _quillDelta2.default();\n }\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n if (range != null) {\n if (index === true) index = range.index;\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, _emitter4.default.sources.SILENT);\n }\n if (change.length() > 0) {\n var _emitter;\n\n var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n var formats = {};\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value, value = name, name = length, length = index.length, index = index.index;\n } else {\n length = index.length, index = index.index;\n }\n } else if (typeof length !== 'number') {\n source = value, value = name, name = length, length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n }\n // Handle optional source\n source = source || _emitter4.default.sources.API;\n return [index, length, formats, source];\n}\n\nfunction shiftRange(range, index, length, source) {\n if (range == null) return null;\n var start = void 0,\n end = void 0;\n if (index instanceof _quillDelta2.default) {\n var _map = [range.index, range.index + range.length].map(function (pos) {\n return index.transformPosition(pos, source !== _emitter4.default.sources.USER);\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n } else {\n var _map3 = [range.index, range.index + range.length].map(function (pos) {\n if (pos < index || pos === index && source === _emitter4.default.sources.USER) return pos;\n if (length >= 0) {\n return pos + length;\n } else {\n return Math.max(index, pos + length);\n }\n });\n\n var _map4 = _slicedToArray(_map3, 2);\n\n start = _map4[0];\n end = _map4[1];\n }\n return new _selection.Range(start, end - start);\n}\n\nexports.expandConfig = expandConfig;\nexports.overload = overload;\nexports.default = Quill;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Inline = function (_Parchment$Inline) {\n _inherits(Inline, _Parchment$Inline);\n\n function Inline() {\n _classCallCheck(this, Inline);\n\n return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).apply(this, arguments));\n }\n\n _createClass(Inline, [{\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) {\n var blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this, context);\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n var parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n }], [{\n key: 'compare',\n value: function compare(self, other) {\n var selfIndex = Inline.order.indexOf(self);\n var otherIndex = Inline.order.indexOf(other);\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n } else if (self === other) {\n return 0;\n } else if (self < other) {\n return -1;\n } else {\n return 1;\n }\n }\n }]);\n\n return Inline;\n}(_parchment2.default.Inline);\n\nInline.allowedChildren = [Inline, _parchment2.default.Embed, _text2.default];\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\nInline.order = ['cursor', 'inline', // Must be lower\n'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher\n];\n\nexports.default = Inline;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TextBlot = function (_Parchment$Text) {\n _inherits(TextBlot, _Parchment$Text);\n\n function TextBlot() {\n _classCallCheck(this, TextBlot);\n\n return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments));\n }\n\n return TextBlot;\n}(_parchment2.default.Text);\n\nexports.default = TextBlot;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _eventemitter = __webpack_require__(54);\n\nvar _eventemitter2 = _interopRequireDefault(_eventemitter);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:events');\n\nvar EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n\nEVENTS.forEach(function (eventName) {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n [].slice.call(document.querySelectorAll('.ql-container')).forEach(function (node) {\n // TODO use WeakMap\n if (node.__quill && node.__quill.emitter) {\n var _node$__quill$emitter;\n\n (_node$__quill$emitter = node.__quill.emitter).handleDOM.apply(_node$__quill$emitter, args);\n }\n });\n });\n});\n\nvar Emitter = function (_EventEmitter) {\n _inherits(Emitter, _EventEmitter);\n\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this));\n\n _this.listeners = {};\n _this.on('error', debug.error);\n return _this;\n }\n\n _createClass(Emitter, [{\n key: 'emit',\n value: function emit() {\n debug.log.apply(debug, arguments);\n _get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments);\n }\n }, {\n key: 'handleDOM',\n value: function handleDOM(event) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n (this.listeners[event.type] || []).forEach(function (_ref) {\n var node = _ref.node,\n handler = _ref.handler;\n\n if (event.target === node || node.contains(event.target)) {\n handler.apply(undefined, [event].concat(args));\n }\n });\n }\n }, {\n key: 'listenDOM',\n value: function listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push({ node: node, handler: handler });\n }\n }]);\n\n return Emitter;\n}(_eventemitter2.default);\n\nEmitter.events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n SCROLL_OPTIMIZE: 'scroll-optimize',\n SCROLL_UPDATE: 'scroll-update',\n SELECTION_CHANGE: 'selection-change',\n TEXT_CHANGE: 'text-change'\n};\nEmitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n};\n\nexports.default = Emitter;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Module = function Module(quill) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Module);\n\n this.quill = quill;\n this.options = options;\n};\n\nModule.DEFAULTS = {};\n\nexports.default = Module;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar levels = ['error', 'warn', 'log', 'info'];\nvar level = 'warn';\n\nfunction debug(method) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n var _console;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_console = console)[method].apply(_console, args); // eslint-disable-line no-console\n }\n}\n\nfunction namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\ndebug.level = namespace.level = function (newLevel) {\n level = newLevel;\n};\n\nexports.default = namespace;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pSlice = Array.prototype.slice;\nvar objectKeys = __webpack_require__(52);\nvar isArguments = __webpack_require__(53);\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar Attributor = /** @class */ (function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) { options = {}; }\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n if (options.scope != null) {\n // Ignore type bits, force attribute bit\n this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;\n }\n else {\n this.scope = Registry.Scope.ATTRIBUTE;\n }\n if (options.whitelist != null)\n this.whitelist = options.whitelist;\n }\n Attributor.keys = function (node) {\n return [].map.call(node.attributes, function (item) {\n return item.name;\n });\n };\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n node.setAttribute(this.keyName, value);\n return true;\n };\n Attributor.prototype.canAdd = function (node, value) {\n var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n if (match == null)\n return false;\n if (this.whitelist == null)\n return true;\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n }\n else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n if (this.canAdd(node, value) && value) {\n return value;\n }\n return '';\n };\n return Attributor;\n}());\nexports.default = Attributor;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Code = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Code = function (_Inline) {\n _inherits(Code, _Inline);\n\n function Code() {\n _classCallCheck(this, Code);\n\n return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments));\n }\n\n return Code;\n}(_inline2.default);\n\nCode.blotName = 'code';\nCode.tagName = 'CODE';\n\nvar CodeBlock = function (_Block) {\n _inherits(CodeBlock, _Block);\n\n function CodeBlock() {\n _classCallCheck(this, CodeBlock);\n\n return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments));\n }\n\n _createClass(CodeBlock, [{\n key: 'delta',\n value: function delta() {\n var _this3 = this;\n\n var text = this.domNode.textContent;\n if (text.endsWith('\\n')) {\n // Should always be true\n text = text.slice(0, -1);\n }\n return text.split('\\n').reduce(function (delta, frag) {\n return delta.insert(frag).insert('\\n', _this3.formats());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (name === this.statics.blotName && value) return;\n\n var _descendant = this.descendant(_text2.default, this.length() - 1),\n _descendant2 = _slicedToArray(_descendant, 1),\n text = _descendant2[0];\n\n if (text != null) {\n text.deleteAt(text.length() - 1, 1);\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length === 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) {\n return;\n }\n var nextNewline = this.newlineIndex(index);\n if (nextNewline < 0 || nextNewline >= index + length) return;\n var prevNewline = this.newlineIndex(index, true) + 1;\n var isolateLength = nextNewline - prevNewline + 1;\n var blot = this.isolate(prevNewline, isolateLength);\n var next = blot.next;\n blot.format(name, value);\n if (next instanceof CodeBlock) {\n next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n }\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return;\n\n var _descendant3 = this.descendant(_text2.default, index),\n _descendant4 = _slicedToArray(_descendant3, 2),\n text = _descendant4[0],\n offset = _descendant4[1];\n\n text.insertAt(offset, value);\n }\n }, {\n key: 'length',\n value: function length() {\n var length = this.domNode.textContent.length;\n if (!this.domNode.textContent.endsWith('\\n')) {\n return length + 1;\n }\n return length;\n }\n }, {\n key: 'newlineIndex',\n value: function newlineIndex(searchIndex) {\n var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!reverse) {\n var offset = this.domNode.textContent.slice(searchIndex).indexOf('\\n');\n return offset > -1 ? searchIndex + offset : -1;\n } else {\n return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\\n');\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n if (!this.domNode.textContent.endsWith('\\n')) {\n this.appendChild(_parchment2.default.create('text', '\\n'));\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n next.optimize(context);\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target);\n [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) {\n var blot = _parchment2.default.find(node);\n if (blot == null) {\n node.parentNode.removeChild(node);\n } else if (blot instanceof _parchment2.default.Embed) {\n blot.remove();\n } else {\n blot.unwrap();\n }\n });\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value);\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return CodeBlock;\n}(_block2.default);\n\nCodeBlock.blotName = 'code-block';\nCodeBlock.tagName = 'PRE';\nCodeBlock.TAB = ' ';\n\nexports.Code = Code;\nexports.default = CodeBlock;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ASCII = /^[ -~]*$/;\n\nvar Editor = function () {\n function Editor(scroll) {\n _classCallCheck(this, Editor);\n\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n\n _createClass(Editor, [{\n key: 'applyDelta',\n value: function applyDelta(delta) {\n var _this = this;\n\n var consumeNextNewline = false;\n this.scroll.update();\n var scrollLength = this.scroll.length();\n this.scroll.batchStart();\n delta = normalizeDelta(delta);\n delta.reduce(function (index, op) {\n var length = op.retain || op.delete || op.insert.length || 1;\n var attributes = op.attributes || {};\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n var text = op.insert;\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n if (index >= scrollLength && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n _this.scroll.insertAt(index, text);\n\n var _scroll$line = _this.scroll.line(index),\n _scroll$line2 = _slicedToArray(_scroll$line, 2),\n line = _scroll$line2[0],\n offset = _scroll$line2[1];\n\n var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line));\n if (line instanceof _block2.default) {\n var _line$descendant = line.descendant(_parchment2.default.Leaf, offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n\n formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf));\n }\n attributes = _op2.default.attributes.diff(formats, attributes) || {};\n } else if (_typeof(op.insert) === 'object') {\n var key = Object.keys(op.insert)[0]; // There should only be one key\n if (key == null) return index;\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n scrollLength += length;\n }\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n delta.reduce(function (index, op) {\n if (typeof op.delete === 'number') {\n _this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n return this.update(delta);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new _quillDelta2.default().retain(index).delete(length));\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length) {\n var _this2 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return;\n var lines = _this2.scroll.lines(index, Math.max(length, 1));\n var lengthRemaining = length;\n lines.forEach(function (line) {\n var lineLength = line.length();\n if (!(line instanceof _code2.default)) {\n line.format(format, formats[format]);\n } else {\n var codeIndex = index - line.offset(_this2.scroll);\n var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;\n line.formatAt(codeIndex, codeLength, format, formats[format]);\n }\n lengthRemaining -= lineLength;\n });\n });\n this.scroll.optimize();\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length) {\n var _this3 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n Object.keys(formats).forEach(function (format) {\n _this3.scroll.formatAt(index, length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'getContents',\n value: function getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n }, {\n key: 'getDelta',\n value: function getDelta() {\n return this.scroll.lines().reduce(function (delta, line) {\n return delta.concat(line.delta());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'getFormat',\n value: function getFormat(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var lines = [],\n leaves = [];\n if (length === 0) {\n this.scroll.path(index).forEach(function (path) {\n var _path = _slicedToArray(path, 1),\n blot = _path[0];\n\n if (blot instanceof _block2.default) {\n lines.push(blot);\n } else if (blot instanceof _parchment2.default.Leaf) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length);\n }\n var formatsArr = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = (0, _block.bubbleFormats)(blots.shift());\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats((0, _block.bubbleFormats)(blot), formats);\n }\n return formats;\n });\n return _extend2.default.apply(_extend2.default, formatsArr);\n }\n }, {\n key: 'getText',\n value: function getText(index, length) {\n return this.getContents(index, length).filter(function (op) {\n return typeof op.insert === 'string';\n }).map(function (op) {\n return op.insert;\n }).join('');\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new _quillDelta2.default().retain(index).insert(_defineProperty({}, embed, value)));\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text) {\n var _this4 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach(function (format) {\n _this4.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'isBlank',\n value: function isBlank() {\n if (this.scroll.children.length == 0) return true;\n if (this.scroll.children.length > 1) return false;\n var block = this.scroll.children.head;\n if (block.statics.blotName !== _block2.default.blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof _break2.default;\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length) {\n var text = this.getText(index, length);\n\n var _scroll$line3 = this.scroll.line(index + length),\n _scroll$line4 = _slicedToArray(_scroll$line3, 2),\n line = _scroll$line4[0],\n offset = _scroll$line4[1];\n\n var suffixLength = 0,\n suffix = new _quillDelta2.default();\n if (line != null) {\n if (!(line instanceof _code2.default)) {\n suffixLength = line.length() - offset;\n } else {\n suffixLength = line.newlineIndex(offset) - offset + 1;\n }\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix));\n var delta = new _quillDelta2.default().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n }, {\n key: 'update',\n value: function update(change) {\n var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n\n var oldDelta = this.delta;\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && _parchment2.default.find(mutations[0].target)) {\n // Optimization for character changes\n var textBlot = _parchment2.default.find(mutations[0].target);\n var formats = (0, _block.bubbleFormats)(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, '');\n var oldText = new _quillDelta2.default().insert(oldValue);\n var newText = new _quillDelta2.default().insert(textBlot.value());\n var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex));\n change = diffDelta.reduce(function (delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n } else {\n return delta.push(op);\n }\n }, new _quillDelta2.default());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, cursorIndex);\n }\n }\n return change;\n }\n }]);\n\n return Editor;\n}();\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n return merged;\n }, {});\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function (delta, op) {\n if (op.insert === 1) {\n var attributes = (0, _clone2.default)(op.attributes);\n delete attributes['image'];\n return delta.insert({ image: op.attributes.image }, attributes);\n }\n if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n op = (0, _clone2.default)(op);\n if (op.attributes.list) {\n op.attributes.list = 'ordered';\n } else {\n op.attributes.list = 'bullet';\n delete op.attributes.bullet;\n }\n }\n if (typeof op.insert === 'string') {\n var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return delta.insert(text, op.attributes);\n }\n return delta.push(op);\n }, new _quillDelta2.default());\n}\n\nexports.default = Editor;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Range = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill:selection');\n\nvar Range = function Range(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, Range);\n\n this.index = index;\n this.length = length;\n};\n\nvar Selection = function () {\n function Selection(scroll, emitter) {\n var _this = this;\n\n _classCallCheck(this, Selection);\n\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.cursor = _parchment2.default.create('cursor', this);\n // savedRange is last non-null range\n this.lastRange = this.savedRange = new Range(0, 0);\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, function () {\n if (!_this.mouseDown) {\n setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 1);\n }\n });\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type, delta) {\n if (type === _emitter4.default.events.TEXT_CHANGE && delta.length() > 0) {\n _this.update(_emitter4.default.sources.SILENT);\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function () {\n if (!_this.hasFocus()) return;\n var native = _this.getNativeRange();\n if (native == null) return;\n if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n // TODO unclear if this has negative side effects\n _this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () {\n try {\n _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n } catch (ignored) {}\n });\n });\n this.emitter.on(_emitter4.default.events.SCROLL_OPTIMIZE, function (mutations, context) {\n if (context.range) {\n var _context$range = context.range,\n startNode = _context$range.startNode,\n startOffset = _context$range.startOffset,\n endNode = _context$range.endNode,\n endOffset = _context$range.endOffset;\n\n _this.setNativeRange(startNode, startOffset, endNode, endOffset);\n }\n });\n this.update(_emitter4.default.sources.SILENT);\n }\n\n _createClass(Selection, [{\n key: 'handleComposition',\n value: function handleComposition() {\n var _this2 = this;\n\n this.root.addEventListener('compositionstart', function () {\n _this2.composing = true;\n });\n this.root.addEventListener('compositionend', function () {\n _this2.composing = false;\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\n if (!range) return;\n setTimeout(function () {\n _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n }, {\n key: 'handleDragging',\n value: function handleDragging() {\n var _this3 = this;\n\n this.emitter.listenDOM('mousedown', document.body, function () {\n _this3.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, function () {\n _this3.mouseDown = false;\n _this3.update(_emitter4.default.sources.USER);\n });\n }\n }, {\n key: 'focus',\n value: function focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n }, {\n key: 'format',\n value: function format(_format, value) {\n if (this.scroll.whitelist != null && !this.scroll.whitelist[_format]) return;\n this.scroll.update();\n var nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = _parchment2.default.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof _parchment2.default.Leaf) {\n var after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n this.cursor.attach();\n }\n this.cursor.format(_format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n var node = void 0,\n _scroll$leaf = this.scroll.leaf(index),\n _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2),\n leaf = _scroll$leaf2[0],\n offset = _scroll$leaf2[1];\n if (leaf == null) return null;\n\n var _leaf$position = leaf.position(offset, true);\n\n var _leaf$position2 = _slicedToArray(_leaf$position, 2);\n\n node = _leaf$position2[0];\n offset = _leaf$position2[1];\n\n var range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n\n var _scroll$leaf3 = this.scroll.leaf(index + length);\n\n var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2);\n\n leaf = _scroll$leaf4[0];\n offset = _scroll$leaf4[1];\n\n if (leaf == null) return null;\n\n var _leaf$position3 = leaf.position(offset, true);\n\n var _leaf$position4 = _slicedToArray(_leaf$position3, 2);\n\n node = _leaf$position4[0];\n offset = _leaf$position4[1];\n\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n } else {\n var side = 'left';\n var rect = void 0;\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }\n }, {\n key: 'getNativeRange',\n value: function getNativeRange() {\n var selection = document.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n var nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n var range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n }, {\n key: 'getRange',\n value: function getRange() {\n var normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n var range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return document.activeElement === this.root;\n }\n }, {\n key: 'normalizedToRange',\n value: function normalizedToRange(range) {\n var _this4 = this;\n\n var positions = [[range.start.node, range.start.offset]];\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n var indexes = positions.map(function (position) {\n var _position = _slicedToArray(position, 2),\n node = _position[0],\n offset = _position[1];\n\n var blot = _parchment2.default.find(node, true);\n var index = blot.offset(_this4.scroll);\n if (offset === 0) {\n return index;\n } else if (blot instanceof _parchment2.default.Container) {\n return index + blot.length();\n } else {\n return index + blot.index(node, offset);\n }\n });\n var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1);\n var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes)));\n return new Range(start, end - start);\n }\n }, {\n key: 'normalizeNative',\n value: function normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n return null;\n }\n var range = {\n start: { node: nativeRange.startContainer, offset: nativeRange.startOffset },\n end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },\n native: nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n } else {\n break;\n }\n }\n position.node = node, position.offset = offset;\n });\n return range;\n }\n }, {\n key: 'rangeToNative',\n value: function rangeToNative(range) {\n var _this5 = this;\n\n var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n var args = [];\n var scrollLength = this.scroll.length();\n indexes.forEach(function (index, i) {\n index = Math.min(scrollLength - 1, index);\n var node = void 0,\n _scroll$leaf5 = _this5.scroll.leaf(index),\n _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2),\n leaf = _scroll$leaf6[0],\n offset = _scroll$leaf6[1];\n var _leaf$position5 = leaf.position(offset, i !== 0);\n\n var _leaf$position6 = _slicedToArray(_leaf$position5, 2);\n\n node = _leaf$position6[0];\n offset = _leaf$position6[1];\n\n args.push(node, offset);\n });\n if (args.length < 2) {\n args = args.concat(args);\n }\n return args;\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView(scrollingContainer) {\n var range = this.lastRange;\n if (range == null) return;\n var bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n var limit = this.scroll.length() - 1;\n\n var _scroll$line = this.scroll.line(Math.min(range.index, limit)),\n _scroll$line2 = _slicedToArray(_scroll$line, 1),\n first = _scroll$line2[0];\n\n var last = first;\n if (range.length > 0) {\n var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\n\n var _scroll$line4 = _slicedToArray(_scroll$line3, 1);\n\n last = _scroll$line4[0];\n }\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\n }\n }\n }, {\n key: 'setNativeRange',\n value: function setNativeRange(startNode, startOffset) {\n var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n var selection = document.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n var native = (this.getNativeRange() || {}).native;\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n\n if (startNode.tagName == \"BR\") {\n startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);\n startNode = startNode.parentNode;\n }\n if (endNode.tagName == \"BR\") {\n endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);\n endNode = endNode.parentNode;\n }\n var range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs)\n }\n }\n }, {\n key: 'setRange',\n value: function setRange(range) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\n if (range != null) {\n var args = this.rangeToNative(range);\n this.setNativeRange.apply(this, _toConsumableArray(args).concat([force]));\n } else {\n this.setNativeRange(null);\n }\n this.update(source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var oldRange = this.lastRange;\n\n var _getRange = this.getRange(),\n _getRange2 = _slicedToArray(_getRange, 2),\n lastRange = _getRange2[0],\n nativeRange = _getRange2[1];\n\n this.lastRange = lastRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) {\n var _emitter;\n\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n this.cursor.restore();\n }\n var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n }\n }]);\n\n return Selection;\n}();\n\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode;\n } catch (e) {\n return false;\n }\n // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n return parent.contains(descendant);\n}\n\nexports.Range = Range;\nexports.default = Selection;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Break = function (_Parchment$Embed) {\n _inherits(Break, _Parchment$Embed);\n\n function Break() {\n _classCallCheck(this, Break);\n\n return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments));\n }\n\n _createClass(Break, [{\n key: 'insertInto',\n value: function insertInto(parent, ref) {\n if (parent.children.length === 0) {\n _get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref);\n } else {\n this.remove();\n }\n }\n }, {\n key: 'length',\n value: function length() {\n return 0;\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }], [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n return Break;\n}(_parchment2.default.Embed);\n\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n\nexports.default = Break;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linked_list_1 = __webpack_require__(44);\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar ContainerBlot = /** @class */ (function (_super) {\n __extends(ContainerBlot, _super);\n function ContainerBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.build();\n return _this;\n }\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ContainerBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n ContainerBlot.prototype.build = function () {\n var _this = this;\n this.children = new linked_list_1.default();\n // Need to be reversed for if DOM nodes already in order\n [].slice\n .call(this.domNode.childNodes)\n .reverse()\n .forEach(function (node) {\n try {\n var child = makeBlot(node);\n _this.insertBefore(child, _this.children.head || undefined);\n }\n catch (err) {\n if (err instanceof Registry.ParchmentError)\n return;\n else\n throw err;\n }\n });\n };\n ContainerBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.deleteAt(offset, length);\n });\n };\n ContainerBlot.prototype.descendant = function (criteria, index) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n return [child, offset];\n }\n else if (child instanceof ContainerBlot) {\n return child.descendant(criteria, offset);\n }\n else {\n return [null, -1];\n }\n };\n ContainerBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) { index = 0; }\n if (length === void 0) { length = Number.MAX_VALUE; }\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, index, length) {\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n descendants.push(child);\n }\n if (child instanceof ContainerBlot) {\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return descendants;\n };\n ContainerBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n _super.prototype.detach.call(this);\n };\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.formatAt(offset, length, name, value);\n });\n };\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if (child) {\n child.insertAt(offset, value, def);\n }\n else {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n this.appendChild(blot);\n }\n };\n ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (this.statics.allowedChildren != null &&\n !this.statics.allowedChildren.some(function (child) {\n return childBlot instanceof child;\n })) {\n throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n }\n childBlot.insertInto(this, refBlot);\n };\n ContainerBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = Registry.create(this.statics.defaultChild);\n this.appendChild(child);\n child.optimize(context);\n }\n else {\n this.remove();\n }\n }\n };\n ContainerBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];\n var position = [[this, index]];\n if (child instanceof ContainerBlot) {\n return position.concat(child.path(offset, inclusive));\n }\n else if (child != null) {\n position.push([child, offset]);\n }\n return position;\n };\n ContainerBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n ContainerBlot.prototype.replace = function (target) {\n if (target instanceof ContainerBlot) {\n target.moveChildren(this);\n }\n _super.prototype.replace.call(this, target);\n };\n ContainerBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = this.clone();\n this.parent.insertBefore(after, this.next);\n this.children.forEachAt(index, this.length(), function (child, offset, length) {\n child = child.split(offset, force);\n after.appendChild(child);\n });\n return after;\n };\n ContainerBlot.prototype.unwrap = function () {\n this.moveChildren(this.parent, this.next);\n this.remove();\n };\n ContainerBlot.prototype.update = function (mutations, context) {\n var _this = this;\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null &&\n // @ts-ignore\n node.tagName !== 'IFRAME' &&\n document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n var blot = Registry.find(node);\n if (blot == null)\n return;\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes\n .filter(function (node) {\n return node.parentNode == _this.domNode;\n })\n .sort(function (a, b) {\n if (a === b)\n return 0;\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n return -1;\n })\n .forEach(function (node) {\n var refBlot = null;\n if (node.nextSibling != null) {\n refBlot = Registry.find(node.nextSibling);\n }\n var blot = makeBlot(node);\n if (blot.next != refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n };\n return ContainerBlot;\n}(shadow_1.default));\nfunction makeBlot(node) {\n var blot = Registry.find(node);\n if (blot == null) {\n try {\n blot = Registry.create(node);\n }\n catch (e) {\n blot = Registry.create(Registry.Scope.INLINE);\n [].slice.call(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n blot.attach();\n }\n }\n return blot;\n}\nexports.default = ContainerBlot;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar store_1 = __webpack_require__(31);\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar FormatBlot = /** @class */ (function (_super) {\n __extends(FormatBlot, _super);\n function FormatBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.attributes = new store_1.default(_this.domNode);\n return _this;\n }\n FormatBlot.formats = function (domNode) {\n if (typeof this.tagName === 'string') {\n return true;\n }\n else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n return undefined;\n };\n FormatBlot.prototype.format = function (name, value) {\n var format = Registry.query(name);\n if (format instanceof attributor_1.default) {\n this.attributes.attribute(format, value);\n }\n else if (value) {\n if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n FormatBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n FormatBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n FormatBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n if (mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n })) {\n this.attributes.build();\n }\n };\n FormatBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n this.attributes.move(wrapper);\n }\n return wrapper;\n };\n return FormatBlot;\n}(container_1.default));\nexports.default = FormatBlot;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar LeafBlot = /** @class */ (function (_super) {\n __extends(LeafBlot, _super);\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeafBlot.value = function (domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node ||\n this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n return -1;\n };\n LeafBlot.prototype.position = function (index, inclusive) {\n var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n if (index > 0)\n offset += 1;\n return [this.parent.domNode, offset];\n };\n LeafBlot.prototype.value = function () {\n var _a;\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow_1.default));\nexports.default = LeafBlot;\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\n\n\nvar lib = {\n attributes: {\n compose: function (a, b, keepNull) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = extend(true, {}, b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n diff: function(a, b) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\n if (!equal(a[key], b[key])) {\n attributes[key] = b[key] === undefined ? null : b[key];\n }\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n transform: function (a, b, priority) {\n if (typeof a !== 'object') return b;\n if (typeof b !== 'object') return undefined;\n if (!priority) return b; // b simply overwrites us without priority\n var attributes = Object.keys(b).reduce(function (attributes, key) {\n if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n },\n\n iterator: function (ops) {\n return new Iterator(ops);\n },\n\n length: function (op) {\n if (typeof op['delete'] === 'number') {\n return op['delete'];\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n};\n\n\nfunction Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n};\n\nIterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n};\n\nIterator.prototype.next = function (length) {\n if (!length) length = Infinity;\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = lib.length(nextOp)\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n if (typeof nextOp['delete'] === 'number') {\n return { 'delete': length };\n } else {\n var retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n } else {\n return { retain: Infinity };\n }\n};\n\nIterator.prototype.peek = function () {\n return this.ops[this.index];\n};\n\nIterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return lib.length(this.ops[this.index]) - this.offset;\n } else {\n return Infinity;\n }\n};\n\nIterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index]['delete'] === 'number') {\n return 'delete';\n } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n return 'retain';\n};\n\nIterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\n } else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n};\n\n\nmodule.exports = lib;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\nvar clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction isLine(blot) {\n return blot instanceof _block2.default || blot instanceof _block.BlockEmbed;\n}\n\nvar Scroll = function (_Parchment$Scroll) {\n _inherits(Scroll, _Parchment$Scroll);\n\n function Scroll(domNode, config) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode));\n\n _this.emitter = config.emitter;\n if (Array.isArray(config.whitelist)) {\n _this.whitelist = config.whitelist.reduce(function (whitelist, format) {\n whitelist[format] = true;\n return whitelist;\n }, {});\n }\n // Some reason fixes composition issues with character languages in Windows/Chrome, Safari\n _this.domNode.addEventListener('DOMNodeInserted', function () {});\n _this.optimize();\n _this.enable();\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'batchStart',\n value: function batchStart() {\n this.batch = true;\n }\n }, {\n key: 'batchEnd',\n value: function batchEnd() {\n this.batch = false;\n this.optimize();\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n var _line = this.line(index),\n _line2 = _slicedToArray(_line, 2),\n first = _line2[0],\n offset = _line2[1];\n\n var _line3 = this.line(index + length),\n _line4 = _slicedToArray(_line3, 1),\n last = _line4[0];\n\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length);\n if (last != null && first !== last && offset > 0) {\n if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) {\n this.optimize();\n return;\n }\n if (first instanceof _code2.default) {\n var newlineIndex = first.newlineIndex(first.length(), true);\n if (newlineIndex > -1) {\n first = first.split(newlineIndex + 1);\n if (first === last) {\n this.optimize();\n return;\n }\n }\n } else if (last instanceof _code2.default) {\n var _newlineIndex = last.newlineIndex(0);\n if (_newlineIndex > -1) {\n last.split(_newlineIndex + 1);\n }\n }\n var ref = last.children.head instanceof _break2.default ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n this.optimize();\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, format, value) {\n if (this.whitelist != null && !this.whitelist[format]) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value);\n this.optimize();\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null && this.whitelist != null && !this.whitelist[value]) return;\n if (index >= this.length()) {\n if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) {\n var blot = _parchment2.default.create(this.statics.defaultChild);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n value = value.slice(0, -1);\n }\n blot.insertAt(0, value, def);\n } else {\n var embed = _parchment2.default.create(value, def);\n this.appendChild(embed);\n }\n } else {\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def);\n }\n this.optimize();\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) {\n var wrapper = _parchment2.default.create(this.statics.defaultChild);\n wrapper.appendChild(blot);\n blot = wrapper;\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref);\n }\n }, {\n key: 'leaf',\n value: function leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n }, {\n key: 'line',\n value: function line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n return this.descendant(isLine, index);\n }\n }, {\n key: 'lines',\n value: function lines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n var getLines = function getLines(blot, index, length) {\n var lines = [],\n lengthLeft = length;\n blot.children.forEachAt(index, length, function (child, index, length) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof _parchment2.default.Container) {\n lines = lines.concat(getLines(child, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return lines;\n };\n return getLines(this, index, length);\n }\n }, {\n key: 'optimize',\n value: function optimize() {\n var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.batch === true) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self\n }\n }, {\n key: 'update',\n value: function update(mutations) {\n if (this.batch === true) return;\n var source = _emitter2.default.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n\n return Scroll;\n}(_parchment2.default.Scroll);\n\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = 'block';\nScroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default];\n\nexports.default = Scroll;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SHORTKEY = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:keyboard');\n\nvar SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\nvar Keyboard = function (_Module) {\n _inherits(Keyboard, _Module);\n\n _createClass(Keyboard, null, [{\n key: 'match',\n value: function match(evt, binding) {\n binding = normalize(binding);\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {\n return !!binding[key] !== evt[key] && binding[key] !== null;\n })) {\n return false;\n }\n return binding.key === (evt.which || evt.keyCode);\n }\n }]);\n\n function Keyboard(quill, options) {\n _classCallCheck(this, Keyboard);\n\n var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options));\n\n _this.bindings = {};\n Object.keys(_this.options.bindings).forEach(function (name) {\n if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) {\n return;\n }\n if (_this.options.bindings[name]) {\n _this.addBinding(_this.options.bindings[name]);\n }\n });\n _this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);\n _this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {});\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);\n } else {\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);\n }\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace);\n _this.listen();\n return _this;\n }\n\n _createClass(Keyboard, [{\n key: 'addBinding',\n value: function addBinding(key) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var binding = normalize(key);\n if (binding == null || binding.key == null) {\n return debug.warn('Attempted to add invalid keyboard binding', binding);\n }\n if (typeof context === 'function') {\n context = { handler: context };\n }\n if (typeof handler === 'function') {\n handler = { handler: handler };\n }\n binding = (0, _extend2.default)(binding, context, handler);\n this.bindings[binding.key] = this.bindings[binding.key] || [];\n this.bindings[binding.key].push(binding);\n }\n }, {\n key: 'listen',\n value: function listen() {\n var _this2 = this;\n\n this.quill.root.addEventListener('keydown', function (evt) {\n if (evt.defaultPrevented) return;\n var which = evt.which || evt.keyCode;\n var bindings = (_this2.bindings[which] || []).filter(function (binding) {\n return Keyboard.match(evt, binding);\n });\n if (bindings.length === 0) return;\n var range = _this2.quill.getSelection();\n if (range == null || !_this2.quill.hasFocus()) return;\n\n var _quill$getLine = _this2.quill.getLine(range.index),\n _quill$getLine2 = _slicedToArray(_quill$getLine, 2),\n line = _quill$getLine2[0],\n offset = _quill$getLine2[1];\n\n var _quill$getLeaf = _this2.quill.getLeaf(range.index),\n _quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2),\n leafStart = _quill$getLeaf2[0],\n offsetStart = _quill$getLeaf2[1];\n\n var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.getLeaf(range.index + range.length),\n _ref2 = _slicedToArray(_ref, 2),\n leafEnd = _ref2[0],\n offsetEnd = _ref2[1];\n\n var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : '';\n var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : '';\n var curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: _this2.quill.getFormat(range),\n offset: offset,\n prefix: prefixText,\n suffix: suffixText\n };\n var prevented = bindings.some(function (binding) {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;\n if (binding.empty != null && binding.empty !== curContext.empty) return false;\n if (binding.offset != null && binding.offset !== curContext.offset) return false;\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(function (name) {\n return curContext.format[name] == null;\n })) {\n return false;\n }\n } else if (_typeof(binding.format) === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(function (name) {\n if (binding.format[name] === true) return curContext.format[name] != null;\n if (binding.format[name] === false) return curContext.format[name] == null;\n return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;\n return binding.handler.call(_this2, range, curContext) !== true;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }]);\n\n return Keyboard;\n}(_module2.default);\n\nKeyboard.keys = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n};\n\nKeyboard.DEFAULTS = {\n bindings: {\n 'bold': makeFormatHandler('bold'),\n 'italic': makeFormatHandler('italic'),\n 'underline': makeFormatHandler('underline'),\n 'indent': {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: Keyboard.keys.TAB,\n format: ['blockquote', 'indent', 'list'],\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', _quill2.default.sources.USER);\n }\n },\n 'outdent': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n }\n },\n 'outdent backspace': {\n key: Keyboard.keys.BACKSPACE,\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function handler(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function handler(range) {\n this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);\n }\n },\n 'tab': {\n key: Keyboard.keys.TAB,\n handler: function handler(range) {\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n }\n },\n 'list empty enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function handler(range, context) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n if (context.format.indent) {\n this.quill.format('indent', false, _quill2.default.sources.USER);\n }\n }\n },\n 'checklist enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: { list: 'checked' },\n handler: function handler(range) {\n var _quill$getLine3 = this.quill.getLine(range.index),\n _quill$getLine4 = _slicedToArray(_quill$getLine3, 2),\n line = _quill$getLine4[0],\n offset = _quill$getLine4[1];\n\n var formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' });\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function handler(range, context) {\n var _quill$getLine5 = this.quill.getLine(range.index),\n _quill$getLine6 = _slicedToArray(_quill$getLine5, 2),\n line = _quill$getLine6[0],\n offset = _quill$getLine6[1];\n\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'list autofill': {\n key: ' ',\n collapsed: true,\n format: { list: false },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function handler(range, context) {\n var length = context.prefix.length;\n\n var _quill$getLine7 = this.quill.getLine(range.index),\n _quill$getLine8 = _slicedToArray(_quill$getLine7, 2),\n line = _quill$getLine8[0],\n offset = _quill$getLine8[1];\n\n if (offset > length) return true;\n var value = void 0;\n switch (context.prefix.trim()) {\n case '[]':case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-':case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', _quill2.default.sources.USER);\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);\n }\n },\n 'code exit': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['code-block'],\n prefix: /\\n\\n$/,\n suffix: /^\\s+$/,\n handler: function handler(range) {\n var _quill$getLine9 = this.quill.getLine(range.index),\n _quill$getLine10 = _slicedToArray(_quill$getLine9, 2),\n line = _quill$getLine10[0],\n offset = _quill$getLine10[1];\n\n var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1);\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n }\n },\n 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),\n 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),\n 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),\n 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)\n }\n};\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n var _ref3;\n\n var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';\n return _ref3 = {\n key: key,\n shiftKey: shiftKey,\n altKey: null\n }, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) {\n var index = range.index;\n if (key === Keyboard.keys.RIGHT) {\n index += range.length + 1;\n }\n\n var _quill$getLeaf3 = this.quill.getLeaf(index),\n _quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1),\n leaf = _quill$getLeaf4[0];\n\n if (!(leaf instanceof _parchment2.default.Embed)) return true;\n if (key === Keyboard.keys.LEFT) {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, _quill2.default.sources.USER);\n }\n } else {\n if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER);\n }\n }\n return false;\n }), _ref3;\n}\n\nfunction handleBackspace(range, context) {\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n\n var _quill$getLine11 = this.quill.getLine(range.index),\n _quill$getLine12 = _slicedToArray(_quill$getLine11, 1),\n line = _quill$getLine12[0];\n\n var formats = {};\n if (context.offset === 0) {\n var _quill$getLine13 = this.quill.getLine(range.index - 1),\n _quill$getLine14 = _slicedToArray(_quill$getLine13, 1),\n prev = _quill$getLine14[0];\n\n if (prev != null && prev.length() > 1) {\n var curFormats = line.formats();\n var prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};\n }\n }\n // Check for astral symbols\n var length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER);\n }\n this.quill.focus();\n}\n\nfunction handleDelete(range, context) {\n // Check for astral symbols\n var length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n var formats = {},\n nextLength = 0;\n\n var _quill$getLine15 = this.quill.getLine(range.index),\n _quill$getLine16 = _slicedToArray(_quill$getLine15, 1),\n line = _quill$getLine16[0];\n\n if (context.offset >= line.length() - 1) {\n var _quill$getLine17 = this.quill.getLine(range.index + 1),\n _quill$getLine18 = _slicedToArray(_quill$getLine17, 1),\n next = _quill$getLine18[0];\n\n if (next) {\n var curFormats = line.formats();\n var nextFormats = this.quill.getFormat(range.index, 1);\n formats = _op2.default.attributes.diff(curFormats, nextFormats) || {};\n nextLength = next.length();\n }\n }\n this.quill.deleteText(range.index, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER);\n }\n}\n\nfunction handleDeleteRange(range) {\n var lines = this.quill.getLines(range);\n var formats = {};\n if (lines.length > 1) {\n var firstFormats = lines[0].formats();\n var lastFormats = lines[lines.length - 1].formats();\n formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {};\n }\n this.quill.deleteText(range, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER);\n }\n this.quill.setSelection(range.index, _quill2.default.sources.SILENT);\n this.quill.focus();\n}\n\nfunction handleEnter(range, context) {\n var _this3 = this;\n\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\n }\n var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) {\n if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n lineFormats[format] = context.format[format];\n }\n return lineFormats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats, _quill2.default.sources.USER);\n // Earlier scroll.deleteAt might have messed up our selection,\n // so insertText's built in selection preservation is not reliable\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach(function (name) {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'link') return;\n _this3.quill.format(name, context.format[name], _quill2.default.sources.USER);\n });\n}\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: Keyboard.keys.TAB,\n shiftKey: !indent,\n format: { 'code-block': true },\n handler: function handler(range) {\n var CodeBlock = _parchment2.default.query('code-block');\n var index = range.index,\n length = range.length;\n\n var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n block = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (block == null) return;\n var scrollIndex = this.quill.getIndex(block);\n var start = block.newlineIndex(offset, true) + 1;\n var end = block.newlineIndex(scrollIndex + offset + length);\n var lines = block.domNode.textContent.slice(start, end).split('\\n');\n offset = 0;\n lines.forEach(function (line, i) {\n if (indent) {\n block.insertAt(start + offset, CodeBlock.TAB);\n offset += CodeBlock.TAB.length;\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.startsWith(CodeBlock.TAB)) {\n block.deleteAt(start + offset, CodeBlock.TAB.length);\n offset -= CodeBlock.TAB.length;\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n offset += line.length + 1;\n });\n this.quill.update(_quill2.default.sources.USER);\n this.quill.setSelection(index, length, _quill2.default.sources.SILENT);\n }\n };\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0].toUpperCase(),\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], _quill2.default.sources.USER);\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n return normalize({ key: binding });\n }\n if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {\n binding = (0, _clone2.default)(binding, false);\n }\n if (typeof binding.key === 'string') {\n if (Keyboard.keys[binding.key.toUpperCase()] != null) {\n binding.key = Keyboard.keys[binding.key.toUpperCase()];\n } else if (binding.key.length === 1) {\n binding.key = binding.key.toUpperCase().charCodeAt(0);\n } else {\n return null;\n }\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n}\n\nexports.default = Keyboard;\nexports.SHORTKEY = SHORTKEY;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Cursor = function (_Parchment$Embed) {\n _inherits(Cursor, _Parchment$Embed);\n\n _createClass(Cursor, null, [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n function Cursor(domNode, selection) {\n _classCallCheck(this, Cursor);\n\n var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode));\n\n _this.selection = selection;\n _this.textNode = document.createTextNode(Cursor.CONTENTS);\n _this.domNode.appendChild(_this.textNode);\n _this._length = 0;\n return _this;\n }\n\n _createClass(Cursor, [{\n key: 'detach',\n value: function detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (this._length !== 0) {\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value);\n }\n var target = this,\n index = 0;\n while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this._length = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this._length = 0;\n }\n }\n }, {\n key: 'index',\n value: function index(node, offset) {\n if (node === this.textNode) return 0;\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'length',\n value: function length() {\n return this._length;\n }\n }, {\n key: 'position',\n value: function position() {\n return [this.textNode, this.textNode.data.length];\n }\n }, {\n key: 'remove',\n value: function remove() {\n _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this);\n this.parent = null;\n }\n }, {\n key: 'restore',\n value: function restore() {\n if (this.selection.composing || this.parent == null) return;\n var textNode = this.textNode;\n var range = this.selection.getNativeRange();\n var restoreText = void 0,\n start = void 0,\n end = void 0;\n if (range != null && range.start.node === textNode && range.end.node === textNode) {\n var _ref = [textNode, range.start.offset, range.end.offset];\n restoreText = _ref[0];\n start = _ref[1];\n end = _ref[2];\n }\n // Link format will insert text outside of anchor tag\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n if (this.textNode.data !== Cursor.CONTENTS) {\n var text = this.textNode.data.split(Cursor.CONTENTS).join('');\n if (this.next instanceof _text2.default) {\n restoreText = this.next.domNode;\n this.next.insertAt(0, text);\n this.textNode.data = Cursor.CONTENTS;\n } else {\n this.textNode.data = text;\n this.parent.insertBefore(_parchment2.default.create(this.textNode), this);\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n }\n }\n this.remove();\n if (start != null) {\n var _map = [start, end].map(function (offset) {\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n\n return {\n startNode: restoreText,\n startOffset: start,\n endNode: restoreText,\n endOffset: end\n };\n }\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this2.textNode;\n })) {\n var range = this.restore();\n if (range) context.range = range;\n }\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }]);\n\n return Cursor;\n}(_parchment2.default.Embed);\n\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = '\\uFEFF'; // Zero width no break space\n\n\nexports.default = Cursor;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Container = function (_Parchment$Container) {\n _inherits(Container, _Parchment$Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));\n }\n\n return Container;\n}(_parchment2.default.Container);\n\nContainer.allowedChildren = [_block2.default, _block.BlockEmbed, Container];\n\nexports.default = Container;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorAttributor = function (_Parchment$Attributor) {\n _inherits(ColorAttributor, _Parchment$Attributor);\n\n function ColorAttributor() {\n _classCallCheck(this, ColorAttributor);\n\n return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments));\n }\n\n _createClass(ColorAttributor, [{\n key: 'value',\n value: function value(domNode) {\n var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode);\n if (!value.startsWith('rgb(')) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n return '#' + value.split(',').map(function (component) {\n return ('00' + parseInt(component).toString(16)).slice(-2);\n }).join('');\n }\n }]);\n\n return ColorAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar ColorStyle = new ColorAttributor('color', 'color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.ColorAttributor = ColorAttributor;\nexports.ColorClass = ColorClass;\nexports.ColorStyle = ColorStyle;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sanitize = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Link = function (_Inline) {\n _inherits(Link, _Inline);\n\n function Link() {\n _classCallCheck(this, Link);\n\n return _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).apply(this, arguments));\n }\n\n _createClass(Link, [{\n key: 'format',\n value: function format(name, value) {\n if (name !== this.statics.blotName || !value) return _get(Link.prototype.__proto__ || Object.getPrototypeOf(Link.prototype), 'format', this).call(this, name, value);\n value = this.constructor.sanitize(value);\n this.domNode.setAttribute('href', value);\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Link.__proto__ || Object.getPrototypeOf(Link), 'create', this).call(this, value);\n value = this.sanitize(value);\n node.setAttribute('href', value);\n node.setAttribute('rel', 'noopener noreferrer');\n node.setAttribute('target', '_blank');\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return domNode.getAttribute('href');\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n }]);\n\n return Link;\n}(_inline2.default);\n\nLink.blotName = 'link';\nLink.tagName = 'A';\nLink.SANITIZED_URL = 'about:blank';\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\nfunction _sanitize(url, protocols) {\n var anchor = document.createElement('a');\n anchor.href = url;\n var protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\n\nexports.default = Link;\nexports.sanitize = _sanitize;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _dropdown = __webpack_require__(107);\n\nvar _dropdown2 = _interopRequireDefault(_dropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar optionsCounter = 0;\n\nfunction toggleAriaAttribute(element, attribute) {\n element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true'));\n}\n\nvar Picker = function () {\n function Picker(select) {\n var _this = this;\n\n _classCallCheck(this, Picker);\n\n this.select = select;\n this.container = document.createElement('span');\n this.buildPicker();\n this.select.style.display = 'none';\n this.select.parentNode.insertBefore(this.container, this.select);\n\n this.label.addEventListener('mousedown', function () {\n _this.togglePicker();\n });\n this.label.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to open the picker\n case _keyboard2.default.keys.ENTER:\n _this.togglePicker();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n this.select.addEventListener('change', this.update.bind(this));\n }\n\n _createClass(Picker, [{\n key: 'togglePicker',\n value: function togglePicker() {\n this.container.classList.toggle('ql-expanded');\n // Toggle aria-expanded and aria-hidden to make the picker accessible\n toggleAriaAttribute(this.label, 'aria-expanded');\n toggleAriaAttribute(this.options, 'aria-hidden');\n }\n }, {\n key: 'buildItem',\n value: function buildItem(option) {\n var _this2 = this;\n\n var item = document.createElement('span');\n item.tabIndex = '0';\n item.setAttribute('role', 'button');\n\n item.classList.add('ql-picker-item');\n if (option.hasAttribute('value')) {\n item.setAttribute('data-value', option.getAttribute('value'));\n }\n if (option.textContent) {\n item.setAttribute('data-label', option.textContent);\n }\n item.addEventListener('click', function () {\n _this2.selectItem(item, true);\n });\n item.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to select an item\n case _keyboard2.default.keys.ENTER:\n _this2.selectItem(item, true);\n event.preventDefault();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this2.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n\n return item;\n }\n }, {\n key: 'buildLabel',\n value: function buildLabel() {\n var label = document.createElement('span');\n label.classList.add('ql-picker-label');\n label.innerHTML = _dropdown2.default;\n label.tabIndex = '0';\n label.setAttribute('role', 'button');\n label.setAttribute('aria-expanded', 'false');\n this.container.appendChild(label);\n return label;\n }\n }, {\n key: 'buildOptions',\n value: function buildOptions() {\n var _this3 = this;\n\n var options = document.createElement('span');\n options.classList.add('ql-picker-options');\n\n // Don't want screen readers to read this until options are visible\n options.setAttribute('aria-hidden', 'true');\n options.tabIndex = '-1';\n\n // Need a unique id for aria-controls\n options.id = 'ql-picker-options-' + optionsCounter;\n optionsCounter += 1;\n this.label.setAttribute('aria-controls', options.id);\n\n this.options = options;\n\n [].slice.call(this.select.options).forEach(function (option) {\n var item = _this3.buildItem(option);\n options.appendChild(item);\n if (option.selected === true) {\n _this3.selectItem(item);\n }\n });\n this.container.appendChild(options);\n }\n }, {\n key: 'buildPicker',\n value: function buildPicker() {\n var _this4 = this;\n\n [].slice.call(this.select.attributes).forEach(function (item) {\n _this4.container.setAttribute(item.name, item.value);\n });\n this.container.classList.add('ql-picker');\n this.label = this.buildLabel();\n this.buildOptions();\n }\n }, {\n key: 'escape',\n value: function escape() {\n var _this5 = this;\n\n // Close menu and return focus to trigger label\n this.close();\n // Need setTimeout for accessibility to ensure that the browser executes\n // focus on the next process thread and after any DOM content changes\n setTimeout(function () {\n return _this5.label.focus();\n }, 1);\n }\n }, {\n key: 'close',\n value: function close() {\n this.container.classList.remove('ql-expanded');\n this.label.setAttribute('aria-expanded', 'false');\n this.options.setAttribute('aria-hidden', 'true');\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item) {\n var trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var selected = this.container.querySelector('.ql-selected');\n if (item === selected) return;\n if (selected != null) {\n selected.classList.remove('ql-selected');\n }\n if (item == null) return;\n item.classList.add('ql-selected');\n this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item);\n if (item.hasAttribute('data-value')) {\n this.label.setAttribute('data-value', item.getAttribute('data-value'));\n } else {\n this.label.removeAttribute('data-value');\n }\n if (item.hasAttribute('data-label')) {\n this.label.setAttribute('data-label', item.getAttribute('data-label'));\n } else {\n this.label.removeAttribute('data-label');\n }\n if (trigger) {\n if (typeof Event === 'function') {\n this.select.dispatchEvent(new Event('change'));\n } else if ((typeof Event === 'undefined' ? 'undefined' : _typeof(Event)) === 'object') {\n // IE11\n var event = document.createEvent('Event');\n event.initEvent('change', true, true);\n this.select.dispatchEvent(event);\n }\n this.close();\n }\n }\n }, {\n key: 'update',\n value: function update() {\n var option = void 0;\n if (this.select.selectedIndex > -1) {\n var item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n option = this.select.options[this.select.selectedIndex];\n this.selectItem(item);\n } else {\n this.selectItem(null);\n }\n var isActive = option != null && option !== this.select.querySelector('option[selected]');\n this.label.classList.toggle('ql-active', isActive);\n }\n }]);\n\n return Picker;\n}();\n\nexports.default = Picker;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _scroll = __webpack_require__(22);\n\nvar _scroll2 = _interopRequireDefault(_scroll);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _clipboard = __webpack_require__(55);\n\nvar _clipboard2 = _interopRequireDefault(_clipboard);\n\nvar _history = __webpack_require__(42);\n\nvar _history2 = _interopRequireDefault(_history);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_quill2.default.register({\n 'blots/block': _block2.default,\n 'blots/block/embed': _block.BlockEmbed,\n 'blots/break': _break2.default,\n 'blots/container': _container2.default,\n 'blots/cursor': _cursor2.default,\n 'blots/embed': _embed2.default,\n 'blots/inline': _inline2.default,\n 'blots/scroll': _scroll2.default,\n 'blots/text': _text2.default,\n\n 'modules/clipboard': _clipboard2.default,\n 'modules/history': _history2.default,\n 'modules/keyboard': _keyboard2.default\n});\n\n_parchment2.default.register(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default);\n\nexports.default = _quill2.default;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar ShadowBlot = /** @class */ (function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode;\n // @ts-ignore\n this.domNode[Registry.DATA_KEY] = { blot: this };\n }\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function () {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new Registry.ParchmentError('Blot definition missing tagName');\n }\n var node;\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n if (parseInt(value).toString() === value) {\n value = parseInt(value);\n }\n }\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n }\n else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n }\n else {\n node = document.createElement(this.tagName[0]);\n }\n }\n else {\n node = document.createElement(this.tagName);\n }\n if (this.className) {\n node.classList.add(this.className);\n }\n return node;\n };\n ShadowBlot.prototype.attach = function () {\n if (this.parent != null) {\n this.scroll = this.parent.scroll;\n }\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return Registry.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null)\n this.parent.removeChild(this);\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY];\n };\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n blot.wrap(name, value);\n }\n else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n var parent = Registry.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref);\n };\n ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n if (refBlot === void 0) { refBlot = null; }\n if (this.parent != null) {\n this.parent.children.remove(this);\n }\n var refDomNode = null;\n parentBlot.children.insertBefore(this, refBlot);\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n if (this.domNode.parentNode != parentBlot.domNode ||\n this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n this.parent = parentBlot;\n this.attach();\n };\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n target.split(length);\n return target;\n };\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) { root = this.parent; }\n if (this.parent == null || this == root)\n return 0;\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n ShadowBlot.prototype.optimize = function (context) {\n // TODO clean up once we use WeakMap\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY] != null) {\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY].mutations;\n }\n };\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n this.detach();\n };\n ShadowBlot.prototype.replace = function (target) {\n if (target.parent == null)\n return;\n target.parent.insertBefore(this, target.next);\n target.remove();\n };\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n replacement.replace(this);\n return replacement;\n };\n ShadowBlot.prototype.split = function (index, force) {\n return index === 0 ? this : this.next;\n };\n ShadowBlot.prototype.update = function (mutations, context) {\n // Nothing to do by default\n };\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next);\n }\n wrapper.appendChild(this);\n return wrapper;\n };\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}());\nexports.default = ShadowBlot;\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar Registry = __webpack_require__(1);\nvar AttributorStore = /** @class */ (function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n }\n else {\n delete this.attributes[attribute.attrName];\n }\n }\n }\n else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n AttributorStore.prototype.build = function () {\n var _this = this;\n this.attributes = {};\n var attributes = attributor_1.default.keys(this.domNode);\n var classes = class_1.default.keys(this.domNode);\n var styles = style_1.default.keys(this.domNode);\n attributes\n .concat(classes)\n .concat(styles)\n .forEach(function (name) {\n var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n if (attr instanceof attributor_1.default) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n target.format(key, value);\n });\n };\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n AttributorStore.prototype.values = function () {\n var _this = this;\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n return AttributorStore;\n}());\nexports.default = AttributorStore;\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n}\nvar ClassAttributor = /** @class */ (function (_super) {\n __extends(ClassAttributor, _super);\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name\n .split('-')\n .slice(0, -1)\n .join('-');\n });\n };\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n return this.canAdd(node, value) ? value : '';\n };\n return ClassAttributor;\n}(attributor_1.default));\nexports.default = ClassAttributor;\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts\n .slice(1)\n .map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n })\n .join('');\n return parts[0] + rest;\n}\nvar StyleAttributor = /** @class */ (function (_super) {\n __extends(StyleAttributor, _super);\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n // @ts-ignore\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n return StyleAttributor;\n}(attributor_1.default));\nexports.default = StyleAttributor;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Theme = function () {\n function Theme(quill, options) {\n _classCallCheck(this, Theme);\n\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n\n _createClass(Theme, [{\n key: 'init',\n value: function init() {\n var _this = this;\n\n Object.keys(this.options.modules).forEach(function (name) {\n if (_this.modules[name] == null) {\n _this.addModule(name);\n }\n });\n }\n }, {\n key: 'addModule',\n value: function addModule(name) {\n var moduleClass = this.quill.constructor.import('modules/' + name);\n this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n }]);\n\n return Theme;\n}();\n\nTheme.DEFAULTS = {\n modules: {}\n};\nTheme.themes = {\n 'default': Theme\n};\n\nexports.default = Theme;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GUARD_TEXT = '\\uFEFF';\n\nvar Embed = function (_Parchment$Embed) {\n _inherits(Embed, _Parchment$Embed);\n\n function Embed(node) {\n _classCallCheck(this, Embed);\n\n var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node));\n\n _this.contentNode = document.createElement('span');\n _this.contentNode.setAttribute('contenteditable', false);\n [].slice.call(_this.domNode.childNodes).forEach(function (childNode) {\n _this.contentNode.appendChild(childNode);\n });\n _this.leftGuard = document.createTextNode(GUARD_TEXT);\n _this.rightGuard = document.createTextNode(GUARD_TEXT);\n _this.domNode.appendChild(_this.leftGuard);\n _this.domNode.appendChild(_this.contentNode);\n _this.domNode.appendChild(_this.rightGuard);\n return _this;\n }\n\n _createClass(Embed, [{\n key: 'index',\n value: function index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return _get(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'restore',\n value: function restore(node) {\n var range = void 0,\n textNode = void 0;\n var text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof _text2.default) {\n var prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof _text2.default) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n node.data = GUARD_TEXT;\n return range;\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n mutations.forEach(function (mutation) {\n if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {\n var range = _this2.restore(mutation.target);\n if (range) context.range = range;\n }\n });\n }\n }]);\n\n return Embed;\n}(_parchment2.default.Embed);\n\nexports.default = Embed;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\n\nvar AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config);\nvar AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config);\nvar AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config);\n\nexports.AlignAttribute = AlignAttribute;\nexports.AlignClass = AlignClass;\nexports.AlignStyle = AlignStyle;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BackgroundStyle = exports.BackgroundClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _color = __webpack_require__(26);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar BackgroundStyle = new _color.ColorAttributor('background', 'background-color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.BackgroundClass = BackgroundClass;\nexports.BackgroundStyle = BackgroundStyle;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['rtl']\n};\n\nvar DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config);\nvar DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config);\nvar DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config);\n\nexports.DirectionAttribute = DirectionAttribute;\nexports.DirectionClass = DirectionClass;\nexports.DirectionStyle = DirectionStyle;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontClass = exports.FontStyle = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar config = {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['serif', 'monospace']\n};\n\nvar FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config);\n\nvar FontStyleAttributor = function (_Parchment$Attributor) {\n _inherits(FontStyleAttributor, _Parchment$Attributor);\n\n function FontStyleAttributor() {\n _classCallCheck(this, FontStyleAttributor);\n\n return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments));\n }\n\n _createClass(FontStyleAttributor, [{\n key: 'value',\n value: function value(node) {\n return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/[\"']/g, '');\n }\n }]);\n\n return FontStyleAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\nexports.FontStyle = FontStyle;\nexports.FontClass = FontClass;\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SizeStyle = exports.SizeClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nvar SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\nexports.SizeClass = SizeClass;\nexports.SizeStyle = SizeStyle;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {\n 'align': {\n '': __webpack_require__(76),\n 'center': __webpack_require__(77),\n 'right': __webpack_require__(78),\n 'justify': __webpack_require__(79)\n },\n 'background': __webpack_require__(80),\n 'blockquote': __webpack_require__(81),\n 'bold': __webpack_require__(82),\n 'clean': __webpack_require__(83),\n 'code': __webpack_require__(58),\n 'code-block': __webpack_require__(58),\n 'color': __webpack_require__(84),\n 'direction': {\n '': __webpack_require__(85),\n 'rtl': __webpack_require__(86)\n },\n 'float': {\n 'center': __webpack_require__(87),\n 'full': __webpack_require__(88),\n 'left': __webpack_require__(89),\n 'right': __webpack_require__(90)\n },\n 'formula': __webpack_require__(91),\n 'header': {\n '1': __webpack_require__(92),\n '2': __webpack_require__(93)\n },\n 'italic': __webpack_require__(94),\n 'image': __webpack_require__(95),\n 'indent': {\n '+1': __webpack_require__(96),\n '-1': __webpack_require__(97)\n },\n 'link': __webpack_require__(98),\n 'list': {\n 'ordered': __webpack_require__(99),\n 'bullet': __webpack_require__(100),\n 'check': __webpack_require__(101)\n },\n 'script': {\n 'sub': __webpack_require__(102),\n 'super': __webpack_require__(103)\n },\n 'strike': __webpack_require__(104),\n 'underline': __webpack_require__(105),\n 'video': __webpack_require__(106)\n};\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLastChangeIndex = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar History = function (_Module) {\n _inherits(History, _Module);\n\n function History(quill, options) {\n _classCallCheck(this, History);\n\n var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options));\n\n _this.lastRecorded = 0;\n _this.ignoreChange = false;\n _this.clear();\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return;\n if (!_this.options.userOnly || source === _quill2.default.sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, _this.undo.bind(_this));\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, _this.redo.bind(_this));\n if (/Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, _this.redo.bind(_this));\n }\n return _this;\n }\n\n _createClass(History, [{\n key: 'change',\n value: function change(source, dest) {\n if (this.stack[source].length === 0) return;\n var delta = this.stack[source].pop();\n this.stack[dest].push(delta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta[source], _quill2.default.sources.USER);\n this.ignoreChange = false;\n var index = getLastChangeIndex(delta[source]);\n this.quill.setSelection(index);\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.stack = { undo: [], redo: [] };\n }\n }, {\n key: 'cutoff',\n value: function cutoff() {\n this.lastRecorded = 0;\n }\n }, {\n key: 'record',\n value: function record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n var undoDelta = this.quill.getContents().diff(oldDelta);\n var timestamp = Date.now();\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n var delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta.undo);\n changeDelta = delta.redo.compose(changeDelta);\n } else {\n this.lastRecorded = timestamp;\n }\n this.stack.undo.push({\n redo: changeDelta,\n undo: undoDelta\n });\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n }, {\n key: 'redo',\n value: function redo() {\n this.change('redo', 'undo');\n }\n }, {\n key: 'transform',\n value: function transform(delta) {\n this.stack.undo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n this.stack.redo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n }\n }, {\n key: 'undo',\n value: function undo() {\n this.change('undo', 'redo');\n }\n }]);\n\n return History;\n}(_module2.default);\n\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction endsWithNewlineChange(delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null;\n });\n }\n return false;\n}\n\nfunction getLastChangeIndex(delta) {\n var deleteLength = delta.reduce(function (length, op) {\n length += op.delete || 0;\n return length;\n }, 0);\n var changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n}\n\nexports.default = History;\nexports.getLastChangeIndex = getLastChangeIndex;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BaseTooltip = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ALIGNS = [false, 'center', 'right', 'justify'];\n\nvar COLORS = [\"#000000\", \"#e60000\", \"#ff9900\", \"#ffff00\", \"#008a00\", \"#0066cc\", \"#9933ff\", \"#ffffff\", \"#facccc\", \"#ffebcc\", \"#ffffcc\", \"#cce8cc\", \"#cce0f5\", \"#ebd6ff\", \"#bbbbbb\", \"#f06666\", \"#ffc266\", \"#ffff66\", \"#66b966\", \"#66a3e0\", \"#c285ff\", \"#888888\", \"#a10000\", \"#b26b00\", \"#b2b200\", \"#006100\", \"#0047b2\", \"#6b24b2\", \"#444444\", \"#5c0000\", \"#663d00\", \"#666600\", \"#003700\", \"#002966\", \"#3d1466\"];\n\nvar FONTS = [false, 'serif', 'monospace'];\n\nvar HEADERS = ['1', '2', '3', false];\n\nvar SIZES = ['small', false, 'large', 'huge'];\n\nvar BaseTheme = function (_Theme) {\n _inherits(BaseTheme, _Theme);\n\n function BaseTheme(quill, options) {\n _classCallCheck(this, BaseTheme);\n\n var _this = _possibleConstructorReturn(this, (BaseTheme.__proto__ || Object.getPrototypeOf(BaseTheme)).call(this, quill, options));\n\n var listener = function listener(e) {\n if (!document.body.contains(quill.root)) {\n return document.body.removeEventListener('click', listener);\n }\n if (_this.tooltip != null && !_this.tooltip.root.contains(e.target) && document.activeElement !== _this.tooltip.textbox && !_this.quill.hasFocus()) {\n _this.tooltip.hide();\n }\n if (_this.pickers != null) {\n _this.pickers.forEach(function (picker) {\n if (!picker.container.contains(e.target)) {\n picker.close();\n }\n });\n }\n };\n quill.emitter.listenDOM('click', document.body, listener);\n return _this;\n }\n\n _createClass(BaseTheme, [{\n key: 'addModule',\n value: function addModule(name) {\n var module = _get(BaseTheme.prototype.__proto__ || Object.getPrototypeOf(BaseTheme.prototype), 'addModule', this).call(this, name);\n if (name === 'toolbar') {\n this.extendToolbar(module);\n }\n return module;\n }\n }, {\n key: 'buildButtons',\n value: function buildButtons(buttons, icons) {\n buttons.forEach(function (button) {\n var className = button.getAttribute('class') || '';\n className.split(/\\s+/).forEach(function (name) {\n if (!name.startsWith('ql-')) return;\n name = name.slice('ql-'.length);\n if (icons[name] == null) return;\n if (name === 'direction') {\n button.innerHTML = icons[name][''] + icons[name]['rtl'];\n } else if (typeof icons[name] === 'string') {\n button.innerHTML = icons[name];\n } else {\n var value = button.value || '';\n if (value != null && icons[name][value]) {\n button.innerHTML = icons[name][value];\n }\n }\n });\n });\n }\n }, {\n key: 'buildPickers',\n value: function buildPickers(selects, icons) {\n var _this2 = this;\n\n this.pickers = selects.map(function (select) {\n if (select.classList.contains('ql-align')) {\n if (select.querySelector('option') == null) {\n fillSelect(select, ALIGNS);\n }\n return new _iconPicker2.default(select, icons.align);\n } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n var format = select.classList.contains('ql-background') ? 'background' : 'color';\n if (select.querySelector('option') == null) {\n fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n }\n return new _colorPicker2.default(select, icons[format]);\n } else {\n if (select.querySelector('option') == null) {\n if (select.classList.contains('ql-font')) {\n fillSelect(select, FONTS);\n } else if (select.classList.contains('ql-header')) {\n fillSelect(select, HEADERS);\n } else if (select.classList.contains('ql-size')) {\n fillSelect(select, SIZES);\n }\n }\n return new _picker2.default(select);\n }\n });\n var update = function update() {\n _this2.pickers.forEach(function (picker) {\n picker.update();\n });\n };\n this.quill.on(_emitter2.default.events.EDITOR_CHANGE, update);\n }\n }]);\n\n return BaseTheme;\n}(_theme2.default);\n\nBaseTheme.DEFAULTS = (0, _extend2.default)(true, {}, _theme2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n formula: function formula() {\n this.quill.theme.tooltip.edit('formula');\n },\n image: function image() {\n var _this3 = this;\n\n var fileInput = this.container.querySelector('input.ql-image[type=file]');\n if (fileInput == null) {\n fileInput = document.createElement('input');\n fileInput.setAttribute('type', 'file');\n fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon');\n fileInput.classList.add('ql-image');\n fileInput.addEventListener('change', function () {\n if (fileInput.files != null && fileInput.files[0] != null) {\n var reader = new FileReader();\n reader.onload = function (e) {\n var range = _this3.quill.getSelection(true);\n _this3.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert({ image: e.target.result }), _emitter2.default.sources.USER);\n _this3.quill.setSelection(range.index + 1, _emitter2.default.sources.SILENT);\n fileInput.value = \"\";\n };\n reader.readAsDataURL(fileInput.files[0]);\n }\n });\n this.container.appendChild(fileInput);\n }\n fileInput.click();\n },\n video: function video() {\n this.quill.theme.tooltip.edit('video');\n }\n }\n }\n }\n});\n\nvar BaseTooltip = function (_Tooltip) {\n _inherits(BaseTooltip, _Tooltip);\n\n function BaseTooltip(quill, boundsContainer) {\n _classCallCheck(this, BaseTooltip);\n\n var _this4 = _possibleConstructorReturn(this, (BaseTooltip.__proto__ || Object.getPrototypeOf(BaseTooltip)).call(this, quill, boundsContainer));\n\n _this4.textbox = _this4.root.querySelector('input[type=\"text\"]');\n _this4.listen();\n return _this4;\n }\n\n _createClass(BaseTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this5 = this;\n\n this.textbox.addEventListener('keydown', function (event) {\n if (_keyboard2.default.match(event, 'enter')) {\n _this5.save();\n event.preventDefault();\n } else if (_keyboard2.default.match(event, 'escape')) {\n _this5.cancel();\n event.preventDefault();\n }\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.hide();\n }\n }, {\n key: 'edit',\n value: function edit() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'link';\n var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n this.root.classList.remove('ql-hidden');\n this.root.classList.add('ql-editing');\n if (preview != null) {\n this.textbox.value = preview;\n } else if (mode !== this.root.getAttribute('data-mode')) {\n this.textbox.value = '';\n }\n this.position(this.quill.getBounds(this.quill.selection.savedRange));\n this.textbox.select();\n this.textbox.setAttribute('placeholder', this.textbox.getAttribute('data-' + mode) || '');\n this.root.setAttribute('data-mode', mode);\n }\n }, {\n key: 'restoreFocus',\n value: function restoreFocus() {\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.quill.focus();\n this.quill.scrollingContainer.scrollTop = scrollTop;\n }\n }, {\n key: 'save',\n value: function save() {\n var value = this.textbox.value;\n switch (this.root.getAttribute('data-mode')) {\n case 'link':\n {\n var scrollTop = this.quill.root.scrollTop;\n if (this.linkRange) {\n this.quill.formatText(this.linkRange, 'link', value, _emitter2.default.sources.USER);\n delete this.linkRange;\n } else {\n this.restoreFocus();\n this.quill.format('link', value, _emitter2.default.sources.USER);\n }\n this.quill.root.scrollTop = scrollTop;\n break;\n }\n case 'video':\n {\n value = extractVideoUrl(value);\n } // eslint-disable-next-line no-fallthrough\n case 'formula':\n {\n if (!value) break;\n var range = this.quill.getSelection(true);\n if (range != null) {\n var index = range.index + range.length;\n this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, _emitter2.default.sources.USER);\n if (this.root.getAttribute('data-mode') === 'formula') {\n this.quill.insertText(index + 1, ' ', _emitter2.default.sources.USER);\n }\n this.quill.setSelection(index + 2, _emitter2.default.sources.USER);\n }\n break;\n }\n default:\n }\n this.textbox.value = '';\n this.hide();\n }\n }]);\n\n return BaseTooltip;\n}(_tooltip2.default);\n\nfunction extractVideoUrl(url) {\n var match = url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n if (match) {\n return (match[1] || 'https') + '://www.youtube.com/embed/' + match[2] + '?showinfo=0';\n }\n if (match = url.match(/^(?:(https?):\\/\\/)?(?:www\\.)?vimeo\\.com\\/(\\d+)/)) {\n // eslint-disable-line no-cond-assign\n return (match[1] || 'https') + '://player.vimeo.com/video/' + match[2] + '/';\n }\n return url;\n}\n\nfunction fillSelect(select, values) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected');\n } else {\n option.setAttribute('value', value);\n }\n select.appendChild(option);\n });\n}\n\nexports.BaseTooltip = BaseTooltip;\nexports.default = BaseTheme;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedList = /** @class */ (function () {\n function LinkedList() {\n this.head = this.tail = null;\n this.length = 0;\n }\n LinkedList.prototype.append = function () {\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n this.insertBefore(nodes[0], null);\n if (nodes.length > 1) {\n this.append.apply(this, nodes.slice(1));\n }\n };\n LinkedList.prototype.contains = function (node) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n if (cur === node)\n return true;\n }\n return false;\n };\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (!node)\n return;\n node.next = refNode;\n if (refNode != null) {\n node.prev = refNode.prev;\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n refNode.prev = node;\n if (refNode === this.head) {\n this.head = node;\n }\n }\n else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n }\n else {\n node.prev = null;\n this.head = this.tail = node;\n }\n this.length += 1;\n };\n LinkedList.prototype.offset = function (target) {\n var index = 0, cur = this.head;\n while (cur != null) {\n if (cur === target)\n return index;\n index += cur.length();\n cur = cur.next;\n }\n return -1;\n };\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node))\n return;\n if (node.prev != null)\n node.prev.next = node.next;\n if (node.next != null)\n node.next.prev = node.prev;\n if (node === this.head)\n this.head = node.next;\n if (node === this.tail)\n this.tail = node.prev;\n this.length -= 1;\n };\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) { curNode = this.head; }\n // TODO use yield when we can\n return function () {\n var ret = curNode;\n if (curNode != null)\n curNode = curNode.next;\n return ret;\n };\n };\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var cur, next = this.iterator();\n while ((cur = next())) {\n var length = cur.length();\n if (index < length ||\n (inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) {\n return [cur, index];\n }\n index -= length;\n }\n return [null, 0];\n };\n LinkedList.prototype.forEach = function (callback) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n callback(cur);\n }\n };\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0)\n return;\n var _a = this.find(index), startNode = _a[0], offset = _a[1];\n var cur, curIndex = index - offset, next = this.iterator(startNode);\n while ((cur = next()) && curIndex < index + length) {\n var curLength = cur.length();\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n }\n else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n curIndex += curLength;\n }\n };\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n LinkedList.prototype.reduce = function (callback, memo) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n memo = callback(memo, cur);\n }\n return memo;\n };\n return LinkedList;\n}());\nexports.default = LinkedList;\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\nvar ScrollBlot = /** @class */ (function (_super) {\n __extends(ScrollBlot, _super);\n function ScrollBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.scroll = _this;\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n _this.attach();\n return _this;\n }\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n this.observer.disconnect();\n };\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n }\n else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n _super.prototype.insertAt.call(this, index, value, def);\n };\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n if (mutations === void 0) { mutations = []; }\n if (context === void 0) { context = {}; }\n _super.prototype.optimize.call(this, context);\n // We must modify mutations directly, cannot make copy and then modify\n var records = [].slice.call(this.observer.takeRecords());\n // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n while (records.length > 0)\n mutations.push(records.pop());\n // TODO use WeakMap\n var mark = function (blot, markParent) {\n if (markParent === void 0) { markParent = true; }\n if (blot == null || blot === _this)\n return;\n if (blot.domNode.parentNode == null)\n return;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n if (markParent)\n mark(blot.parent);\n };\n var optimize = function (blot) {\n // Post-order traversal\n if (\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY] == null ||\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations == null) {\n return;\n }\n if (blot instanceof container_1.default) {\n blot.children.forEach(optimize);\n }\n blot.optimize(context);\n };\n var remaining = mutations;\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n remaining.forEach(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return;\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(Registry.find(mutation.previousSibling, false));\n [].forEach.call(mutation.addedNodes, function (node) {\n var child = Registry.find(node, false);\n mark(child, false);\n if (child instanceof container_1.default) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n }\n else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [].slice.call(this.observer.takeRecords());\n records = remaining.slice();\n while (records.length > 0)\n mutations.push(records.pop());\n }\n };\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (context === void 0) { context = {}; }\n mutations = mutations || this.observer.takeRecords();\n // TODO use WeakMap\n mutations\n .map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return null;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n }\n else {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n })\n .forEach(function (blot) {\n if (blot == null ||\n blot === _this ||\n //@ts-ignore\n blot.domNode[Registry.DATA_KEY] == null)\n return;\n // @ts-ignore\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n });\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY].mutations != null) {\n // @ts-ignore\n _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);\n }\n this.optimize(mutations, context);\n };\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = 'block';\n ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(container_1.default));\nexports.default = ScrollBlot;\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\n// Shallow object comparison\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length)\n return false;\n // @ts-ignore\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop])\n return false;\n }\n return true;\n}\nvar InlineBlot = /** @class */ (function (_super) {\n __extends(InlineBlot, _super);\n function InlineBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InlineBlot.formats = function (domNode) {\n if (domNode.tagName === InlineBlot.tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof format_1.default)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n _this.attributes.copy(child);\n });\n this.unwrap();\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n var formats = this.formats();\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n var next = this.next;\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(format_1.default));\nexports.default = InlineBlot;\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\nvar BlockBlot = /** @class */ (function (_super) {\n __extends(BlockBlot, _super);\n function BlockBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockBlot.formats = function (domNode) {\n var tagName = Registry.query(BlockBlot.blotName).tagName;\n if (domNode.tagName === tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n BlockBlot.prototype.format = function (name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n return;\n }\n else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n }\n else {\n var after = this.split(index);\n var blot = Registry.create(value, def);\n after.parent.insertBefore(blot, after);\n }\n };\n BlockBlot.prototype.update = function (mutations, context) {\n if (navigator.userAgent.match(/Trident/)) {\n this.build();\n }\n else {\n _super.prototype.update.call(this, mutations, context);\n }\n };\n BlockBlot.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n}(format_1.default));\nexports.default = BlockBlot;\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar EmbedBlot = /** @class */ (function (_super) {\n __extends(EmbedBlot, _super);\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmbedBlot.formats = function (domNode) {\n return undefined;\n };\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode);\n };\n return EmbedBlot;\n}(leaf_1.default));\nexports.default = EmbedBlot;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar Registry = __webpack_require__(1);\nvar TextBlot = /** @class */ (function (_super) {\n __extends(TextBlot, _super);\n function TextBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n var text = domNode.data;\n // @ts-ignore\n if (text['normalize'])\n text = text['normalize']();\n return text;\n };\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n return -1;\n };\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n }\n else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.text = this.statics.value(this.domNode);\n if (this.text.length === 0) {\n this.remove();\n }\n else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n TextBlot.prototype.position = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return [this.domNode, index];\n };\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = Registry.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n TextBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n TextBlot.prototype.value = function () {\n return this.text;\n };\n TextBlot.blotName = 'text';\n TextBlot.scope = Registry.Scope.INLINE_BLOT;\n return TextBlot;\n}(leaf_1.default));\nexports.default = TextBlot;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar elem = document.createElement('div');\nelem.classList.toggle('test-class', false);\nif (elem.classList.contains('test-class')) {\n var _toggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function (token, force) {\n if (arguments.length > 1 && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n}\n\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function (searchString, position) {\n position = position || 0;\n return this.substr(position, searchString.length) === searchString;\n };\n}\n\nif (!String.prototype.endsWith) {\n String.prototype.endsWith = function (searchString, position) {\n var subjectString = this.toString();\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n}\n\nif (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, \"find\", {\n value: function value(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n }\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n // Disable resizing in Firefox\n document.execCommand(\"enableObjectResizing\", false, false);\n // Disable automatic linkifying in IE11\n document.execCommand(\"autoUrlDetect\", false, false);\n});\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports) {\n\n/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int} cursor_pos Expected edit position in text1 (optional)\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos) {\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n // Check cursor_pos within bounds\n if (cursor_pos < 0 || text1.length < cursor_pos) {\n cursor_pos = null;\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs);\n if (cursor_pos != null) {\n diffs = fix_cursor(diffs, cursor_pos);\n }\n diffs = fix_emoji(diffs);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i != -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [[DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length == 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 != 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) == text2.charAt(y1)) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) ==\n text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 ||\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n var prefixLength = diff_commonPrefix(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = diff_commonSuffix(longtext.substring(0, i),\n shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) +\n shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n */\nfunction diff_cleanupMerge(diffs) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if ((pointer - count_delete - count_insert) > 0 &&\n diffs[pointer - count_delete - count_insert - 1][0] ==\n DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] +=\n text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL,\n text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixies.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length -\n commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length -\n commonlength);\n text_delete = text_delete.substring(0, text_delete.length -\n commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert,\n count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete,\n count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert, [DIFF_DELETE, text_delete],\n [DIFF_INSERT, text_insert]);\n }\n pointer = pointer - count_delete - count_insert +\n (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: ABAC -> ABAC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs);\n }\n};\n\n\nvar diff = diff_main;\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n/*\n * Modify a diff such that the cursor position points to the start of a change:\n * E.g.\n * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\n * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\n * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\n * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} A tuple [cursor location in the modified diff, modified diff]\n */\nfunction cursor_normalize_diff (diffs, cursor_pos) {\n if (cursor_pos === 0) {\n return [DIFF_EQUAL, diffs];\n }\n for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n var d = diffs[i];\n if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n var next_pos = current_pos + d[1].length;\n if (cursor_pos === next_pos) {\n return [i + 1, diffs];\n } else if (cursor_pos < next_pos) {\n // copy to prevent side effects\n diffs = diffs.slice();\n // split d into two diff changes\n var split_pos = cursor_pos - current_pos;\n var d_left = [d[0], d[1].slice(0, split_pos)];\n var d_right = [d[0], d[1].slice(split_pos)];\n diffs.splice(i, 1, d_left, d_right);\n return [i + 1, diffs];\n } else {\n current_pos = next_pos;\n }\n }\n }\n throw new Error('cursor_pos is out of bounds!')\n}\n\n/*\n * Modify a diff such that the edit position is \"shifted\" to the proposed edit location (cursor_position).\n *\n * Case 1)\n * Check if a naive shift is possible:\n * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)\n * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result\n * Case 2)\n * Check if the following shifts are possible:\n * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\n * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\n * ^ ^\n * d d_next\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} Array of diff tuples\n */\nfunction fix_cursor (diffs, cursor_pos) {\n var norm = cursor_normalize_diff(diffs, cursor_pos);\n var ndiffs = norm[1];\n var cursor_pointer = norm[0];\n var d = ndiffs[cursor_pointer];\n var d_next = ndiffs[cursor_pointer + 1];\n\n if (d == null) {\n // Text was deleted from end of original string,\n // cursor is now out of bounds in new string\n return diffs;\n } else if (d[0] !== DIFF_EQUAL) {\n // A modification happened at the cursor location.\n // This is the expected outcome, so we can return the original diff.\n return diffs;\n } else {\n if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\n // Case 1)\n // It is possible to perform a naive shift\n ndiffs.splice(cursor_pointer, 2, d_next, d)\n return merge_tuples(ndiffs, cursor_pointer, 2)\n } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\n // Case 2)\n // d[1] is a prefix of d_next[1]\n // We can assume that d_next[0] !== 0, since d[0] === 0\n // Shift edit locations..\n ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\n var suffix = d_next[1].slice(d[1].length);\n if (suffix.length > 0) {\n ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n }\n return merge_tuples(ndiffs, cursor_pointer, 3)\n } else {\n // Not possible to perform any modification\n return diffs;\n }\n }\n}\n\n/*\n * Check diff did not split surrogate pairs.\n * Ex. [0, '\\uD83D'], [-1, '\\uDC36'], [1, '\\uDC2F'] -> [-1, '\\uD83D\\uDC36'], [1, '\\uD83D\\uDC2F']\n * '\\uD83D\\uDC36' === '🐶', '\\uD83D\\uDC2F' === '🐯'\n *\n * @param {Array} diffs Array of diff tuples\n * @return {Array} Array of diff tuples\n */\nfunction fix_emoji (diffs) {\n var compact = false;\n var starts_with_pair_end = function(str) {\n return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\n }\n var ends_with_pair_start = function(str) {\n return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;\n }\n for (var i = 2; i < diffs.length; i += 1) {\n if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&\n diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&\n diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\n compact = true;\n\n diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];\n diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];\n\n diffs[i-2][1] = diffs[i-2][1].slice(0, -1);\n }\n }\n if (!compact) {\n return diffs;\n }\n var fixed_diffs = [];\n for (var i = 0; i < diffs.length; i += 1) {\n if (diffs[i][1].length > 0) {\n fixed_diffs.push(diffs[i]);\n }\n }\n return fixed_diffs;\n}\n\n/*\n * Try to merge tuples with their neigbors in a given range.\n * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\n *\n * @param {Array} diffs Array of diff tuples.\n * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\n * @param {Int} length Number of consecutive elements to check.\n * @return {Array} Array of merged diff tuples.\n */\nfunction merge_tuples (diffs, start, length) {\n // Check from (start-1) to (start+length).\n for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\n if (i + 1 < diffs.length) {\n var left_d = diffs[i];\n var right_d = diffs[i+1];\n if (left_d[0] === right_d[1]) {\n diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\n }\n }\n }\n return diffs;\n}\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports) {\n\nexports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\nvar supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @api private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {Mixed} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event\n , available = this._events[evt];\n\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {Mixed} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn\n && (!once || listeners.once)\n && (!context || listeners.context === context)\n ) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn\n || (once && !listeners[i].once)\n || (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {String|Symbol} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend2 = __webpack_require__(3);\n\nvar _extend3 = _interopRequireDefault(_extend2);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _align = __webpack_require__(36);\n\nvar _background = __webpack_require__(37);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _color = __webpack_require__(26);\n\nvar _direction = __webpack_require__(38);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:clipboard');\n\nvar DOM_KEY = '__ql-matcher';\n\nvar CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchSpacing], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]];\n\nvar ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar Clipboard = function (_Module) {\n _inherits(Clipboard, _Module);\n\n function Clipboard(quill, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options));\n\n _this.quill.root.addEventListener('paste', _this.onPaste.bind(_this));\n _this.container = _this.quill.addContainer('ql-clipboard');\n _this.container.setAttribute('contenteditable', true);\n _this.container.setAttribute('tabindex', -1);\n _this.matchers = [];\n CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n selector = _ref2[0],\n matcher = _ref2[1];\n\n if (!options.matchVisual && matcher === matchSpacing) return;\n _this.addMatcher(selector, matcher);\n });\n return _this;\n }\n\n _createClass(Clipboard, [{\n key: 'addMatcher',\n value: function addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n }, {\n key: 'convert',\n value: function convert(html) {\n if (typeof html === 'string') {\n this.container.innerHTML = html.replace(/\\>\\r?\\n +\\<'); // Remove spaces between tags\n return this.convert();\n }\n var formats = this.quill.getFormat(this.quill.selection.savedRange.index);\n if (formats[_code2.default.blotName]) {\n var text = this.container.innerText;\n this.container.innerHTML = '';\n return new _quillDelta2.default().insert(text, _defineProperty({}, _code2.default.blotName, formats[_code2.default.blotName]));\n }\n\n var _prepareMatching = this.prepareMatching(),\n _prepareMatching2 = _slicedToArray(_prepareMatching, 2),\n elementMatchers = _prepareMatching2[0],\n textMatchers = _prepareMatching2[1];\n\n var delta = traverse(this.container, elementMatchers, textMatchers);\n // Remove trailing newline\n if (deltaEndsWith(delta, '\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\n delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1));\n }\n debug.log('convert', this.container.innerHTML, delta);\n this.container.innerHTML = '';\n return delta;\n }\n }, {\n key: 'dangerouslyPasteHTML',\n value: function dangerouslyPasteHTML(index, html) {\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _quill2.default.sources.API;\n\n if (typeof index === 'string') {\n this.quill.setContents(this.convert(index), html);\n this.quill.setSelection(0, _quill2.default.sources.SILENT);\n } else {\n var paste = this.convert(html);\n this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT);\n }\n }\n }, {\n key: 'onPaste',\n value: function onPaste(e) {\n var _this2 = this;\n\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n var range = this.quill.getSelection();\n var delta = new _quillDelta2.default().retain(range.index);\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.container.focus();\n this.quill.selection.update(_quill2.default.sources.SILENT);\n setTimeout(function () {\n delta = delta.concat(_this2.convert()).delete(range.length);\n _this2.quill.updateContents(delta, _quill2.default.sources.USER);\n // range.length contributes to delta.length()\n _this2.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT);\n _this2.quill.scrollingContainer.scrollTop = scrollTop;\n _this2.quill.focus();\n }, 1);\n }\n }, {\n key: 'prepareMatching',\n value: function prepareMatching() {\n var _this3 = this;\n\n var elementMatchers = [],\n textMatchers = [];\n this.matchers.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n selector = _pair[0],\n matcher = _pair[1];\n\n switch (selector) {\n case Node.TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n [].forEach.call(_this3.container.querySelectorAll(selector), function (node) {\n // TODO use weakmap\n node[DOM_KEY] = node[DOM_KEY] || [];\n node[DOM_KEY].push(matcher);\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n }]);\n\n return Clipboard;\n}(_module2.default);\n\nClipboard.DEFAULTS = {\n matchers: [],\n matchVisual: true\n};\n\nfunction applyFormat(delta, format, value) {\n if ((typeof format === 'undefined' ? 'undefined' : _typeof(format)) === 'object') {\n return Object.keys(format).reduce(function (delta, key) {\n return applyFormat(delta, key, format[key]);\n }, delta);\n } else {\n return delta.reduce(function (delta, op) {\n if (op.attributes && op.attributes[format]) {\n return delta.push(op);\n } else {\n return delta.insert(op.insert, (0, _extend3.default)({}, _defineProperty({}, format, value), op.attributes));\n }\n }, new _quillDelta2.default());\n }\n}\n\nfunction computeStyle(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) return {};\n var DOM_KEY = '__ql-computed-style';\n return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));\n}\n\nfunction deltaEndsWith(delta, text) {\n var endText = \"\";\n for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {\n var op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n return endText.slice(-1 * text.length) === text;\n}\n\nfunction isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n var style = computeStyle(node);\n return ['block', 'list-item'].indexOf(style.display) > -1;\n}\n\nfunction traverse(node, elementMatchers, textMatchers) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function (delta, matcher) {\n return matcher(node, delta);\n }, new _quillDelta2.default());\n } else if (node.nodeType === node.ELEMENT_NODE) {\n return [].reduce.call(node.childNodes || [], function (delta, childNode) {\n var childrenDelta = traverse(childNode, elementMatchers, textMatchers);\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n }\n return delta.concat(childrenDelta);\n }, new _quillDelta2.default());\n } else {\n return new _quillDelta2.default();\n }\n}\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta) {\n var attributes = _parchment2.default.Attributor.Attribute.keys(node);\n var classes = _parchment2.default.Attributor.Class.keys(node);\n var styles = _parchment2.default.Attributor.Style.keys(node);\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n return delta;\n}\n\nfunction matchBlot(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null) return delta;\n if (match.prototype instanceof _parchment2.default.Embed) {\n var embed = {};\n var value = match.value(node);\n if (value != null) {\n embed[match.blotName] = value;\n delta = new _quillDelta2.default().insert(embed, match.formats(node));\n }\n } else if (typeof match.formats === 'function') {\n delta = applyFormat(delta, match.blotName, match.formats(node));\n }\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\n\nfunction matchIgnore() {\n return new _quillDelta2.default();\n}\n\nfunction matchIndent(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n var indent = -1,\n parent = node.parentNode;\n while (!parent.classList.contains('ql-clipboard')) {\n if ((_parchment2.default.query(parent) || {}).blotName === 'list') {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, { indent: indent }));\n}\n\nfunction matchNewline(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchSpacing(node, delta) {\n if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\\n\\n')) {\n var nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom);\n if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n delta = new _quillDelta2.default().insert('\\t').concat(delta);\n }\n return delta;\n}\n\nfunction matchText(node, delta) {\n var text = node.data;\n // Word represents empty line with  \n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {\n return delta;\n }\n if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {\n // eslint-disable-next-line func-style\n var replacer = function replacer(collapse, match) {\n match = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return match.length < 1 && collapse ? ' ' : match;\n };\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n return delta.insert(text);\n}\n\nexports.default = Clipboard;\nexports.matchAttributor = matchAttributor;\nexports.matchBlot = matchBlot;\nexports.matchNewline = matchNewline;\nexports.matchSpacing = matchSpacing;\nexports.matchText = matchText;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Bold = function (_Inline) {\n _inherits(Bold, _Inline);\n\n function Bold() {\n _classCallCheck(this, Bold);\n\n return _possibleConstructorReturn(this, (Bold.__proto__ || Object.getPrototypeOf(Bold)).apply(this, arguments));\n }\n\n _createClass(Bold, [{\n key: 'optimize',\n value: function optimize(context) {\n _get(Bold.prototype.__proto__ || Object.getPrototypeOf(Bold.prototype), 'optimize', this).call(this, context);\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n }], [{\n key: 'create',\n value: function create() {\n return _get(Bold.__proto__ || Object.getPrototypeOf(Bold), 'create', this).call(this);\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return Bold;\n}(_inline2.default);\n\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n\nexports.default = Bold;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addControls = exports.default = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:toolbar');\n\nvar Toolbar = function (_Module) {\n _inherits(Toolbar, _Module);\n\n function Toolbar(quill, options) {\n _classCallCheck(this, Toolbar);\n\n var _this = _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).call(this, quill, options));\n\n if (Array.isArray(_this.options.container)) {\n var container = document.createElement('div');\n addControls(container, _this.options.container);\n quill.container.parentNode.insertBefore(container, quill.container);\n _this.container = container;\n } else if (typeof _this.options.container === 'string') {\n _this.container = document.querySelector(_this.options.container);\n } else {\n _this.container = _this.options.container;\n }\n if (!(_this.container instanceof HTMLElement)) {\n var _ret;\n\n return _ret = debug.error('Container required for toolbar', _this.options), _possibleConstructorReturn(_this, _ret);\n }\n _this.container.classList.add('ql-toolbar');\n _this.controls = [];\n _this.handlers = {};\n Object.keys(_this.options.handlers).forEach(function (format) {\n _this.addHandler(format, _this.options.handlers[format]);\n });\n [].forEach.call(_this.container.querySelectorAll('button, select'), function (input) {\n _this.attach(input);\n });\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (type, range) {\n if (type === _quill2.default.events.SELECTION_CHANGE) {\n _this.update(range);\n }\n });\n _this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n var _this$quill$selection = _this.quill.selection.getRange(),\n _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n range = _this$quill$selection2[0]; // quill.getSelection triggers update\n\n\n _this.update(range);\n });\n return _this;\n }\n\n _createClass(Toolbar, [{\n key: 'addHandler',\n value: function addHandler(format, handler) {\n this.handlers[format] = handler;\n }\n }, {\n key: 'attach',\n value: function attach(input) {\n var _this2 = this;\n\n var format = [].find.call(input.classList, function (className) {\n return className.indexOf('ql-') === 0;\n });\n if (!format) return;\n format = format.slice('ql-'.length);\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\n if (this.handlers[format] == null) {\n if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) {\n debug.warn('ignoring attaching to disabled format', format, input);\n return;\n }\n if (_parchment2.default.query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n }\n var eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, function (e) {\n var value = void 0;\n if (input.tagName === 'SELECT') {\n if (input.selectedIndex < 0) return;\n var selected = input.options[input.selectedIndex];\n if (selected.hasAttribute('selected')) {\n value = false;\n } else {\n value = selected.value || false;\n }\n } else {\n if (input.classList.contains('ql-active')) {\n value = false;\n } else {\n value = input.value || !input.hasAttribute('value');\n }\n e.preventDefault();\n }\n _this2.quill.focus();\n\n var _quill$selection$getR = _this2.quill.selection.getRange(),\n _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1),\n range = _quill$selection$getR2[0];\n\n if (_this2.handlers[format] != null) {\n _this2.handlers[format].call(_this2, value);\n } else if (_parchment2.default.query(format).prototype instanceof _parchment2.default.Embed) {\n value = prompt('Enter ' + format);\n if (!value) return;\n _this2.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert(_defineProperty({}, format, value)), _quill2.default.sources.USER);\n } else {\n _this2.quill.format(format, value, _quill2.default.sources.USER);\n }\n _this2.update(range);\n });\n // TODO use weakmap\n this.controls.push([format, input]);\n }\n }, {\n key: 'update',\n value: function update(range) {\n var formats = range == null ? {} : this.quill.getFormat(range);\n this.controls.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n format = _pair[0],\n input = _pair[1];\n\n if (input.tagName === 'SELECT') {\n var option = void 0;\n if (range == null) {\n option = null;\n } else if (formats[format] == null) {\n option = input.querySelector('option[selected]');\n } else if (!Array.isArray(formats[format])) {\n var value = formats[format];\n if (typeof value === 'string') {\n value = value.replace(/\\\"/g, '\\\\\"');\n }\n option = input.querySelector('option[value=\"' + value + '\"]');\n }\n if (option == null) {\n input.value = ''; // TODO make configurable?\n input.selectedIndex = -1;\n } else {\n option.selected = true;\n }\n } else {\n if (range == null) {\n input.classList.remove('ql-active');\n } else if (input.hasAttribute('value')) {\n // both being null should match (default values)\n // '1' should match with 1 (headers)\n var isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value');\n input.classList.toggle('ql-active', isActive);\n } else {\n input.classList.toggle('ql-active', formats[format] != null);\n }\n }\n });\n }\n }]);\n\n return Toolbar;\n}(_module2.default);\n\nToolbar.DEFAULTS = {};\n\nfunction addButton(container, format, value) {\n var input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add('ql-' + format);\n if (value != null) {\n input.value = value;\n }\n container.appendChild(input);\n}\n\nfunction addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n groups = [groups];\n }\n groups.forEach(function (controls) {\n var group = document.createElement('span');\n group.classList.add('ql-formats');\n controls.forEach(function (control) {\n if (typeof control === 'string') {\n addButton(group, control);\n } else {\n var format = Object.keys(control)[0];\n var value = control[format];\n if (Array.isArray(value)) {\n addSelect(group, format, value);\n } else {\n addButton(group, format, value);\n }\n }\n });\n container.appendChild(group);\n });\n}\n\nfunction addSelect(container, format, values) {\n var input = document.createElement('select');\n input.classList.add('ql-' + format);\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value !== false) {\n option.setAttribute('value', value);\n } else {\n option.setAttribute('selected', 'selected');\n }\n input.appendChild(option);\n });\n container.appendChild(input);\n}\n\nToolbar.DEFAULTS = {\n container: null,\n handlers: {\n clean: function clean() {\n var _this3 = this;\n\n var range = this.quill.getSelection();\n if (range == null) return;\n if (range.length == 0) {\n var formats = this.quill.getFormat();\n Object.keys(formats).forEach(function (name) {\n // Clean functionality in existing apps only clean inline formats\n if (_parchment2.default.query(name, _parchment2.default.Scope.INLINE) != null) {\n _this3.quill.format(name, false);\n }\n });\n } else {\n this.quill.removeFormat(range, _quill2.default.sources.USER);\n }\n },\n direction: function direction(value) {\n var align = this.quill.getFormat()['align'];\n if (value === 'rtl' && align == null) {\n this.quill.format('align', 'right', _quill2.default.sources.USER);\n } else if (!value && align === 'right') {\n this.quill.format('align', false, _quill2.default.sources.USER);\n }\n this.quill.format('direction', value, _quill2.default.sources.USER);\n },\n indent: function indent(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n var indent = parseInt(formats.indent || 0);\n if (value === '+1' || value === '-1') {\n var modifier = value === '+1' ? 1 : -1;\n if (formats.direction === 'rtl') modifier *= -1;\n this.quill.format('indent', indent + modifier, _quill2.default.sources.USER);\n }\n },\n link: function link(value) {\n if (value === true) {\n value = prompt('Enter link URL:');\n }\n this.quill.format('link', value, _quill2.default.sources.USER);\n },\n list: function list(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n if (value === 'check') {\n if (formats['list'] === 'checked' || formats['list'] === 'unchecked') {\n this.quill.format('list', false, _quill2.default.sources.USER);\n } else {\n this.quill.format('list', 'unchecked', _quill2.default.sources.USER);\n }\n } else {\n this.quill.format('list', value, _quill2.default.sources.USER);\n }\n }\n }\n};\n\nexports.default = Toolbar;\nexports.addControls = addControls;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorPicker = function (_Picker) {\n _inherits(ColorPicker, _Picker);\n\n function ColorPicker(select, label) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this, select));\n\n _this.label.innerHTML = label;\n _this.container.classList.add('ql-color-picker');\n [].slice.call(_this.container.querySelectorAll('.ql-picker-item'), 0, 7).forEach(function (item) {\n item.classList.add('ql-primary');\n });\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'buildItem',\n value: function buildItem(option) {\n var item = _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'buildItem', this).call(this, option);\n item.style.backgroundColor = option.getAttribute('value') || '';\n return item;\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'selectItem', this).call(this, item, trigger);\n var colorLabel = this.label.querySelector('.ql-color-label');\n var value = item ? item.getAttribute('data-value') || '' : '';\n if (colorLabel) {\n if (colorLabel.tagName === 'line') {\n colorLabel.style.stroke = value;\n } else {\n colorLabel.style.fill = value;\n }\n }\n }\n }]);\n\n return ColorPicker;\n}(_picker2.default);\n\nexports.default = ColorPicker;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IconPicker = function (_Picker) {\n _inherits(IconPicker, _Picker);\n\n function IconPicker(select, icons) {\n _classCallCheck(this, IconPicker);\n\n var _this = _possibleConstructorReturn(this, (IconPicker.__proto__ || Object.getPrototypeOf(IconPicker)).call(this, select));\n\n _this.container.classList.add('ql-icon-picker');\n [].forEach.call(_this.container.querySelectorAll('.ql-picker-item'), function (item) {\n item.innerHTML = icons[item.getAttribute('data-value') || ''];\n });\n _this.defaultItem = _this.container.querySelector('.ql-selected');\n _this.selectItem(_this.defaultItem);\n return _this;\n }\n\n _createClass(IconPicker, [{\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(IconPicker.prototype.__proto__ || Object.getPrototypeOf(IconPicker.prototype), 'selectItem', this).call(this, item, trigger);\n item = item || this.defaultItem;\n this.label.innerHTML = item.innerHTML;\n }\n }]);\n\n return IconPicker;\n}(_picker2.default);\n\nexports.default = IconPicker;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Tooltip = function () {\n function Tooltip(quill, boundsContainer) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n this.quill = quill;\n this.boundsContainer = boundsContainer || document.body;\n this.root = quill.addContainer('ql-tooltip');\n this.root.innerHTML = this.constructor.TEMPLATE;\n if (this.quill.root === this.quill.scrollingContainer) {\n this.quill.root.addEventListener('scroll', function () {\n _this.root.style.marginTop = -1 * _this.quill.root.scrollTop + 'px';\n });\n }\n this.hide();\n }\n\n _createClass(Tooltip, [{\n key: 'hide',\n value: function hide() {\n this.root.classList.add('ql-hidden');\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var left = reference.left + reference.width / 2 - this.root.offsetWidth / 2;\n // root.scrollTop should be 0 if scrollContainer !== root\n var top = reference.bottom + this.quill.root.scrollTop;\n this.root.style.left = left + 'px';\n this.root.style.top = top + 'px';\n this.root.classList.remove('ql-flip');\n var containerBounds = this.boundsContainer.getBoundingClientRect();\n var rootBounds = this.root.getBoundingClientRect();\n var shift = 0;\n if (rootBounds.right > containerBounds.right) {\n shift = containerBounds.right - rootBounds.right;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.left < containerBounds.left) {\n shift = containerBounds.left - rootBounds.left;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.bottom > containerBounds.bottom) {\n var height = rootBounds.bottom - rootBounds.top;\n var verticalShift = reference.bottom - reference.top + height;\n this.root.style.top = top - verticalShift + 'px';\n this.root.classList.add('ql-flip');\n }\n return shift;\n }\n }, {\n key: 'show',\n value: function show() {\n this.root.classList.remove('ql-editing');\n this.root.classList.remove('ql-hidden');\n }\n }]);\n\n return Tooltip;\n}();\n\nexports.default = Tooltip;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [[{ header: ['1', '2', '3', false] }], ['bold', 'italic', 'underline', 'link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']];\n\nvar SnowTheme = function (_BaseTheme) {\n _inherits(SnowTheme, _BaseTheme);\n\n function SnowTheme(quill, options) {\n _classCallCheck(this, SnowTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (SnowTheme.__proto__ || Object.getPrototypeOf(SnowTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-snow');\n return _this;\n }\n\n _createClass(SnowTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n toolbar.container.classList.add('ql-snow');\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n if (toolbar.container.querySelector('.ql-link')) {\n this.quill.keyboard.addBinding({ key: 'K', shortKey: true }, function (range, context) {\n toolbar.handlers['link'].call(toolbar, !context.format.link);\n });\n }\n }\n }]);\n\n return SnowTheme;\n}(_base2.default);\n\nSnowTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (value) {\n var range = this.quill.getSelection();\n if (range == null || range.length == 0) return;\n var preview = this.quill.getText(range);\n if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n preview = 'mailto:' + preview;\n }\n var tooltip = this.quill.theme.tooltip;\n tooltip.edit('link', preview);\n } else {\n this.quill.format('link', false);\n }\n }\n }\n }\n }\n});\n\nvar SnowTooltip = function (_BaseTooltip) {\n _inherits(SnowTooltip, _BaseTooltip);\n\n function SnowTooltip(quill, bounds) {\n _classCallCheck(this, SnowTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (SnowTooltip.__proto__ || Object.getPrototypeOf(SnowTooltip)).call(this, quill, bounds));\n\n _this2.preview = _this2.root.querySelector('a.ql-preview');\n return _this2;\n }\n\n _createClass(SnowTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('a.ql-action').addEventListener('click', function (event) {\n if (_this3.root.classList.contains('ql-editing')) {\n _this3.save();\n } else {\n _this3.edit('link', _this3.preview.textContent);\n }\n event.preventDefault();\n });\n this.root.querySelector('a.ql-remove').addEventListener('click', function (event) {\n if (_this3.linkRange != null) {\n var range = _this3.linkRange;\n _this3.restoreFocus();\n _this3.quill.formatText(range, 'link', false, _emitter2.default.sources.USER);\n delete _this3.linkRange;\n }\n event.preventDefault();\n _this3.hide();\n });\n this.quill.on(_emitter2.default.events.SELECTION_CHANGE, function (range, oldRange, source) {\n if (range == null) return;\n if (range.length === 0 && source === _emitter2.default.sources.USER) {\n var _quill$scroll$descend = _this3.quill.scroll.descendant(_link2.default, range.index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n link = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (link != null) {\n _this3.linkRange = new _selection.Range(range.index - offset, link.length());\n var preview = _link2.default.formats(link.domNode);\n _this3.preview.textContent = preview;\n _this3.preview.setAttribute('href', preview);\n _this3.show();\n _this3.position(_this3.quill.getBounds(_this3.linkRange));\n return;\n }\n } else {\n delete _this3.linkRange;\n }\n _this3.hide();\n });\n }\n }, {\n key: 'show',\n value: function show() {\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'show', this).call(this);\n this.root.removeAttribute('data-mode');\n }\n }]);\n\n return SnowTooltip;\n}(_base.BaseTooltip);\n\nSnowTooltip.TEMPLATE = ['
', '', '', ''].join('');\n\nexports.default = SnowTheme;\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(29);\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _align = __webpack_require__(36);\n\nvar _direction = __webpack_require__(38);\n\nvar _indent = __webpack_require__(64);\n\nvar _blockquote = __webpack_require__(65);\n\nvar _blockquote2 = _interopRequireDefault(_blockquote);\n\nvar _header = __webpack_require__(66);\n\nvar _header2 = _interopRequireDefault(_header);\n\nvar _list = __webpack_require__(67);\n\nvar _list2 = _interopRequireDefault(_list);\n\nvar _background = __webpack_require__(37);\n\nvar _color = __webpack_require__(26);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nvar _italic = __webpack_require__(68);\n\nvar _italic2 = _interopRequireDefault(_italic);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _script = __webpack_require__(69);\n\nvar _script2 = _interopRequireDefault(_script);\n\nvar _strike = __webpack_require__(70);\n\nvar _strike2 = _interopRequireDefault(_strike);\n\nvar _underline = __webpack_require__(71);\n\nvar _underline2 = _interopRequireDefault(_underline);\n\nvar _image = __webpack_require__(72);\n\nvar _image2 = _interopRequireDefault(_image);\n\nvar _video = __webpack_require__(73);\n\nvar _video2 = _interopRequireDefault(_video);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _formula = __webpack_require__(74);\n\nvar _formula2 = _interopRequireDefault(_formula);\n\nvar _syntax = __webpack_require__(75);\n\nvar _syntax2 = _interopRequireDefault(_syntax);\n\nvar _toolbar = __webpack_require__(57);\n\nvar _toolbar2 = _interopRequireDefault(_toolbar);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nvar _bubble = __webpack_require__(108);\n\nvar _bubble2 = _interopRequireDefault(_bubble);\n\nvar _snow = __webpack_require__(62);\n\nvar _snow2 = _interopRequireDefault(_snow);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_core2.default.register({\n 'attributors/attribute/direction': _direction.DirectionAttribute,\n\n 'attributors/class/align': _align.AlignClass,\n 'attributors/class/background': _background.BackgroundClass,\n 'attributors/class/color': _color.ColorClass,\n 'attributors/class/direction': _direction.DirectionClass,\n 'attributors/class/font': _font.FontClass,\n 'attributors/class/size': _size.SizeClass,\n\n 'attributors/style/align': _align.AlignStyle,\n 'attributors/style/background': _background.BackgroundStyle,\n 'attributors/style/color': _color.ColorStyle,\n 'attributors/style/direction': _direction.DirectionStyle,\n 'attributors/style/font': _font.FontStyle,\n 'attributors/style/size': _size.SizeStyle\n}, true);\n\n_core2.default.register({\n 'formats/align': _align.AlignClass,\n 'formats/direction': _direction.DirectionClass,\n 'formats/indent': _indent.IndentClass,\n\n 'formats/background': _background.BackgroundStyle,\n 'formats/color': _color.ColorStyle,\n 'formats/font': _font.FontClass,\n 'formats/size': _size.SizeClass,\n\n 'formats/blockquote': _blockquote2.default,\n 'formats/code-block': _code2.default,\n 'formats/header': _header2.default,\n 'formats/list': _list2.default,\n\n 'formats/bold': _bold2.default,\n 'formats/code': _code.Code,\n 'formats/italic': _italic2.default,\n 'formats/link': _link2.default,\n 'formats/script': _script2.default,\n 'formats/strike': _strike2.default,\n 'formats/underline': _underline2.default,\n\n 'formats/image': _image2.default,\n 'formats/video': _video2.default,\n\n 'formats/list/item': _list.ListItem,\n\n 'modules/formula': _formula2.default,\n 'modules/syntax': _syntax2.default,\n 'modules/toolbar': _toolbar2.default,\n\n 'themes/bubble': _bubble2.default,\n 'themes/snow': _snow2.default,\n\n 'ui/icons': _icons2.default,\n 'ui/picker': _picker2.default,\n 'ui/icon-picker': _iconPicker2.default,\n 'ui/color-picker': _colorPicker2.default,\n 'ui/tooltip': _tooltip2.default\n}, true);\n\nexports.default = _core2.default;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IndentClass = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IdentAttributor = function (_Parchment$Attributor) {\n _inherits(IdentAttributor, _Parchment$Attributor);\n\n function IdentAttributor() {\n _classCallCheck(this, IdentAttributor);\n\n return _possibleConstructorReturn(this, (IdentAttributor.__proto__ || Object.getPrototypeOf(IdentAttributor)).apply(this, arguments));\n }\n\n _createClass(IdentAttributor, [{\n key: 'add',\n value: function add(node, value) {\n if (value === '+1' || value === '-1') {\n var indent = this.value(node) || 0;\n value = value === '+1' ? indent + 1 : indent - 1;\n }\n if (value === 0) {\n this.remove(node);\n return true;\n } else {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'add', this).call(this, node, value);\n }\n }\n }, {\n key: 'canAdd',\n value: function canAdd(node, value) {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, value) || _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, parseInt(value));\n }\n }, {\n key: 'value',\n value: function value(node) {\n return parseInt(_get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'value', this).call(this, node)) || undefined; // Don't return NaN\n }\n }]);\n\n return IdentAttributor;\n}(_parchment2.default.Attributor.Class);\n\nvar IndentClass = new IdentAttributor('indent', 'ql-indent', {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n\nexports.IndentClass = IndentClass;\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Blockquote = function (_Block) {\n _inherits(Blockquote, _Block);\n\n function Blockquote() {\n _classCallCheck(this, Blockquote);\n\n return _possibleConstructorReturn(this, (Blockquote.__proto__ || Object.getPrototypeOf(Blockquote)).apply(this, arguments));\n }\n\n return Blockquote;\n}(_block2.default);\n\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n\nexports.default = Blockquote;\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Header = function (_Block) {\n _inherits(Header, _Block);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, null, [{\n key: 'formats',\n value: function formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n }]);\n\n return Header;\n}(_block2.default);\n\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n\nexports.default = Header;\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.ListItem = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ListItem = function (_Block) {\n _inherits(ListItem, _Block);\n\n function ListItem() {\n _classCallCheck(this, ListItem);\n\n return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments));\n }\n\n _createClass(ListItem, [{\n key: 'format',\n value: function format(name, value) {\n if (name === List.blotName && !value) {\n this.replaceWith(_parchment2.default.create(this.statics.scope));\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'format', this).call(this, name, value);\n }\n }\n }, {\n key: 'remove',\n value: function remove() {\n if (this.prev == null && this.next == null) {\n this.parent.remove();\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'remove', this).call(this);\n }\n }\n }, {\n key: 'replaceWith',\n value: function replaceWith(name, value) {\n this.parent.isolate(this.offset(this.parent), this.length());\n if (name === this.parent.statics.blotName) {\n this.parent.replaceWith(name, value);\n return this;\n } else {\n this.parent.unwrap();\n return _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'replaceWith', this).call(this, name, value);\n }\n }\n }], [{\n key: 'formats',\n value: function formats(domNode) {\n return domNode.tagName === this.tagName ? undefined : _get(ListItem.__proto__ || Object.getPrototypeOf(ListItem), 'formats', this).call(this, domNode);\n }\n }]);\n\n return ListItem;\n}(_block2.default);\n\nListItem.blotName = 'list-item';\nListItem.tagName = 'LI';\n\nvar List = function (_Container) {\n _inherits(List, _Container);\n\n _createClass(List, null, [{\n key: 'create',\n value: function create(value) {\n var tagName = value === 'ordered' ? 'OL' : 'UL';\n var node = _get(List.__proto__ || Object.getPrototypeOf(List), 'create', this).call(this, tagName);\n if (value === 'checked' || value === 'unchecked') {\n node.setAttribute('data-checked', value === 'checked');\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n if (domNode.tagName === 'UL') {\n if (domNode.hasAttribute('data-checked')) {\n return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked';\n } else {\n return 'bullet';\n }\n }\n return undefined;\n }\n }]);\n\n function List(domNode) {\n _classCallCheck(this, List);\n\n var _this2 = _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).call(this, domNode));\n\n var listEventHandler = function listEventHandler(e) {\n if (e.target.parentNode !== domNode) return;\n var format = _this2.statics.formats(domNode);\n var blot = _parchment2.default.find(e.target);\n if (format === 'checked') {\n blot.format('list', 'unchecked');\n } else if (format === 'unchecked') {\n blot.format('list', 'checked');\n }\n };\n\n domNode.addEventListener('touchstart', listEventHandler);\n domNode.addEventListener('mousedown', listEventHandler);\n return _this2;\n }\n\n _createClass(List, [{\n key: 'format',\n value: function format(name, value) {\n if (this.children.length > 0) {\n this.children.tail.format(name, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats() {\n // We don't inherit from FormatBlot\n return _defineProperty({}, this.statics.blotName, this.statics.formats(this.domNode));\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot instanceof ListItem) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'insertBefore', this).call(this, blot, ref);\n } else {\n var index = ref == null ? this.length() : ref.offset(this);\n var after = this.split(index);\n after.parent.insertBefore(blot, after);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && next.domNode.tagName === this.domNode.tagName && next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) {\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n if (target.statics.blotName !== this.statics.blotName) {\n var item = _parchment2.default.create(this.statics.defaultChild);\n target.moveChildren(item);\n this.appendChild(item);\n }\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'replace', this).call(this, target);\n }\n }]);\n\n return List;\n}(_container2.default);\n\nList.blotName = 'list';\nList.scope = _parchment2.default.Scope.BLOCK_BLOT;\nList.tagName = ['OL', 'UL'];\nList.defaultChild = 'list-item';\nList.allowedChildren = [ListItem];\n\nexports.ListItem = ListItem;\nexports.default = List;\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Italic = function (_Bold) {\n _inherits(Italic, _Bold);\n\n function Italic() {\n _classCallCheck(this, Italic);\n\n return _possibleConstructorReturn(this, (Italic.__proto__ || Object.getPrototypeOf(Italic)).apply(this, arguments));\n }\n\n return Italic;\n}(_bold2.default);\n\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n\nexports.default = Italic;\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Script = function (_Inline) {\n _inherits(Script, _Inline);\n\n function Script() {\n _classCallCheck(this, Script);\n\n return _possibleConstructorReturn(this, (Script.__proto__ || Object.getPrototypeOf(Script)).apply(this, arguments));\n }\n\n _createClass(Script, null, [{\n key: 'create',\n value: function create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n } else if (value === 'sub') {\n return document.createElement('sub');\n } else {\n return _get(Script.__proto__ || Object.getPrototypeOf(Script), 'create', this).call(this, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n }]);\n\n return Script;\n}(_inline2.default);\n\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n\nexports.default = Script;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Strike = function (_Inline) {\n _inherits(Strike, _Inline);\n\n function Strike() {\n _classCallCheck(this, Strike);\n\n return _possibleConstructorReturn(this, (Strike.__proto__ || Object.getPrototypeOf(Strike)).apply(this, arguments));\n }\n\n return Strike;\n}(_inline2.default);\n\nStrike.blotName = 'strike';\nStrike.tagName = 'S';\n\nexports.default = Strike;\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Underline = function (_Inline) {\n _inherits(Underline, _Inline);\n\n function Underline() {\n _classCallCheck(this, Underline);\n\n return _possibleConstructorReturn(this, (Underline.__proto__ || Object.getPrototypeOf(Underline)).apply(this, arguments));\n }\n\n return Underline;\n}(_inline2.default);\n\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n\nexports.default = Underline;\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _link = __webpack_require__(27);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['alt', 'height', 'width'];\n\nvar Image = function (_Parchment$Embed) {\n _inherits(Image, _Parchment$Embed);\n\n function Image() {\n _classCallCheck(this, Image);\n\n return _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).apply(this, arguments));\n }\n\n _createClass(Image, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Image.prototype.__proto__ || Object.getPrototypeOf(Image.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Image.__proto__ || Object.getPrototypeOf(Image), 'create', this).call(this, value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'match',\n value: function match(url) {\n return (/\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url)\n );\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return (0, _link.sanitize)(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Image;\n}(_parchment2.default.Embed);\n\nImage.blotName = 'image';\nImage.tagName = 'IMG';\n\nexports.default = Image;\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _block = __webpack_require__(4);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['height', 'width'];\n\nvar Video = function (_BlockEmbed) {\n _inherits(Video, _BlockEmbed);\n\n function Video() {\n _classCallCheck(this, Video);\n\n return _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).apply(this, arguments));\n }\n\n _createClass(Video, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Video.prototype.__proto__ || Object.getPrototypeOf(Video.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Video.__proto__ || Object.getPrototypeOf(Video), 'create', this).call(this, value);\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _link2.default.sanitize(url);\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Video;\n}(_block.BlockEmbed);\n\nVideo.blotName = 'video';\nVideo.className = 'ql-video';\nVideo.tagName = 'IFRAME';\n\nexports.default = Video;\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.FormulaBlot = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar FormulaBlot = function (_Embed) {\n _inherits(FormulaBlot, _Embed);\n\n function FormulaBlot() {\n _classCallCheck(this, FormulaBlot);\n\n return _possibleConstructorReturn(this, (FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot)).apply(this, arguments));\n }\n\n _createClass(FormulaBlot, null, [{\n key: 'create',\n value: function create(value) {\n var node = _get(FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot), 'create', this).call(this, value);\n if (typeof value === 'string') {\n window.katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\n }\n return node;\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('data-value');\n }\n }]);\n\n return FormulaBlot;\n}(_embed2.default);\n\nFormulaBlot.blotName = 'formula';\nFormulaBlot.className = 'ql-formula';\nFormulaBlot.tagName = 'SPAN';\n\nvar Formula = function (_Module) {\n _inherits(Formula, _Module);\n\n _createClass(Formula, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(FormulaBlot, true);\n }\n }]);\n\n function Formula() {\n _classCallCheck(this, Formula);\n\n var _this2 = _possibleConstructorReturn(this, (Formula.__proto__ || Object.getPrototypeOf(Formula)).call(this));\n\n if (window.katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n return _this2;\n }\n\n return Formula;\n}(_module2.default);\n\nexports.FormulaBlot = FormulaBlot;\nexports.default = Formula;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.CodeToken = exports.CodeBlock = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SyntaxCodeBlock = function (_CodeBlock) {\n _inherits(SyntaxCodeBlock, _CodeBlock);\n\n function SyntaxCodeBlock() {\n _classCallCheck(this, SyntaxCodeBlock);\n\n return _possibleConstructorReturn(this, (SyntaxCodeBlock.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock)).apply(this, arguments));\n }\n\n _createClass(SyntaxCodeBlock, [{\n key: 'replaceWith',\n value: function replaceWith(block) {\n this.domNode.textContent = this.domNode.textContent;\n this.attach();\n _get(SyntaxCodeBlock.prototype.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock.prototype), 'replaceWith', this).call(this, block);\n }\n }, {\n key: 'highlight',\n value: function highlight(_highlight) {\n var text = this.domNode.textContent;\n if (this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n this.domNode.innerHTML = _highlight(text);\n this.domNode.normalize();\n this.attach();\n }\n this.cachedText = text;\n }\n }\n }]);\n\n return SyntaxCodeBlock;\n}(_code2.default);\n\nSyntaxCodeBlock.className = 'ql-syntax';\n\nvar CodeToken = new _parchment2.default.Attributor.Class('token', 'hljs', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nvar Syntax = function (_Module) {\n _inherits(Syntax, _Module);\n\n _createClass(Syntax, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(CodeToken, true);\n _quill2.default.register(SyntaxCodeBlock, true);\n }\n }]);\n\n function Syntax(quill, options) {\n _classCallCheck(this, Syntax);\n\n var _this2 = _possibleConstructorReturn(this, (Syntax.__proto__ || Object.getPrototypeOf(Syntax)).call(this, quill, options));\n\n if (typeof _this2.options.highlight !== 'function') {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n var timer = null;\n _this2.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n clearTimeout(timer);\n timer = setTimeout(function () {\n _this2.highlight();\n timer = null;\n }, _this2.options.interval);\n });\n _this2.highlight();\n return _this2;\n }\n\n _createClass(Syntax, [{\n key: 'highlight',\n value: function highlight() {\n var _this3 = this;\n\n if (this.quill.selection.composing) return;\n this.quill.update(_quill2.default.sources.USER);\n var range = this.quill.getSelection();\n this.quill.scroll.descendants(SyntaxCodeBlock).forEach(function (code) {\n code.highlight(_this3.options.highlight);\n });\n this.quill.update(_quill2.default.sources.SILENT);\n if (range != null) {\n this.quill.setSelection(range, _quill2.default.sources.SILENT);\n }\n }\n }]);\n\n return Syntax;\n}(_module2.default);\n\nSyntax.DEFAULTS = {\n highlight: function () {\n if (window.hljs == null) return null;\n return function (text) {\n var result = window.hljs.highlightAuto(text);\n return result.value;\n };\n }(),\n interval: 1000\n};\n\nexports.CodeBlock = SyntaxCodeBlock;\nexports.CodeToken = CodeToken;\nexports.default = Syntax;\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BubbleTooltip = undefined;\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{ header: 1 }, { header: 2 }, 'blockquote']];\n\nvar BubbleTheme = function (_BaseTheme) {\n _inherits(BubbleTheme, _BaseTheme);\n\n function BubbleTheme(quill, options) {\n _classCallCheck(this, BubbleTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (BubbleTheme.__proto__ || Object.getPrototypeOf(BubbleTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-bubble');\n return _this;\n }\n\n _createClass(BubbleTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n this.tooltip.root.appendChild(toolbar.container);\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n }\n }]);\n\n return BubbleTheme;\n}(_base2.default);\n\nBubbleTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (!value) {\n this.quill.format('link', false);\n } else {\n this.quill.theme.tooltip.edit();\n }\n }\n }\n }\n }\n});\n\nvar BubbleTooltip = function (_BaseTooltip) {\n _inherits(BubbleTooltip, _BaseTooltip);\n\n function BubbleTooltip(quill, bounds) {\n _classCallCheck(this, BubbleTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (BubbleTooltip.__proto__ || Object.getPrototypeOf(BubbleTooltip)).call(this, quill, bounds));\n\n _this2.quill.on(_emitter2.default.events.EDITOR_CHANGE, function (type, range, oldRange, source) {\n if (type !== _emitter2.default.events.SELECTION_CHANGE) return;\n if (range != null && range.length > 0 && source === _emitter2.default.sources.USER) {\n _this2.show();\n // Lock our width so we will expand beyond our offsetParent boundaries\n _this2.root.style.left = '0px';\n _this2.root.style.width = '';\n _this2.root.style.width = _this2.root.offsetWidth + 'px';\n var lines = _this2.quill.getLines(range.index, range.length);\n if (lines.length === 1) {\n _this2.position(_this2.quill.getBounds(range));\n } else {\n var lastLine = lines[lines.length - 1];\n var index = _this2.quill.getIndex(lastLine);\n var length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n var _bounds = _this2.quill.getBounds(new _selection.Range(index, length));\n _this2.position(_bounds);\n }\n } else if (document.activeElement !== _this2.textbox && _this2.quill.hasFocus()) {\n _this2.hide();\n }\n });\n return _this2;\n }\n\n _createClass(BubbleTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('.ql-close').addEventListener('click', function () {\n _this3.root.classList.remove('ql-editing');\n });\n this.quill.on(_emitter2.default.events.SCROLL_OPTIMIZE, function () {\n // Let selection be restored by toolbar handlers before repositioning\n setTimeout(function () {\n if (_this3.root.classList.contains('ql-hidden')) return;\n var range = _this3.quill.getSelection();\n if (range != null) {\n _this3.position(_this3.quill.getBounds(range));\n }\n }, 1);\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.show();\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var shift = _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'position', this).call(this, reference);\n var arrow = this.root.querySelector('.ql-tooltip-arrow');\n arrow.style.marginLeft = '';\n if (shift === 0) return shift;\n arrow.style.marginLeft = -1 * shift - arrow.offsetWidth / 2 + 'px';\n }\n }]);\n\n return BubbleTooltip;\n}(_base.BaseTooltip);\n\nBubbleTooltip.TEMPLATE = ['', '
', '', '', '
'].join('');\n\nexports.BubbleTooltip = BubbleTooltip;\nexports.default = BubbleTheme;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(63);\n\n\n/***/ })\n/******/ ])[\"default\"];\n});","// Styles\nimport './VAlert.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Toggleable from '../../mixins/toggleable'\nimport Themeable from '../../mixins/themeable'\nimport Transitionable from '../../mixins/transitionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNodeData } from 'vue'\nimport { VNode } from 'vue/types'\n\n/* @vue/component */\nexport default mixins(\n VSheet,\n Toggleable,\n Transitionable\n).extend({\n name: 'v-alert',\n\n props: {\n border: {\n type: String,\n validator (val: string) {\n return [\n 'top',\n 'right',\n 'bottom',\n 'left',\n ].includes(val)\n },\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n coloredBorder: Boolean,\n dense: Boolean,\n dismissible: Boolean,\n closeIcon: {\n type: String,\n default: '$cancel',\n },\n icon: {\n default: '',\n type: [Boolean, String],\n validator (val: boolean | string) {\n return typeof val === 'string' || val === false\n },\n },\n outlined: Boolean,\n prominent: Boolean,\n text: Boolean,\n type: {\n type: String,\n validator (val: string) {\n return [\n 'info',\n 'error',\n 'success',\n 'warning',\n ].includes(val)\n },\n },\n value: {\n type: Boolean,\n default: true,\n },\n },\n\n computed: {\n __cachedBorder (): VNode | null {\n if (!this.border) return null\n\n let data: VNodeData = {\n staticClass: 'v-alert__border',\n class: {\n [`v-alert__border--${this.border}`]: true,\n },\n }\n\n if (this.coloredBorder) {\n data = this.setBackgroundColor(this.computedColor, data)\n data.class['v-alert__border--has-color'] = true\n }\n\n return this.$createElement('div', data)\n },\n __cachedDismissible (): VNode | null {\n if (!this.dismissible) return null\n\n const color = this.iconColor\n\n return this.$createElement(VBtn, {\n staticClass: 'v-alert__dismissible',\n props: {\n color,\n icon: true,\n small: true,\n },\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.closeLabel),\n },\n on: {\n click: () => (this.isActive = false),\n },\n }, [\n this.$createElement(VIcon, {\n props: { color },\n }, this.closeIcon),\n ])\n },\n __cachedIcon (): VNode | null {\n if (!this.computedIcon) return null\n\n return this.$createElement(VIcon, {\n staticClass: 'v-alert__icon',\n props: { color: this.iconColor },\n }, this.computedIcon)\n },\n classes (): object {\n const classes: Record = {\n ...VSheet.options.computed.classes.call(this),\n 'v-alert--border': Boolean(this.border),\n 'v-alert--dense': this.dense,\n 'v-alert--outlined': this.outlined,\n 'v-alert--prominent': this.prominent,\n 'v-alert--text': this.text,\n }\n\n if (this.border) {\n classes[`v-alert--border-${this.border}`] = true\n }\n\n return classes\n },\n computedColor (): string {\n return this.color || this.type\n },\n computedIcon (): string | boolean {\n if (this.icon === false) return false\n if (typeof this.icon === 'string' && this.icon) return this.icon\n if (!['error', 'info', 'success', 'warning'].includes(this.type)) return false\n\n return `$${this.type}`\n },\n hasColoredIcon (): boolean {\n return (\n this.hasText ||\n (Boolean(this.border) && this.coloredBorder)\n )\n },\n hasText (): boolean {\n return this.text || this.outlined\n },\n iconColor (): string | undefined {\n return this.hasColoredIcon ? this.computedColor : undefined\n },\n isDark (): boolean {\n if (\n this.type &&\n !this.coloredBorder &&\n !this.outlined\n ) return true\n\n return Themeable.options.computed.isDark.call(this)\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('outline')) {\n breaking('outline', 'outlined', this)\n }\n },\n\n methods: {\n genWrapper (): VNode {\n const children = [\n this.$slots.prepend || this.__cachedIcon,\n this.genContent(),\n this.__cachedBorder,\n this.$slots.append,\n this.$scopedSlots.close\n ? this.$scopedSlots.close({ toggle: this.toggle })\n : this.__cachedDismissible,\n ]\n\n const data: VNodeData = {\n staticClass: 'v-alert__wrapper',\n }\n\n return this.$createElement('div', data, children)\n },\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-alert__content',\n }, this.$slots.default)\n },\n genAlert (): VNode {\n let data: VNodeData = {\n staticClass: 'v-alert',\n attrs: {\n role: 'alert',\n },\n on: this.listeners$,\n class: this.classes,\n style: this.styles,\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }\n\n if (!this.coloredBorder) {\n const setColor = this.hasText ? this.setTextColor : this.setBackgroundColor\n data = setColor(this.computedColor, data)\n }\n\n return this.$createElement('div', data, [this.genWrapper()])\n },\n /** @public */\n toggle () {\n this.isActive = !this.isActive\n },\n },\n\n render (h): VNode {\n const render = this.genAlert()\n\n if (!this.transition) return render\n\n return h('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n mode: this.mode,\n },\n }, [render])\n },\n})\n","import { VNodeDirective } from 'vue/types/vnode'\nimport { DirectiveOptions, VNode } from 'vue'\n\ninterface ScrollVNodeDirective extends Omit {\n value: EventListener | {\n handler: EventListener\n options?: boolean | AddEventListenerOptions\n } | EventListenerObject & { options?: boolean | AddEventListenerOptions }\n modifiers?: {\n self?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ScrollVNodeDirective, vnode: VNode) {\n const { self = false } = binding.modifiers || {}\n const value = binding.value\n const options = (typeof value === 'object' && value.options) || { passive: true }\n const handler = typeof value === 'function' || 'handleEvent' in value ? value : value.handler\n\n const target = self\n ? el\n : binding.arg\n ? document.querySelector(binding.arg)\n : window\n\n if (!target) return\n\n target.addEventListener('scroll', handler, options)\n\n el._onScroll = Object(el._onScroll)\n el._onScroll![vnode.context!._uid] = {\n handler,\n options,\n // Don't reference self\n target: self ? undefined : target,\n }\n}\n\nfunction unbind (el: HTMLElement, binding: ScrollVNodeDirective, vnode: VNode) {\n if (!el._onScroll?.[vnode.context!._uid]) return\n\n const { handler, options, target = el } = el._onScroll[vnode.context!._uid]!\n\n target.removeEventListener('scroll', handler, options)\n delete el._onScroll[vnode.context!._uid]\n}\n\nexport const Scroll = {\n inserted,\n unbind,\n} as DirectiveOptions\n\nexport default Scroll\n","// Directives\nimport { Scroll } from '../../directives'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue from 'vue'\n\n/**\n * Scrollable\n *\n * Used for monitoring scrolling and\n * invoking functions based upon\n * scrolling thresholds being\n * met.\n */\n/* @vue/component */\nexport default Vue.extend({\n name: 'scrollable',\n\n directives: { Scroll },\n\n props: {\n scrollTarget: String,\n scrollThreshold: [String, Number],\n },\n\n data: () => ({\n currentScroll: 0,\n currentThreshold: 0,\n isActive: false,\n isScrollingUp: false,\n previousScroll: 0,\n savedScroll: 0,\n target: null as Element | null,\n }),\n\n computed: {\n /**\n * A computed property that returns\n * whether scrolling features are\n * enabled or disabled\n */\n canScroll (): boolean {\n return typeof window !== 'undefined'\n },\n /**\n * The threshold that must be met before\n * thresholdMet function is invoked\n */\n computedScrollThreshold (): number {\n return this.scrollThreshold\n ? Number(this.scrollThreshold)\n : 300\n },\n },\n\n watch: {\n isScrollingUp () {\n this.savedScroll = this.savedScroll || this.currentScroll\n },\n isActive () {\n this.savedScroll = 0\n },\n },\n\n mounted () {\n if (this.scrollTarget) {\n this.target = document.querySelector(this.scrollTarget)\n\n if (!this.target) {\n consoleWarn(`Unable to locate element with identifier ${this.scrollTarget}`, this)\n }\n }\n },\n\n methods: {\n onScroll () {\n if (!this.canScroll) return\n\n this.previousScroll = this.currentScroll\n this.currentScroll = this.target\n ? this.target.scrollTop\n : window.pageYOffset\n\n this.isScrollingUp = this.currentScroll < this.previousScroll\n this.currentThreshold = Math.abs(this.currentScroll - this.computedScrollThreshold)\n\n this.$nextTick(() => {\n if (\n Math.abs(this.currentScroll - this.savedScroll) >\n this.computedScrollThreshold\n ) this.thresholdMet()\n })\n },\n /**\n * The method invoked when\n * scrolling in any direction\n * has exceeded the threshold\n */\n thresholdMet () { /* noop */ },\n },\n})\n","// Styles\nimport './VAppBar.sass'\n\n// Extensions\nimport VToolbar from '../VToolbar/VToolbar'\n\n// Directives\nimport Scroll from '../../directives/scroll'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport Scrollable from '../../mixins/scrollable'\nimport SSRBootable from '../../mixins/ssr-bootable'\nimport Toggleable from '../../mixins/toggleable'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n VToolbar,\n Scrollable,\n SSRBootable,\n Toggleable,\n Applicationable('top', [\n 'clippedLeft',\n 'clippedRight',\n 'computedHeight',\n 'invertedScroll',\n 'isExtended',\n 'isProminent',\n 'value',\n ])\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-app-bar',\n\n directives: { Scroll },\n\n provide (): object {\n return { VAppBar: this }\n },\n\n props: {\n clippedLeft: Boolean,\n clippedRight: Boolean,\n collapseOnScroll: Boolean,\n elevateOnScroll: Boolean,\n fadeImgOnScroll: Boolean,\n hideOnScroll: Boolean,\n invertedScroll: Boolean,\n scrollOffScreen: Boolean,\n shrinkOnScroll: Boolean,\n value: {\n type: Boolean,\n default: true,\n },\n },\n\n data () {\n return {\n isActive: this.value,\n }\n },\n\n computed: {\n applicationProperty (): string {\n return !this.bottom ? 'top' : 'bottom'\n },\n canScroll (): boolean {\n return (\n Scrollable.options.computed.canScroll.call(this) &&\n (\n this.invertedScroll ||\n this.elevateOnScroll ||\n this.hideOnScroll ||\n this.collapseOnScroll ||\n this.isBooted ||\n // If falsy, user has provided an\n // explicit value which should\n // overwrite anything we do\n !this.value\n )\n )\n },\n classes (): object {\n return {\n ...VToolbar.options.computed.classes.call(this),\n 'v-toolbar--collapse': this.collapse || this.collapseOnScroll,\n 'v-app-bar': true,\n 'v-app-bar--clipped': this.clippedLeft || this.clippedRight,\n 'v-app-bar--fade-img-on-scroll': this.fadeImgOnScroll,\n 'v-app-bar--elevate-on-scroll': this.elevateOnScroll,\n 'v-app-bar--fixed': !this.absolute && (this.app || this.fixed),\n 'v-app-bar--hide-shadow': this.hideShadow,\n 'v-app-bar--is-scrolled': this.currentScroll > 0,\n 'v-app-bar--shrink-on-scroll': this.shrinkOnScroll,\n }\n },\n scrollRatio (): number {\n const threshold = this.computedScrollThreshold\n return Math.max((threshold - this.currentScroll) / threshold, 0)\n },\n computedContentHeight (): number {\n if (!this.shrinkOnScroll) return VToolbar.options.computed.computedContentHeight.call(this)\n\n const min = this.dense ? 48 : 56\n const max = this.computedOriginalHeight\n\n return min + (max - min) * this.scrollRatio\n },\n computedFontSize (): number | undefined {\n if (!this.isProminent) return undefined\n\n const min = 1.25\n const max = 1.5\n\n return min + (max - min) * this.scrollRatio\n },\n computedLeft (): number {\n if (!this.app || this.clippedLeft) return 0\n\n return this.$vuetify.application.left\n },\n computedMarginTop (): number {\n if (!this.app) return 0\n\n return this.$vuetify.application.bar\n },\n computedOpacity (): number | undefined {\n if (!this.fadeImgOnScroll) return undefined\n\n return this.scrollRatio\n },\n computedOriginalHeight (): number {\n let height = VToolbar.options.computed.computedContentHeight.call(this)\n if (this.isExtended) height += parseInt(this.extensionHeight)\n return height\n },\n computedRight (): number {\n if (!this.app || this.clippedRight) return 0\n\n return this.$vuetify.application.right\n },\n computedScrollThreshold (): number {\n if (this.scrollThreshold) return Number(this.scrollThreshold)\n\n return this.computedOriginalHeight - (this.dense ? 48 : 56)\n },\n computedTransform (): number {\n if (\n !this.canScroll ||\n (this.elevateOnScroll && this.currentScroll === 0 && this.isActive)\n ) return 0\n\n if (this.isActive) return 0\n\n const scrollOffScreen = this.scrollOffScreen\n ? this.computedHeight\n : this.computedContentHeight\n\n return this.bottom ? scrollOffScreen : -scrollOffScreen\n },\n hideShadow (): boolean {\n if (this.elevateOnScroll && this.isExtended) {\n return this.currentScroll < this.computedScrollThreshold\n }\n\n if (this.elevateOnScroll) {\n return this.currentScroll === 0 ||\n this.computedTransform < 0\n }\n\n return (\n !this.isExtended ||\n this.scrollOffScreen\n ) && this.computedTransform !== 0\n },\n isCollapsed (): boolean {\n if (!this.collapseOnScroll) {\n return VToolbar.options.computed.isCollapsed.call(this)\n }\n\n return this.currentScroll > 0\n },\n isProminent (): boolean {\n return (\n VToolbar.options.computed.isProminent.call(this) ||\n this.shrinkOnScroll\n )\n },\n styles (): object {\n return {\n ...VToolbar.options.computed.styles.call(this),\n fontSize: convertToUnit(this.computedFontSize, 'rem'),\n marginTop: convertToUnit(this.computedMarginTop),\n transform: `translateY(${convertToUnit(this.computedTransform)})`,\n left: convertToUnit(this.computedLeft),\n right: convertToUnit(this.computedRight),\n }\n },\n },\n\n watch: {\n canScroll: 'onScroll',\n computedTransform () {\n // Normally we do not want the v-app-bar\n // to update the application top value\n // to avoid screen jump. However, in\n // this situation, we must so that\n // the clipped drawer can update\n // its top value when scrolled\n if (\n !this.canScroll ||\n (!this.clippedLeft && !this.clippedRight)\n ) return\n\n this.callUpdate()\n },\n invertedScroll (val: boolean) {\n this.isActive = !val || this.currentScroll !== 0\n },\n hideOnScroll (val: boolean) {\n this.isActive = !val || this.currentScroll < this.computedScrollThreshold\n },\n },\n\n created () {\n if (this.invertedScroll) this.isActive = false\n },\n\n methods: {\n genBackground () {\n const render = VToolbar.options.methods.genBackground.call(this)\n\n render.data = this._b(render.data || {}, render.tag!, {\n style: { opacity: this.computedOpacity },\n })\n\n return render\n },\n updateApplication (): number {\n return this.invertedScroll\n ? 0\n : this.computedHeight + this.computedTransform\n },\n thresholdMet () {\n if (this.invertedScroll) {\n this.isActive = this.currentScroll > this.computedScrollThreshold\n return\n }\n\n if (this.hideOnScroll) {\n this.isActive = this.isScrollingUp ||\n this.currentScroll < this.computedScrollThreshold\n }\n\n if (this.currentThreshold < this.computedScrollThreshold) return\n\n this.savedScroll = this.currentScroll\n },\n },\n\n render (h): VNode {\n const render = VToolbar.options.render.call(this, h)\n\n render.data = render.data || {}\n\n if (this.canScroll) {\n render.data.directives = render.data.directives || []\n render.data.directives.push({\n arg: this.scrollTarget,\n name: 'scroll',\n value: this.onScroll,\n })\n }\n\n return render\n },\n})\n","// Components\nimport VIcon from '../VIcon'\nimport VBtn from '../VBtn/VBtn'\n\n// Types\nimport Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-app-bar-nav-icon',\n\n functional: true,\n\n render (h, { slots, listeners, props, data }) {\n const d = Object.assign(data, {\n staticClass: (`v-app-bar__nav-icon ${data.staticClass || ''}`).trim(),\n props: {\n ...props,\n icon: true,\n },\n on: listeners,\n })\n\n const defaultSlot = slots().default\n\n return h(VBtn, d, defaultSlot || [h(VIcon, '$menu')])\n },\n})\n","// Styles\nimport './VApp.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(\n Themeable\n).extend({\n name: 'v-app',\n\n props: {\n dark: {\n type: Boolean,\n default: undefined,\n },\n id: {\n type: String,\n default: 'app',\n },\n light: {\n type: Boolean,\n default: undefined,\n },\n },\n\n computed: {\n isDark (): boolean {\n return this.$vuetify.theme.dark\n },\n },\n\n beforeCreate () {\n if (!this.$vuetify || (this.$vuetify === this.$root as any)) {\n throw new Error('Vuetify is not properly initialized, see https://vuetifyjs.com/getting-started/quick-start#bootstrapping-the-vuetify-object')\n }\n },\n\n render (h) {\n const wrapper = h('div', { staticClass: 'v-application--wrap' }, this.$slots.default)\n\n return h('div', {\n staticClass: 'v-application',\n class: {\n 'v-application--is-rtl': this.$vuetify.rtl,\n 'v-application--is-ltr': !this.$vuetify.rtl,\n ...this.themeClasses,\n },\n attrs: { 'data-app': true },\n domProps: { id: this.id },\n }, [wrapper])\n },\n})\n","// Styles\nimport './VAutocomplete.sass'\n\n// Extensions\nimport VSelect, { defaultMenuProps as VSelectMenuProps } from '../VSelect/VSelect'\nimport VTextField from '../VTextField/VTextField'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport {\n getObjectValueByPath,\n getPropertyFromItem,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { PropType, VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nconst defaultMenuProps = {\n ...VSelectMenuProps,\n offsetY: true,\n offsetOverflow: true,\n transition: false,\n}\n\n/* @vue/component */\nexport default VSelect.extend({\n name: 'v-autocomplete',\n\n props: {\n allowOverflow: {\n type: Boolean,\n default: true,\n },\n autoSelectFirst: {\n type: Boolean,\n default: false,\n },\n filter: {\n type: Function,\n default: (item: any, queryText: string, itemText: string) => {\n return itemText.toLocaleLowerCase().indexOf(queryText.toLocaleLowerCase()) > -1\n },\n } as PropValidator<(item: any, queryText: string, itemText: string) => boolean>,\n hideNoData: Boolean,\n menuProps: {\n type: VSelect.options.props.menuProps.type,\n default: () => defaultMenuProps,\n },\n noFilter: Boolean,\n searchInput: {\n type: String as PropType,\n },\n },\n\n data () {\n return {\n lazySearch: this.searchInput,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VSelect.options.computed.classes.call(this),\n 'v-autocomplete': true,\n 'v-autocomplete--is-selecting-index': this.selectedIndex > -1,\n }\n },\n computedItems (): object[] {\n return this.filteredItems\n },\n selectedValues (): object[] {\n return this.selectedItems.map(item => this.getValue(item))\n },\n hasDisplayedItems (): boolean {\n return this.hideSelected\n ? this.filteredItems.some(item => !this.hasItem(item))\n : this.filteredItems.length > 0\n },\n currentRange (): number {\n if (this.selectedItem == null) return 0\n\n return String(this.getText(this.selectedItem)).length\n },\n filteredItems (): object[] {\n if (!this.isSearching || this.noFilter || this.internalSearch == null) return this.allItems\n\n return this.allItems.filter(item => {\n const value = getPropertyFromItem(item, this.itemText)\n const text = value != null ? String(value) : ''\n\n return this.filter(item, String(this.internalSearch), text)\n })\n },\n internalSearch: {\n get (): string | null {\n return this.lazySearch\n },\n set (val: any) { // TODO: this should be `string | null` but it breaks lots of other types\n // emit update event only when the new\n // search value is different from previous\n if (this.lazySearch !== val) {\n this.lazySearch = val\n this.$emit('update:search-input', val)\n }\n },\n },\n isAnyValueAllowed (): boolean {\n return false\n },\n isDirty (): boolean {\n return this.searchIsDirty || this.selectedItems.length > 0\n },\n isSearching (): boolean {\n return (\n this.multiple &&\n this.searchIsDirty\n ) || (\n this.searchIsDirty &&\n this.internalSearch !== this.getText(this.selectedItem)\n )\n },\n menuCanShow (): boolean {\n if (!this.isFocused) return false\n\n return this.hasDisplayedItems || !this.hideNoData\n },\n $_menuProps (): object {\n const props = VSelect.options.computed.$_menuProps.call(this);\n (props as any).contentClass = `v-autocomplete__content ${(props as any).contentClass || ''}`.trim()\n return {\n ...defaultMenuProps,\n ...props,\n }\n },\n searchIsDirty (): boolean {\n return this.internalSearch != null &&\n this.internalSearch !== ''\n },\n selectedItem (): any {\n if (this.multiple) return null\n\n return this.selectedItems.find(i => {\n return this.valueComparator(this.getValue(i), this.getValue(this.internalValue))\n })\n },\n listData () {\n const data = VSelect.options.computed.listData.call(this) as any\n\n data.props = {\n ...data.props,\n items: this.virtualizedItems,\n noFilter: (\n this.noFilter ||\n !this.isSearching ||\n !this.filteredItems.length\n ),\n searchInput: this.internalSearch,\n }\n\n return data\n },\n },\n\n watch: {\n filteredItems: 'onFilteredItemsChanged',\n internalValue: 'setSearch',\n isFocused (val) {\n if (val) {\n document.addEventListener('copy', this.onCopy)\n this.$refs.input && this.$refs.input.select()\n } else {\n document.removeEventListener('copy', this.onCopy)\n this.blur()\n this.updateSelf()\n }\n },\n isMenuActive (val) {\n if (val || !this.hasSlot) return\n\n this.lazySearch = null\n },\n items (val, oldVal) {\n // If we are focused, the menu\n // is not active, hide no data is enabled,\n // and items change\n // User is probably async loading\n // items, try to activate the menu\n if (\n !(oldVal && oldVal.length) &&\n this.hideNoData &&\n this.isFocused &&\n !this.isMenuActive &&\n val.length\n ) this.activateMenu()\n },\n searchInput (val: string) {\n this.lazySearch = val\n },\n internalSearch: 'onInternalSearchChanged',\n itemText: 'updateSelf',\n },\n\n created () {\n this.setSearch()\n },\n\n destroyed () {\n document.removeEventListener('copy', this.onCopy)\n },\n\n methods: {\n onFilteredItemsChanged (val: never[], oldVal: never[]) {\n // TODO: How is the watcher triggered\n // for duplicate items? no idea\n if (val === oldVal) return\n\n if (!this.autoSelectFirst) {\n const preSelectedItem = oldVal[this.$refs.menu.listIndex]\n\n if (preSelectedItem) {\n this.setMenuIndex(val.findIndex(i => i === preSelectedItem))\n } else {\n this.setMenuIndex(-1)\n }\n this.$emit('update:list-index', this.$refs.menu.listIndex)\n }\n\n this.$nextTick(() => {\n if (\n !this.internalSearch ||\n (val.length !== 1 &&\n !this.autoSelectFirst)\n ) return\n\n this.$refs.menu.getTiles()\n\n if (this.autoSelectFirst && val.length) {\n this.setMenuIndex(0)\n this.$emit('update:list-index', this.$refs.menu.listIndex)\n }\n })\n },\n onInternalSearchChanged () {\n this.updateMenuDimensions()\n },\n updateMenuDimensions () {\n // Type from menuable is not making it through\n this.isMenuActive && this.$refs.menu && this.$refs.menu.updateDimensions()\n },\n changeSelectedIndex (keyCode: number) {\n // Do not allow changing of selectedIndex\n // when search is dirty\n if (this.searchIsDirty) return\n\n if (this.multiple && keyCode === keyCodes.left) {\n if (this.selectedIndex === -1) {\n this.selectedIndex = this.selectedItems.length - 1\n } else {\n this.selectedIndex--\n }\n } else if (this.multiple && keyCode === keyCodes.right) {\n if (this.selectedIndex >= this.selectedItems.length - 1) {\n this.selectedIndex = -1\n } else {\n this.selectedIndex++\n }\n } else if (keyCode === keyCodes.backspace || keyCode === keyCodes.delete) {\n this.deleteCurrentItem()\n }\n },\n deleteCurrentItem () {\n const curIndex = this.selectedIndex\n const curItem = this.selectedItems[curIndex]\n\n // Do nothing if input or item is disabled\n if (\n !this.isInteractive ||\n this.getDisabled(curItem)\n ) return\n\n const lastIndex = this.selectedItems.length - 1\n\n // Select the last item if\n // there is no selection\n if (\n this.selectedIndex === -1 &&\n lastIndex !== 0\n ) {\n this.selectedIndex = lastIndex\n\n return\n }\n\n const length = this.selectedItems.length\n const nextIndex = curIndex !== length - 1\n ? curIndex\n : curIndex - 1\n const nextItem = this.selectedItems[nextIndex]\n\n if (!nextItem) {\n this.setValue(this.multiple ? [] : null)\n } else {\n this.selectItem(curItem)\n }\n\n this.selectedIndex = nextIndex\n },\n clearableCallback () {\n this.internalSearch = null\n\n VSelect.options.methods.clearableCallback.call(this)\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.data = mergeData(input.data!, {\n attrs: {\n 'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id'),\n autocomplete: getObjectValueByPath(input.data!, 'attrs.autocomplete', 'off'),\n },\n domProps: { value: this.internalSearch },\n })\n\n return input\n },\n genInputSlot () {\n const slot = VSelect.options.methods.genInputSlot.call(this)\n\n slot.data!.attrs!.role = 'combobox'\n\n return slot\n },\n genSelections (): VNode | never[] {\n return this.hasSlot || this.multiple\n ? VSelect.options.methods.genSelections.call(this)\n : []\n },\n onClick (e: MouseEvent) {\n if (!this.isInteractive) return\n\n this.selectedIndex > -1\n ? (this.selectedIndex = -1)\n : this.onFocus()\n\n if (!this.isAppendInner(e.target)) this.activateMenu()\n },\n onInput (e: Event) {\n if (\n this.selectedIndex > -1 ||\n !e.target\n ) return\n\n const target = e.target as HTMLInputElement\n const value = target.value\n\n // If typing and menu is not currently active\n if (target.value) this.activateMenu()\n\n if (!this.multiple && value === '') this.deleteCurrentItem()\n\n this.internalSearch = value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n const keyCode = e.keyCode\n\n if (\n e.ctrlKey ||\n ![keyCodes.home, keyCodes.end].includes(keyCode)\n ) {\n VSelect.options.methods.onKeyDown.call(this, e)\n }\n\n // The ordering is important here\n // allows new value to be updated\n // and then moves the index to the\n // proper location\n this.changeSelectedIndex(keyCode)\n },\n onSpaceDown (e: KeyboardEvent) { /* noop */ },\n onTabDown (e: KeyboardEvent) {\n VSelect.options.methods.onTabDown.call(this, e)\n this.updateSelf()\n },\n onUpDown (e: Event) {\n // Prevent screen from scrolling\n e.preventDefault()\n\n // For autocomplete / combobox, cycling\n // interfers with native up/down behavior\n // instead activate the menu\n this.activateMenu()\n },\n selectItem (item: object) {\n VSelect.options.methods.selectItem.call(this, item)\n this.setSearch()\n },\n setSelectedItems () {\n VSelect.options.methods.setSelectedItems.call(this)\n\n // #4273 Don't replace if searching\n // #4403 Don't replace if focused\n if (!this.isFocused) this.setSearch()\n },\n setSearch () {\n // Wait for nextTick so selectedItem\n // has had time to update\n this.$nextTick(() => {\n if (\n !this.multiple ||\n !this.internalSearch ||\n !this.isMenuActive\n ) {\n this.internalSearch = (\n !this.selectedItems.length ||\n this.multiple ||\n this.hasSlot\n )\n ? null\n : this.getText(this.selectedItem)\n }\n })\n },\n updateSelf () {\n if (\n !this.searchIsDirty &&\n !this.internalValue\n ) return\n\n if (\n !this.multiple &&\n !this.valueComparator(\n this.internalSearch,\n this.getValue(this.internalValue)\n )\n ) {\n this.setSearch()\n }\n },\n hasItem (item: any): boolean {\n return this.selectedValues.indexOf(this.getValue(item)) > -1\n },\n onCopy (event: ClipboardEvent) {\n if (this.selectedIndex === -1) return\n\n const currentItem = this.selectedItems[this.selectedIndex]\n const currentItemText = this.getText(currentItem)\n event.clipboardData?.setData('text/plain', currentItemText)\n event.clipboardData?.setData('text/vnd.vuetify.autocomplete.item+plain', currentItemText)\n event.preventDefault()\n },\n },\n})\n","import './VAvatar.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\nexport default mixins(\n Colorable,\n Measurable,\n Roundable,\n /* @vue/component */\n).extend({\n name: 'v-avatar',\n\n props: {\n left: Boolean,\n right: Boolean,\n size: {\n type: [Number, String],\n default: 48,\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-avatar--left': this.left,\n 'v-avatar--right': this.right,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return {\n height: convertToUnit(this.size),\n minWidth: convertToUnit(this.size),\n width: convertToUnit(this.size),\n ...this.measurableStyles,\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-avatar',\n class: this.classes,\n style: this.styles,\n on: this.$listeners,\n }\n\n return h('div', this.setBackgroundColor(this.color, data), this.$slots.default)\n },\n})\n","// Styles\nimport './VBadge.sass'\n\n// Components\nimport VIcon from '../VIcon/VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from '../../mixins/toggleable'\nimport Transitionable from '../../mixins/transitionable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport {\n convertToUnit,\n getSlot,\n} from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Colorable,\n PositionableFactory(['left', 'bottom']),\n Themeable,\n Toggleable,\n Transitionable,\n/* @vue/component */\n).extend({\n name: 'v-badge',\n\n props: {\n avatar: Boolean,\n bordered: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n content: { required: false },\n dot: Boolean,\n label: {\n type: String,\n default: '$vuetify.badge',\n },\n icon: String,\n inline: Boolean,\n offsetX: [Number, String],\n offsetY: [Number, String],\n overlap: Boolean,\n tile: Boolean,\n transition: {\n type: String,\n default: 'scale-rotate-transition',\n },\n value: { default: true },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-badge--avatar': this.avatar,\n 'v-badge--bordered': this.bordered,\n 'v-badge--bottom': this.bottom,\n 'v-badge--dot': this.dot,\n 'v-badge--icon': this.icon != null,\n 'v-badge--inline': this.inline,\n 'v-badge--left': this.left,\n 'v-badge--overlap': this.overlap,\n 'v-badge--tile': this.tile,\n ...this.themeClasses,\n }\n },\n computedBottom (): string {\n return this.bottom ? 'auto' : this.computedYOffset\n },\n computedLeft (): string {\n if (this.isRtl) {\n return this.left ? this.computedXOffset : 'auto'\n }\n\n return this.left ? 'auto' : this.computedXOffset\n },\n computedRight (): string {\n if (this.isRtl) {\n return this.left ? 'auto' : this.computedXOffset\n }\n\n return !this.left ? 'auto' : this.computedXOffset\n },\n computedTop (): string {\n return this.bottom ? this.computedYOffset : 'auto'\n },\n computedXOffset (): string {\n return this.calcPosition(this.offsetX)\n },\n computedYOffset (): string {\n return this.calcPosition(this.offsetY)\n },\n isRtl (): boolean {\n return this.$vuetify.rtl\n },\n // Default fallback if offsetX\n // or offsetY are undefined.\n offset (): number {\n if (this.overlap) return this.dot ? 8 : 12\n return this.dot ? 2 : 4\n },\n styles (): object {\n if (this.inline) return {}\n\n return {\n bottom: this.computedBottom,\n left: this.computedLeft,\n right: this.computedRight,\n top: this.computedTop,\n }\n },\n },\n\n methods: {\n calcPosition (offset: string | number): string {\n return `calc(100% - ${convertToUnit(offset || this.offset)})`\n },\n genBadge () {\n const lang = this.$vuetify.lang\n const label = this.$attrs['aria-label'] || lang.t(this.label)\n\n const data = this.setBackgroundColor(this.color, {\n staticClass: 'v-badge__badge',\n style: this.styles,\n attrs: {\n 'aria-atomic': this.$attrs['aria-atomic'] || 'true',\n 'aria-label': label,\n 'aria-live': this.$attrs['aria-live'] || 'polite',\n title: this.$attrs.title,\n role: this.$attrs.role || 'status',\n },\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n })\n\n const badge = this.$createElement('span', data, [this.genBadgeContent()])\n\n if (!this.transition) return badge\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n mode: this.mode,\n },\n }, [badge])\n },\n genBadgeContent () {\n // Dot prop shows no content\n if (this.dot) return undefined\n\n const slot = getSlot(this, 'badge')\n\n if (slot) return slot\n if (this.content) return String(this.content)\n if (this.icon) return this.$createElement(VIcon, this.icon)\n\n return undefined\n },\n genBadgeWrapper () {\n return this.$createElement('span', {\n staticClass: 'v-badge__wrapper',\n }, [this.genBadge()])\n },\n },\n\n render (h): VNode {\n const badge = [this.genBadgeWrapper()]\n const children = [getSlot(this)]\n const {\n 'aria-atomic': _x,\n 'aria-label': _y,\n 'aria-live': _z,\n role,\n title,\n ...attrs\n } = this.$attrs\n\n if (this.inline && this.left) children.unshift(badge)\n else children.push(badge)\n\n return h('span', {\n staticClass: 'v-badge',\n attrs,\n class: this.classes,\n }, children)\n },\n})\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n name: 'v-progress-circular',\n\n directives: { intersect },\n\n props: {\n button: Boolean,\n indeterminate: Boolean,\n rotate: {\n type: [Number, String],\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 32,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n radius: 20,\n isVisible: true,\n }),\n\n computed: {\n calculatedSize (): number {\n return Number(this.size) + (this.button ? 8 : 0)\n },\n\n circumference (): number {\n return 2 * Math.PI * this.radius\n },\n\n classes (): object {\n return {\n 'v-progress-circular--visible': this.isVisible,\n 'v-progress-circular--indeterminate': this.indeterminate,\n 'v-progress-circular--button': this.button,\n }\n },\n\n normalizedValue (): number {\n if (this.value < 0) {\n return 0\n }\n\n if (this.value > 100) {\n return 100\n }\n\n return parseFloat(this.value)\n },\n\n strokeDashArray (): number {\n return Math.round(this.circumference * 1000) / 1000\n },\n\n strokeDashOffset (): string {\n return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n },\n\n strokeWidth (): number {\n return Number(this.width) / +this.size * this.viewBoxSize * 2\n },\n\n styles (): object {\n return {\n height: convertToUnit(this.calculatedSize),\n width: convertToUnit(this.calculatedSize),\n }\n },\n\n svgStyles (): object {\n return {\n transform: `rotate(${Number(this.rotate)}deg)`,\n }\n },\n\n viewBoxSize (): number {\n return this.radius / (1 - Number(this.width) / +this.size)\n },\n },\n\n methods: {\n genCircle (name: string, offset: string | number): VNode {\n return this.$createElement('circle', {\n class: `v-progress-circular__${name}`,\n attrs: {\n fill: 'transparent',\n cx: 2 * this.viewBoxSize,\n cy: 2 * this.viewBoxSize,\n r: this.radius,\n 'stroke-width': this.strokeWidth,\n 'stroke-dasharray': this.strokeDashArray,\n 'stroke-dashoffset': offset,\n },\n })\n },\n genSvg (): VNode {\n const children = [\n this.indeterminate || this.genCircle('underlay', 0),\n this.genCircle('overlay', this.strokeDashOffset),\n ] as VNodeChildren\n\n return this.$createElement('svg', {\n style: this.svgStyles,\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n },\n }, children)\n },\n genInfo (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-circular__info',\n }, this.$slots.default)\n },\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isVisible = isIntersecting\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-circular',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n directives: [{\n name: 'intersect',\n value: this.onObserve,\n }],\n style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\n ])\n },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Elevatable from '../../mixins/elevatable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n plain: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--is-elevated': this.isElevated,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--has-bg': this.hasBg,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--plain': this.plain,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n computedElevation (): string | number | undefined {\n if (this.disabled) return undefined\n\n return Elevatable.options.computed.computedElevation.call(this)\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n hasBg (): boolean {\n return !this.text && !this.plain && !this.outlined && !this.icon\n },\n isElevated (): boolean {\n return Boolean(\n !this.icon &&\n !this.text &&\n !this.outlined &&\n !this.depressed &&\n !this.disabled &&\n !this.plain &&\n (this.elevation == null || Number(this.elevation) > 0)\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const { tag, data } = this.generateRouteLink()\n const setColor = this.hasBg\n ? this.setBackgroundColor\n : this.setTextColor\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","import VBtn from './VBtn'\n\nexport { VBtn }\nexport default VBtn\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'localable',\n\n props: {\n locale: String,\n },\n\n computed: {\n currentLocale (): string {\n return this.locale || this.$vuetify.lang.current\n },\n },\n})\n","import Vue from 'vue'\n\nexport type MouseHandler = (e: MouseEvent | TouchEvent) => any\n\nexport type MouseEvents = {\n [event: string]: {\n event: string\n passive?: boolean\n capture?: boolean\n once?: boolean\n stop?: boolean\n prevent?: boolean\n button?: number\n result?: any\n }\n}\n\nexport type MouseEventsMap = {\n [event: string]: MouseHandler | MouseHandler[]\n}\n\nexport default Vue.extend({\n name: 'mouse',\n\n methods: {\n getDefaultMouseEventHandlers (suffix: string, getEvent: MouseHandler): MouseEventsMap {\n return this.getMouseEventHandlers({\n ['click' + suffix]: { event: 'click' },\n ['contextmenu' + suffix]: { event: 'contextmenu', prevent: true, result: false },\n ['mousedown' + suffix]: { event: 'mousedown' },\n ['mousemove' + suffix]: { event: 'mousemove' },\n ['mouseup' + suffix]: { event: 'mouseup' },\n ['mouseenter' + suffix]: { event: 'mouseenter' },\n ['mouseleave' + suffix]: { event: 'mouseleave' },\n ['touchstart' + suffix]: { event: 'touchstart' },\n ['touchmove' + suffix]: { event: 'touchmove' },\n ['touchend' + suffix]: { event: 'touchend' },\n }, getEvent)\n },\n getMouseEventHandlers (events: MouseEvents, getEvent: MouseHandler): MouseEventsMap {\n const on: MouseEventsMap = {}\n\n for (const event in events) {\n const eventOptions = events[event]\n\n if (!this.$listeners[event]) continue\n\n // TODO somehow pull in modifiers\n\n const prefix = eventOptions.passive ? '&' : ((eventOptions.once ? '~' : '') + (eventOptions.capture ? '!' : ''))\n const key = prefix + eventOptions.event\n\n const handler: MouseHandler = e => {\n const mouseEvent: MouseEvent = e as MouseEvent\n if (eventOptions.button === undefined || (mouseEvent.buttons > 0 && mouseEvent.button === eventOptions.button)) {\n if (eventOptions.prevent) {\n e.preventDefault()\n }\n if (eventOptions.stop) {\n e.stopPropagation()\n }\n\n // Due to TouchEvent target always returns the element that is first placed\n // Even if touch point has since moved outside the interactive area of that element\n // Ref: https://developer.mozilla.org/en-US/docs/Web/API/Touch/target\n // This block of code aims to make sure touchEvent is always dispatched from the element that is being pointed at\n if (e && 'touches' in e) {\n const classSeparator = ' '\n\n const eventTargetClasses = (e.currentTarget as HTMLElement)?.className.split(classSeparator)\n const currentTargets = document.elementsFromPoint(e.changedTouches[0].clientX, e.changedTouches[0].clientY)\n\n // Get \"the same kind\" current hovering target by checking\n // If element has the same class of initial touch start element (which has touch event listener registered)\n const currentTarget = currentTargets.find(t => t.className.split(classSeparator).some(c => eventTargetClasses.includes(c)))\n\n if (currentTarget &&\n !(e.target as HTMLElement)?.isSameNode(currentTarget)\n ) {\n currentTarget.dispatchEvent(new TouchEvent(e.type, {\n changedTouches: e.changedTouches as unknown as Touch[],\n targetTouches: e.targetTouches as unknown as Touch[],\n touches: e.touches as unknown as Touch[],\n }))\n return\n }\n }\n\n this.$emit(event, getEvent(e), e)\n }\n\n return eventOptions.result\n }\n\n if (key in on) {\n /* istanbul ignore next */\n if (Array.isArray(on[key])) {\n (on[key] as MouseHandler[]).push(handler)\n } else {\n on[key] = [on[key], handler] as MouseHandler[]\n }\n } else {\n on[key] = handler\n }\n }\n\n return on\n },\n },\n})\n","function createUTCDate (year: number, month = 0, day = 1) {\n let date\n if (year < 100 && year >= 0) {\n date = new Date(Date.UTC(year, month, day))\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(year)\n }\n } else {\n date = new Date(Date.UTC(year, month, day))\n }\n\n return date\n}\n\nfunction firstWeekOffset (year: number, firstDayOfWeek: number, firstDayOfYear: number) {\n const firstWeekDayInFirstWeek = 7 + firstDayOfWeek - firstDayOfYear\n const firstWeekDayOfYear = (7 + createUTCDate(year, 0, firstWeekDayInFirstWeek).getUTCDay() - firstDayOfWeek) % 7\n\n return -firstWeekDayOfYear + firstWeekDayInFirstWeek - 1\n}\n\nfunction dayOfYear (year: number, month: number, day: number, firstDayOfWeek: number) {\n let dayOfYear = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334][month]\n if (month > 1 && isLeapYear(year)) {\n dayOfYear++\n }\n\n return dayOfYear + day\n}\n\nfunction weeksInYear (year: number, firstDayOfWeek: number, firstDayOfYear: number) {\n const weekOffset = firstWeekOffset(year, firstDayOfWeek, firstDayOfYear)\n const weekOffsetNext = firstWeekOffset(year + 1, firstDayOfWeek, firstDayOfYear)\n const daysInYear = isLeapYear(year) ? 366 : 365\n\n return (daysInYear - weekOffset + weekOffsetNext) / 7\n}\n\nexport function weekNumber (year: number, month: number, day: number, firstDayOfWeek: number, localeFirstDayOfYear: number): number {\n const weekOffset = firstWeekOffset(year, firstDayOfWeek, localeFirstDayOfYear)\n const week = Math.ceil((dayOfYear(year, month, day, firstDayOfWeek) - weekOffset) / 7)\n\n if (week < 1) {\n return week + weeksInYear(year - 1, firstDayOfWeek, localeFirstDayOfYear)\n } else if (week > weeksInYear(year, firstDayOfWeek, localeFirstDayOfYear)) {\n return week - weeksInYear(year, firstDayOfWeek, localeFirstDayOfYear)\n } else {\n return week\n }\n}\n\nexport function isLeapYear (year: number): boolean {\n return ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0)\n}\n","import { CalendarTimestamp, CalendarFormatter } from 'vuetify/types'\nimport { isLeapYear } from '../../../util/dateTimeUtils'\n\nexport const PARSE_REGEX = /^(\\d{4})-(\\d{1,2})(-(\\d{1,2}))?([^\\d]+(\\d{1,2}))?(:(\\d{1,2}))?(:(\\d{1,2}))?$/\nexport const PARSE_TIME = /(\\d\\d?)(:(\\d\\d?)|)(:(\\d\\d?)|)/\n\nexport const DAYS_IN_MONTH: number[] = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\nexport const DAYS_IN_MONTH_LEAP: number[] = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\nexport const DAYS_IN_MONTH_MIN = 28\nexport const DAYS_IN_MONTH_MAX = 31\nexport const MONTH_MAX = 12\nexport const MONTH_MIN = 1\nexport const DAY_MIN = 1\nexport const DAYS_IN_WEEK = 7\nexport const MINUTES_IN_HOUR = 60\nexport const MINUTE_MAX = 59\nexport const MINUTES_IN_DAY = 24 * 60\nexport const HOURS_IN_DAY = 24\nexport const HOUR_MAX = 23\nexport const FIRST_HOUR = 0\nexport const OFFSET_YEAR = 10000\nexport const OFFSET_MONTH = 100\nexport const OFFSET_HOUR = 100\nexport const OFFSET_TIME = 10000\n\ntype CalendarTimestampFormatOptions = (timestamp: CalendarTimestamp, short: boolean) => object\ntype CalendarTimestampOperation = (timestamp: CalendarTimestamp) => CalendarTimestamp\nexport type VTime = number | string | {\n hour: number\n minute: number\n}\n\nexport type VTimestampInput = number | string | Date;\n\nexport function getStartOfWeek (timestamp: CalendarTimestamp, weekdays: number[], today?: CalendarTimestamp): CalendarTimestamp {\n const start = copyTimestamp(timestamp)\n findWeekday(start, weekdays[0], prevDay)\n updateFormatted(start)\n if (today) {\n updateRelative(start, today, start.hasTime)\n }\n\n return start\n}\n\nexport function getEndOfWeek (timestamp: CalendarTimestamp, weekdays: number[], today?: CalendarTimestamp): CalendarTimestamp {\n const end = copyTimestamp(timestamp)\n findWeekday(end, weekdays[weekdays.length - 1])\n updateFormatted(end)\n if (today) {\n updateRelative(end, today, end.hasTime)\n }\n\n return end\n}\n\nexport function getStartOfMonth (timestamp: CalendarTimestamp): CalendarTimestamp {\n const start = copyTimestamp(timestamp)\n start.day = DAY_MIN\n updateWeekday(start)\n updateFormatted(start)\n\n return start\n}\n\nexport function getEndOfMonth (timestamp: CalendarTimestamp): CalendarTimestamp {\n const end = copyTimestamp(timestamp)\n end.day = daysInMonth(end.year, end.month)\n updateWeekday(end)\n updateFormatted(end)\n\n return end\n}\n\nexport function validateTime (input: any): input is VTime {\n return (typeof input === 'number' && isFinite(input)) ||\n (!!PARSE_TIME.exec(input)) ||\n (typeof input === 'object' && isFinite(input.hour) && isFinite(input.minute))\n}\n\nexport function parseTime (input: any): number | false {\n if (typeof input === 'number') {\n // when a number is given, it's minutes since 12:00am\n return input\n } else if (typeof input === 'string') {\n // when a string is given, it's a hh:mm:ss format where seconds are optional\n const parts = PARSE_TIME.exec(input)\n if (!parts) {\n return false\n }\n\n return parseInt(parts[1]) * 60 + parseInt(parts[3] || 0)\n } else if (typeof input === 'object') {\n // when an object is given, it must have hour and minute\n if (typeof input.hour !== 'number' || typeof input.minute !== 'number') {\n return false\n }\n\n return input.hour * 60 + input.minute\n } else {\n // unsupported type\n return false\n }\n}\n\nexport function validateTimestamp (input: any): input is VTimestampInput {\n return (typeof input === 'number' && isFinite(input)) ||\n (typeof input === 'string' && !!PARSE_REGEX.exec(input)) ||\n (input instanceof Date)\n}\n\nexport function parseTimestamp (input: VTimestampInput, required?: false, now?: CalendarTimestamp): CalendarTimestamp | null\nexport function parseTimestamp (input: VTimestampInput, required: true, now?: CalendarTimestamp): CalendarTimestamp\nexport function parseTimestamp (input: VTimestampInput, required = false, now?: CalendarTimestamp): CalendarTimestamp | null {\n if (typeof input === 'number' && isFinite(input)) {\n input = new Date(input)\n }\n\n if (input instanceof Date) {\n const date: CalendarTimestamp = parseDate(input)\n\n if (now) {\n updateRelative(date, now, date.hasTime)\n }\n\n return date\n }\n\n if (typeof input !== 'string') {\n if (required) {\n throw new Error(`${input} is not a valid timestamp. It must be a Date, number of milliseconds since Epoch, or a string in the format of YYYY-MM-DD or YYYY-MM-DD hh:mm. Zero-padding is optional and seconds are ignored.`)\n }\n return null\n }\n\n // YYYY-MM-DD hh:mm:ss\n const parts = PARSE_REGEX.exec(input)\n\n if (!parts) {\n if (required) {\n throw new Error(`${input} is not a valid timestamp. It must be a Date, number of milliseconds since Epoch, or a string in the format of YYYY-MM-DD or YYYY-MM-DD hh:mm. Zero-padding is optional and seconds are ignored.`)\n }\n\n return null\n }\n\n const timestamp: CalendarTimestamp = {\n date: input,\n time: '',\n year: parseInt(parts[1]),\n month: parseInt(parts[2]),\n day: parseInt(parts[4]) || 1,\n hour: parseInt(parts[6]) || 0,\n minute: parseInt(parts[8]) || 0,\n weekday: 0,\n hasDay: !!parts[4],\n hasTime: !!(parts[6] && parts[8]),\n past: false,\n present: false,\n future: false,\n }\n\n updateWeekday(timestamp)\n updateFormatted(timestamp)\n\n if (now) {\n updateRelative(timestamp, now, timestamp.hasTime)\n }\n\n return timestamp\n}\n\nexport function parseDate (date: Date): CalendarTimestamp {\n return updateFormatted({\n date: '',\n time: '',\n year: date.getFullYear(),\n month: date.getMonth() + 1,\n day: date.getDate(),\n weekday: date.getDay(),\n hour: date.getHours(),\n minute: date.getMinutes(),\n hasDay: true,\n hasTime: true,\n past: false,\n present: true,\n future: false,\n })\n}\n\nexport function getDayIdentifier (timestamp: { year: number, month: number, day: number }): number {\n return timestamp.year * OFFSET_YEAR + timestamp.month * OFFSET_MONTH + timestamp.day\n}\n\nexport function getTimeIdentifier (timestamp: { hour: number, minute: number }): number {\n return timestamp.hour * OFFSET_HOUR + timestamp.minute\n}\n\nexport function getTimestampIdentifier (timestamp: CalendarTimestamp): number {\n return getDayIdentifier(timestamp) * OFFSET_TIME + getTimeIdentifier(timestamp)\n}\n\nexport function updateRelative (timestamp: CalendarTimestamp, now: CalendarTimestamp, time = false): CalendarTimestamp {\n let a = getDayIdentifier(now)\n let b = getDayIdentifier(timestamp)\n let present = a === b\n\n if (timestamp.hasTime && time && present) {\n a = getTimeIdentifier(now)\n b = getTimeIdentifier(timestamp)\n present = a === b\n }\n\n timestamp.past = b < a\n timestamp.present = present\n timestamp.future = b > a\n\n return timestamp\n}\n\nexport function isTimedless (input: VTimestampInput): input is (Date | number) {\n return (input instanceof Date) || (typeof input === 'number' && isFinite(input))\n}\n\nexport function updateHasTime (timestamp: CalendarTimestamp, hasTime: boolean, now?: CalendarTimestamp): CalendarTimestamp {\n if (timestamp.hasTime !== hasTime) {\n timestamp.hasTime = hasTime\n if (!hasTime) {\n timestamp.hour = HOUR_MAX\n timestamp.minute = MINUTE_MAX\n timestamp.time = getTime(timestamp)\n }\n if (now) {\n updateRelative(timestamp, now, timestamp.hasTime)\n }\n }\n\n return timestamp\n}\n\nexport function updateMinutes (timestamp: CalendarTimestamp, minutes: number, now?: CalendarTimestamp): CalendarTimestamp {\n timestamp.hasTime = true\n timestamp.hour = Math.floor(minutes / MINUTES_IN_HOUR)\n timestamp.minute = minutes % MINUTES_IN_HOUR\n timestamp.time = getTime(timestamp)\n if (now) {\n updateRelative(timestamp, now, true)\n }\n\n return timestamp\n}\n\nexport function updateWeekday (timestamp: CalendarTimestamp): CalendarTimestamp {\n timestamp.weekday = getWeekday(timestamp)\n\n return timestamp\n}\n\nexport function updateFormatted (timestamp: CalendarTimestamp): CalendarTimestamp {\n timestamp.time = getTime(timestamp)\n timestamp.date = getDate(timestamp)\n\n return timestamp\n}\n\nexport function getWeekday (timestamp: CalendarTimestamp): number {\n if (timestamp.hasDay) {\n const _ = Math.floor\n const k = timestamp.day\n const m = ((timestamp.month + 9) % MONTH_MAX) + 1\n const C = _(timestamp.year / 100)\n const Y = (timestamp.year % 100) - (timestamp.month <= 2 ? 1 : 0)\n\n return (((k + _(2.6 * m - 0.2) - 2 * C + Y + _(Y / 4) + _(C / 4)) % 7) + 7) % 7\n }\n\n return timestamp.weekday\n}\n\nexport function daysInMonth (year: number, month: number) {\n return isLeapYear(year) ? DAYS_IN_MONTH_LEAP[month] : DAYS_IN_MONTH[month]\n}\n\nexport function copyTimestamp (timestamp: CalendarTimestamp): CalendarTimestamp {\n const { date, time, year, month, day, weekday, hour, minute, hasDay, hasTime, past, present, future } = timestamp\n\n return { date, time, year, month, day, weekday, hour, minute, hasDay, hasTime, past, present, future }\n}\n\nexport function padNumber (x: number, length: number): string {\n let padded = String(x)\n while (padded.length < length) {\n padded = '0' + padded\n }\n\n return padded\n}\n\nexport function getDate (timestamp: CalendarTimestamp): string {\n let str = `${padNumber(timestamp.year, 4)}-${padNumber(timestamp.month, 2)}`\n\n if (timestamp.hasDay) str += `-${padNumber(timestamp.day, 2)}`\n\n return str\n}\n\nexport function getTime (timestamp: CalendarTimestamp): string {\n if (!timestamp.hasTime) {\n return ''\n }\n\n return `${padNumber(timestamp.hour, 2)}:${padNumber(timestamp.minute, 2)}`\n}\n\nexport function nextMinutes (timestamp: CalendarTimestamp, minutes: number): CalendarTimestamp {\n timestamp.minute += minutes\n while (timestamp.minute > MINUTES_IN_HOUR) {\n timestamp.minute -= MINUTES_IN_HOUR\n timestamp.hour++\n if (timestamp.hour >= HOURS_IN_DAY) {\n nextDay(timestamp)\n timestamp.hour = FIRST_HOUR\n }\n }\n\n return timestamp\n}\n\nexport function nextDay (timestamp: CalendarTimestamp): CalendarTimestamp {\n timestamp.day++\n timestamp.weekday = (timestamp.weekday + 1) % DAYS_IN_WEEK\n if (timestamp.day > DAYS_IN_MONTH_MIN && timestamp.day > daysInMonth(timestamp.year, timestamp.month)) {\n timestamp.day = DAY_MIN\n timestamp.month++\n if (timestamp.month > MONTH_MAX) {\n timestamp.month = MONTH_MIN\n timestamp.year++\n }\n }\n\n return timestamp\n}\n\nexport function prevDay (timestamp: CalendarTimestamp): CalendarTimestamp {\n timestamp.day--\n timestamp.weekday = (timestamp.weekday + 6) % DAYS_IN_WEEK\n if (timestamp.day < DAY_MIN) {\n timestamp.month--\n if (timestamp.month < MONTH_MIN) {\n timestamp.year--\n timestamp.month = MONTH_MAX\n }\n timestamp.day = daysInMonth(timestamp.year, timestamp.month)\n }\n\n return timestamp\n}\n\nexport function relativeDays (\n timestamp: CalendarTimestamp,\n mover: CalendarTimestampOperation = nextDay,\n days = 1\n): CalendarTimestamp {\n while (--days >= 0) mover(timestamp)\n\n return timestamp\n}\n\nexport function diffMinutes (min: CalendarTimestamp, max: CalendarTimestamp) {\n const Y = (max.year - min.year) * 525600\n const M = (max.month - min.month) * 43800\n const D = (max.day - min.day) * 1440\n const h = (max.hour - min.hour) * 60\n const m = (max.minute - min.minute)\n\n return Y + M + D + h + m\n}\n\nexport function findWeekday (timestamp: CalendarTimestamp, weekday: number,\n mover: CalendarTimestampOperation = nextDay, maxDays = 6): CalendarTimestamp {\n while (timestamp.weekday !== weekday && --maxDays >= 0) mover(timestamp)\n\n return timestamp\n}\n\nexport function getWeekdaySkips (weekdays: number[]): number[] {\n const skips: number[] = [1, 1, 1, 1, 1, 1, 1]\n const filled: number[] = [0, 0, 0, 0, 0, 0, 0]\n for (let i = 0; i < weekdays.length; i++) {\n filled[weekdays[i]] = 1\n }\n for (let k = 0; k < DAYS_IN_WEEK; k++) {\n let skip = 1\n for (let j = 1; j < DAYS_IN_WEEK; j++) {\n const next = (k + j) % DAYS_IN_WEEK\n if (filled[next]) {\n break\n }\n skip++\n }\n skips[k] = filled[k] * skip\n }\n\n return skips\n}\n\nexport function timestampToDate (timestamp: CalendarTimestamp): Date {\n const time = `${padNumber(timestamp.hour, 2)}:${padNumber(timestamp.minute, 2)}`\n const date = timestamp.date\n\n return new Date(`${date}T${time}:00+00:00`)\n}\n\nexport function createDayList (\n start: CalendarTimestamp,\n end: CalendarTimestamp,\n now: CalendarTimestamp,\n weekdaySkips: number[],\n max = 42,\n min = 0\n): CalendarTimestamp[] {\n const stop = getDayIdentifier(end)\n const days: CalendarTimestamp[] = []\n let current = copyTimestamp(start)\n let currentIdentifier = 0\n let stopped = currentIdentifier === stop\n\n if (stop < getDayIdentifier(start)) {\n throw new Error('End date is earlier than start date.')\n }\n\n while ((!stopped || days.length < min) && days.length < max) {\n currentIdentifier = getDayIdentifier(current)\n stopped = stopped || currentIdentifier === stop\n if (weekdaySkips[current.weekday] === 0) {\n current = nextDay(current)\n continue\n }\n const day = copyTimestamp(current)\n updateFormatted(day)\n updateRelative(day, now)\n days.push(day)\n current = relativeDays(current, nextDay, weekdaySkips[current.weekday])\n }\n\n if (!days.length) throw new Error('No dates found using specified start date, end date, and weekdays.')\n\n return days\n}\n\nexport function createIntervalList (timestamp: CalendarTimestamp, first: number,\n minutes: number, count: number, now?: CalendarTimestamp): CalendarTimestamp[] {\n const intervals: CalendarTimestamp[] = []\n\n for (let i = 0; i < count; i++) {\n const mins = first + (i * minutes)\n const int = copyTimestamp(timestamp)\n intervals.push(updateMinutes(int, mins, now))\n }\n\n return intervals\n}\n\nexport function createNativeLocaleFormatter (locale: string, getOptions: CalendarTimestampFormatOptions): CalendarFormatter {\n const emptyFormatter: CalendarFormatter = (_t, _s) => ''\n\n if (typeof Intl === 'undefined' || typeof Intl.DateTimeFormat === 'undefined') {\n return emptyFormatter\n }\n\n return (timestamp, short) => {\n try {\n const intlFormatter = new Intl.DateTimeFormat(locale || undefined, getOptions(timestamp, short))\n\n return intlFormatter.format(timestampToDate(timestamp))\n } catch (e) {\n return ''\n }\n }\n}\n","import Vue from 'vue'\n\nimport {\n validateTimestamp,\n parseTimestamp,\n parseDate,\n} from '../util/timestamp'\nimport { CalendarTimestamp } from 'vuetify/types'\n\nexport default Vue.extend({\n name: 'times',\n\n props: {\n now: {\n type: String,\n validator: validateTimestamp,\n },\n },\n\n data: () => ({\n times: {\n now: parseTimestamp('0000-00-00 00:00', true),\n today: parseTimestamp('0000-00-00', true),\n },\n }),\n\n computed: {\n parsedNow (): CalendarTimestamp | null {\n return this.now ? parseTimestamp(this.now, true) : null\n },\n },\n\n watch: {\n parsedNow: 'updateTimes',\n },\n\n created () {\n this.updateTimes()\n this.setPresent()\n },\n\n methods: {\n setPresent (): void {\n this.times.now.present = this.times.today.present = true\n this.times.now.past = this.times.today.past = false\n this.times.now.future = this.times.today.future = false\n },\n updateTimes (): void {\n const now: CalendarTimestamp = this.parsedNow || this.getNow()\n this.updateDay(now, this.times.now)\n this.updateTime(now, this.times.now)\n this.updateDay(now, this.times.today)\n },\n getNow (): CalendarTimestamp {\n return parseDate(new Date())\n },\n updateDay (now: CalendarTimestamp, target: CalendarTimestamp): void {\n if (now.date !== target.date) {\n target.year = now.year\n target.month = now.month\n target.day = now.day\n target.weekday = now.weekday\n target.date = now.date\n }\n },\n updateTime (now: CalendarTimestamp, target: CalendarTimestamp): void {\n if (now.time !== target.time) {\n target.hour = now.hour\n target.minute = now.minute\n target.time = now.time\n }\n },\n },\n})\n","import { CalendarEventParsed, CalendarEventVisual, CalendarTimestamp } from 'vuetify/types'\nimport { getTimestampIdentifier } from '../util/timestamp'\n\nconst MILLIS_IN_DAY = 86400000\n\nexport type GetRange = (event: CalendarEventParsed) => [number, number]\n\nexport function getVisuals (events: CalendarEventParsed[], minStart = 0): CalendarEventVisual[] {\n const visuals = events.map(event => ({\n event,\n columnCount: 0,\n column: 0,\n left: 0,\n width: 100,\n }))\n\n visuals.sort((a, b) => {\n return (Math.max(minStart, a.event.startTimestampIdentifier) - Math.max(minStart, b.event.startTimestampIdentifier)) ||\n (b.event.endTimestampIdentifier - a.event.endTimestampIdentifier)\n })\n\n return visuals\n}\n\nexport interface ColumnGroup {\n start: number\n end: number\n visuals: CalendarEventVisual[]\n}\n\nexport function hasOverlap (s0: number, e0: number, s1: number, e1: number, exclude = true): boolean {\n return exclude ? !(s0 >= e1 || e0 <= s1) : !(s0 > e1 || e0 < s1)\n}\n\nexport function setColumnCount (groups: ColumnGroup[]) {\n groups.forEach(group => {\n group.visuals.forEach(groupVisual => {\n groupVisual.columnCount = groups.length\n })\n })\n}\n\nexport function getRange (event: CalendarEventParsed): [number, number] {\n return [event.startTimestampIdentifier, event.endTimestampIdentifier]\n}\n\nexport function getDayRange (event: CalendarEventParsed): [number, number] {\n return [event.startIdentifier, event.endIdentifier]\n}\n\nexport function getNormalizedRange (event: CalendarEventParsed, dayStart: number): [number, number] {\n return [Math.max(dayStart, event.startTimestampIdentifier), Math.min(dayStart + MILLIS_IN_DAY, event.endTimestampIdentifier)]\n}\n\nexport function getOpenGroup (groups: ColumnGroup[], start: number, end: number, timed: boolean) {\n for (let i = 0; i < groups.length; i++) {\n const group = groups[i]\n let intersected = false\n\n if (hasOverlap(start, end, group.start, group.end, timed)) {\n for (let k = 0; k < group.visuals.length; k++) {\n const groupVisual = group.visuals[k]\n const [groupStart, groupEnd] = timed ? getRange(groupVisual.event) : getDayRange(groupVisual.event)\n\n if (hasOverlap(start, end, groupStart, groupEnd, timed)) {\n intersected = true\n break\n }\n }\n }\n\n if (!intersected) {\n return i\n }\n }\n\n return -1\n}\n\nexport function getOverlapGroupHandler (firstWeekday: number) {\n const handler = {\n groups: [] as ColumnGroup[],\n min: -1,\n max: -1,\n reset: () => {\n handler.groups = []\n handler.min = handler.max = -1\n },\n getVisuals: (day: CalendarTimestamp, dayEvents: CalendarEventParsed[], timed: boolean, reset = false) => {\n if (day.weekday === firstWeekday || reset) {\n handler.reset()\n }\n\n const dayStart = getTimestampIdentifier(day)\n const visuals = getVisuals(dayEvents, dayStart)\n\n visuals.forEach(visual => {\n const [start, end] = timed ? getRange(visual.event) : getDayRange(visual.event)\n\n if (handler.groups.length > 0 && !hasOverlap(start, end, handler.min, handler.max, timed)) {\n setColumnCount(handler.groups)\n handler.reset()\n }\n\n let targetGroup = getOpenGroup(handler.groups, start, end, timed)\n\n if (targetGroup === -1) {\n targetGroup = handler.groups.length\n\n handler.groups.push({ start, end, visuals: [] })\n }\n\n const target = handler.groups[targetGroup]\n target.visuals.push(visual)\n target.start = Math.min(target.start, start)\n target.end = Math.max(target.end, end)\n\n visual.column = targetGroup\n\n if (handler.min === -1) {\n handler.min = start\n handler.max = end\n } else {\n handler.min = Math.min(handler.min, start)\n handler.max = Math.max(handler.max, end)\n }\n })\n\n setColumnCount(handler.groups)\n\n if (timed) {\n handler.reset()\n }\n\n return visuals\n },\n }\n\n return handler\n}\n","import { CalendarEventOverlapMode, CalendarEventVisual } from 'vuetify/types'\nimport { getOverlapGroupHandler, getVisuals, hasOverlap, getNormalizedRange } from './common'\nimport { getTimestampIdentifier } from '../util/timestamp'\n\ninterface Group {\n start: number\n end: number\n visuals: CalendarEventVisual[]\n}\n\ninterface Node {\n parent: Node | null\n sibling: boolean\n index: number\n visual: CalendarEventVisual\n start: number\n end: number\n children: Node[]\n}\n\nconst FULL_WIDTH = 100\n\nconst DEFAULT_OFFSET = 5\n\nconst WIDTH_MULTIPLIER = 1.7\n\n/**\n * Variation of column mode where events can be stacked. The priority of this\n * mode is to stack events together taking up the least amount of space while\n * trying to ensure the content of the event is always visible as well as its\n * start and end. A sibling column has intersecting event content and must be\n * placed beside each other. Non-sibling columns are offset by 5% from the\n * previous column. The width is scaled by 1.7 so the events overlap and\n * whitespace is reduced. If there is a hole in columns the event width is\n * scaled up so it intersects with the next column. The columns have equal\n * width in the space they are given. If the event doesn't have any to the\n * right of it that intersect with it's content it's right side is extended\n * to the right side.\n */\n\nexport const stack: CalendarEventOverlapMode = (events, firstWeekday, overlapThreshold) => {\n const handler = getOverlapGroupHandler(firstWeekday)\n\n // eslint-disable-next-line max-statements\n return (day, dayEvents, timed, reset) => {\n if (!timed) {\n return handler.getVisuals(day, dayEvents, timed, reset)\n }\n\n const dayStart = getTimestampIdentifier(day)\n const visuals = getVisuals(dayEvents, dayStart)\n const groups = getGroups(visuals, dayStart)\n\n for (const group of groups) {\n const nodes: Node[] = []\n\n for (const visual of group.visuals) {\n const child = getNode(visual, dayStart)\n const index = getNextIndex(child, nodes)\n\n if (index === false) {\n const parent = getParent(child, nodes)\n if (parent) {\n child.parent = parent\n child.sibling = hasOverlap(child.start, child.end, parent.start, addTime(parent.start, overlapThreshold))\n child.index = parent.index + 1\n parent.children.push(child)\n }\n } else {\n const [parent] = getOverlappingRange(child, nodes, index - 1, index - 1)\n const children = getOverlappingRange(child, nodes, index + 1, index + nodes.length, true)\n\n child.children = children\n child.index = index\n\n if (parent) {\n child.parent = parent\n child.sibling = hasOverlap(child.start, child.end, parent.start, addTime(parent.start, overlapThreshold))\n parent.children.push(child)\n }\n\n for (const grand of children) {\n if (grand.parent === parent) {\n grand.parent = child\n }\n\n const grandNext = grand.index - child.index <= 1\n if (grandNext && child.sibling &&\n hasOverlap(child.start, addTime(child.start, overlapThreshold), grand.start, grand.end)) {\n grand.sibling = true\n }\n }\n }\n\n nodes.push(child)\n }\n\n calculateBounds(nodes, overlapThreshold)\n }\n\n visuals.sort((a, b) => (a.left - b.left) || (a.event.startTimestampIdentifier - b.event.startTimestampIdentifier))\n\n return visuals\n }\n}\n\nfunction calculateBounds (nodes: Node[], overlapThreshold: number) {\n for (const node of nodes) {\n const { visual, parent } = node\n const columns = getMaxChildIndex(node) + 1\n const spaceLeft = parent ? parent.visual.left : 0\n const spaceWidth = FULL_WIDTH - spaceLeft\n const offset = Math.min(DEFAULT_OFFSET, FULL_WIDTH / columns)\n const columnWidthMultiplier = getColumnWidthMultiplier(node, nodes)\n const columnOffset = spaceWidth / (columns - node.index + 1)\n const columnWidth = spaceWidth / (columns - node.index + (node.sibling ? 1 : 0)) * columnWidthMultiplier\n\n if (parent) {\n visual.left = node.sibling\n ? spaceLeft + columnOffset\n : spaceLeft + offset\n }\n\n visual.width = hasFullWidth(node, nodes, overlapThreshold)\n ? FULL_WIDTH - visual.left\n : Math.min(FULL_WIDTH - visual.left, columnWidth * WIDTH_MULTIPLIER)\n }\n}\n\nfunction getColumnWidthMultiplier (node: Node, nodes: Node[]): number {\n if (!node.children.length) {\n return 1\n }\n\n const maxColumn = node.index + nodes.length\n const minColumn = node.children.reduce((min, c) => Math.min(min, c.index), maxColumn)\n\n return minColumn - node.index\n}\n\nfunction getOverlappingIndices (node: Node, nodes: Node[]): number[] {\n const indices: number[] = []\n for (const other of nodes) {\n if (hasOverlap(node.start, node.end, other.start, other.end)) {\n indices.push(other.index)\n }\n }\n return indices\n}\n\nfunction getNextIndex (node: Node, nodes: Node[]): number | false {\n const indices = getOverlappingIndices(node, nodes)\n indices.sort()\n\n for (let i = 0; i < indices.length; i++) {\n if (i < indices[i]) {\n return i\n }\n }\n return false\n}\n\nfunction getOverlappingRange (node: Node, nodes: Node[], indexMin: number, indexMax: number, returnFirstColumn = false): Node[] {\n const overlapping: Node[] = []\n for (const other of nodes) {\n if (other.index >= indexMin && other.index <= indexMax && hasOverlap(node.start, node.end, other.start, other.end)) {\n overlapping.push(other)\n }\n }\n if (returnFirstColumn && overlapping.length > 0) {\n const first = overlapping.reduce((min, n) => Math.min(min, n.index), overlapping[0].index)\n return overlapping.filter(n => n.index === first)\n }\n return overlapping\n}\n\nfunction getParent (node: Node, nodes: Node[]): Node | null {\n let parent: Node | null = null\n for (const other of nodes) {\n if (hasOverlap(node.start, node.end, other.start, other.end) && (parent === null || other.index > parent.index)) {\n parent = other\n }\n }\n return parent\n}\n\nfunction hasFullWidth (node: Node, nodes: Node[], overlapThreshold: number): boolean {\n for (const other of nodes) {\n if (other !== node &&\n other.index > node.index &&\n hasOverlap(node.start, addTime(node.start, overlapThreshold), other.start, other.end)) {\n return false\n }\n }\n\n return true\n}\n\nfunction getGroups (visuals: CalendarEventVisual[], dayStart: number): Group[] {\n const groups: Group[] = []\n\n for (const visual of visuals) {\n const [start, end] = getNormalizedRange(visual.event, dayStart)\n let added = false\n\n for (const group of groups) {\n if (hasOverlap(start, end, group.start, group.end)) {\n group.visuals.push(visual)\n group.end = Math.max(group.end, end)\n added = true\n break\n }\n }\n\n if (!added) {\n groups.push({ start, end, visuals: [visual] })\n }\n }\n\n return groups\n}\n\nfunction getNode (visual: CalendarEventVisual, dayStart: number): Node {\n const [start, end] = getNormalizedRange(visual.event, dayStart)\n\n return {\n parent: null,\n sibling: true,\n index: 0,\n visual,\n start,\n end,\n children: [],\n }\n}\n\nfunction getMaxChildIndex (node: Node): number {\n let max = node.index\n for (const child of node.children) {\n const childMax = getMaxChildIndex(child)\n if (childMax > max) {\n max = childMax\n }\n }\n return max\n}\n\nfunction addTime (identifier: number, minutes: number): number {\n const removeMinutes = identifier % 100\n const totalMinutes = removeMinutes + minutes\n const addHours = Math.floor(totalMinutes / 60)\n const addMinutes = totalMinutes % 60\n\n return identifier - removeMinutes + addHours * 100 + addMinutes\n}\n","import { CalendarEventOverlapMode } from 'vuetify/types'\nimport { getOverlapGroupHandler } from './common'\n\nconst FULL_WIDTH = 100\n\nexport const column: CalendarEventOverlapMode = (events, firstWeekday, overlapThreshold) => {\n const handler = getOverlapGroupHandler(firstWeekday)\n\n return (day, dayEvents, timed, reset) => {\n const visuals = handler.getVisuals(day, dayEvents, timed, reset)\n\n if (timed) {\n visuals.forEach(visual => {\n visual.left = visual.column * FULL_WIDTH / visual.columnCount\n visual.width = FULL_WIDTH / visual.columnCount\n })\n }\n\n return visuals\n }\n}\n","import { CalendarEventOverlapMode } from 'vuetify/types'\nimport { stack } from './stack'\nimport { column } from './column'\n\nexport const CalendarEventOverlapModes: Record = {\n stack,\n column,\n}\n","\nimport { validateTimestamp, parseDate, DAYS_IN_WEEK, validateTime } from './timestamp'\nimport { PropType } from 'vue'\nimport { CalendarEvent, CalendarFormatter, CalendarTimestamp, CalendarEventOverlapMode, CalendarEventNameFunction, CalendarEventColorFunction, CalendarEventCategoryFunction, CalendarEventTimedFunction, CalendarCategoryTextFunction, CalendarCategory } from 'vuetify/types'\nimport { CalendarEventOverlapModes } from '../modes'\nimport { PropValidator } from 'vue/types/options'\n\nexport default {\n base: {\n start: {\n type: [String, Number, Date],\n validate: validateTimestamp,\n default: () => parseDate(new Date()).date,\n },\n end: {\n type: [String, Number, Date],\n validate: validateTimestamp,\n },\n weekdays: {\n type: [Array, String] as PropType,\n default: () => [0, 1, 2, 3, 4, 5, 6],\n validate: validateWeekdays,\n },\n hideHeader: {\n type: Boolean,\n },\n shortWeekdays: {\n type: Boolean,\n default: true,\n },\n weekdayFormat: {\n type: Function as PropType,\n default: null,\n },\n dayFormat: {\n type: Function as PropType,\n default: null,\n },\n },\n intervals: {\n maxDays: {\n type: Number,\n default: 7,\n },\n shortIntervals: {\n type: Boolean,\n default: true,\n },\n intervalHeight: {\n type: [Number, String],\n default: 48,\n validate: validateNumber,\n },\n intervalWidth: {\n type: [Number, String],\n default: 60,\n validate: validateNumber,\n },\n intervalMinutes: {\n type: [Number, String],\n default: 60,\n validate: validateNumber,\n },\n firstInterval: {\n type: [Number, String],\n default: 0,\n validate: validateNumber,\n },\n firstTime: {\n type: [Number, String, Object],\n validate: validateTime,\n },\n intervalCount: {\n type: [Number, String],\n default: 24,\n validate: validateNumber,\n },\n intervalFormat: {\n type: Function as PropType,\n default: null,\n },\n intervalStyle: {\n type: Function as PropType<(interval: CalendarTimestamp) => object>,\n default: null,\n },\n showIntervalLabel: {\n type: Function as PropType<(interval: CalendarTimestamp) => boolean>,\n default: null,\n },\n },\n weeks: {\n localeFirstDayOfYear: {\n type: [String, Number],\n default: 0,\n },\n minWeeks: {\n validate: validateNumber,\n default: 1,\n },\n shortMonths: {\n type: Boolean,\n default: true,\n },\n showMonthOnFirst: {\n type: Boolean,\n default: true,\n },\n showWeek: Boolean,\n monthFormat: {\n type: Function as PropType,\n default: null,\n },\n },\n calendar: {\n type: {\n type: String,\n default: 'month',\n },\n value: {\n type: [String, Number, Date] as PropType,\n validate: validateTimestamp,\n },\n },\n category: {\n categories: {\n type: [Array, String] as PropType,\n default: '',\n },\n categoryText: {\n type: [String, Function] as PropType,\n },\n categoryHideDynamic: {\n type: Boolean,\n },\n categoryShowAll: {\n type: Boolean,\n },\n categoryForInvalid: {\n type: String,\n default: '',\n },\n categoryDays: {\n type: [Number, String],\n default: 1,\n validate: (x: any) => isFinite(parseInt(x)) && parseInt(x) > 0,\n },\n },\n events: {\n events: {\n type: Array,\n default: () => [],\n } as PropValidator,\n eventStart: {\n type: String,\n default: 'start',\n },\n eventEnd: {\n type: String,\n default: 'end',\n },\n eventTimed: {\n type: [String, Function] as PropType,\n default: 'timed',\n },\n eventCategory: {\n type: [String, Function] as PropType,\n default: 'category',\n },\n eventHeight: {\n type: Number,\n default: 20,\n },\n eventColor: {\n type: [String, Function] as PropType,\n default: 'primary',\n },\n eventTextColor: {\n type: [String, Function] as PropType,\n default: 'white',\n },\n eventName: {\n type: [String, Function] as PropType,\n default: 'name',\n },\n eventOverlapThreshold: {\n type: [String, Number],\n default: 60,\n },\n eventOverlapMode: {\n type: [String, Function],\n default: 'stack',\n validate: (mode: any) => mode in CalendarEventOverlapModes || typeof mode === 'function',\n } as PropValidator<'stack' | 'column' | CalendarEventOverlapMode>,\n eventMore: {\n type: Boolean,\n default: true,\n },\n eventMoreText: {\n type: String,\n default: '$vuetify.calendar.moreEvents',\n },\n eventRipple: {\n type: [Boolean, Object],\n default: null,\n },\n eventMarginBottom: {\n type: Number,\n default: 1,\n },\n },\n}\n\nexport function validateNumber (input: any): boolean {\n return isFinite(parseInt(input))\n}\n\nexport function validateWeekdays (input: string | (number | string)[]): boolean {\n if (typeof input === 'string') {\n input = input.split(',')\n }\n\n if (Array.isArray(input)) {\n const ints = input.map(x => parseInt(x))\n\n if (ints.length > DAYS_IN_WEEK || ints.length === 0) {\n return false\n }\n\n const visited: Record = {}\n let wrapped = false\n\n for (let i = 0; i < ints.length; i++) {\n const x = ints[i]\n\n if (!isFinite(x) || x < 0 || x >= DAYS_IN_WEEK) {\n return false\n }\n\n if (i > 0) {\n const d = x - ints[i - 1]\n if (d < 0) {\n if (wrapped) {\n return false\n }\n wrapped = true\n } else if (d === 0) {\n return false\n }\n }\n\n if (visited[x]) {\n return false\n }\n visited[x] = true\n }\n\n return true\n }\n\n return false\n}\n","\n// Mixins\nimport mixins from '../../../util/mixins'\nimport Colorable from '../../../mixins/colorable'\nimport Localable from '../../../mixins/localable'\nimport Mouse from './mouse'\nimport Themeable from '../../../mixins/themeable'\nimport Times from './times'\n\n// Directives\nimport Resize from '../../../directives/resize'\n\n// Util\nimport props from '../util/props'\nimport {\n parseTimestamp,\n getWeekdaySkips,\n createDayList,\n createNativeLocaleFormatter,\n getStartOfWeek,\n getEndOfWeek,\n getTimestampIdentifier,\n} from '../util/timestamp'\nimport { CalendarTimestamp, CalendarFormatter } from 'vuetify/types'\n\nexport default mixins(\n Colorable,\n Localable,\n Mouse,\n Themeable,\n Times\n/* @vue/component */\n).extend({\n name: 'calendar-base',\n\n directives: {\n Resize,\n },\n\n props: props.base,\n\n computed: {\n parsedWeekdays (): number[] {\n return Array.isArray(this.weekdays)\n ? this.weekdays\n : (this.weekdays || '').split(',').map(x => parseInt(x, 10))\n },\n weekdaySkips (): number[] {\n return getWeekdaySkips(this.parsedWeekdays)\n },\n weekdaySkipsReverse (): number [] {\n const reversed = this.weekdaySkips.slice()\n reversed.reverse()\n return reversed\n },\n parsedStart (): CalendarTimestamp {\n return parseTimestamp(this.start, true)\n },\n parsedEnd (): CalendarTimestamp {\n const start = this.parsedStart\n const end: CalendarTimestamp = this.end ? parseTimestamp(this.end) || start : start\n\n return getTimestampIdentifier(end) < getTimestampIdentifier(start) ? start : end\n },\n days (): CalendarTimestamp[] {\n return createDayList(\n this.parsedStart,\n this.parsedEnd,\n this.times.today,\n this.weekdaySkips\n )\n },\n dayFormatter (): CalendarFormatter {\n if (this.dayFormat) {\n return this.dayFormat as CalendarFormatter\n }\n\n const options = { timeZone: 'UTC', day: 'numeric' }\n\n return createNativeLocaleFormatter(\n this.currentLocale,\n (_tms, _short) => options\n )\n },\n weekdayFormatter (): CalendarFormatter {\n if (this.weekdayFormat) {\n return this.weekdayFormat as CalendarFormatter\n }\n\n const longOptions = { timeZone: 'UTC', weekday: 'long' }\n const shortOptions = { timeZone: 'UTC', weekday: 'short' }\n\n return createNativeLocaleFormatter(\n this.currentLocale,\n (_tms, short) => short ? shortOptions : longOptions\n )\n },\n },\n\n methods: {\n getRelativeClasses (timestamp: CalendarTimestamp, outside = false): object {\n return {\n 'v-present': timestamp.present,\n 'v-past': timestamp.past,\n 'v-future': timestamp.future,\n 'v-outside': outside,\n }\n },\n getStartOfWeek (timestamp: CalendarTimestamp): CalendarTimestamp {\n return getStartOfWeek(timestamp, this.parsedWeekdays, this.times.today)\n },\n getEndOfWeek (timestamp: CalendarTimestamp): CalendarTimestamp {\n return getEndOfWeek(timestamp, this.parsedWeekdays, this.times.today)\n },\n getFormatter (options: object): CalendarFormatter {\n return createNativeLocaleFormatter(\n this.locale,\n (_tms, _short) => options\n )\n },\n },\n})\n","import {\n parseTimestamp,\n getDayIdentifier,\n getTimestampIdentifier,\n isTimedless,\n updateHasTime,\n} from './timestamp'\nimport { CalendarTimestamp, CalendarEvent, CalendarEventParsed } from 'vuetify/types'\n\nexport function parseEvent (\n input: CalendarEvent,\n index: number,\n startProperty: string,\n endProperty: string,\n timed = false,\n category: string | false = false,\n): CalendarEventParsed {\n const startInput = input[startProperty]\n const endInput = input[endProperty]\n const startParsed: CalendarTimestamp = parseTimestamp(startInput, true)\n const endParsed: CalendarTimestamp = (endInput ? parseTimestamp(endInput, true) : startParsed)\n const start: CalendarTimestamp = isTimedless(startInput)\n ? updateHasTime(startParsed, timed)\n : startParsed\n const end: CalendarTimestamp = isTimedless(endInput)\n ? updateHasTime(endParsed, timed)\n : endParsed\n const startIdentifier: number = getDayIdentifier(start)\n const startTimestampIdentifier: number = getTimestampIdentifier(start)\n const endIdentifier: number = getDayIdentifier(end)\n const endOffset: number = start.hasTime ? 0 : 2359\n const endTimestampIdentifier: number = getTimestampIdentifier(end) + endOffset\n const allDay = !start.hasTime\n\n return { input, start, startIdentifier, startTimestampIdentifier, end, endIdentifier, endTimestampIdentifier, allDay, index, category }\n}\n\nexport function isEventOn (event: CalendarEventParsed, dayIdentifier: number): boolean {\n return dayIdentifier >= event.startIdentifier && dayIdentifier <= event.endIdentifier\n}\n\nexport function isEventHiddenOn (event: CalendarEventParsed, day: CalendarTimestamp): boolean {\n return event.end.time === '00:00' && event.end.date === day.date && event.start.date !== day.date\n}\n\nexport function isEventStart (event: CalendarEventParsed, day: CalendarTimestamp, dayIdentifier: number, firstWeekday: number): boolean {\n return dayIdentifier === event.startIdentifier || (firstWeekday === day.weekday && isEventOn(event, dayIdentifier))\n}\n\nexport function isEventOverlapping (event: CalendarEventParsed, startIdentifier: number, endIdentifier: number): boolean {\n return startIdentifier <= event.endIdentifier && endIdentifier >= event.startIdentifier\n}\n","// Styles\nimport './calendar-with-events.sass'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\n// Directives\nimport ripple from '../../../directives/ripple'\n\n// Mixins\nimport CalendarBase from './calendar-base'\n\n// Helpers\nimport { escapeHTML } from '../../../util/helpers'\n\n// Util\nimport props from '../util/props'\nimport {\n CalendarEventOverlapModes,\n} from '../modes'\nimport {\n getDayIdentifier, diffMinutes,\n} from '../util/timestamp'\nimport {\n parseEvent,\n isEventStart,\n isEventOn,\n isEventOverlapping,\n isEventHiddenOn,\n} from '../util/events'\nimport {\n CalendarTimestamp,\n CalendarEventParsed,\n CalendarEventVisual,\n CalendarEventColorFunction,\n CalendarEventNameFunction,\n CalendarEventTimedFunction,\n CalendarDaySlotScope,\n CalendarDayBodySlotScope,\n CalendarEventOverlapMode,\n CalendarEvent,\n CalendarEventCategoryFunction,\n CalendarCategory,\n} from 'vuetify/types'\n\n// Types\ntype VEventGetter = (day: D) => CalendarEventParsed[]\n\ntype VEventVisualToNode = (visual: CalendarEventVisual, day: D) => VNode | false\n\ntype VEventsToNodes = (\n day: D,\n getter: VEventGetter,\n mapper: VEventVisualToNode,\n timed: boolean) => VNode[] | undefined\n\ntype VDailyEventsMap = {\n [date: string]: {\n parent: HTMLElement\n more: HTMLElement | null\n events: HTMLElement[]\n }\n}\n\ninterface VEventScopeInput {\n eventParsed: CalendarEventParsed\n day: CalendarDaySlotScope\n start: boolean\n end: boolean\n timed: boolean\n}\n\nconst WIDTH_FULL = 100\nconst WIDTH_START = 95\nconst MINUTES_IN_DAY = 1440\n\n/* @vue/component */\nexport default CalendarBase.extend({\n name: 'calendar-with-events',\n\n directives: {\n ripple,\n },\n\n props: {\n ...props.events,\n ...props.calendar,\n ...props.category,\n },\n\n computed: {\n noEvents (): boolean {\n return this.events.length === 0\n },\n parsedEvents (): CalendarEventParsed[] {\n return this.events.map(this.parseEvent)\n },\n parsedEventOverlapThreshold (): number {\n return parseInt(this.eventOverlapThreshold)\n },\n eventTimedFunction (): CalendarEventTimedFunction {\n return typeof this.eventTimed === 'function'\n ? this.eventTimed\n : event => !!event[this.eventTimed as string]\n },\n eventCategoryFunction (): CalendarEventCategoryFunction {\n return typeof this.eventCategory === 'function'\n ? this.eventCategory\n : event => event[this.eventCategory as string]\n },\n eventTextColorFunction (): CalendarEventColorFunction {\n return typeof this.eventTextColor === 'function'\n ? this.eventTextColor\n : () => this.eventTextColor as string\n },\n eventNameFunction (): CalendarEventNameFunction {\n return typeof this.eventName === 'function'\n ? this.eventName\n : (event, timedEvent) => escapeHTML(event.input[this.eventName as string] as string || '')\n },\n eventModeFunction (): CalendarEventOverlapMode {\n return typeof this.eventOverlapMode === 'function'\n ? this.eventOverlapMode\n : CalendarEventOverlapModes[this.eventOverlapMode]\n },\n eventWeekdays (): number[] {\n return this.parsedWeekdays\n },\n categoryMode (): boolean {\n return this.type === 'category'\n },\n },\n\n methods: {\n eventColorFunction (e: CalendarEvent): string {\n return typeof this.eventColor === 'function'\n ? this.eventColor(e)\n : e.color || this.eventColor\n },\n parseEvent (input: CalendarEvent, index = 0): CalendarEventParsed {\n return parseEvent(\n input,\n index,\n this.eventStart,\n this.eventEnd,\n this.eventTimedFunction(input),\n this.categoryMode ? this.eventCategoryFunction(input) : false,\n )\n },\n formatTime (withTime: CalendarTimestamp, ampm: boolean): string {\n const formatter = this.getFormatter({\n timeZone: 'UTC',\n hour: 'numeric',\n minute: withTime.minute > 0 ? 'numeric' : undefined,\n })\n\n return formatter(withTime, true)\n },\n updateEventVisibility () {\n if (this.noEvents || !this.eventMore) {\n return\n }\n\n const eventHeight = this.eventHeight\n const eventsMap = this.getEventsMap()\n\n for (const date in eventsMap) {\n const { parent, events, more } = eventsMap[date]\n if (!more) {\n break\n }\n\n const parentBounds = parent.getBoundingClientRect()\n const last = events.length - 1\n const eventsSorted = events.map(event => ({\n event,\n bottom: event.getBoundingClientRect().bottom,\n })).sort((a, b) => a.bottom - b.bottom)\n let hidden = 0\n\n for (let i = 0; i <= last; i++) {\n const bottom = eventsSorted[i].bottom\n const hide = i === last\n ? (bottom > parentBounds.bottom)\n : (bottom + eventHeight > parentBounds.bottom)\n\n if (hide) {\n eventsSorted[i].event.style.display = 'none'\n hidden++\n }\n }\n\n if (hidden) {\n more.style.display = ''\n more.innerHTML = this.$vuetify.lang.t(this.eventMoreText, hidden)\n } else {\n more.style.display = 'none'\n }\n }\n },\n getEventsMap (): VDailyEventsMap {\n const eventsMap: VDailyEventsMap = {}\n const elements = this.$refs.events as HTMLElement[]\n\n if (!elements || !elements.forEach) {\n return eventsMap\n }\n\n elements.forEach(el => {\n const date = el.getAttribute('data-date')\n if (el.parentElement && date) {\n if (!(date in eventsMap)) {\n eventsMap[date] = {\n parent: el.parentElement,\n more: null,\n events: [],\n }\n }\n if (el.getAttribute('data-more')) {\n eventsMap[date].more = el\n } else {\n eventsMap[date].events.push(el)\n el.style.display = ''\n }\n }\n })\n\n return eventsMap\n },\n genDayEvent ({ event }: CalendarEventVisual, day: CalendarDaySlotScope): VNode {\n const eventHeight = this.eventHeight\n const eventMarginBottom = this.eventMarginBottom\n const dayIdentifier = getDayIdentifier(day)\n const week = day.week\n const start = dayIdentifier === event.startIdentifier\n let end = dayIdentifier === event.endIdentifier\n let width = WIDTH_START\n\n if (!this.categoryMode) {\n for (let i = day.index + 1; i < week.length; i++) {\n const weekdayIdentifier = getDayIdentifier(week[i])\n if (event.endIdentifier >= weekdayIdentifier) {\n width += WIDTH_FULL\n end = end || weekdayIdentifier === event.endIdentifier\n } else {\n end = true\n break\n }\n }\n }\n const scope = { eventParsed: event, day, start, end, timed: false }\n\n return this.genEvent(event, scope, false, {\n staticClass: 'v-event',\n class: {\n 'v-event-start': start,\n 'v-event-end': end,\n },\n style: {\n height: `${eventHeight}px`,\n width: `${width}%`,\n 'margin-bottom': `${eventMarginBottom}px`,\n },\n attrs: {\n 'data-date': day.date,\n },\n key: event.index,\n ref: 'events',\n refInFor: true,\n })\n },\n genTimedEvent ({ event, left, width }: CalendarEventVisual, day: CalendarDayBodySlotScope): VNode | false {\n if (day.timeDelta(event.end) < 0 || day.timeDelta(event.start) >= 1 || isEventHiddenOn(event, day)) {\n return false\n }\n\n const dayIdentifier = getDayIdentifier(day)\n const start = event.startIdentifier >= dayIdentifier\n const end = event.endIdentifier > dayIdentifier\n const top = start ? day.timeToY(event.start) : 0\n const bottom = end ? day.timeToY(MINUTES_IN_DAY) : day.timeToY(event.end)\n const height = Math.max(this.eventHeight, bottom - top)\n const scope = { eventParsed: event, day, start, end, timed: true }\n\n return this.genEvent(event, scope, true, {\n staticClass: 'v-event-timed',\n style: {\n top: `${top}px`,\n height: `${height}px`,\n left: `${left}%`,\n width: `${width}%`,\n },\n })\n },\n genEvent (event: CalendarEventParsed, scopeInput: VEventScopeInput, timedEvent: boolean, data: VNodeData): VNode {\n const slot = this.$scopedSlots.event\n const text = this.eventTextColorFunction(event.input)\n const background = this.eventColorFunction(event.input)\n const overlapsNoon = event.start.hour < 12 && event.end.hour >= 12\n const singline = diffMinutes(event.start, event.end) <= this.parsedEventOverlapThreshold\n const formatTime = this.formatTime\n const timeSummary = () => formatTime(event.start, overlapsNoon) + ' - ' + formatTime(event.end, true)\n const eventSummary = () => {\n const name = this.eventNameFunction(event, timedEvent)\n if (event.start.hasTime) {\n const eventSummaryClass = 'v-event-summary'\n if (timedEvent) {\n const time = timeSummary()\n const delimiter = singline ? ', ' : '
'\n\n return `${name}${delimiter}${time}`\n } else {\n const time = formatTime(event.start, true)\n\n return `${time} ${name}`\n }\n }\n\n return name\n }\n\n const scope = {\n ...scopeInput,\n event: event.input,\n outside: scopeInput.day.outside,\n singline,\n overlapsNoon,\n formatTime,\n timeSummary,\n eventSummary,\n }\n\n return this.$createElement('div',\n this.setTextColor(text,\n this.setBackgroundColor(background, {\n on: this.getDefaultMouseEventHandlers(':event', nativeEvent => ({ ...scope, nativeEvent })),\n directives: [{\n name: 'ripple',\n value: this.eventRipple ?? true,\n }],\n ...data,\n })\n ), slot\n ? slot(scope)\n : [this.genName(eventSummary)]\n )\n },\n genName (eventSummary: () => string): VNode {\n return this.$createElement('div', {\n staticClass: 'pl-1',\n domProps: {\n innerHTML: eventSummary(),\n },\n })\n },\n genPlaceholder (day: CalendarTimestamp): VNode {\n const height = this.eventHeight + this.eventMarginBottom\n\n return this.$createElement('div', {\n style: {\n height: `${height}px`,\n },\n attrs: {\n 'data-date': day.date,\n },\n ref: 'events',\n refInFor: true,\n })\n },\n genMore (day: CalendarDaySlotScope): VNode {\n const eventHeight = this.eventHeight\n const eventMarginBottom = this.eventMarginBottom\n\n return this.$createElement('div', {\n staticClass: 'v-event-more pl-1',\n class: {\n 'v-outside': day.outside,\n },\n attrs: {\n 'data-date': day.date,\n 'data-more': 1,\n },\n directives: [{\n name: 'ripple',\n value: this.eventRipple ?? true,\n }],\n on: this.getDefaultMouseEventHandlers(':more', nativeEvent => {\n return { nativeEvent, ...day }\n }),\n\n style: {\n display: 'none',\n height: `${eventHeight}px`,\n 'margin-bottom': `${eventMarginBottom}px`,\n },\n ref: 'events',\n refInFor: true,\n })\n },\n getVisibleEvents (): CalendarEventParsed[] {\n const start = getDayIdentifier(this.days[0])\n const end = getDayIdentifier(this.days[this.days.length - 1])\n\n return this.parsedEvents.filter(\n event => isEventOverlapping(event, start, end)\n )\n },\n isEventForCategory (event: CalendarEventParsed, category: CalendarCategory): boolean {\n return !this.categoryMode ||\n (typeof category === 'object' && category.categoryName &&\n category.categoryName === event.category) ||\n (typeof event.category === 'string' && category === event.category) ||\n (typeof event.category !== 'string' && category === null)\n },\n getEventsForDay (day: CalendarDaySlotScope): CalendarEventParsed[] {\n const identifier = getDayIdentifier(day)\n const firstWeekday = this.eventWeekdays[0]\n\n return this.parsedEvents.filter(\n event => isEventStart(event, day, identifier, firstWeekday)\n )\n },\n getEventsForDayAll (day: CalendarDaySlotScope): CalendarEventParsed[] {\n const identifier = getDayIdentifier(day)\n const firstWeekday = this.eventWeekdays[0]\n\n return this.parsedEvents.filter(\n event => event.allDay &&\n (this.categoryMode ? isEventOn(event, identifier) : isEventStart(event, day, identifier, firstWeekday)) &&\n this.isEventForCategory(event, day.category)\n )\n },\n getEventsForDayTimed (day: CalendarDaySlotScope): CalendarEventParsed[] {\n const identifier = getDayIdentifier(day)\n return this.parsedEvents.filter(\n event => !event.allDay &&\n isEventOn(event, identifier) &&\n this.isEventForCategory(event, day.category)\n )\n },\n getScopedSlots () {\n if (this.noEvents) {\n return { ...this.$scopedSlots }\n }\n\n const mode = this.eventModeFunction(\n this.parsedEvents,\n this.eventWeekdays[0],\n this.parsedEventOverlapThreshold\n )\n\n const isNode = (input: VNode | false): input is VNode => !!input\n const getSlotChildren: VEventsToNodes = (day, getter, mapper, timed) => {\n const events = getter(day)\n const visuals = mode(day, events, timed, this.categoryMode)\n\n if (timed) {\n return visuals.map(visual => mapper(visual, day)).filter(isNode)\n }\n\n const children: VNode[] = []\n\n visuals.forEach((visual, index) => {\n while (children.length < visual.column) {\n children.push(this.genPlaceholder(day))\n }\n\n const mapped = mapper(visual, day)\n if (mapped) {\n children.push(mapped)\n }\n })\n\n return children\n }\n\n const slots = this.$scopedSlots\n const slotDay = slots.day\n const slotDayHeader = slots['day-header']\n const slotDayBody = slots['day-body']\n\n return {\n ...slots,\n day: (day: CalendarDaySlotScope) => {\n let children = getSlotChildren(day, this.getEventsForDay, this.genDayEvent, false)\n if (children && children.length > 0 && this.eventMore) {\n children.push(this.genMore(day))\n }\n if (slotDay) {\n const slot = slotDay(day)\n if (slot) {\n children = children ? children.concat(slot) : slot\n }\n }\n return children\n },\n 'day-header': (day: CalendarDaySlotScope) => {\n let children = getSlotChildren(day, this.getEventsForDayAll, this.genDayEvent, false)\n\n if (slotDayHeader) {\n const slot = slotDayHeader(day)\n if (slot) {\n children = children ? children.concat(slot) : slot\n }\n }\n return children\n },\n 'day-body': (day: CalendarDayBodySlotScope) => {\n const events = getSlotChildren(day, this.getEventsForDayTimed, this.genTimedEvent, true)\n let children: VNode[] = [\n this.$createElement('div', {\n staticClass: 'v-event-timed-container',\n }, events),\n ]\n\n if (slotDayBody) {\n const slot = slotDayBody(day)\n if (slot) {\n children = children.concat(slot)\n }\n }\n return children\n },\n }\n },\n },\n})\n","// Styles\nimport './VCalendarWeekly.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Components\nimport VBtn from '../VBtn'\n\n// Mixins\nimport CalendarBase from './mixins/calendar-base'\n\n// Util\nimport { getSlot } from '../../util/helpers'\nimport { weekNumber } from '../../util/dateTimeUtils'\nimport props from './util/props'\nimport {\n createDayList,\n getDayIdentifier,\n createNativeLocaleFormatter,\n} from './util/timestamp'\nimport { CalendarTimestamp, CalendarFormatter } from 'vuetify/types'\n\n/* @vue/component */\nexport default CalendarBase.extend({\n name: 'v-calendar-weekly',\n\n props: props.weeks,\n\n computed: {\n staticClass (): string {\n return 'v-calendar-weekly'\n },\n classes (): object {\n return this.themeClasses\n },\n parsedMinWeeks (): number {\n return parseInt(this.minWeeks)\n },\n days (): CalendarTimestamp[] {\n const minDays = this.parsedMinWeeks * this.parsedWeekdays.length\n const start = this.getStartOfWeek(this.parsedStart)\n const end = this.getEndOfWeek(this.parsedEnd)\n\n return createDayList(\n start,\n end,\n this.times.today,\n this.weekdaySkips,\n Number.MAX_SAFE_INTEGER,\n minDays\n )\n },\n todayWeek (): CalendarTimestamp[] {\n const today = this.times.today\n const start = this.getStartOfWeek(today)\n const end = this.getEndOfWeek(today)\n\n return createDayList(\n start,\n end,\n today,\n this.weekdaySkips,\n this.parsedWeekdays.length,\n this.parsedWeekdays.length\n )\n },\n monthFormatter (): CalendarFormatter {\n if (this.monthFormat) {\n return this.monthFormat as CalendarFormatter\n }\n\n const longOptions = { timeZone: 'UTC', month: 'long' }\n const shortOptions = { timeZone: 'UTC', month: 'short' }\n\n return createNativeLocaleFormatter(\n this.currentLocale,\n (_tms, short) => short ? shortOptions : longOptions\n )\n },\n },\n\n methods: {\n isOutside (day: CalendarTimestamp): boolean {\n const dayIdentifier = getDayIdentifier(day)\n\n return dayIdentifier < getDayIdentifier(this.parsedStart) ||\n dayIdentifier > getDayIdentifier(this.parsedEnd)\n },\n genHead (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-weekly__head',\n }, this.genHeadDays())\n },\n genHeadDays (): VNode[] {\n const header = this.todayWeek.map(this.genHeadDay)\n\n if (this.showWeek) {\n header.unshift(this.$createElement('div', {\n staticClass: 'v-calendar-weekly__head-weeknumber',\n }))\n }\n\n return header\n },\n genHeadDay (day: CalendarTimestamp, index: number): VNode {\n const outside = this.isOutside(this.days[index])\n const color = day.present ? this.color : undefined\n\n return this.$createElement('div', this.setTextColor(color, {\n key: day.date,\n staticClass: 'v-calendar-weekly__head-weekday',\n class: this.getRelativeClasses(day, outside),\n }), this.weekdayFormatter(day, this.shortWeekdays))\n },\n genWeeks (): VNode[] {\n const days = this.days\n const weekDays = this.parsedWeekdays.length\n const weeks: VNode[] = []\n\n for (let i = 0; i < days.length; i += weekDays) {\n weeks.push(this.genWeek(days.slice(i, i + weekDays), this.getWeekNumber(days[i])))\n }\n\n return weeks\n },\n genWeek (week: CalendarTimestamp[], weekNumber: number): VNode {\n const weekNodes = week.map((day, index) => this.genDay(day, index, week))\n\n if (this.showWeek) {\n weekNodes.unshift(this.genWeekNumber(weekNumber))\n }\n\n return this.$createElement('div', {\n key: week[0].date,\n staticClass: 'v-calendar-weekly__week',\n }, weekNodes)\n },\n getWeekNumber (determineDay: CalendarTimestamp) {\n return weekNumber(\n determineDay.year,\n determineDay.month - 1,\n determineDay.day,\n this.parsedWeekdays[0],\n parseInt(this.localeFirstDayOfYear)\n )\n },\n genWeekNumber (weekNumber: number) {\n return this.$createElement('div', {\n staticClass: 'v-calendar-weekly__weeknumber',\n }, [\n this.$createElement('small', String(weekNumber)),\n ])\n },\n genDay (day: CalendarTimestamp, index: number, week: CalendarTimestamp[]): VNode {\n const outside = this.isOutside(day)\n\n return this.$createElement('div', {\n key: day.date,\n staticClass: 'v-calendar-weekly__day',\n class: this.getRelativeClasses(day, outside),\n on: this.getDefaultMouseEventHandlers(':day', nativeEvent => {\n return { nativeEvent, ...day }\n }),\n }, [\n this.genDayLabel(day),\n ...(getSlot(this, 'day', () => ({ outside, index, week, ...day })) || []),\n ])\n },\n genDayLabel (day: CalendarTimestamp): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-weekly__day-label',\n }, getSlot(this, 'day-label', day) || [this.genDayLabelButton(day)])\n },\n genDayLabelButton (day: CalendarTimestamp): VNode {\n const color = day.present ? this.color : 'transparent'\n const hasMonth = day.day === 1 && this.showMonthOnFirst\n\n return this.$createElement(VBtn, {\n props: {\n color,\n fab: true,\n depressed: true,\n small: true,\n },\n on: this.getMouseEventHandlers({\n 'click:date': { event: 'click', stop: true },\n 'contextmenu:date': { event: 'contextmenu', stop: true, prevent: true, result: false },\n }, nativeEvent => ({ nativeEvent, ...day })),\n }, hasMonth\n ? this.monthFormatter(day, this.shortMonths) + ' ' + this.dayFormatter(day, false)\n : this.dayFormatter(day, false)\n )\n },\n genDayMonth (day: CalendarTimestamp): VNode | string {\n const color = day.present ? this.color : undefined\n\n return this.$createElement('div', this.setTextColor(color, {\n staticClass: 'v-calendar-weekly__day-month',\n }), getSlot(this, 'day-month', day) || this.monthFormatter(day, this.shortMonths))\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: this.staticClass,\n class: this.classes,\n on: {\n dragstart: (e: MouseEvent) => {\n e.preventDefault()\n },\n },\n }, [\n !this.hideHeader ? this.genHead() : '',\n ...this.genWeeks(),\n ])\n },\n})\n","// Styles\nimport './VCalendarWeekly.sass'\n\n// Mixins\nimport VCalendarWeekly from './VCalendarWeekly'\n\n// Util\nimport { parseTimestamp, getStartOfMonth, getEndOfMonth } from './util/timestamp'\nimport { CalendarTimestamp } from 'vuetify/types'\n\n/* @vue/component */\nexport default VCalendarWeekly.extend({\n name: 'v-calendar-monthly',\n\n computed: {\n staticClass (): string {\n return 'v-calendar-monthly v-calendar-weekly'\n },\n parsedStart (): CalendarTimestamp {\n return getStartOfMonth(parseTimestamp(this.start, true))\n },\n parsedEnd (): CalendarTimestamp {\n return getEndOfMonth(parseTimestamp(this.end, true))\n },\n },\n\n})\n","\n// Mixins\nimport CalendarBase from './calendar-base'\n\n// Util\nimport props from '../util/props'\nimport {\n parseTime,\n copyTimestamp,\n updateMinutes,\n createDayList,\n createIntervalList,\n createNativeLocaleFormatter,\n VTime,\n MINUTES_IN_DAY,\n} from '../util/timestamp'\nimport { CalendarTimestamp, CalendarFormatter, CalendarDayBodySlotScope } from 'vuetify/types'\n\n/* @vue/component */\nexport default CalendarBase.extend({\n name: 'calendar-with-intervals',\n\n props: props.intervals,\n\n computed: {\n parsedFirstInterval (): number {\n return parseInt(this.firstInterval)\n },\n parsedIntervalMinutes (): number {\n return parseInt(this.intervalMinutes)\n },\n parsedIntervalCount (): number {\n return parseInt(this.intervalCount)\n },\n parsedIntervalHeight (): number {\n return parseFloat(this.intervalHeight)\n },\n parsedFirstTime (): number | false {\n return parseTime(this.firstTime)\n },\n firstMinute (): number {\n const time = this.parsedFirstTime\n\n return time !== false && time >= 0 && time <= MINUTES_IN_DAY\n ? time\n : this.parsedFirstInterval * this.parsedIntervalMinutes\n },\n bodyHeight (): number {\n return this.parsedIntervalCount * this.parsedIntervalHeight\n },\n days (): CalendarTimestamp[] {\n return createDayList(\n this.parsedStart,\n this.parsedEnd,\n this.times.today,\n this.weekdaySkips,\n this.maxDays\n )\n },\n intervals (): CalendarTimestamp[][] {\n const days: CalendarTimestamp[] = this.days\n const first: number = this.firstMinute\n const minutes: number = this.parsedIntervalMinutes\n const count: number = this.parsedIntervalCount\n const now: CalendarTimestamp = this.times.now\n\n return days.map(d => createIntervalList(d, first, minutes, count, now))\n },\n intervalFormatter (): CalendarFormatter {\n if (this.intervalFormat) {\n return this.intervalFormat as CalendarFormatter\n }\n\n const longOptions = { timeZone: 'UTC', hour: '2-digit', minute: '2-digit' }\n const shortOptions = { timeZone: 'UTC', hour: 'numeric', minute: '2-digit' }\n const shortHourOptions = { timeZone: 'UTC', hour: 'numeric' }\n\n return createNativeLocaleFormatter(\n this.currentLocale,\n (tms, short) => short ? (tms.minute === 0 ? shortHourOptions : shortOptions) : longOptions\n )\n },\n },\n\n methods: {\n showIntervalLabelDefault (interval: CalendarTimestamp): boolean {\n const first: CalendarTimestamp = this.intervals[0][0]\n const isFirst: boolean = first.hour === interval.hour && first.minute === interval.minute\n return !isFirst\n },\n intervalStyleDefault (_interval: CalendarTimestamp): object | undefined {\n return undefined\n },\n getTimestampAtEvent (e: MouseEvent | TouchEvent, day: CalendarTimestamp): CalendarTimestamp {\n const timestamp: CalendarTimestamp = copyTimestamp(day)\n const bounds = (e.currentTarget as HTMLElement).getBoundingClientRect()\n const baseMinutes: number = this.firstMinute\n const touchEvent: TouchEvent = e as TouchEvent\n const mouseEvent: MouseEvent = e as MouseEvent\n const touches: TouchList = touchEvent.changedTouches || touchEvent.touches\n const clientY: number = touches && touches[0] ? touches[0].clientY : mouseEvent.clientY\n const addIntervals: number = (clientY - bounds.top) / this.parsedIntervalHeight\n const addMinutes: number = Math.floor(addIntervals * this.parsedIntervalMinutes)\n const minutes: number = baseMinutes + addMinutes\n\n return updateMinutes(timestamp, minutes, this.times.now)\n },\n getSlotScope (timestamp: CalendarTimestamp): CalendarDayBodySlotScope {\n const scope = copyTimestamp(timestamp) as any\n scope.timeToY = this.timeToY\n scope.timeDelta = this.timeDelta\n scope.minutesToPixels = this.minutesToPixels\n scope.week = this.days\n return scope\n },\n scrollToTime (time: VTime): boolean {\n const y = this.timeToY(time)\n const pane = this.$refs.scrollArea as HTMLElement\n\n if (y === false || !pane) {\n return false\n }\n\n pane.scrollTop = y\n\n return true\n },\n minutesToPixels (minutes: number): number {\n return minutes / this.parsedIntervalMinutes * this.parsedIntervalHeight\n },\n timeToY (time: VTime, clamp = true): number | false {\n let y = this.timeDelta(time)\n\n if (y !== false) {\n y *= this.bodyHeight\n\n if (clamp) {\n if (y < 0) {\n y = 0\n }\n if (y > this.bodyHeight) {\n y = this.bodyHeight\n }\n }\n }\n\n return y\n },\n timeDelta (time: VTime): number | false {\n const minutes = parseTime(time)\n\n if (minutes === false) {\n return false\n }\n\n const min: number = this.firstMinute\n const gap: number = this.parsedIntervalCount * this.parsedIntervalMinutes\n\n return (minutes - min) / gap\n },\n },\n})\n","// Styles\nimport './VCalendarDaily.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Directives\nimport Resize from '../../directives/resize'\n\n// Components\nimport VBtn from '../VBtn'\n\n// Mixins\nimport CalendarWithIntervals from './mixins/calendar-with-intervals'\n\n// Util\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { CalendarTimestamp } from 'vuetify/types'\n\n/* @vue/component */\nexport default CalendarWithIntervals.extend({\n name: 'v-calendar-daily',\n\n directives: { Resize },\n\n data: () => ({\n scrollPush: 0,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-calendar-daily': true,\n ...this.themeClasses,\n }\n },\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init () {\n this.$nextTick(this.onResize)\n },\n onResize () {\n this.scrollPush = this.getScrollPush()\n },\n getScrollPush (): number {\n const area = this.$refs.scrollArea as HTMLElement\n const pane = this.$refs.pane as HTMLElement\n\n return area && pane ? (area.offsetWidth - pane.offsetWidth) : 0\n },\n genHead (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-daily__head',\n style: {\n marginRight: this.scrollPush + 'px',\n },\n }, [\n this.genHeadIntervals(),\n ...this.genHeadDays(),\n ])\n },\n genHeadIntervals (): VNode {\n const width: string | undefined = convertToUnit(this.intervalWidth)\n\n return this.$createElement('div', {\n staticClass: 'v-calendar-daily__intervals-head',\n style: {\n width,\n },\n }, getSlot(this, 'interval-header'))\n },\n genHeadDays (): VNode[] {\n return this.days.map(this.genHeadDay)\n },\n genHeadDay (day: CalendarTimestamp, index: number): VNode {\n return this.$createElement('div', {\n key: day.date,\n staticClass: 'v-calendar-daily_head-day',\n class: this.getRelativeClasses(day),\n on: this.getDefaultMouseEventHandlers(':day', nativeEvent => {\n return { nativeEvent, ...this.getSlotScope(day) }\n }),\n }, [\n this.genHeadWeekday(day),\n this.genHeadDayLabel(day),\n ...this.genDayHeader(day, index),\n ])\n },\n genDayHeader (day: CalendarTimestamp, index: number): VNode[] {\n return getSlot(this, 'day-header', () => ({\n week: this.days, ...day, index,\n })) || []\n },\n genHeadWeekday (day: CalendarTimestamp): VNode {\n const color = day.present ? this.color : undefined\n\n return this.$createElement('div', this.setTextColor(color, {\n staticClass: 'v-calendar-daily_head-weekday',\n }), this.weekdayFormatter(day, this.shortWeekdays))\n },\n genHeadDayLabel (day: CalendarTimestamp): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-daily_head-day-label',\n }, getSlot(this, 'day-label-header', day) || [this.genHeadDayButton(day)])\n },\n genHeadDayButton (day: CalendarTimestamp): VNode {\n const color = day.present ? this.color : 'transparent'\n\n return this.$createElement(VBtn, {\n props: {\n color,\n fab: true,\n depressed: true,\n },\n on: this.getMouseEventHandlers({\n 'click:date': { event: 'click', stop: true },\n 'contextmenu:date': { event: 'contextmenu', stop: true, prevent: true, result: false },\n }, nativeEvent => {\n return { nativeEvent, ...day }\n }),\n }, this.dayFormatter(day, false))\n },\n genBody (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-daily__body',\n }, [\n this.genScrollArea(),\n ])\n },\n genScrollArea (): VNode {\n return this.$createElement('div', {\n ref: 'scrollArea',\n staticClass: 'v-calendar-daily__scroll-area',\n }, [\n this.genPane(),\n ])\n },\n genPane (): VNode {\n return this.$createElement('div', {\n ref: 'pane',\n staticClass: 'v-calendar-daily__pane',\n style: {\n height: convertToUnit(this.bodyHeight),\n },\n }, [\n this.genDayContainer(),\n ])\n },\n genDayContainer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-calendar-daily__day-container',\n }, [\n this.genBodyIntervals(),\n ...this.genDays(),\n ])\n },\n genDays (): VNode[] {\n return this.days.map(this.genDay)\n },\n genDay (day: CalendarTimestamp, index: number): VNode {\n return this.$createElement('div', {\n key: day.date,\n staticClass: 'v-calendar-daily__day',\n class: this.getRelativeClasses(day),\n on: this.getDefaultMouseEventHandlers(':time', nativeEvent => {\n return { nativeEvent, ...this.getSlotScope(this.getTimestampAtEvent(nativeEvent, day)) }\n }),\n }, [\n ...this.genDayIntervals(index),\n ...this.genDayBody(day),\n ])\n },\n genDayBody (day: CalendarTimestamp): VNode[] {\n return getSlot(this, 'day-body', () => this.getSlotScope(day)) || []\n },\n genDayIntervals (index: number): VNode[] {\n return this.intervals[index].map(this.genDayInterval)\n },\n genDayInterval (interval: CalendarTimestamp): VNode {\n const height: string | undefined = convertToUnit(this.intervalHeight)\n const styler = this.intervalStyle || this.intervalStyleDefault\n\n const data = {\n key: interval.time,\n staticClass: 'v-calendar-daily__day-interval',\n style: {\n height,\n ...styler(interval),\n },\n\n }\n\n const children = getSlot(this, 'interval', () => this.getSlotScope(interval))\n\n return this.$createElement('div', data, children)\n },\n genBodyIntervals (): VNode {\n const width: string | undefined = convertToUnit(this.intervalWidth)\n const data = {\n staticClass: 'v-calendar-daily__intervals-body',\n style: {\n width,\n },\n on: this.getDefaultMouseEventHandlers(':interval', nativeEvent => {\n return { nativeEvent, ...this.getTimestampAtEvent(nativeEvent, this.parsedStart) }\n }),\n }\n\n return this.$createElement('div', data, this.genIntervalLabels())\n },\n genIntervalLabels (): VNode[] | null {\n if (!this.intervals.length) return null\n\n return this.intervals[0].map(this.genIntervalLabel)\n },\n genIntervalLabel (interval: CalendarTimestamp): VNode {\n const height: string | undefined = convertToUnit(this.intervalHeight)\n const short: boolean = this.shortIntervals\n const shower = this.showIntervalLabel || this.showIntervalLabelDefault\n const show = shower(interval)\n const label = show ? this.intervalFormatter(interval, short) : undefined\n\n return this.$createElement('div', {\n key: interval.time,\n staticClass: 'v-calendar-daily__interval',\n style: {\n height,\n },\n }, [\n this.$createElement('div', {\n staticClass: 'v-calendar-daily__interval-text',\n }, label),\n ])\n },\n },\n\n render (h): VNode {\n return h('div', {\n class: this.classes,\n on: {\n dragstart: (e: MouseEvent) => {\n e.preventDefault()\n },\n },\n directives: [{\n modifiers: { quiet: true },\n name: 'resize',\n value: this.onResize,\n }],\n }, [\n !this.hideHeader ? this.genHead() : '',\n this.genBody(),\n ])\n },\n})\n","import { CalendarCategory, CalendarCategoryTextFunction } from 'types'\n\nexport function parsedCategoryText (\n category: CalendarCategory,\n categoryText: string | CalendarCategoryTextFunction\n): string {\n return typeof categoryText === 'string' && typeof category === 'object' && category\n ? category[categoryText]\n : typeof categoryText === 'function'\n ? categoryText(category)\n : category\n}\n\nexport function getParsedCategories (\n categories: CalendarCategory | CalendarCategory[],\n categoryText: string | CalendarCategoryTextFunction\n): CalendarCategory[] {\n if (typeof categories === 'string') return categories.split(/\\s*,\\s/)\n if (Array.isArray(categories)) {\n return categories.map((category: CalendarCategory) => {\n if (typeof category === 'string') return category\n\n const categoryName = typeof category.categoryName === 'string'\n ? category.categoryName\n : parsedCategoryText(category, categoryText)\n return { ...category, categoryName }\n })\n }\n return []\n}\n","// Styles\nimport './VCalendarCategory.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Mixins\nimport VCalendarDaily from './VCalendarDaily'\n\n// Util\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { CalendarCategory, CalendarTimestamp } from 'types'\nimport props from './util/props'\nimport { getParsedCategories } from './util/parser'\n\n/* @vue/component */\nexport default VCalendarDaily.extend({\n name: 'v-calendar-category',\n\n props: props.category,\n\n computed: {\n classes (): object {\n return {\n 'v-calendar-daily': true,\n 'v-calendar-category': true,\n ...this.themeClasses,\n }\n },\n parsedCategories (): CalendarCategory[] {\n return getParsedCategories(this.categories, this.categoryText)\n },\n },\n methods: {\n genDayHeader (day: CalendarTimestamp, index: number): VNode[] {\n const data = {\n staticClass: 'v-calendar-category__columns',\n }\n const scope = {\n week: this.days, ...day, index,\n }\n\n const children = this.parsedCategories.map(category => {\n return this.genDayHeaderCategory(day, this.getCategoryScope(scope, category))\n })\n\n return [this.$createElement('div', data, children)]\n },\n getCategoryScope (scope: any, category: CalendarCategory) {\n const cat = typeof category === 'object' && category &&\n category.categoryName === this.categoryForInvalid ? null : category\n return {\n ...scope,\n category: cat,\n }\n },\n genDayHeaderCategory (day: CalendarTimestamp, scope: any): VNode {\n const headerTitle = typeof scope.category === 'object' ? scope.category.categoryName : scope.category\n return this.$createElement('div', {\n staticClass: 'v-calendar-category__column-header',\n on: this.getDefaultMouseEventHandlers(':day-category', e => {\n return this.getCategoryScope(this.getSlotScope(day), scope.category)\n }),\n }, [\n getSlot(this, 'category', scope) || this.genDayHeaderCategoryTitle(headerTitle),\n getSlot(this, 'day-header', scope),\n ])\n },\n genDayHeaderCategoryTitle (categoryName: string | null) {\n return this.$createElement('div', {\n staticClass: 'v-calendar-category__category',\n }, categoryName === null ? this.categoryForInvalid : categoryName)\n },\n genDays (): VNode[] {\n const days: VNode[] = []\n this.days.forEach((d, j) => {\n const day = new Array(this.parsedCategories.length || 1)\n day.fill(d)\n days.push(...day.map((v, i) => this.genDay(v, j, i)))\n })\n return days\n },\n genDay (day: CalendarTimestamp, index: number, categoryIndex: number): VNode {\n const category = this.parsedCategories[categoryIndex]\n return this.$createElement('div', {\n key: day.date + '-' + categoryIndex,\n staticClass: 'v-calendar-daily__day',\n class: this.getRelativeClasses(day),\n on: this.getDefaultMouseEventHandlers(':time', e => {\n return this.getSlotScope(this.getTimestampAtEvent(e, day))\n }),\n }, [\n ...this.genDayIntervals(index, category),\n ...this.genDayBody(day, category),\n ])\n },\n genDayIntervals (index: number, category: CalendarCategory): VNode[] {\n return this.intervals[index].map(v => this.genDayInterval(v, category))\n },\n genDayInterval (interval: CalendarTimestamp, category: CalendarCategory): VNode {\n const height: string | undefined = convertToUnit(this.intervalHeight)\n const styler = this.intervalStyle || this.intervalStyleDefault\n\n const data = {\n key: interval.time,\n staticClass: 'v-calendar-daily__day-interval',\n style: {\n height,\n ...styler({ ...interval, category }),\n },\n }\n\n const children = getSlot(this, 'interval', () =>\n this.getCategoryScope(this.getSlotScope(interval), category)\n )\n\n return this.$createElement('div', data, children)\n },\n genDayBody (day: CalendarTimestamp, category: CalendarCategory): VNode[] {\n const data = {\n staticClass: 'v-calendar-category__columns',\n }\n\n const children = [this.genDayBodyCategory(day, category)]\n\n return [this.$createElement('div', data, children)]\n },\n genDayBodyCategory (day: CalendarTimestamp, category: CalendarCategory): VNode {\n const data = {\n staticClass: 'v-calendar-category__column',\n on: this.getDefaultMouseEventHandlers(':time-category', e => {\n return this.getCategoryScope(this.getSlotScope(this.getTimestampAtEvent(e, day)), category)\n }),\n }\n\n const children = getSlot(this, 'day-body', () => this.getCategoryScope(this.getSlotScope(day), category))\n\n return this.$createElement('div', data, children)\n },\n },\n})\n","// Styles\n// import '../../stylus/components/_calendar-daily.styl'\n\n// Types\nimport { VNode, Component } from 'vue'\n\n// Mixins\nimport CalendarWithEvents from './mixins/calendar-with-events'\n\n// Util\nimport props from './util/props'\nimport {\n DAYS_IN_MONTH_MAX,\n DAY_MIN,\n DAYS_IN_WEEK,\n parseTimestamp,\n validateTimestamp,\n relativeDays,\n nextDay,\n prevDay,\n copyTimestamp,\n updateFormatted,\n updateWeekday,\n updateRelative,\n getStartOfMonth,\n getEndOfMonth,\n VTime,\n VTimestampInput,\n timestampToDate,\n} from './util/timestamp'\n\n// Calendars\nimport VCalendarMonthly from './VCalendarMonthly'\nimport VCalendarDaily from './VCalendarDaily'\nimport VCalendarWeekly from './VCalendarWeekly'\nimport VCalendarCategory from './VCalendarCategory'\nimport { CalendarTimestamp, CalendarFormatter, CalendarCategory } from 'vuetify/types'\nimport { getParsedCategories } from './util/parser'\n\n// Types\ninterface VCalendarRenderProps {\n start: CalendarTimestamp\n end: CalendarTimestamp\n component: string | Component\n maxDays: number\n weekdays: number[]\n categories: CalendarCategory[]\n}\n\n/* @vue/component */\nexport default CalendarWithEvents.extend({\n name: 'v-calendar',\n\n props: {\n ...props.calendar,\n ...props.weeks,\n ...props.intervals,\n ...props.category,\n },\n\n data: () => ({\n lastStart: null as CalendarTimestamp | null,\n lastEnd: null as CalendarTimestamp | null,\n }),\n\n computed: {\n parsedValue (): CalendarTimestamp {\n return (validateTimestamp(this.value)\n ? parseTimestamp(this.value, true)\n : (this.parsedStart || this.times.today))\n },\n parsedCategoryDays (): number {\n return parseInt(this.categoryDays) || 1\n },\n renderProps (): VCalendarRenderProps {\n const around = this.parsedValue\n let component: any = null\n let maxDays = this.maxDays\n let weekdays = this.parsedWeekdays\n let categories = this.parsedCategories\n let start = around\n let end = around\n switch (this.type) {\n case 'month':\n component = VCalendarMonthly\n start = getStartOfMonth(around)\n end = getEndOfMonth(around)\n break\n case 'week':\n component = VCalendarDaily\n start = this.getStartOfWeek(around)\n end = this.getEndOfWeek(around)\n maxDays = 7\n break\n case 'day':\n component = VCalendarDaily\n maxDays = 1\n weekdays = [start.weekday]\n break\n case '4day':\n component = VCalendarDaily\n end = relativeDays(copyTimestamp(end), nextDay, 3)\n updateFormatted(end)\n maxDays = 4\n weekdays = [\n start.weekday,\n (start.weekday + 1) % 7,\n (start.weekday + 2) % 7,\n (start.weekday + 3) % 7,\n ]\n break\n case 'custom-weekly':\n component = VCalendarWeekly\n start = this.parsedStart || around\n end = this.parsedEnd\n break\n case 'custom-daily':\n component = VCalendarDaily\n start = this.parsedStart || around\n end = this.parsedEnd\n break\n case 'category':\n const days = this.parsedCategoryDays\n\n component = VCalendarCategory\n end = relativeDays(copyTimestamp(end), nextDay, days)\n updateFormatted(end)\n maxDays = days\n weekdays = []\n\n for (let i = 0; i < days; i++) {\n weekdays.push((start.weekday + i) % 7)\n }\n\n categories = this.getCategoryList(categories)\n break\n default:\n throw new Error(this.type + ' is not a valid Calendar type')\n }\n\n return { component, start, end, maxDays, weekdays, categories }\n },\n eventWeekdays (): number[] {\n return this.renderProps.weekdays\n },\n categoryMode (): boolean {\n return this.type === 'category'\n },\n title (): string {\n const { start, end } = this.renderProps\n const spanYears = start.year !== end.year\n const spanMonths = spanYears || start.month !== end.month\n\n if (spanYears) {\n return this.monthShortFormatter(start, true) + ' ' + start.year + ' - ' + this.monthShortFormatter(end, true) + ' ' + end.year\n }\n\n if (spanMonths) {\n return this.monthShortFormatter(start, true) + ' - ' + this.monthShortFormatter(end, true) + ' ' + end.year\n } else {\n return this.monthLongFormatter(start, false) + ' ' + start.year\n }\n },\n monthLongFormatter (): CalendarFormatter {\n return this.getFormatter({\n timeZone: 'UTC', month: 'long',\n })\n },\n monthShortFormatter (): CalendarFormatter {\n return this.getFormatter({\n timeZone: 'UTC', month: 'short',\n })\n },\n parsedCategories (): CalendarCategory[] {\n return getParsedCategories(this.categories, this.categoryText)\n },\n },\n\n watch: {\n renderProps: 'checkChange',\n },\n\n mounted () {\n this.updateEventVisibility()\n this.checkChange()\n },\n\n updated () {\n window.requestAnimationFrame(this.updateEventVisibility)\n },\n\n methods: {\n checkChange (): void {\n const { lastStart, lastEnd } = this\n const { start, end } = this.renderProps\n if (!lastStart || !lastEnd ||\n start.date !== lastStart.date ||\n end.date !== lastEnd.date) {\n this.lastStart = start\n this.lastEnd = end\n this.$emit('change', { start, end })\n }\n },\n move (amount = 1): void {\n const moved = copyTimestamp(this.parsedValue)\n const forward = amount > 0\n const mover = forward ? nextDay : prevDay\n const limit = forward ? DAYS_IN_MONTH_MAX : DAY_MIN\n let times = forward ? amount : -amount\n\n while (--times >= 0) {\n switch (this.type) {\n case 'month':\n moved.day = limit\n mover(moved)\n break\n case 'week':\n relativeDays(moved, mover, DAYS_IN_WEEK)\n break\n case 'day':\n relativeDays(moved, mover, 1)\n break\n case '4day':\n relativeDays(moved, mover, 4)\n break\n case 'category':\n relativeDays(moved, mover, this.parsedCategoryDays)\n break\n }\n }\n\n updateWeekday(moved)\n updateFormatted(moved)\n updateRelative(moved, this.times.now)\n\n if (this.value instanceof Date) {\n this.$emit('input', timestampToDate(moved))\n } else if (typeof this.value === 'number') {\n this.$emit('input', timestampToDate(moved).getTime())\n } else {\n this.$emit('input', moved.date)\n }\n\n this.$emit('moved', moved)\n },\n next (amount = 1): void {\n this.move(amount)\n },\n prev (amount = 1): void {\n this.move(-amount)\n },\n timeToY (time: VTime, clamp = true): number | false {\n const c = this.$children[0] as any\n\n if (c && c.timeToY) {\n return c.timeToY(time, clamp)\n } else {\n return false\n }\n },\n timeDelta (time: VTime): number | false {\n const c = this.$children[0] as any\n\n if (c && c.timeDelta) {\n return c.timeDelta(time)\n } else {\n return false\n }\n },\n minutesToPixels (minutes: number): number {\n const c = this.$children[0] as any\n\n if (c && c.minutesToPixels) {\n return c.minutesToPixels(minutes)\n } else {\n return -1\n }\n },\n scrollToTime (time: VTime): boolean {\n const c = this.$children[0] as any\n\n if (c && c.scrollToTime) {\n return c.scrollToTime(time)\n } else {\n return false\n }\n },\n parseTimestamp (input: VTimestampInput, required?: false): CalendarTimestamp | null {\n return parseTimestamp(input, required, this.times.now)\n },\n timestampToDate (timestamp: CalendarTimestamp): Date {\n return timestampToDate(timestamp)\n },\n getCategoryList (categories: CalendarCategory[]): CalendarCategory[] {\n if (!this.noEvents) {\n const categoryMap: any = categories.reduce((map: any, category, index) => {\n if (typeof category === 'object' && category.categoryName) map[category.categoryName] = { index, count: 0 }\n else if (typeof category === 'string') map[category] = { index, count: 0 }\n return map\n }, {})\n\n if (!this.categoryHideDynamic || !this.categoryShowAll) {\n let categoryLength = categories.length\n\n this.parsedEvents.forEach(ev => {\n let category = ev.category\n\n if (typeof category !== 'string') {\n category = this.categoryForInvalid\n }\n\n if (!category) {\n return\n }\n\n if (category in categoryMap) {\n categoryMap[category].count++\n } else if (!this.categoryHideDynamic) {\n categoryMap[category] = {\n index: categoryLength++,\n count: 1,\n }\n }\n })\n }\n\n if (!this.categoryShowAll) {\n for (const category in categoryMap) {\n if (categoryMap[category].count === 0) {\n delete categoryMap[category]\n }\n }\n }\n\n categories = categories.filter((category: CalendarCategory) => {\n if (typeof category === 'object' && category.categoryName) {\n return categoryMap.hasOwnProperty(category.categoryName)\n } else if (typeof category === 'string') {\n return categoryMap.hasOwnProperty(category)\n }\n return false\n })\n }\n return categories\n },\n },\n\n render (h): VNode {\n const { start, end, maxDays, component, weekdays, categories } = this.renderProps\n\n return h(component, {\n staticClass: 'v-calendar',\n class: {\n 'v-calendar-events': !this.noEvents,\n },\n props: {\n ...this.$props,\n start: start.date,\n end: end.date,\n maxDays,\n weekdays,\n categories,\n },\n directives: [{\n modifiers: { quiet: true },\n name: 'resize',\n value: this.updateEventVisibility,\n }],\n on: {\n ...this.$listeners,\n\n 'click:date': (day: CalendarTimestamp, e?: MouseEvent) => {\n if (this.$listeners.input) {\n this.$emit('input', day.date)\n }\n if (this.$listeners['click:date']) {\n this.$emit('click:date', day, e)\n }\n },\n },\n scopedSlots: this.getScopedSlots(),\n })\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","// Directives\nimport ripple from '../../directives/ripple'\n\n// Types\nimport Vue, { VNode, VNodeData, VNodeDirective } from 'vue'\n\nexport default Vue.extend({\n name: 'rippleable',\n\n directives: { ripple },\n\n props: {\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n },\n\n methods: {\n genRipple (data: VNodeData = {}): VNode | null {\n if (!this.ripple) return null\n\n data.staticClass = 'v-input--selection-controls__ripple'\n\n data.directives = data.directives || []\n data.directives.push({\n name: 'ripple',\n value: { center: true },\n } as VNodeDirective)\n\n return this.$createElement('div', data)\n },\n },\n})\n","// Components\nimport VInput from '../../components/VInput'\n\n// Mixins\nimport Rippleable from '../rippleable'\nimport Comparable from '../comparable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport function prevent (e: Event) {\n e.preventDefault()\n}\n\n/* @vue/component */\nexport default mixins(\n VInput,\n Rippleable,\n Comparable\n).extend({\n name: 'selectable',\n\n model: {\n prop: 'inputValue',\n event: 'change',\n },\n\n props: {\n id: String,\n inputValue: null as any,\n falseValue: null as any,\n trueValue: null as any,\n multiple: {\n type: Boolean,\n default: null,\n },\n label: String,\n },\n\n data () {\n return {\n hasColor: this.inputValue,\n lazyValue: this.inputValue,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (!this.isActive) return undefined\n if (this.color) return this.color\n if (this.isDark && !this.appIsDark) return 'white'\n return 'primary'\n },\n isMultiple (): boolean {\n return this.multiple === true || (this.multiple === null && Array.isArray(this.internalValue))\n },\n isActive (): boolean {\n const value = this.value\n const input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) return false\n\n return input.some(item => this.valueComparator(item, value))\n }\n\n if (this.trueValue === undefined || this.falseValue === undefined) {\n return value\n ? this.valueComparator(value, input)\n : Boolean(input)\n }\n\n return this.valueComparator(input, this.trueValue)\n },\n isDirty (): boolean {\n return this.isActive\n },\n rippleState (): string | undefined {\n return !this.isDisabled && !this.validationState\n ? undefined\n : this.validationState\n },\n },\n\n watch: {\n inputValue (val) {\n this.lazyValue = val\n this.hasColor = val\n },\n },\n\n methods: {\n genLabel () {\n const label = VInput.options.methods.genLabel.call(this)\n\n if (!label) return label\n\n label!.data!.on = {\n // Label shouldn't cause the input to focus\n click: prevent,\n }\n\n return label\n },\n genInput (type: string, attrs: object) {\n return this.$createElement('input', {\n attrs: Object.assign({\n 'aria-checked': this.isActive.toString(),\n disabled: this.isDisabled,\n id: this.computedId,\n role: type,\n type,\n }, attrs),\n domProps: {\n value: this.value,\n checked: this.isActive,\n },\n on: {\n blur: this.onBlur,\n change: this.onChange,\n focus: this.onFocus,\n keydown: this.onKeydown,\n click: prevent,\n },\n ref: 'input',\n })\n },\n onBlur () {\n this.isFocused = false\n },\n onClick (e: Event) {\n this.onChange()\n this.$emit('click', e)\n },\n onChange () {\n if (!this.isInteractive) return\n\n const value = this.value\n let input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) {\n input = []\n }\n\n const length = input.length\n\n input = input.filter((item: any) => !this.valueComparator(item, value))\n\n if (input.length === length) {\n input.push(value)\n }\n } else if (this.trueValue !== undefined && this.falseValue !== undefined) {\n input = this.valueComparator(input, this.trueValue) ? this.falseValue : this.trueValue\n } else if (value) {\n input = this.valueComparator(input, value) ? null : value\n } else {\n input = !input\n }\n\n this.validate(true, input)\n this.internalValue = input\n this.hasColor = input\n },\n onFocus () {\n this.isFocused = true\n },\n /** @abstract */\n onKeydown (e: Event) {},\n },\n})\n","// Styles\nimport './VCheckbox.sass'\nimport '../../styles/components/_selection-controls.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VInput from '../VInput'\n\n// Mixins\nimport Selectable from '../../mixins/selectable'\n\n/* @vue/component */\nexport default Selectable.extend({\n name: 'v-checkbox',\n\n props: {\n indeterminate: Boolean,\n indeterminateIcon: {\n type: String,\n default: '$checkboxIndeterminate',\n },\n offIcon: {\n type: String,\n default: '$checkboxOff',\n },\n onIcon: {\n type: String,\n default: '$checkboxOn',\n },\n },\n\n data () {\n return {\n inputIndeterminate: this.indeterminate,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input--selection-controls': true,\n 'v-input--checkbox': true,\n 'v-input--indeterminate': this.inputIndeterminate,\n }\n },\n computedIcon (): string {\n if (this.inputIndeterminate) {\n return this.indeterminateIcon\n } else if (this.isActive) {\n return this.onIcon\n } else {\n return this.offIcon\n }\n },\n // Do not return undefined if disabled,\n // according to spec, should still show\n // a color when disabled and active\n validationState (): string | undefined {\n if (this.isDisabled && !this.inputIndeterminate) return undefined\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor !== null) return this.computedColor\n return undefined\n },\n },\n\n watch: {\n indeterminate (val) {\n // https://github.com/vuetifyjs/vuetify/issues/8270\n this.$nextTick(() => (this.inputIndeterminate = val))\n },\n inputIndeterminate (val) {\n this.$emit('update:indeterminate', val)\n },\n isActive () {\n if (!this.indeterminate) return\n this.inputIndeterminate = false\n },\n },\n\n methods: {\n genCheckbox () {\n const { title, ...checkboxAttrs } = this.attrs$\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input',\n }, [\n this.$createElement(VIcon, this.setTextColor(this.validationState, {\n props: {\n dense: this.dense,\n dark: this.dark,\n light: this.light,\n },\n }), this.computedIcon),\n this.genInput('checkbox', {\n ...checkboxAttrs,\n 'aria-checked': this.inputIndeterminate\n ? 'mixed'\n : this.isActive.toString(),\n }),\n this.genRipple(this.setTextColor(this.rippleState)),\n ])\n },\n genDefaultSlot () {\n return [\n this.genCheckbox(),\n this.genLabel(),\n ]\n },\n },\n})\n","import './VSimpleCheckbox.sass'\n\nimport ripple from '../../directives/ripple'\n\nimport Vue, { VNode, VNodeDirective } from 'vue'\nimport { VIcon } from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport { wrapInArray } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'v-simple-checkbox',\n\n functional: true,\n\n directives: {\n ripple,\n },\n\n props: {\n ...Colorable.options.props,\n ...Themeable.options.props,\n disabled: Boolean,\n ripple: {\n type: Boolean,\n default: true,\n },\n value: Boolean,\n indeterminate: Boolean,\n indeterminateIcon: {\n type: String,\n default: '$checkboxIndeterminate',\n },\n onIcon: {\n type: String,\n default: '$checkboxOn',\n },\n offIcon: {\n type: String,\n default: '$checkboxOff',\n },\n },\n\n render (h, { props, data, listeners }): VNode {\n const children = []\n let icon = props.offIcon\n if (props.indeterminate) icon = props.indeterminateIcon\n else if (props.value) icon = props.onIcon\n\n children.push(h(VIcon, Colorable.options.methods.setTextColor(props.value && props.color, {\n props: {\n disabled: props.disabled,\n dark: props.dark,\n light: props.light,\n },\n }), icon))\n\n if (props.ripple && !props.disabled) {\n const ripple = h('div', Colorable.options.methods.setTextColor(props.color, {\n staticClass: 'v-input--selection-controls__ripple',\n directives: [{\n name: 'ripple',\n value: { center: true },\n }] as VNodeDirective[],\n }))\n\n children.push(ripple)\n }\n\n return h('div',\n mergeData(data, {\n class: {\n 'v-simple-checkbox': true,\n 'v-simple-checkbox--disabled': props.disabled,\n },\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n\n if (data.on && data.on.input && !props.disabled) {\n wrapInArray(data.on.input).forEach(f => f(!props.value))\n }\n },\n },\n }), [\n h('div', { staticClass: 'v-input--selection-controls__input' }, children),\n ])\n },\n})\n","// Styles\nimport './VChip.sass'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Components\nimport { VExpandXTransition } from '../transitions'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport { breaking } from '../../util/console'\n\n// Types\nimport { PropValidator, PropType } from 'vue/types/options'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Sizeable,\n Routable,\n Themeable,\n GroupableFactory('chipGroup'),\n ToggleableFactory('inputValue')\n).extend({\n name: 'v-chip',\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.chipGroup) return ''\n\n return this.chipGroup.activeClass\n },\n } as any as PropValidator,\n close: Boolean,\n closeIcon: {\n type: String,\n default: '$delete',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n disabled: Boolean,\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: String,\n default: '$complete',\n },\n label: Boolean,\n link: Boolean,\n outlined: Boolean,\n pill: Boolean,\n tag: {\n type: String,\n default: 'span',\n },\n textColor: String,\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-chip--active',\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-chip': true,\n ...Routable.options.computed.classes.call(this),\n 'v-chip--clickable': this.isClickable,\n 'v-chip--disabled': this.disabled,\n 'v-chip--draggable': this.draggable,\n 'v-chip--label': this.label,\n 'v-chip--link': this.isLink,\n 'v-chip--no-color': !this.color,\n 'v-chip--outlined': this.outlined,\n 'v-chip--pill': this.pill,\n 'v-chip--removable': this.hasClose,\n ...this.themeClasses,\n ...this.sizeableClasses,\n ...this.groupClasses,\n }\n },\n hasClose (): boolean {\n return Boolean(this.close)\n },\n isClickable (): boolean {\n return Boolean(\n Routable.options.computed.isClickable.call(this) ||\n this.chipGroup\n )\n },\n },\n\n created () {\n const breakingProps = [\n ['outline', 'outlined'],\n ['selected', 'input-value'],\n ['value', 'active'],\n ['@input', '@active.sync'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n\n this.chipGroup && this.toggle()\n },\n genFilter (): VNode {\n const children = []\n\n if (this.isActive) {\n children.push(\n this.$createElement(VIcon, {\n staticClass: 'v-chip__filter',\n props: { left: true },\n }, this.filterIcon)\n )\n }\n\n return this.$createElement(VExpandXTransition, children)\n },\n genClose (): VNode {\n return this.$createElement(VIcon, {\n staticClass: 'v-chip__close',\n props: {\n right: true,\n size: 18,\n },\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.closeLabel),\n },\n on: {\n click: (e: Event) => {\n e.stopPropagation()\n e.preventDefault()\n\n this.$emit('click:close')\n this.$emit('update:active', false)\n },\n },\n }, this.closeIcon)\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-chip__content',\n }, [\n this.filter && this.genFilter(),\n this.$slots.default,\n this.hasClose && this.genClose(),\n ])\n },\n },\n\n render (h): VNode {\n const children = [this.genContent()]\n let { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n draggable: this.draggable ? 'true' : undefined,\n tabindex: this.chipGroup && !this.disabled ? 0 : data.attrs!.tabindex,\n }\n data.directives!.push({\n name: 'show',\n value: this.active,\n })\n data = this.setBackgroundColor(this.color, data)\n\n const color = this.textColor || (this.outlined && this.color)\n\n return h(tag, this.setTextColor(color, data), children)\n },\n})\n","import VChip from './VChip'\n\nexport { VChip }\nexport default VChip\n","// Styles\nimport '../VAutocomplete/VAutocomplete.sass'\n\n// Extensions\nimport VSelect from '../VSelect/VSelect'\nimport VAutocomplete from '../VAutocomplete/VAutocomplete'\n\n// Utils\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\n\n/* @vue/component */\nexport default VAutocomplete.extend({\n name: 'v-combobox',\n\n props: {\n delimiters: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n returnObject: {\n type: Boolean,\n default: true,\n },\n },\n\n data: () => ({\n editingIndex: -1,\n }),\n\n computed: {\n computedCounterValue (): number {\n return this.multiple\n ? this.selectedItems.length\n : (this.internalSearch || '').toString().length\n },\n hasSlot (): boolean {\n return VSelect.options.computed.hasSlot.call(this) || this.multiple\n },\n isAnyValueAllowed (): boolean {\n return true\n },\n menuCanShow (): boolean {\n if (!this.isFocused) return false\n\n return this.hasDisplayedItems ||\n (!!this.$slots['no-data'] && !this.hideNoData)\n },\n searchIsDirty (): boolean {\n return this.internalSearch != null\n },\n },\n\n methods: {\n onInternalSearchChanged (val: any) {\n if (\n val &&\n this.multiple &&\n this.delimiters.length\n ) {\n const delimiter = this.delimiters.find(d => val.endsWith(d))\n if (delimiter != null) {\n this.internalSearch = val.slice(0, val.length - delimiter.length)\n this.updateTags()\n }\n }\n\n this.updateMenuDimensions()\n },\n genInput () {\n const input = VAutocomplete.options.methods.genInput.call(this)\n\n delete input.data!.attrs!.name\n input.data!.on!.paste = this.onPaste\n\n return input\n },\n genChipSelection (item: object, index: number) {\n const chip = VSelect.options.methods.genChipSelection.call(this, item, index)\n\n // Allow user to update an existing value\n if (this.multiple) {\n chip.componentOptions!.listeners! = {\n ...chip.componentOptions!.listeners!,\n dblclick: () => {\n this.editingIndex = index\n this.internalSearch = this.getText(item)\n this.selectedIndex = -1\n },\n }\n }\n\n return chip\n },\n onChipInput (item: object) {\n VSelect.options.methods.onChipInput.call(this, item)\n\n this.editingIndex = -1\n },\n // Requires a manual definition\n // to overwrite removal in v-autocomplete\n onEnterDown (e: Event) {\n e.preventDefault()\n // If has menu index, let v-select-list handle\n if (this.getMenuIndex() > -1) return\n\n this.$nextTick(this.updateSelf)\n },\n onKeyDown (e: KeyboardEvent) {\n const keyCode = e.keyCode\n\n if (\n e.ctrlKey ||\n ![keyCodes.home, keyCodes.end].includes(keyCode)\n ) {\n VSelect.options.methods.onKeyDown.call(this, e)\n }\n\n // If user is at selection index of 0\n // create a new tag\n if (this.multiple &&\n keyCode === keyCodes.left &&\n this.$refs.input.selectionStart === 0\n ) {\n this.updateSelf()\n } else if (keyCode === keyCodes.enter) {\n this.onEnterDown(e)\n }\n\n // The ordering is important here\n // allows new value to be updated\n // and then moves the index to the\n // proper location\n this.changeSelectedIndex(keyCode)\n },\n onTabDown (e: KeyboardEvent) {\n // When adding tags, if searching and\n // there is not a filtered options,\n // add the value to the tags list\n if (this.multiple &&\n this.internalSearch &&\n this.getMenuIndex() === -1\n ) {\n e.preventDefault()\n e.stopPropagation()\n\n return this.updateTags()\n }\n\n VAutocomplete.options.methods.onTabDown.call(this, e)\n },\n selectItem (item: object) {\n // Currently only supports items:\n if (this.editingIndex > -1) {\n this.updateEditing()\n } else {\n VAutocomplete.options.methods.selectItem.call(this, item)\n\n // if selected item contains search value,\n // remove the search string\n if (\n this.internalSearch &&\n this.multiple &&\n this.getText(item).toLocaleLowerCase().includes(this.internalSearch.toLocaleLowerCase())\n ) {\n this.internalSearch = null\n }\n }\n },\n setSelectedItems () {\n if (this.internalValue == null ||\n this.internalValue === ''\n ) {\n this.selectedItems = []\n } else {\n this.selectedItems = this.multiple ? this.internalValue : [this.internalValue]\n }\n },\n setValue (value?: any) {\n VSelect.options.methods.setValue.call(this, value === undefined ? this.internalSearch : value)\n },\n updateEditing () {\n const value = this.internalValue.slice()\n const index = this.selectedItems.findIndex(item =>\n this.getText(item) === this.internalSearch)\n\n // If user enters a duplicate text on chip edit,\n // don't add it, move it to the end of the list\n if (index > -1) {\n const item = typeof value[index] === 'object'\n ? Object.assign({}, value[index])\n : value[index]\n\n value.splice(index, 1)\n value.push(item)\n } else {\n value[this.editingIndex] = this.internalSearch\n }\n\n this.setValue(value)\n this.editingIndex = -1\n this.internalSearch = null\n },\n updateCombobox () {\n // If search is not dirty, do nothing\n if (!this.searchIsDirty) return\n\n // The internal search is not matching\n // the internal value, update the input\n if (this.internalSearch !== this.getText(this.internalValue)) this.setValue()\n\n // Reset search if using slot to avoid a double input\n const isUsingSlot = Boolean(this.$scopedSlots.selection) || this.hasChips\n if (isUsingSlot) this.internalSearch = null\n },\n updateSelf () {\n this.multiple ? this.updateTags() : this.updateCombobox()\n },\n updateTags () {\n const menuIndex = this.getMenuIndex()\n\n // If the user is not searching\n // and no menu item is selected\n // or if the search is empty\n // do nothing\n if ((menuIndex < 0 && !this.searchIsDirty) ||\n !this.internalSearch) return\n\n if (this.editingIndex > -1) {\n return this.updateEditing()\n }\n\n const index = this.selectedItems.findIndex(item =>\n this.internalSearch === this.getText(item))\n\n // If the duplicate item is an object,\n // copy it, so that it can be added again later\n const itemToSelect = index > -1 && typeof this.selectedItems[index] === 'object'\n ? Object.assign({}, this.selectedItems[index])\n : this.internalSearch\n\n // If it already exists, do nothing\n // this might need to change to bring\n // the duplicated item to the last entered\n if (index > -1) {\n const internalValue = this.internalValue.slice()\n internalValue.splice(index, 1)\n\n this.setValue(internalValue)\n }\n\n // If menu index is greater than 1\n // the selection is handled elsewhere\n // TODO: find out where\n if (menuIndex > -1) return (this.internalSearch = null)\n\n this.selectItem(itemToSelect)\n\n this.internalSearch = null\n },\n onPaste (event: ClipboardEvent) {\n if (!this.multiple || this.searchIsDirty) return\n\n const pastedItemText = event.clipboardData?.getData('text/vnd.vuetify.autocomplete.item+plain')\n if (pastedItemText && this.findExistingIndex(pastedItemText as any) === -1) {\n event.preventDefault()\n VSelect.options.methods.selectItem.call(this, pastedItemText as any)\n }\n },\n clearableCallback () {\n this.editingIndex = -1\n\n VAutocomplete.options.methods.clearableCallback.call(this)\n },\n },\n})\n","import './VDataFooter.sass'\n\n// Components\nimport VSelect from '../VSelect/VSelect'\nimport VIcon from '../VIcon'\nimport VBtn from '../VBtn'\n\n// Types\nimport Vue, { VNode, VNodeChildrenArrayContents, PropType } from 'vue'\nimport { DataPagination, DataOptions, DataItemsPerPageOption } from 'vuetify/types'\nimport { PropValidator } from 'vue/types/options'\nimport { getSlot } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'v-data-footer',\n\n props: {\n options: {\n type: Object as PropType,\n required: true,\n },\n pagination: {\n type: Object as PropType,\n required: true,\n },\n itemsPerPageOptions: {\n type: Array,\n default: () => ([5, 10, 15, -1]),\n } as PropValidator,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n firstIcon: {\n type: String,\n default: '$first',\n },\n lastIcon: {\n type: String,\n default: '$last',\n },\n itemsPerPageText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageText',\n },\n itemsPerPageAllText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageAll',\n },\n showFirstLastPage: Boolean,\n showCurrentPage: Boolean,\n disablePagination: Boolean,\n disableItemsPerPage: Boolean,\n pageText: {\n type: String,\n default: '$vuetify.dataFooter.pageText',\n },\n },\n\n computed: {\n disableNextPageIcon (): boolean {\n return this.options.itemsPerPage <= 0 ||\n this.options.page * this.options.itemsPerPage >= this.pagination.itemsLength ||\n this.pagination.pageStop < 0\n },\n computedDataItemsPerPageOptions (): any[] {\n return this.itemsPerPageOptions.map(option => {\n if (typeof option === 'object') return option\n else return this.genDataItemsPerPageOption(option)\n })\n },\n },\n\n methods: {\n updateOptions (obj: object) {\n this.$emit('update:options', Object.assign({}, this.options, obj))\n },\n onFirstPage () {\n this.updateOptions({ page: 1 })\n },\n onPreviousPage () {\n this.updateOptions({ page: this.options.page - 1 })\n },\n onNextPage () {\n this.updateOptions({ page: this.options.page + 1 })\n },\n onLastPage () {\n this.updateOptions({ page: this.pagination.pageCount })\n },\n onChangeItemsPerPage (itemsPerPage: number) {\n this.updateOptions({ itemsPerPage, page: 1 })\n },\n genDataItemsPerPageOption (option: number) {\n return {\n text: option === -1 ? this.$vuetify.lang.t(this.itemsPerPageAllText) : String(option),\n value: option,\n }\n },\n genItemsPerPageSelect () {\n let value = this.options.itemsPerPage\n const computedIPPO = this.computedDataItemsPerPageOptions\n\n if (computedIPPO.length <= 1) return null\n\n if (!computedIPPO.find(ippo => ippo.value === value)) value = computedIPPO[0]\n\n return this.$createElement('div', {\n staticClass: 'v-data-footer__select',\n }, [\n this.$vuetify.lang.t(this.itemsPerPageText),\n this.$createElement(VSelect, {\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.itemsPerPageText),\n },\n props: {\n disabled: this.disableItemsPerPage,\n items: computedIPPO,\n value,\n hideDetails: true,\n auto: true,\n minWidth: '75px',\n },\n on: {\n input: this.onChangeItemsPerPage,\n },\n }),\n ])\n },\n genPaginationInfo () {\n let children: VNodeChildrenArrayContents = ['–']\n const itemsLength: number = this.pagination.itemsLength\n let pageStart: number = this.pagination.pageStart\n let pageStop: number = this.pagination.pageStop\n\n if (this.pagination.itemsLength && this.pagination.itemsPerPage) {\n pageStart = this.pagination.pageStart + 1\n pageStop = itemsLength < this.pagination.pageStop || this.pagination.pageStop < 0\n ? itemsLength\n : this.pagination.pageStop\n\n children = this.$scopedSlots['page-text']\n ? [this.$scopedSlots['page-text']!({ pageStart, pageStop, itemsLength })]\n : [this.$vuetify.lang.t(this.pageText, pageStart, pageStop, itemsLength)]\n } else if (this.$scopedSlots['page-text']) {\n children = [this.$scopedSlots['page-text']!({ pageStart, pageStop, itemsLength })]\n }\n\n return this.$createElement('div', {\n class: 'v-data-footer__pagination',\n }, children)\n },\n genIcon (click: Function, disabled: boolean, label: string, icon: string): VNode {\n return this.$createElement(VBtn, {\n props: {\n disabled: disabled || this.disablePagination,\n icon: true,\n text: true,\n // dark: this.dark, // TODO: add mixin\n // light: this.light // TODO: add mixin\n },\n on: {\n click,\n },\n attrs: {\n 'aria-label': label, // TODO: Localization\n },\n }, [this.$createElement(VIcon, icon)])\n },\n genIcons () {\n const before: VNodeChildrenArrayContents = []\n const after: VNodeChildrenArrayContents = []\n\n before.push(this.genIcon(\n this.onPreviousPage,\n this.options.page === 1,\n this.$vuetify.lang.t('$vuetify.dataFooter.prevPage'),\n this.$vuetify.rtl ? this.nextIcon : this.prevIcon\n ))\n\n after.push(this.genIcon(\n this.onNextPage,\n this.disableNextPageIcon,\n this.$vuetify.lang.t('$vuetify.dataFooter.nextPage'),\n this.$vuetify.rtl ? this.prevIcon : this.nextIcon\n ))\n\n if (this.showFirstLastPage) {\n before.unshift(this.genIcon(\n this.onFirstPage,\n this.options.page === 1,\n this.$vuetify.lang.t('$vuetify.dataFooter.firstPage'),\n this.$vuetify.rtl ? this.lastIcon : this.firstIcon\n ))\n\n after.push(this.genIcon(\n this.onLastPage,\n this.options.page >= this.pagination.pageCount || this.options.itemsPerPage === -1,\n this.$vuetify.lang.t('$vuetify.dataFooter.lastPage'),\n this.$vuetify.rtl ? this.firstIcon : this.lastIcon\n ))\n }\n\n return [\n this.$createElement('div', {\n staticClass: 'v-data-footer__icons-before',\n }, before),\n this.showCurrentPage && this.$createElement('span', [this.options.page.toString()]),\n this.$createElement('div', {\n staticClass: 'v-data-footer__icons-after',\n }, after),\n ]\n },\n },\n\n render (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-data-footer',\n }, [\n getSlot(this, 'prepend'),\n this.genItemsPerPageSelect(),\n this.genPaginationInfo(),\n this.genIcons(),\n ])\n },\n})\n","// Components\nimport { VData } from '../VData'\nimport VDataFooter from './VDataFooter'\n\n// Mixins\nimport Mobile from '../../mixins/mobile'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { deepEqual, getObjectValueByPath, getPrefixedScopedSlots, getSlot, camelizeObjectKeys, keyCodes } from '../../util/helpers'\nimport { breaking, removed } from '../../util/console'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { DataItemProps, DataScopeProps } from 'vuetify/types'\n\n/* @vue/component */\nexport default mixins(\n Mobile,\n Themeable\n).extend({\n name: 'v-data-iterator',\n\n props: {\n ...VData.options.props, // TODO: filter out props not used\n itemKey: {\n type: String,\n default: 'id',\n },\n value: {\n type: Array,\n default: () => [],\n } as PropValidator,\n singleSelect: Boolean,\n expanded: {\n type: Array,\n default: () => [],\n } as PropValidator,\n mobileBreakpoint: {\n ...Mobile.options.props.mobileBreakpoint,\n default: 600,\n },\n singleExpand: Boolean,\n loading: [Boolean, String],\n noResultsText: {\n type: String,\n default: '$vuetify.dataIterator.noResultsText',\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n hideDefaultFooter: Boolean,\n footerProps: Object,\n selectableKey: {\n type: String,\n default: 'isSelectable',\n },\n },\n\n data: () => ({\n selection: {} as Record,\n expansion: {} as Record,\n internalCurrentItems: [] as any[],\n shiftKeyDown: false,\n lastEntry: -1,\n }),\n\n computed: {\n everyItem (): boolean {\n return !!this.selectableItems.length && this.selectableItems.every((i: any) => this.isSelected(i))\n },\n someItems (): boolean {\n return this.selectableItems.some((i: any) => this.isSelected(i))\n },\n sanitizedFooterProps (): Record {\n return camelizeObjectKeys(this.footerProps)\n },\n selectableItems (): any[] {\n return this.internalCurrentItems.filter(item => this.isSelectable(item))\n },\n },\n\n watch: {\n value: {\n handler (value: any[]) {\n this.selection = value.reduce((selection, item) => {\n selection[getObjectValueByPath(item, this.itemKey)] = item\n return selection\n }, {})\n },\n immediate: true,\n },\n selection (value: Record, old: Record) {\n if (deepEqual(Object.keys(value), Object.keys(old))) return\n\n this.$emit('input', Object.values(value))\n },\n expanded: {\n handler (value: any[]) {\n this.expansion = value.reduce((expansion, item) => {\n expansion[getObjectValueByPath(item, this.itemKey)] = true\n return expansion\n }, {})\n },\n immediate: true,\n },\n expansion (value: Record, old: Record) {\n if (deepEqual(value, old)) return\n const keys = Object.keys(value).filter(k => value[k])\n const expanded = !keys.length ? [] : this.items.filter(i => keys.includes(String(getObjectValueByPath(i, this.itemKey))))\n this.$emit('update:expanded', expanded)\n },\n },\n\n created () {\n const breakingProps = [\n ['disable-initial-sort', 'sort-by'],\n ['filter', 'custom-filter'],\n ['pagination', 'options'],\n ['total-items', 'server-items-length'],\n ['hide-actions', 'hide-default-footer'],\n ['rows-per-page-items', 'footer-props.items-per-page-options'],\n ['rows-per-page-text', 'footer-props.items-per-page-text'],\n ['prev-icon', 'footer-props.prev-icon'],\n ['next-icon', 'footer-props.next-icon'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n\n const removedProps = [\n 'expand',\n 'content-class',\n 'content-props',\n 'content-tag',\n ]\n\n /* istanbul ignore next */\n removedProps.forEach(prop => {\n if (this.$attrs.hasOwnProperty(prop)) removed(prop)\n })\n },\n\n mounted () {\n window.addEventListener('keydown', this.onKeyDown)\n window.addEventListener('keyup', this.onKeyUp)\n },\n beforeDestroy () {\n window.removeEventListener('keydown', this.onKeyDown)\n window.removeEventListener('keyup', this.onKeyUp)\n },\n\n methods: {\n onKeyDown (e: KeyboardEvent): void {\n if (e.keyCode !== keyCodes.shift) return\n this.shiftKeyDown = true\n },\n onKeyUp (e: KeyboardEvent): void {\n if (e.keyCode !== keyCodes.shift) return\n this.shiftKeyDown = false\n },\n toggleSelectAll (value: boolean): void {\n const selection = Object.assign({}, this.selection)\n\n for (let i = 0; i < this.selectableItems.length; i++) {\n const item = this.selectableItems[i]\n\n if (!this.isSelectable(item)) continue\n\n const key = getObjectValueByPath(item, this.itemKey)\n if (value) selection[key] = item\n else delete selection[key]\n }\n\n this.selection = selection\n this.$emit('toggle-select-all', { items: this.internalCurrentItems, value })\n },\n isSelectable (item: any): boolean {\n return getObjectValueByPath(item, this.selectableKey) !== false\n },\n isSelected (item: any): boolean {\n return !!this.selection[getObjectValueByPath(item, this.itemKey)] || false\n },\n select (item: any, value = true, emit = true): void {\n if (!this.isSelectable(item)) return\n\n const selection = this.singleSelect ? {} : Object.assign({}, this.selection)\n const key = getObjectValueByPath(item, this.itemKey)\n\n if (value) selection[key] = item\n else delete selection[key]\n\n const index = this.selectableItems.findIndex(x => getObjectValueByPath(x, this.itemKey) === key)\n if (this.lastEntry === -1) this.lastEntry = index\n else if (this.shiftKeyDown && !this.singleSelect && emit) {\n const lastEntryKey = getObjectValueByPath(this.selectableItems[this.lastEntry], this.itemKey)\n const lastEntryKeySelected = Object.keys(this.selection).includes(String(lastEntryKey))\n this.multipleSelect(lastEntryKeySelected, emit, selection, index)\n }\n this.lastEntry = index\n\n if (this.singleSelect && emit) {\n const keys = Object.keys(this.selection)\n const old = keys.length && getObjectValueByPath(this.selection[keys[0]], this.itemKey)\n old && old !== key && this.$emit('item-selected', { item: this.selection[old], value: false })\n }\n this.selection = selection\n emit && this.$emit('item-selected', { item, value })\n },\n multipleSelect (value = true, emit = true, selection: any, index: number): void {\n const start = index < this.lastEntry ? index : this.lastEntry\n const end = index < this.lastEntry ? this.lastEntry : index\n for (let i = start; i <= end; i++) {\n const currentItem = this.selectableItems[i]\n const key = getObjectValueByPath(currentItem, this.itemKey)\n if (value) selection[key] = currentItem\n else delete selection[key]\n emit && this.$emit('item-selected', { currentItem, value })\n }\n },\n isExpanded (item: any): boolean {\n return this.expansion[getObjectValueByPath(item, this.itemKey)] || false\n },\n expand (item: any, value = true): void {\n const expansion = this.singleExpand ? {} : Object.assign({}, this.expansion)\n const key = getObjectValueByPath(item, this.itemKey)\n\n if (value) expansion[key] = true\n else delete expansion[key]\n\n this.expansion = expansion\n this.$emit('item-expanded', { item, value })\n },\n createItemProps (item: any, index: number): DataItemProps {\n return {\n item,\n index,\n select: (v: boolean) => this.select(item, v),\n isSelected: this.isSelected(item),\n expand: (v: boolean) => this.expand(item, v),\n isExpanded: this.isExpanded(item),\n isMobile: this.isMobile,\n }\n },\n genEmptyWrapper (content: VNodeChildren) {\n return this.$createElement('div', content)\n },\n genEmpty (originalItemsLength: number, filteredItemsLength: number) {\n if (originalItemsLength === 0 && this.loading) {\n const loading = this.$slots.loading || this.$vuetify.lang.t(this.loadingText)\n return this.genEmptyWrapper(loading)\n } else if (originalItemsLength === 0) {\n const noData = this.$slots['no-data'] || this.$vuetify.lang.t(this.noDataText)\n return this.genEmptyWrapper(noData)\n } else if (filteredItemsLength === 0) {\n const noResults = this.$slots['no-results'] || this.$vuetify.lang.t(this.noResultsText)\n return this.genEmptyWrapper(noResults)\n }\n\n return null\n },\n genItems (props: DataScopeProps) {\n const empty = this.genEmpty(props.originalItemsLength, props.pagination.itemsLength)\n if (empty) return [empty]\n\n if (this.$scopedSlots.default) {\n return this.$scopedSlots.default({\n ...props,\n isSelected: this.isSelected,\n select: this.select,\n isExpanded: this.isExpanded,\n isMobile: this.isMobile,\n expand: this.expand,\n })\n }\n\n if (this.$scopedSlots.item) {\n return props.items.map((item: any, index) => this.$scopedSlots.item!(this.createItemProps(\n item,\n index\n )))\n }\n\n return []\n },\n genFooter (props: DataScopeProps) {\n if (this.hideDefaultFooter) return null\n\n const data = {\n props: {\n ...this.sanitizedFooterProps,\n options: props.options,\n pagination: props.pagination,\n },\n on: {\n 'update:options': (value: any) => props.updateOptions(value),\n },\n }\n\n const scopedSlots = getPrefixedScopedSlots('footer.', this.$scopedSlots)\n\n return this.$createElement(VDataFooter, {\n scopedSlots,\n ...data,\n })\n },\n genDefaultScopedSlot (props: any) {\n const outerProps = {\n ...props,\n someItems: this.someItems,\n everyItem: this.everyItem,\n toggleSelectAll: this.toggleSelectAll,\n }\n\n return this.$createElement('div', {\n staticClass: 'v-data-iterator',\n }, [\n getSlot(this, 'header', outerProps, true),\n this.genItems(props),\n this.genFooter(props),\n getSlot(this, 'footer', outerProps, true),\n ])\n },\n },\n\n render (): VNode {\n return this.$createElement(VData, {\n props: this.$props,\n on: {\n 'update:options': (v: any, old: any) => !deepEqual(v, old) && this.$emit('update:options', v),\n 'update:page': (v: any) => this.$emit('update:page', v),\n 'update:items-per-page': (v: any) => this.$emit('update:items-per-page', v),\n 'update:sort-by': (v: any) => this.$emit('update:sort-by', v),\n 'update:sort-desc': (v: any) => this.$emit('update:sort-desc', v),\n 'update:group-by': (v: any) => this.$emit('update:group-by', v),\n 'update:group-desc': (v: any) => this.$emit('update:group-desc', v),\n pagination: (v: any, old: any) => !deepEqual(v, old) && this.$emit('pagination', v),\n 'current-items': (v: any[]) => {\n this.internalCurrentItems = v\n this.$emit('current-items', v)\n },\n 'page-count': (v: number) => this.$emit('page-count', v),\n },\n scopedSlots: {\n default: this.genDefaultScopedSlot,\n },\n })\n },\n})\n","import { VDataTable } from '../'\nimport VIcon from '../../VIcon'\nimport VSimpleCheckbox from '../../VCheckbox/VSimpleCheckbox'\nimport ripple from '../../../directives/ripple'\n\nimport Vue from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport mixins from '../../../util/mixins'\nimport { DataOptions, DataTableHeader } from 'vuetify/types'\n\ntype VDataTableInstance = InstanceType\n\ninterface options extends Vue {\n dataTable: VDataTableInstance\n}\n\nexport default mixins().extend({\n // https://github.com/vuejs/vue/issues/6872\n directives: {\n ripple,\n },\n\n props: {\n headers: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n options: {\n type: Object,\n default: () => ({\n page: 1,\n itemsPerPage: 10,\n sortBy: [],\n sortDesc: [],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: false,\n }),\n } as PropValidator,\n checkboxColor: String,\n sortIcon: {\n type: String,\n default: '$sort',\n },\n everyItem: Boolean,\n someItems: Boolean,\n showGroupBy: Boolean,\n singleSelect: Boolean,\n disableSort: Boolean,\n },\n\n methods: {\n genSelectAll () {\n const data = {\n props: {\n value: this.everyItem,\n indeterminate: !this.everyItem && this.someItems,\n color: this.checkboxColor ?? '',\n },\n on: {\n input: (v: boolean) => this.$emit('toggle-select-all', v),\n },\n }\n\n if (this.$scopedSlots['data-table-select']) {\n return this.$scopedSlots['data-table-select']!(data)\n }\n\n return this.$createElement(VSimpleCheckbox, {\n staticClass: 'v-data-table__checkbox',\n ...data,\n })\n },\n genSortIcon () {\n return this.$createElement(VIcon, {\n staticClass: 'v-data-table-header__icon',\n props: {\n size: 18,\n },\n }, [this.sortIcon])\n },\n },\n})\n","import { VNode, VNodeChildrenArrayContents } from 'vue'\nimport mixins from '../../util/mixins'\nimport VSelect from '../VSelect/VSelect'\nimport VChip from '../VChip'\nimport header from './mixins/header'\nimport { wrapInArray } from '../../util/helpers'\n\nexport default mixins(header).extend({\n name: 'v-data-table-header-mobile',\n\n props: {\n sortByText: {\n type: String,\n default: '$vuetify.dataTable.sortBy',\n },\n },\n\n methods: {\n genSortChip (props: any) {\n const children: VNodeChildrenArrayContents = [props.item.text]\n\n const sortIndex = this.options.sortBy.findIndex(k => k === props.item.value)\n const beingSorted = sortIndex >= 0\n const isDesc = this.options.sortDesc[sortIndex]\n\n children.push(this.$createElement('div', {\n staticClass: 'v-chip__close',\n class: {\n sortable: true,\n active: beingSorted,\n asc: beingSorted && !isDesc,\n desc: beingSorted && isDesc,\n },\n }, [this.genSortIcon()]))\n\n return this.$createElement(VChip, {\n staticClass: 'sortable',\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n this.$emit('sort', props.item.value)\n },\n },\n }, children)\n },\n genSortSelect (items: any[]) {\n return this.$createElement(VSelect, {\n props: {\n label: this.$vuetify.lang.t(this.sortByText),\n items,\n hideDetails: true,\n multiple: this.options.multiSort,\n value: this.options.multiSort ? this.options.sortBy : this.options.sortBy[0],\n menuProps: { closeOnContentClick: true },\n },\n on: {\n change: (v: string | string[]) => this.$emit('sort', v),\n },\n scopedSlots: {\n selection: props => this.genSortChip(props),\n },\n })\n },\n },\n\n render (h): VNode {\n const children: VNodeChildrenArrayContents = []\n\n const header = this.headers.find(h => h.value === 'data-table-select')\n if (header && !this.singleSelect) {\n children.push(this.$createElement('div', {\n class: [\n 'v-data-table-header-mobile__select',\n ...wrapInArray(header.class),\n ],\n attrs: {\n width: header.width,\n },\n }, [this.genSelectAll()]))\n }\n\n const sortHeaders = this.headers\n .filter(h => h.sortable !== false && h.value !== 'data-table-select')\n .map(h => ({\n text: h.text,\n value: h.value,\n }))\n\n if (!this.disableSort && sortHeaders.length) {\n children.push(this.genSortSelect(sortHeaders))\n }\n\n const th = children.length\n ? h('th', [h('div', { staticClass: 'v-data-table-header-mobile__wrapper' }, children)])\n : undefined\n\n const tr = h('tr', [th])\n\n return h('thead', {\n staticClass: 'v-data-table-header v-data-table-header-mobile',\n }, [tr])\n },\n})\n","// Helpers\nimport { VNode, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport header from './mixins/header'\nimport { wrapInArray, convertToUnit } from '../../util/helpers'\nimport { DataTableHeader } from 'vuetify/types'\n\nexport default mixins(header).extend({\n name: 'v-data-table-header-desktop',\n\n methods: {\n genGroupByToggle (header: DataTableHeader) {\n return this.$createElement('span', {\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n this.$emit('group', header.value)\n },\n },\n }, ['group'])\n },\n getAria (beingSorted: boolean, isDesc: boolean) {\n const $t = (key: string) => this.$vuetify.lang.t(`$vuetify.dataTable.ariaLabel.${key}`)\n\n let ariaSort = 'none'\n let ariaLabel = [\n $t('sortNone'),\n $t('activateAscending'),\n ]\n\n if (!beingSorted) {\n return { ariaSort, ariaLabel: ariaLabel.join(' ') }\n }\n\n if (isDesc) {\n ariaSort = 'descending'\n ariaLabel = [\n $t('sortDescending'),\n $t(this.options.mustSort ? 'activateAscending' : 'activateNone'),\n ]\n } else {\n ariaSort = 'ascending'\n ariaLabel = [\n $t('sortAscending'),\n $t('activateDescending'),\n ]\n }\n\n return { ariaSort, ariaLabel: ariaLabel.join(' ') }\n },\n genHeader (header: DataTableHeader) {\n const data: Required> = {\n attrs: {\n role: 'columnheader',\n scope: 'col',\n 'aria-label': header.text || '',\n },\n style: {\n width: convertToUnit(header.width),\n minWidth: convertToUnit(header.width),\n },\n class: [\n `text-${header.align || 'start'}`,\n ...wrapInArray(header.class),\n header.divider && 'v-data-table__divider',\n ],\n on: {},\n }\n const children = []\n\n if (header.value === 'data-table-select' && !this.singleSelect) {\n return this.$createElement('th', data, [this.genSelectAll()])\n }\n\n children.push(\n this.$scopedSlots.hasOwnProperty(header.value)\n ? this.$scopedSlots[header.value]!({ header })\n : this.$createElement('span', [header.text])\n )\n\n if (!this.disableSort && (header.sortable || !header.hasOwnProperty('sortable'))) {\n data.on.click = () => this.$emit('sort', header.value)\n\n const sortIndex = this.options.sortBy.findIndex(k => k === header.value)\n const beingSorted = sortIndex >= 0\n const isDesc = this.options.sortDesc[sortIndex]\n\n data.class.push('sortable')\n\n const { ariaLabel, ariaSort } = this.getAria(beingSorted, isDesc)\n\n data.attrs['aria-label'] += `${header.text ? ': ' : ''}${ariaLabel}`\n data.attrs['aria-sort'] = ariaSort\n\n if (beingSorted) {\n data.class.push('active')\n data.class.push(isDesc ? 'desc' : 'asc')\n }\n\n if (header.align === 'end') children.unshift(this.genSortIcon())\n else children.push(this.genSortIcon())\n\n if (this.options.multiSort && beingSorted) {\n children.push(this.$createElement('span', { class: 'v-data-table-header__sort-badge' }, [String(sortIndex + 1)]))\n }\n }\n\n if (this.showGroupBy && header.groupable !== false) children.push(this.genGroupByToggle(header))\n\n return this.$createElement('th', data, children)\n },\n },\n\n render (): VNode {\n return this.$createElement('thead', {\n staticClass: 'v-data-table-header',\n }, [\n this.$createElement('tr', this.headers.map(header => this.genHeader(header))),\n ])\n },\n})\n","import { VNodeData } from 'vue'\n\n/**\n * Removes duplicate `@input` listeners when\n * using v-model with functional components\n *\n * @see https://github.com/vuetifyjs/vuetify/issues/4460\n */\nexport default function dedupeModelListeners (data: VNodeData): void {\n if (data.model && data.on && data.on.input) {\n if (Array.isArray(data.on.input)) {\n const i = data.on.input.indexOf(data.model.callback)\n if (i > -1) data.on.input.splice(i, 1)\n } else {\n delete data.on.input\n }\n }\n}\n","import { CreateElement, VNode } from 'vue'\n\nexport default function rebuildFunctionalSlots (slots: { [key: string]: VNode[] | undefined }, h: CreateElement) {\n const children: VNode[] = []\n\n for (const slot in slots) {\n if (slots.hasOwnProperty(slot)) {\n children.push(h('template', { slot }, slots[slot]))\n }\n }\n\n return children\n}\n","// Styles\nimport './VDataTableHeader.sass'\n\n// Components\nimport VDataTableHeaderMobile from './VDataTableHeaderMobile'\nimport VDataTableHeaderDesktop from './VDataTableHeaderDesktop'\n\n// Mixins\nimport header from './mixins/header'\n\n// Utilities\nimport dedupeModelListeners from '../../util/dedupeModelListeners'\nimport mergeData from '../../util/mergeData'\nimport rebuildSlots from '../../util/rebuildFunctionalSlots'\n\n// Types\nimport Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-data-table-header',\n\n functional: true,\n\n props: {\n ...header.options.props,\n mobile: Boolean,\n },\n\n render (h, { props, data, slots }) {\n dedupeModelListeners(data)\n const children = rebuildSlots(slots(), h)\n\n data = mergeData(data, { props })\n\n if (props.mobile) {\n return h(VDataTableHeaderMobile, data, children)\n } else {\n return h(VDataTableHeaderDesktop, data, children)\n }\n },\n})\n","// Types\nimport Vue, { VNode, PropType } from 'vue'\nimport { DataTableHeader } from 'vuetify/types'\n\n// Utils\nimport { getObjectValueByPath, wrapInArray } from '../../util/helpers'\n\nfunction needsTd (slot: VNode[] | undefined) {\n return slot!.length !== 1 ||\n !['td', 'th'].includes(slot![0]?.tag!)\n}\n\nexport default Vue.extend({\n name: 'row',\n\n functional: true,\n\n props: {\n headers: Array as PropType,\n index: Number,\n item: Object,\n rtl: Boolean,\n },\n\n render (h, { props, slots, data }): VNode {\n const computedSlots = slots()\n\n const columns = props.headers.map((header: DataTableHeader) => {\n const children = []\n const value = getObjectValueByPath(props.item, header.value)\n\n const slotName = header.value\n const scopedSlot = data.scopedSlots && data.scopedSlots.hasOwnProperty(slotName) && data.scopedSlots[slotName]\n const regularSlot = computedSlots.hasOwnProperty(slotName) && computedSlots[slotName]\n\n if (scopedSlot) {\n children.push(...wrapInArray(scopedSlot({\n item: props.item,\n isMobile: false,\n header,\n index: props.index,\n value,\n })))\n } else if (regularSlot) {\n children.push(...wrapInArray(regularSlot))\n } else {\n children.push(value == null ? value : String(value))\n }\n\n const textAlign = `text-${header.align || 'start'}`\n\n return needsTd(children)\n ? h('td', {\n class: [\n textAlign,\n header.cellClass,\n {\n 'v-data-table__divider': header.divider,\n },\n ],\n }, children)\n : children\n })\n\n return h('tr', data, columns)\n },\n})\n","import Vue, { VNode } from 'vue'\n\nexport default Vue.extend({\n name: 'row-group',\n\n functional: true,\n\n props: {\n value: {\n type: Boolean,\n default: true,\n },\n headerClass: {\n type: String,\n default: 'v-row-group__header',\n },\n contentClass: String,\n summaryClass: {\n type: String,\n default: 'v-row-group__summary',\n },\n },\n\n render (h, { slots, props }): VNode {\n const computedSlots = slots()\n const children = []\n\n if (computedSlots['column.header']) {\n children.push(h('tr', {\n staticClass: props.headerClass,\n }, computedSlots['column.header']))\n } else if (computedSlots['row.header']) {\n children.push(...computedSlots['row.header'])\n }\n\n if (computedSlots['row.content'] && props.value) children.push(...computedSlots['row.content'])\n\n if (computedSlots['column.summary']) {\n children.push(h('tr', {\n staticClass: props.summaryClass,\n }, computedSlots['column.summary']))\n } else if (computedSlots['row.summary']) {\n children.push(...computedSlots['row.summary'])\n }\n\n return children as any\n },\n})\n","import './VSimpleTable.sass'\n\nimport { convertToUnit } from '../../util/helpers'\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\nimport { VNode } from 'vue'\n\nexport default mixins(Themeable).extend({\n name: 'v-simple-table',\n\n props: {\n dense: Boolean,\n fixedHeader: Boolean,\n height: [Number, String],\n },\n\n computed: {\n classes (): Record {\n return {\n 'v-data-table--dense': this.dense,\n 'v-data-table--fixed-height': !!this.height && !this.fixedHeader,\n 'v-data-table--fixed-header': this.fixedHeader,\n 'v-data-table--has-top': !!this.$slots.top,\n 'v-data-table--has-bottom': !!this.$slots.bottom,\n ...this.themeClasses,\n }\n },\n },\n\n methods: {\n genWrapper () {\n return this.$slots.wrapper || this.$createElement('div', {\n staticClass: 'v-data-table__wrapper',\n style: {\n height: convertToUnit(this.height),\n },\n }, [\n this.$createElement('table', this.$slots.default),\n ])\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-data-table',\n class: this.classes,\n }, [\n this.$slots.top,\n this.genWrapper(),\n this.$slots.bottom,\n ])\n },\n})\n","import Vue, { VNode, PropType } from 'vue'\nimport { getObjectValueByPath } from '../../util/helpers'\nimport { DataTableHeader } from 'vuetify/types'\n\nexport default Vue.extend({\n name: 'row',\n\n functional: true,\n\n props: {\n headers: Array as PropType,\n hideDefaultHeader: Boolean,\n index: Number,\n item: Object,\n rtl: Boolean,\n },\n\n render (h, { props, slots, data }): VNode {\n const computedSlots = slots()\n\n const columns: VNode[] = props.headers.map((header: DataTableHeader) => {\n const classes = {\n 'v-data-table__mobile-row': true,\n }\n\n const children = []\n const value = getObjectValueByPath(props.item, header.value)\n\n const slotName = header.value\n const scopedSlot = data.scopedSlots && data.scopedSlots.hasOwnProperty(slotName) && data.scopedSlots[slotName]\n const regularSlot = computedSlots.hasOwnProperty(slotName) && computedSlots[slotName]\n\n if (scopedSlot) {\n children.push(scopedSlot({\n item: props.item,\n isMobile: true,\n header,\n index: props.index,\n value,\n }))\n } else if (regularSlot) {\n children.push(regularSlot)\n } else {\n children.push(value == null ? value : String(value))\n }\n\n const mobileRowChildren = [\n h('div', {\n staticClass: 'v-data-table__mobile-row__cell',\n }, children),\n ]\n\n if (header.value !== 'dataTableSelect' && !props.hideDefaultHeader) {\n mobileRowChildren.unshift(\n h('div', {\n staticClass: 'v-data-table__mobile-row__header',\n }, [header.text])\n )\n }\n\n return h('td', { class: classes }, mobileRowChildren)\n })\n\n return h('tr', { ...data, staticClass: 'v-data-table__mobile-table-row' }, columns)\n },\n})\n","import './VDataTable.sass'\n\n// Types\nimport { VNode, VNodeChildrenArrayContents, VNodeChildren } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport {\n DataTableHeader,\n DataTableFilterFunction,\n DataScopeProps,\n DataOptions,\n DataPagination,\n DataTableCompareFunction,\n DataItemsPerPageOption,\n ItemGroup,\n RowClassFunction,\n DataTableItemProps,\n} from 'vuetify/types'\n\n// Components\nimport { VData } from '../VData'\nimport { VDataFooter, VDataIterator } from '../VDataIterator'\nimport VBtn from '../VBtn'\nimport VDataTableHeader from './VDataTableHeader'\n// import VVirtualTable from './VVirtualTable'\nimport VIcon from '../VIcon'\nimport Row from './Row'\nimport RowGroup from './RowGroup'\nimport VSimpleCheckbox from '../VCheckbox/VSimpleCheckbox'\nimport VSimpleTable from './VSimpleTable'\nimport MobileRow from './MobileRow'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { deepEqual, getObjectValueByPath, getPrefixedScopedSlots, getSlot, defaultFilter, camelizeObjectKeys, getPropertyFromItem } from '../../util/helpers'\nimport { breaking } from '../../util/console'\nimport { mergeClasses } from '../../util/mergeData'\n\nfunction filterFn (item: any, search: string | null, filter: DataTableFilterFunction) {\n return (header: DataTableHeader) => {\n const value = getObjectValueByPath(item, header.value)\n return header.filter ? header.filter(value, search, item) : filter(value, search, item)\n }\n}\n\nfunction searchTableItems (\n items: any[],\n search: string | null,\n headersWithCustomFilters: DataTableHeader[],\n headersWithoutCustomFilters: DataTableHeader[],\n customFilter: DataTableFilterFunction\n) {\n search = typeof search === 'string' ? search.trim() : null\n\n return items.filter(item => {\n // Headers with custom filters are evaluated whether or not a search term has been provided.\n // We need to match every filter to be included in the results.\n const matchesColumnFilters = headersWithCustomFilters.every(filterFn(item, search, defaultFilter))\n\n // Headers without custom filters are only filtered by the `search` property if it is defined.\n // We only need a single column to match the search term to be included in the results.\n const matchesSearchTerm = !search || headersWithoutCustomFilters.some(filterFn(item, search, customFilter))\n\n return matchesColumnFilters && matchesSearchTerm\n })\n}\n\n/* @vue/component */\nexport default mixins(\n VDataIterator,\n Loadable,\n).extend({\n name: 'v-data-table',\n\n // https://github.com/vuejs/vue/issues/6872\n directives: {\n ripple,\n },\n\n props: {\n headers: {\n type: Array,\n default: () => [],\n } as PropValidator,\n showSelect: Boolean,\n checkboxColor: String,\n showExpand: Boolean,\n showGroupBy: Boolean,\n // TODO: Fix\n // virtualRows: Boolean,\n height: [Number, String],\n hideDefaultHeader: Boolean,\n caption: String,\n dense: Boolean,\n headerProps: Object,\n calculateWidths: Boolean,\n fixedHeader: Boolean,\n headersLength: Number,\n expandIcon: {\n type: String,\n default: '$expand',\n },\n customFilter: {\n type: Function,\n default: defaultFilter,\n } as PropValidator,\n itemClass: {\n type: [String, Function],\n default: () => '',\n } as PropValidator,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n },\n\n data () {\n return {\n internalGroupBy: [] as string[],\n openCache: {} as { [key: string]: boolean },\n widths: [] as number[],\n }\n },\n\n computed: {\n computedHeaders (): DataTableHeader[] {\n if (!this.headers) return []\n const headers = this.headers.filter(h => h.value === undefined || !this.internalGroupBy.find(v => v === h.value))\n const defaultHeader = { text: '', sortable: false, width: '1px' }\n\n if (this.showSelect) {\n const index = headers.findIndex(h => h.value === 'data-table-select')\n if (index < 0) headers.unshift({ ...defaultHeader, value: 'data-table-select' })\n else headers.splice(index, 1, { ...defaultHeader, ...headers[index] })\n }\n\n if (this.showExpand) {\n const index = headers.findIndex(h => h.value === 'data-table-expand')\n if (index < 0) headers.unshift({ ...defaultHeader, value: 'data-table-expand' })\n else headers.splice(index, 1, { ...defaultHeader, ...headers[index] })\n }\n\n return headers\n },\n colspanAttrs (): object | undefined {\n return this.isMobile ? undefined : {\n colspan: this.headersLength || this.computedHeaders.length,\n }\n },\n columnSorters (): Record {\n return this.computedHeaders.reduce>((acc, header) => {\n if (header.sort) acc[header.value] = header.sort\n return acc\n }, {})\n },\n headersWithCustomFilters (): DataTableHeader[] {\n return this.headers.filter(header => header.filter && (!header.hasOwnProperty('filterable') || header.filterable === true))\n },\n headersWithoutCustomFilters (): DataTableHeader[] {\n return this.headers.filter(header => !header.filter && (!header.hasOwnProperty('filterable') || header.filterable === true))\n },\n sanitizedHeaderProps (): Record {\n return camelizeObjectKeys(this.headerProps)\n },\n computedItemsPerPage (): number {\n const itemsPerPage = this.options && this.options.itemsPerPage ? this.options.itemsPerPage : this.itemsPerPage\n const itemsPerPageOptions: DataItemsPerPageOption[] | undefined = this.sanitizedFooterProps.itemsPerPageOptions\n\n if (\n itemsPerPageOptions &&\n !itemsPerPageOptions.find(item => typeof item === 'number' ? item === itemsPerPage : item.value === itemsPerPage)\n ) {\n const firstOption = itemsPerPageOptions[0]\n return typeof firstOption === 'object' ? firstOption.value : firstOption\n }\n\n return itemsPerPage\n },\n },\n\n created () {\n const breakingProps = [\n ['sort-icon', 'header-props.sort-icon'],\n ['hide-headers', 'hide-default-header'],\n ['select-all', 'show-select'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n mounted () {\n // if ((!this.sortBy || !this.sortBy.length) && (!this.options.sortBy || !this.options.sortBy.length)) {\n // const firstSortable = this.headers.find(h => !('sortable' in h) || !!h.sortable)\n // if (firstSortable) this.updateOptions({ sortBy: [firstSortable.value], sortDesc: [false] })\n // }\n\n if (this.calculateWidths) {\n window.addEventListener('resize', this.calcWidths)\n this.calcWidths()\n }\n },\n\n beforeDestroy () {\n if (this.calculateWidths) {\n window.removeEventListener('resize', this.calcWidths)\n }\n },\n\n methods: {\n calcWidths () {\n this.widths = Array.from(this.$el.querySelectorAll('th')).map(e => e.clientWidth)\n },\n customFilterWithColumns (items: any[], search: string) {\n return searchTableItems(items, search, this.headersWithCustomFilters, this.headersWithoutCustomFilters, this.customFilter)\n },\n customSortWithHeaders (items: any[], sortBy: string[], sortDesc: boolean[], locale: string) {\n return this.customSort(items, sortBy, sortDesc, locale, this.columnSorters)\n },\n createItemProps (item: any, index: number): DataTableItemProps {\n const props = VDataIterator.options.methods.createItemProps.call(this, item, index)\n\n return Object.assign(props, { headers: this.computedHeaders })\n },\n genCaption (props: DataScopeProps) {\n if (this.caption) return [this.$createElement('caption', [this.caption])]\n\n return getSlot(this, 'caption', props, true)\n },\n genColgroup (props: DataScopeProps) {\n return this.$createElement('colgroup', this.computedHeaders.map(header => {\n return this.$createElement('col', {\n class: {\n divider: header.divider,\n },\n })\n }))\n },\n genLoading () {\n const th = this.$createElement('th', {\n staticClass: 'column',\n attrs: this.colspanAttrs,\n }, [this.genProgress()])\n\n const tr = this.$createElement('tr', {\n staticClass: 'v-data-table__progress',\n }, [th])\n\n return this.$createElement('thead', [tr])\n },\n genHeaders (props: DataScopeProps) {\n const data = {\n props: {\n ...this.sanitizedHeaderProps,\n headers: this.computedHeaders,\n options: props.options,\n mobile: this.isMobile,\n showGroupBy: this.showGroupBy,\n checkboxColor: this.checkboxColor,\n someItems: this.someItems,\n everyItem: this.everyItem,\n singleSelect: this.singleSelect,\n disableSort: this.disableSort,\n },\n on: {\n sort: props.sort,\n group: props.group,\n 'toggle-select-all': this.toggleSelectAll,\n },\n }\n\n // TODO: rename to 'head'? (thead, tbody, tfoot)\n const children: VNodeChildrenArrayContents = [getSlot(this, 'header', {\n ...data,\n isMobile: this.isMobile,\n })]\n\n if (!this.hideDefaultHeader) {\n const scopedSlots = getPrefixedScopedSlots('header.', this.$scopedSlots)\n children.push(this.$createElement(VDataTableHeader, {\n ...data,\n scopedSlots,\n }))\n }\n\n if (this.loading) children.push(this.genLoading())\n\n return children\n },\n genEmptyWrapper (content: VNodeChildrenArrayContents) {\n return this.$createElement('tr', {\n staticClass: 'v-data-table__empty-wrapper',\n }, [\n this.$createElement('td', {\n attrs: this.colspanAttrs,\n }, content),\n ])\n },\n genItems (items: any[], props: DataScopeProps) {\n const empty = this.genEmpty(props.originalItemsLength, props.pagination.itemsLength)\n if (empty) return [empty]\n\n return props.groupedItems\n ? this.genGroupedRows(props.groupedItems, props)\n : this.genRows(items, props)\n },\n genGroupedRows (groupedItems: ItemGroup[], props: DataScopeProps) {\n return groupedItems.map(group => {\n if (!this.openCache.hasOwnProperty(group.name)) this.$set(this.openCache, group.name, true)\n\n if (this.$scopedSlots.group) {\n return this.$scopedSlots.group({\n group: group.name,\n options: props.options,\n isMobile: this.isMobile,\n items: group.items,\n headers: this.computedHeaders,\n })\n } else {\n return this.genDefaultGroupedRow(group.name, group.items, props)\n }\n })\n },\n genDefaultGroupedRow (group: string, items: any[], props: DataScopeProps) {\n const isOpen = !!this.openCache[group]\n const children: VNodeChildren = [\n this.$createElement('template', { slot: 'row.content' }, this.genRows(items, props)),\n ]\n const toggleFn = () => this.$set(this.openCache, group, !this.openCache[group])\n const removeFn = () => props.updateOptions({ groupBy: [], groupDesc: [] })\n\n if (this.$scopedSlots['group.header']) {\n children.unshift(this.$createElement('template', { slot: 'column.header' }, [\n this.$scopedSlots['group.header']!({\n group,\n groupBy: props.options.groupBy,\n isMobile: this.isMobile,\n items,\n headers: this.computedHeaders,\n isOpen,\n toggle: toggleFn,\n remove: removeFn,\n }),\n ]))\n } else {\n const toggle = this.$createElement(VBtn, {\n staticClass: 'ma-0',\n props: {\n icon: true,\n small: true,\n },\n on: {\n click: toggleFn,\n },\n }, [this.$createElement(VIcon, [isOpen ? '$minus' : '$plus'])])\n\n const remove = this.$createElement(VBtn, {\n staticClass: 'ma-0',\n props: {\n icon: true,\n small: true,\n },\n on: {\n click: removeFn,\n },\n }, [this.$createElement(VIcon, ['$close'])])\n\n const column = this.$createElement('td', {\n staticClass: 'text-start',\n attrs: this.colspanAttrs,\n }, [toggle, `${props.options.groupBy[0]}: ${group}`, remove])\n\n children.unshift(this.$createElement('template', { slot: 'column.header' }, [column]))\n }\n\n if (this.$scopedSlots['group.summary']) {\n children.push(this.$createElement('template', { slot: 'column.summary' }, [\n this.$scopedSlots['group.summary']!({\n group,\n groupBy: props.options.groupBy,\n isMobile: this.isMobile,\n items,\n headers: this.computedHeaders,\n isOpen,\n toggle: toggleFn,\n }),\n ]))\n }\n\n return this.$createElement(RowGroup, {\n key: group,\n props: {\n value: isOpen,\n },\n }, children)\n },\n genRows (items: any[], props: DataScopeProps) {\n return this.$scopedSlots.item ? this.genScopedRows(items, props) : this.genDefaultRows(items, props)\n },\n genScopedRows (items: any[], props: DataScopeProps) {\n const rows = []\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n rows.push(this.$scopedSlots.item!({\n ...this.createItemProps(item, i),\n isMobile: this.isMobile,\n }))\n\n if (this.isExpanded(item)) {\n rows.push(this.$scopedSlots['expanded-item']!({\n headers: this.computedHeaders,\n isMobile: this.isMobile,\n index: i,\n item,\n }))\n }\n }\n\n return rows\n },\n genDefaultRows (items: any[], props: DataScopeProps) {\n return this.$scopedSlots['expanded-item']\n ? items.map((item, index) => this.genDefaultExpandedRow(item, index))\n : items.map((item, index) => this.genDefaultSimpleRow(item, index))\n },\n genDefaultExpandedRow (item: any, index: number): VNode {\n const isExpanded = this.isExpanded(item)\n const classes = {\n 'v-data-table__expanded v-data-table__expanded__row': isExpanded,\n }\n const headerRow = this.genDefaultSimpleRow(item, index, classes)\n const expandedRow = this.$createElement('tr', {\n staticClass: 'v-data-table__expanded v-data-table__expanded__content',\n }, [this.$scopedSlots['expanded-item']!({\n headers: this.computedHeaders,\n isMobile: this.isMobile,\n item,\n })])\n\n return this.$createElement(RowGroup, {\n props: {\n value: isExpanded,\n },\n }, [\n this.$createElement('template', { slot: 'row.header' }, [headerRow]),\n this.$createElement('template', { slot: 'row.content' }, [expandedRow]),\n ])\n },\n genDefaultSimpleRow (item: any, index: number, classes: Record = {}): VNode {\n const scopedSlots = getPrefixedScopedSlots('item.', this.$scopedSlots)\n\n const data = this.createItemProps(item, index)\n\n if (this.showSelect) {\n const slot = scopedSlots['data-table-select']\n scopedSlots['data-table-select'] = slot ? () => slot({\n ...data,\n isMobile: this.isMobile,\n }) : () => this.$createElement(VSimpleCheckbox, {\n staticClass: 'v-data-table__checkbox',\n props: {\n value: data.isSelected,\n disabled: !this.isSelectable(item),\n color: this.checkboxColor ?? '',\n },\n on: {\n input: (val: boolean) => data.select(val),\n },\n })\n }\n\n if (this.showExpand) {\n const slot = scopedSlots['data-table-expand']\n scopedSlots['data-table-expand'] = slot ? () => slot(data) : () => this.$createElement(VIcon, {\n staticClass: 'v-data-table__expand-icon',\n class: {\n 'v-data-table__expand-icon--active': data.isExpanded,\n },\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n data.expand(!data.isExpanded)\n },\n },\n }, [this.expandIcon])\n }\n\n return this.$createElement(this.isMobile ? MobileRow : Row, {\n key: getObjectValueByPath(item, this.itemKey),\n class: mergeClasses(\n { ...classes, 'v-data-table__selected': data.isSelected },\n getPropertyFromItem(item, this.itemClass)\n ),\n props: {\n headers: this.computedHeaders,\n hideDefaultHeader: this.hideDefaultHeader,\n index,\n item,\n rtl: this.$vuetify.rtl,\n },\n scopedSlots,\n on: {\n // TODO: for click, the first argument should be the event, and the second argument should be data,\n // but this is a breaking change so it's for v3\n click: () => this.$emit('click:row', item, data),\n contextmenu: (event: MouseEvent) => this.$emit('contextmenu:row', event, data),\n dblclick: (event: MouseEvent) => this.$emit('dblclick:row', event, data),\n },\n })\n },\n genBody (props: DataScopeProps): VNode | string | VNodeChildren {\n const data = {\n ...props,\n expand: this.expand,\n headers: this.computedHeaders,\n isExpanded: this.isExpanded,\n isMobile: this.isMobile,\n isSelected: this.isSelected,\n select: this.select,\n }\n\n if (this.$scopedSlots.body) {\n return this.$scopedSlots.body!(data)\n }\n\n return this.$createElement('tbody', [\n getSlot(this, 'body.prepend', data, true),\n this.genItems(props.items, props),\n getSlot(this, 'body.append', data, true),\n ])\n },\n genFoot (props: DataScopeProps): VNode[] | undefined {\n return this.$scopedSlots.foot?.(props)\n },\n genFooters (props: DataScopeProps) {\n const data = {\n props: {\n options: props.options,\n pagination: props.pagination,\n itemsPerPageText: '$vuetify.dataTable.itemsPerPageText',\n ...this.sanitizedFooterProps,\n },\n on: {\n 'update:options': (value: any) => props.updateOptions(value),\n },\n widths: this.widths,\n headers: this.computedHeaders,\n }\n\n const children: VNodeChildren = [\n getSlot(this, 'footer', data, true),\n ]\n\n if (!this.hideDefaultFooter) {\n children.push(this.$createElement(VDataFooter, {\n ...data,\n scopedSlots: getPrefixedScopedSlots('footer.', this.$scopedSlots),\n }))\n }\n\n return children\n },\n genDefaultScopedSlot (props: DataScopeProps): VNode {\n const simpleProps = {\n height: this.height,\n fixedHeader: this.fixedHeader,\n dense: this.dense,\n }\n\n // if (this.virtualRows) {\n // return this.$createElement(VVirtualTable, {\n // props: Object.assign(simpleProps, {\n // items: props.items,\n // height: this.height,\n // rowHeight: this.dense ? 24 : 48,\n // headerHeight: this.dense ? 32 : 48,\n // // TODO: expose rest of props from virtual table?\n // }),\n // scopedSlots: {\n // items: ({ items }) => this.genItems(items, props) as any,\n // },\n // }, [\n // this.proxySlot('body.before', [this.genCaption(props), this.genHeaders(props)]),\n // this.proxySlot('bottom', this.genFooters(props)),\n // ])\n // }\n\n return this.$createElement(VSimpleTable, {\n props: simpleProps,\n class: {\n 'v-data-table--mobile': this.isMobile,\n },\n }, [\n this.proxySlot('top', getSlot(this, 'top', {\n ...props,\n isMobile: this.isMobile,\n }, true)),\n this.genCaption(props),\n this.genColgroup(props),\n this.genHeaders(props),\n this.genBody(props),\n this.genFoot(props),\n this.proxySlot('bottom', this.genFooters(props)),\n ])\n },\n proxySlot (slot: string, content: VNodeChildren) {\n return this.$createElement('template', { slot }, content)\n },\n },\n\n render (): VNode {\n return this.$createElement(VData, {\n props: {\n ...this.$props,\n customFilter: this.customFilterWithColumns,\n customSort: this.customSortWithHeaders,\n itemsPerPage: this.computedItemsPerPage,\n },\n on: {\n 'update:options': (v: DataOptions, old: DataOptions) => {\n this.internalGroupBy = v.groupBy || []\n !deepEqual(v, old) && this.$emit('update:options', v)\n },\n 'update:page': (v: number) => this.$emit('update:page', v),\n 'update:items-per-page': (v: number) => this.$emit('update:items-per-page', v),\n 'update:sort-by': (v: string | string[]) => this.$emit('update:sort-by', v),\n 'update:sort-desc': (v: boolean | boolean[]) => this.$emit('update:sort-desc', v),\n 'update:group-by': (v: string | string[]) => this.$emit('update:group-by', v),\n 'update:group-desc': (v: boolean | boolean[]) => this.$emit('update:group-desc', v),\n pagination: (v: DataPagination, old: DataPagination) => !deepEqual(v, old) && this.$emit('pagination', v),\n 'current-items': (v: any[]) => {\n this.internalCurrentItems = v\n this.$emit('current-items', v)\n },\n 'page-count': (v: number) => this.$emit('page-count', v),\n },\n scopedSlots: {\n default: this.genDefaultScopedSlot,\n },\n })\n },\n})\n","// Helpers\nimport { wrapInArray, sortItems, deepEqual, groupItems, searchItems, fillArray } from '../../util/helpers'\nimport Vue, { VNode } from 'vue'\n\n// Types\nimport {\n DataOptions,\n DataPagination,\n DataScopeProps,\n DataSortFunction,\n DataGroupFunction,\n DataSearchFunction,\n ItemGroup,\n} from 'vuetify/types'\nimport { PropValidator } from 'vue/types/options'\n\nexport default Vue.extend({\n name: 'v-data',\n\n inheritAttrs: false,\n\n props: {\n items: {\n type: Array,\n default: () => [],\n } as PropValidator,\n options: {\n type: Object,\n default: () => ({}),\n } as PropValidator>,\n sortBy: {\n type: [String, Array],\n } as PropValidator,\n sortDesc: {\n type: [Boolean, Array],\n } as PropValidator,\n customSort: {\n type: Function,\n default: sortItems,\n } as PropValidator,\n mustSort: Boolean,\n multiSort: Boolean,\n page: {\n type: Number,\n default: 1,\n },\n itemsPerPage: {\n type: Number,\n default: 10,\n },\n groupBy: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n groupDesc: {\n type: [Boolean, Array],\n default: () => [],\n } as PropValidator,\n customGroup: {\n type: Function,\n default: groupItems,\n } as PropValidator,\n locale: {\n type: String,\n default: 'en-US',\n },\n disableSort: Boolean,\n disablePagination: Boolean,\n disableFiltering: Boolean,\n search: String,\n customFilter: {\n type: Function,\n default: searchItems,\n } as PropValidator,\n serverItemsLength: {\n type: Number,\n default: -1,\n },\n },\n\n data () {\n let internalOptions: DataOptions = {\n page: this.page,\n itemsPerPage: this.itemsPerPage,\n sortBy: wrapInArray(this.sortBy),\n sortDesc: wrapInArray(this.sortDesc),\n groupBy: wrapInArray(this.groupBy),\n groupDesc: wrapInArray(this.groupDesc),\n mustSort: this.mustSort,\n multiSort: this.multiSort,\n }\n\n if (this.options) {\n internalOptions = Object.assign(internalOptions, this.options)\n }\n\n const { sortBy, sortDesc, groupBy, groupDesc } = internalOptions\n const sortDiff = sortBy.length - sortDesc.length\n const groupDiff = groupBy.length - groupDesc.length\n\n if (sortDiff > 0) {\n internalOptions.sortDesc.push(...fillArray(sortDiff, false))\n }\n\n if (groupDiff > 0) {\n internalOptions.groupDesc.push(...fillArray(groupDiff, false))\n }\n\n return {\n internalOptions,\n }\n },\n\n computed: {\n itemsLength (): number {\n return this.serverItemsLength >= 0 ? this.serverItemsLength : this.filteredItems.length\n },\n pageCount (): number {\n return this.internalOptions.itemsPerPage <= 0\n ? 1\n : Math.ceil(this.itemsLength / this.internalOptions.itemsPerPage)\n },\n pageStart (): number {\n if (this.internalOptions.itemsPerPage === -1 || !this.items.length) return 0\n\n return (this.internalOptions.page - 1) * this.internalOptions.itemsPerPage\n },\n pageStop (): number {\n if (this.internalOptions.itemsPerPage === -1) return this.itemsLength\n if (!this.items.length) return 0\n\n return Math.min(this.itemsLength, this.internalOptions.page * this.internalOptions.itemsPerPage)\n },\n isGrouped (): boolean {\n return !!this.internalOptions.groupBy.length\n },\n pagination (): DataPagination {\n return {\n page: this.internalOptions.page,\n itemsPerPage: this.internalOptions.itemsPerPage,\n pageStart: this.pageStart,\n pageStop: this.pageStop,\n pageCount: this.pageCount,\n itemsLength: this.itemsLength,\n }\n },\n filteredItems (): any[] {\n let items = this.items.slice()\n\n if (!this.disableFiltering && this.serverItemsLength <= 0) {\n items = this.customFilter(items, this.search)\n }\n\n return items\n },\n computedItems (): any[] {\n let items = this.filteredItems.slice()\n\n if ((!this.disableSort || this.internalOptions.groupBy.length) && this.serverItemsLength <= 0) {\n items = this.sortItems(items)\n }\n\n if (!this.disablePagination && this.serverItemsLength <= 0) {\n items = this.paginateItems(items)\n }\n\n return items\n },\n groupedItems (): ItemGroup[] | null {\n return this.isGrouped ? this.groupItems(this.computedItems) : null\n },\n scopedProps (): DataScopeProps {\n return {\n sort: this.sort,\n sortArray: this.sortArray,\n group: this.group,\n items: this.computedItems,\n options: this.internalOptions,\n updateOptions: this.updateOptions,\n pagination: this.pagination,\n groupedItems: this.groupedItems,\n originalItemsLength: this.items.length,\n }\n },\n computedOptions (): DataOptions {\n return { ...this.options } as DataOptions\n },\n },\n\n watch: {\n computedOptions: {\n handler (options: DataOptions, old: DataOptions) {\n if (deepEqual(options, old)) return\n\n this.updateOptions(options)\n },\n deep: true,\n immediate: true,\n },\n internalOptions: {\n handler (options: DataOptions, old: DataOptions) {\n if (deepEqual(options, old)) return\n this.$emit('update:options', options)\n },\n deep: true,\n immediate: true,\n },\n page (page: number) {\n this.updateOptions({ page })\n },\n 'internalOptions.page' (page: number) {\n this.$emit('update:page', page)\n },\n itemsPerPage (itemsPerPage: number) {\n this.updateOptions({ itemsPerPage })\n },\n 'internalOptions.itemsPerPage' (itemsPerPage: number) {\n this.$emit('update:items-per-page', itemsPerPage)\n },\n sortBy (sortBy: string | string[]) {\n this.updateOptions({ sortBy: wrapInArray(sortBy) })\n },\n 'internalOptions.sortBy' (sortBy: string[], old: string[]) {\n !deepEqual(sortBy, old) && this.$emit('update:sort-by', Array.isArray(this.sortBy) ? sortBy : sortBy[0])\n },\n sortDesc (sortDesc: boolean | boolean[]) {\n this.updateOptions({ sortDesc: wrapInArray(sortDesc) })\n },\n 'internalOptions.sortDesc' (sortDesc: boolean[], old: boolean[]) {\n !deepEqual(sortDesc, old) && this.$emit('update:sort-desc', Array.isArray(this.sortDesc) ? sortDesc : sortDesc[0])\n },\n groupBy (groupBy: string | string[]) {\n this.updateOptions({ groupBy: wrapInArray(groupBy) })\n },\n 'internalOptions.groupBy' (groupBy: string[], old: string[]) {\n !deepEqual(groupBy, old) && this.$emit('update:group-by', Array.isArray(this.groupBy) ? groupBy : groupBy[0])\n },\n groupDesc (groupDesc: boolean | boolean[]) {\n this.updateOptions({ groupDesc: wrapInArray(groupDesc) })\n },\n 'internalOptions.groupDesc' (groupDesc: boolean[], old: boolean[]) {\n !deepEqual(groupDesc, old) && this.$emit('update:group-desc', Array.isArray(this.groupDesc) ? groupDesc : groupDesc[0])\n },\n multiSort (multiSort: boolean) {\n this.updateOptions({ multiSort })\n },\n 'internalOptions.multiSort' (multiSort: boolean) {\n this.$emit('update:multi-sort', multiSort)\n },\n mustSort (mustSort: boolean) {\n this.updateOptions({ mustSort })\n },\n 'internalOptions.mustSort' (mustSort: boolean) {\n this.$emit('update:must-sort', mustSort)\n },\n pageCount: {\n handler (pageCount: number) {\n this.$emit('page-count', pageCount)\n },\n immediate: true,\n },\n computedItems: {\n handler (computedItems: any[]) {\n this.$emit('current-items', computedItems)\n },\n immediate: true,\n },\n pagination: {\n handler (pagination: DataPagination, old: DataPagination) {\n if (deepEqual(pagination, old)) return\n this.$emit('pagination', this.pagination)\n },\n immediate: true,\n },\n },\n\n methods: {\n toggle (key: string, oldBy: string[], oldDesc: boolean[], page: number, mustSort: boolean, multiSort: boolean) {\n let by = oldBy.slice()\n let desc = oldDesc.slice()\n const byIndex = by.findIndex((k: string) => k === key)\n\n if (byIndex < 0) {\n if (!multiSort) {\n by = []\n desc = []\n }\n\n by.push(key)\n desc.push(false)\n } else if (byIndex >= 0 && !desc[byIndex]) {\n desc[byIndex] = true\n } else if (!mustSort) {\n by.splice(byIndex, 1)\n desc.splice(byIndex, 1)\n } else {\n desc[byIndex] = false\n }\n\n // Reset page to 1 if sortBy or sortDesc have changed\n if (!deepEqual(by, oldBy) || !deepEqual(desc, oldDesc)) {\n page = 1\n }\n\n return { by, desc, page }\n },\n group (key: string): void {\n const { by: groupBy, desc: groupDesc, page } = this.toggle(\n key,\n this.internalOptions.groupBy,\n this.internalOptions.groupDesc,\n this.internalOptions.page,\n true,\n false\n )\n this.updateOptions({ groupBy, groupDesc, page })\n },\n sort (key: string | string[]): void {\n if (Array.isArray(key)) return this.sortArray(key)\n\n const { by: sortBy, desc: sortDesc, page } = this.toggle(\n key,\n this.internalOptions.sortBy,\n this.internalOptions.sortDesc,\n this.internalOptions.page,\n this.internalOptions.mustSort,\n this.internalOptions.multiSort\n )\n this.updateOptions({ sortBy, sortDesc, page })\n },\n sortArray (sortBy: string[]) {\n const sortDesc = sortBy.map(s => {\n const i = this.internalOptions.sortBy.findIndex((k: string) => k === s)\n return i > -1 ? this.internalOptions.sortDesc[i] : false\n })\n\n this.updateOptions({ sortBy, sortDesc })\n },\n updateOptions (options: any) {\n this.internalOptions = {\n ...this.internalOptions,\n ...options,\n page: this.serverItemsLength < 0\n ? Math.max(1, Math.min(options.page || this.internalOptions.page, this.pageCount))\n : options.page || this.internalOptions.page,\n }\n },\n sortItems (items: any[]): any[] {\n let sortBy: string[] = []\n let sortDesc: boolean[] = []\n\n if (!this.disableSort) {\n sortBy = this.internalOptions.sortBy\n sortDesc = this.internalOptions.sortDesc\n }\n\n if (this.internalOptions.groupBy.length) {\n sortBy = [...this.internalOptions.groupBy, ...sortBy]\n sortDesc = [...this.internalOptions.groupDesc, ...sortDesc]\n }\n\n return this.customSort(items, sortBy, sortDesc, this.locale)\n },\n groupItems (items: any[]): ItemGroup[] {\n return this.customGroup(items, this.internalOptions.groupBy, this.internalOptions.groupDesc)\n },\n paginateItems (items: any[]): any[] {\n // Make sure we don't try to display non-existant page if items suddenly change\n // TODO: Could possibly move this to pageStart/pageStop?\n if (this.serverItemsLength === -1 && items.length <= this.pageStart) {\n this.internalOptions.page = Math.max(1, Math.ceil(items.length / this.internalOptions.itemsPerPage)) || 1 // Prevent NaN\n }\n\n return items.slice(this.pageStart, this.pageStop)\n },\n },\n\n render (): VNode {\n return this.$scopedSlots.default && this.$scopedSlots.default(this.scopedProps) as any\n },\n})\n","// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Overlayable from '../../mixins/overlayable'\nimport Returnable from '../../mixins/returnable'\nimport Stackable from '../../mixins/stackable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Detachable,\n Overlayable,\n Returnable,\n Stackable,\n Activatable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-dialog',\n\n directives: { ClickOutside },\n\n props: {\n dark: Boolean,\n disabled: Boolean,\n fullscreen: Boolean,\n light: Boolean,\n maxWidth: [String, Number],\n noClickAnimation: Boolean,\n origin: {\n type: String,\n default: 'center center',\n },\n persistent: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n transition: {\n type: [String, Boolean],\n default: 'dialog-transition',\n },\n width: [String, Number],\n },\n\n data () {\n return {\n activatedBy: null as EventTarget | null,\n animate: false,\n animateTimeout: -1,\n stackMinZIndex: 200,\n previousActiveElement: null as HTMLElement | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n [(`v-dialog ${this.contentClass}`).trim()]: true,\n 'v-dialog--active': this.isActive,\n 'v-dialog--persistent': this.persistent,\n 'v-dialog--fullscreen': this.fullscreen,\n 'v-dialog--scrollable': this.scrollable,\n 'v-dialog--animated': this.animate,\n }\n },\n contentClasses (): object {\n return {\n 'v-dialog__content': true,\n 'v-dialog__content--active': this.isActive,\n }\n },\n hasActivator (): boolean {\n return Boolean(\n !!this.$slots.activator ||\n !!this.$scopedSlots.activator\n )\n },\n },\n\n watch: {\n isActive (val) {\n if (val) {\n this.show()\n this.hideScroll()\n } else {\n this.removeOverlay()\n this.unbind()\n this.previousActiveElement?.focus()\n }\n },\n fullscreen (val) {\n if (!this.isActive) return\n\n if (val) {\n this.hideScroll()\n this.removeOverlay(false)\n } else {\n this.showScroll()\n this.genOverlay()\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.isBooted = this.isActive\n this.isActive && this.show()\n })\n },\n\n beforeDestroy () {\n if (typeof window !== 'undefined') this.unbind()\n },\n\n methods: {\n animateClick () {\n this.animate = false\n // Needed for when clicking very fast\n // outside of the dialog\n this.$nextTick(() => {\n this.animate = true\n window.clearTimeout(this.animateTimeout)\n this.animateTimeout = window.setTimeout(() => (this.animate = false), 150)\n })\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n // Ignore the click if the dialog is closed or destroyed,\n // if it was on an element inside the content,\n // if it was dragged onto the overlay (#6969),\n // or if this isn't the topmost dialog (#9907)\n return !(\n this._isDestroyed ||\n !this.isActive ||\n this.$refs.content.contains(target) ||\n (this.overlay && target && !this.overlay.$el.contains(target))\n ) && this.activeZIndex >= this.getMaxZIndex()\n },\n hideScroll () {\n if (this.fullscreen) {\n document.documentElement.classList.add('overflow-y-hidden')\n } else {\n Overlayable.options.methods.hideScroll.call(this)\n }\n },\n show () {\n !this.fullscreen && !this.hideOverlay && this.genOverlay()\n // Double nextTick to wait for lazy content to be generated\n this.$nextTick(() => {\n this.$nextTick(() => {\n if (!this.$refs.content.contains(document.activeElement)) {\n this.previousActiveElement = document.activeElement as HTMLElement\n this.$refs.content.focus()\n }\n this.bind()\n })\n })\n },\n bind () {\n window.addEventListener('focusin', this.onFocusin)\n },\n unbind () {\n window.removeEventListener('focusin', this.onFocusin)\n },\n onClickOutside (e: Event) {\n this.$emit('click:outside', e)\n\n if (this.persistent) {\n this.noClickAnimation || this.animateClick()\n } else {\n this.isActive = false\n }\n },\n onKeydown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc && !this.getOpenDependents().length) {\n if (!this.persistent) {\n this.isActive = false\n const activator = this.getActivator()\n this.$nextTick(() => activator && (activator as HTMLElement).focus())\n } else if (!this.noClickAnimation) {\n this.animateClick()\n }\n }\n this.$emit('keydown', e)\n },\n // On focus change, wrap focus to stay inside the dialog\n // https://github.com/vuetifyjs/vuetify/issues/6892\n onFocusin (e: Event) {\n if (!e || !this.retainFocus) return\n\n const target = e.target as HTMLElement\n\n if (\n !!target &&\n // It isn't the document or the dialog body\n ![document, this.$refs.content].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.content.contains(target) &&\n // We're the topmost dialog\n this.activeZIndex >= this.getMaxZIndex() &&\n // It isn't inside a dependent element (like a menu)\n !this.getOpenDependentElements().some(el => el.contains(target))\n // So we must have focused something outside the dialog and its children\n ) {\n // Find and focus the first available element inside the dialog\n const focusable = this.$refs.content.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled')) as HTMLElement | undefined\n el && el.focus()\n }\n },\n genContent () {\n return this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [\n this.$createElement('div', {\n class: this.contentClasses,\n attrs: {\n role: 'dialog',\n tabindex: this.isActive ? 0 : undefined,\n 'aria-modal': this.hideOverlay ? undefined : 'true',\n ...this.getScopeIdAttrs(),\n },\n on: { keydown: this.onKeydown },\n style: { zIndex: this.activeZIndex },\n ref: 'content',\n }, [this.genTransition()]),\n ]),\n ])\n },\n genTransition () {\n const content = this.genInnerContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n appear: true,\n },\n }, [content])\n },\n genInnerContent () {\n const data: VNodeData = {\n class: this.classes,\n ref: 'dialog',\n directives: [\n {\n name: 'click-outside',\n value: {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n },\n { name: 'show', value: this.isActive },\n ],\n style: {\n transformOrigin: this.origin,\n },\n }\n\n if (!this.fullscreen) {\n data.style = {\n ...data.style as object,\n maxWidth: convertToUnit(this.maxWidth),\n width: convertToUnit(this.width),\n }\n }\n\n return this.$createElement('div', data, this.getContentSlot())\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-dialog__container',\n class: {\n 'v-dialog__container--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n }, [\n this.genActivator(),\n this.genContent(),\n ])\n },\n})\n","// Styles\nimport './VDivider.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\nexport default Themeable.extend({\n name: 'v-divider',\n\n props: {\n inset: Boolean,\n vertical: Boolean,\n },\n\n render (h): VNode {\n // WAI-ARIA attributes\n let orientation\n if (!this.$attrs.role || this.$attrs.role === 'separator') {\n orientation = this.vertical ? 'vertical' : 'horizontal'\n }\n return h('hr', {\n class: {\n 'v-divider': true,\n 'v-divider--inset': this.inset,\n 'v-divider--vertical': this.vertical,\n ...this.themeClasses,\n },\n attrs: {\n role: 'separator',\n 'aria-orientation': orientation,\n ...this.$attrs,\n },\n on: this.$listeners,\n })\n },\n})\n","// Components\nimport VExpansionPanels from './VExpansionPanels'\nimport VExpansionPanelHeader from './VExpansionPanelHeader'\nimport VExpansionPanelContent from './VExpansionPanelContent'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\ntype VExpansionPanelHeaderInstance = InstanceType\ntype VExpansionPanelContentInstance = InstanceType\n\nexport default mixins(\n GroupableFactory<'expansionPanels', typeof VExpansionPanels>('expansionPanels', 'v-expansion-panel', 'v-expansion-panels'),\n RegistrableProvide('expansionPanel', true)\n /* @vue/component */\n).extend({\n name: 'v-expansion-panel',\n\n props: {\n disabled: Boolean,\n readonly: Boolean,\n },\n\n data () {\n return {\n content: null as VExpansionPanelContentInstance | null,\n header: null as VExpansionPanelHeaderInstance | null,\n nextIsActive: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-expansion-panel--active': this.isActive,\n 'v-expansion-panel--next-active': this.nextIsActive,\n 'v-expansion-panel--disabled': this.isDisabled,\n ...this.groupClasses,\n }\n },\n isDisabled (): boolean {\n return this.expansionPanels.disabled || this.disabled\n },\n isReadonly (): boolean {\n return this.expansionPanels.readonly || this.readonly\n },\n },\n\n methods: {\n registerContent (vm: VExpansionPanelContentInstance) {\n this.content = vm\n },\n unregisterContent () {\n this.content = null\n },\n registerHeader (vm: VExpansionPanelHeaderInstance) {\n this.header = vm\n vm.$on('click', this.onClick)\n },\n unregisterHeader () {\n this.header = null\n },\n onClick (e: MouseEvent) {\n if (e.detail) this.header!.$el.blur()\n\n this.$emit('click', e)\n\n this.isReadonly || this.isDisabled || this.toggle()\n },\n toggle () {\n this.$nextTick(() => this.$emit('change'))\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-expansion-panel',\n class: this.classes,\n attrs: {\n 'aria-expanded': String(this.isActive),\n },\n }, getSlot(this))\n },\n})\n","// Components\nimport VExpansionPanel from './VExpansionPanel'\nimport { VExpandTransition } from '../transitions'\n\n// Mixins\nimport Bootable from '../../mixins/bootable'\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Bootable,\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor>('expansionPanel', 'v-expansion-panel-content', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue {\n expansionPanel: InstanceType\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-expansion-panel-content',\n\n data: () => ({\n isActive: false,\n }),\n\n computed: {\n parentIsActive (): boolean {\n return this.expansionPanel.isActive\n },\n },\n\n watch: {\n parentIsActive: {\n immediate: true,\n handler (val, oldVal) {\n if (val) this.isBooted = true\n\n if (oldVal == null) this.isActive = val\n else this.$nextTick(() => this.isActive = val)\n },\n },\n },\n\n created () {\n this.expansionPanel.registerContent(this)\n },\n\n beforeDestroy () {\n this.expansionPanel.unregisterContent()\n },\n\n render (h): VNode {\n return h(VExpandTransition, this.showLazyContent(() => [\n h('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-expansion-panel-content',\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }), [\n h('div', { class: 'v-expansion-panel-content__wrap' }, getSlot(this)),\n ]),\n ]))\n },\n})\n","// Components\nimport { VFadeTransition } from '../transitions'\nimport VExpansionPanel from './VExpansionPanel'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor>('expansionPanel', 'v-expansion-panel-header', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n expansionPanel: InstanceType\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-expansion-panel-header',\n\n directives: { ripple },\n\n props: {\n disableIconRotate: Boolean,\n expandIcon: {\n type: String,\n default: '$expand',\n },\n hideActions: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: false,\n },\n },\n\n data: () => ({\n hasMousedown: false,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-expansion-panel-header--active': this.isActive,\n 'v-expansion-panel-header--mousedown': this.hasMousedown,\n }\n },\n isActive (): boolean {\n return this.expansionPanel.isActive\n },\n isDisabled (): boolean {\n return this.expansionPanel.isDisabled\n },\n isReadonly (): boolean {\n return this.expansionPanel.isReadonly\n },\n },\n\n created () {\n this.expansionPanel.registerHeader(this)\n },\n\n beforeDestroy () {\n this.expansionPanel.unregisterHeader()\n },\n\n methods: {\n onClick (e: MouseEvent) {\n this.$emit('click', e)\n },\n genIcon () {\n const icon = getSlot(this, 'actions') ||\n [this.$createElement(VIcon, this.expandIcon)]\n\n return this.$createElement(VFadeTransition, [\n this.$createElement('div', {\n staticClass: 'v-expansion-panel-header__icon',\n class: {\n 'v-expansion-panel-header__icon--disable-rotate': this.disableIconRotate,\n },\n directives: [{\n name: 'show',\n value: !this.isDisabled,\n }],\n }, icon),\n ])\n },\n },\n\n render (h): VNode {\n return h('button', this.setBackgroundColor(this.color, {\n staticClass: 'v-expansion-panel-header',\n class: this.classes,\n attrs: {\n tabindex: this.isDisabled ? -1 : null,\n type: 'button',\n 'aria-expanded': this.isActive,\n },\n directives: [{\n name: 'ripple',\n value: this.ripple,\n }],\n on: {\n ...this.$listeners,\n click: this.onClick,\n mousedown: () => (this.hasMousedown = true),\n mouseup: () => (this.hasMousedown = false),\n },\n }), [\n getSlot(this, 'default', { open: this.isActive }, true),\n this.hideActions || this.genIcon(),\n ])\n },\n})\n","// Styles\nimport './VExpansionPanel.sass'\n\n// Components\nimport { BaseItemGroup, GroupableInstance } from '../VItemGroup/VItemGroup'\nimport VExpansionPanel from './VExpansionPanel'\n\n// Utilities\nimport { breaking } from '../../util/console'\n\n// Types\ninterface VExpansionPanelInstance extends InstanceType {}\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n name: 'v-expansion-panels',\n\n provide (): object {\n return {\n expansionPanels: this,\n }\n },\n\n props: {\n accordion: Boolean,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n focusable: Boolean,\n inset: Boolean,\n popout: Boolean,\n readonly: Boolean,\n tile: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-expansion-panels': true,\n 'v-expansion-panels--accordion': this.accordion,\n 'v-expansion-panels--flat': this.flat,\n 'v-expansion-panels--hover': this.hover,\n 'v-expansion-panels--focusable': this.focusable,\n 'v-expansion-panels--inset': this.inset,\n 'v-expansion-panels--popout': this.popout,\n 'v-expansion-panels--tile': this.tile,\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('expand')) {\n breaking('expand', 'multiple', this)\n }\n\n /* istanbul ignore next */\n if (\n Array.isArray(this.value) &&\n this.value.length > 0 &&\n typeof this.value[0] === 'boolean'\n ) {\n breaking(':value=\"[true, false, true]\"', ':value=\"[0, 2]\"', this)\n }\n },\n\n methods: {\n updateItem (item: GroupableInstance & VExpansionPanelInstance, index: number) {\n const value = this.getValue(item, index)\n const nextValue = this.getValue(item, index + 1)\n\n item.isActive = this.toggleMethod(value)\n item.nextIsActive = this.toggleMethod(nextValue)\n },\n },\n})\n","import VTextField from './VTextField'\n\nexport { VTextField }\nexport default VTextField\n","// Styles\nimport './VFileInput.sass'\n\n// Extensions\nimport VTextField from '../VTextField'\n\n// Components\nimport { VChip } from '../VChip'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\n\n// Utilities\nimport { deepEqual, humanReadableFileSize, wrapInArray } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\nimport { mergeStyles } from '../../util/mergeData'\n\nexport default VTextField.extend({\n name: 'v-file-input',\n\n model: {\n prop: 'value',\n event: 'change',\n },\n\n props: {\n chips: Boolean,\n clearable: {\n type: Boolean,\n default: true,\n },\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n hideInput: Boolean,\n multiple: Boolean,\n placeholder: String,\n prependIcon: {\n type: String,\n default: '$file',\n },\n readonly: {\n type: Boolean,\n default: false,\n },\n showSize: {\n type: [Boolean, Number],\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(v)\n )\n },\n } as PropValidator,\n smallChips: Boolean,\n truncateLength: {\n type: [Number, String],\n default: 22,\n },\n type: {\n type: String,\n default: 'file',\n },\n value: {\n default: undefined,\n validator: val => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n } as PropValidator,\n },\n\n computed: {\n classes (): object {\n return {\n ...VTextField.options.computed.classes.call(this),\n 'v-file-input': true,\n }\n },\n computedCounterValue (): string {\n const fileCount = (this.multiple && this.lazyValue)\n ? this.lazyValue.length\n : (this.lazyValue instanceof File) ? 1 : 0\n\n if (!this.showSize) return this.$vuetify.lang.t(this.counterString, fileCount)\n\n const bytes = this.internalArrayValue.reduce((bytes: number, { size = 0 }: File) => {\n return bytes + size\n }, 0)\n\n return this.$vuetify.lang.t(\n this.counterSizeString,\n fileCount,\n humanReadableFileSize(bytes, this.base === 1024)\n )\n },\n internalArrayValue (): File[] {\n return wrapInArray(this.internalValue)\n },\n internalValue: {\n get (): File[] {\n return this.lazyValue\n },\n set (val: File | File[]) {\n this.lazyValue = val\n this.$emit('change', this.lazyValue)\n },\n },\n isDirty (): boolean {\n return this.internalArrayValue.length > 0\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n text (): string[] {\n if (!this.isDirty && (this.persistentPlaceholder || this.isFocused || !this.hasLabel)) return [this.placeholder]\n\n return this.internalArrayValue.map((file: File) => {\n const {\n name = '',\n size = 0,\n } = file\n\n const truncatedText = this.truncateText(name)\n\n return !this.showSize\n ? truncatedText\n : `${truncatedText} (${humanReadableFileSize(size, this.base === 1024)})`\n })\n },\n base (): 1000 | 1024 | undefined {\n return typeof this.showSize !== 'boolean' ? this.showSize : undefined\n },\n hasChips (): boolean {\n return this.chips || this.smallChips\n },\n },\n\n watch: {\n readonly: {\n handler (v) {\n if (v === true) consoleError('readonly is not supported on ', this)\n },\n immediate: true,\n },\n value (v) {\n const value = this.multiple ? v : v ? [v] : []\n if (!deepEqual(value, this.$refs.input.files)) {\n // When the input value is changed programatically, clear the\n // internal input's value so that the `onInput` handler\n // can be triggered again if the user re-selects the exact\n // same file(s). Ideally, `input.files` should be\n // manipulated directly but that property is readonly.\n this.$refs.input.value = ''\n }\n },\n },\n\n methods: {\n clearableCallback () {\n this.internalValue = this.multiple ? [] : null\n this.$refs.input.value = ''\n },\n genChips () {\n if (!this.isDirty) return []\n\n return this.text.map((text, index) => this.$createElement(VChip, {\n props: { small: this.smallChips },\n on: {\n 'click:close': () => {\n const internalValue = this.internalValue\n internalValue.splice(index, 1)\n this.internalValue = internalValue // Trigger the watcher\n },\n },\n }, [text]))\n },\n genControl () {\n const render = VTextField.options.methods.genControl.call(this)\n\n if (this.hideInput) {\n render.data!.style = mergeStyles(\n render.data!.style,\n { display: 'none' }\n )\n }\n\n return render\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.data!.attrs!.multiple = this.multiple\n\n // We should not be setting value\n // programmatically on the input\n // when it is using type=\"file\"\n delete input.data!.domProps!.value\n\n // This solves an issue in Safari where\n // nothing happens when adding a file\n // do to the input event not firing\n // https://github.com/vuetifyjs/vuetify/issues/7941\n delete input.data!.on!.input\n input.data!.on!.change = this.onInput\n\n return [this.genSelections(), input]\n },\n genPrependSlot () {\n if (!this.prependIcon) return null\n\n const icon = this.genIcon('prepend', () => {\n this.$refs.input.click()\n })\n\n return this.genSlot('prepend', 'outer', [icon])\n },\n genSelectionText (): string[] {\n const length = this.text.length\n\n if (length < 2) return this.text\n if (this.showSize && !this.counter) return [this.computedCounterValue]\n return [this.$vuetify.lang.t(this.counterString, length)]\n },\n genSelections () {\n const children = []\n\n if (this.isDirty && this.$scopedSlots.selection) {\n this.internalArrayValue.forEach((file: File, index: number) => {\n if (!this.$scopedSlots.selection) return\n\n children.push(\n this.$scopedSlots.selection({\n text: this.text[index],\n file,\n index,\n })\n )\n })\n } else {\n children.push(this.hasChips && this.isDirty ? this.genChips() : this.genSelectionText())\n }\n\n return this.$createElement('div', {\n staticClass: 'v-file-input__text',\n class: {\n 'v-file-input__text--placeholder': this.placeholder && !this.isDirty,\n 'v-file-input__text--chips': this.hasChips && !this.$scopedSlots.selection,\n },\n }, children)\n },\n genTextFieldSlot () {\n const node = VTextField.options.methods.genTextFieldSlot.call(this)\n\n node.data!.on = {\n ...(node.data!.on || {}),\n click: () => this.$refs.input.click(),\n }\n\n return node\n },\n onInput (e: Event) {\n const files = [...(e.target as HTMLInputElement).files || []]\n\n this.internalValue = this.multiple ? files : files[0]\n\n // Set initialValue here otherwise isFocused\n // watcher in VTextField will emit a change\n // event whenever the component is blurred\n this.initialValue = this.internalValue\n },\n onKeyDown (e: KeyboardEvent) {\n this.$emit('keydown', e)\n },\n truncateText (str: string) {\n if (str.length < Number(this.truncateLength)) return str\n const charsKeepOneSide = Math.floor((Number(this.truncateLength) - 1) / 2)\n return `${str.slice(0, charsKeepOneSide)}…${str.slice(str.length - charsKeepOneSide)}`\n },\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","import './_grid.sass'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nexport default createSimpleFunctional('spacer', 'div', 'v-spacer')\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","import VIcon from './VIcon'\n\nexport { VIcon }\nexport default VIcon\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n name: 'v-responsive',\n\n props: {\n aspectRatio: [String, Number] as NumberOrNumberString,\n contentClass: String,\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.aspectRatio)\n },\n aspectStyle (): object | undefined {\n return this.computedAspectRatio\n ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n : undefined\n },\n __cachedSizer (): VNode | [] {\n if (!this.aspectStyle) return []\n\n return this.$createElement('div', {\n style: this.aspectStyle,\n staticClass: 'v-responsive__sizer',\n })\n },\n },\n\n methods: {\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-responsive__content',\n class: this.contentClass,\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-responsive',\n style: this.measurableStyles,\n on: this.$listeners,\n }, [\n this.__cachedSizer,\n this.genContent(),\n ])\n },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","// Styles\nimport './VMessages.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport mixins from '../../util/mixins'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n name: 'v-messages',\n\n props: {\n value: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n },\n\n methods: {\n genChildren () {\n return this.$createElement('transition-group', {\n staticClass: 'v-messages__wrapper',\n attrs: {\n name: 'message-transition',\n tag: 'div',\n },\n }, this.value.map(this.genMessage))\n },\n genMessage (message: string, key: number) {\n return this.$createElement('div', {\n staticClass: 'v-messages__message',\n key,\n }, getSlot(this, 'default', { message, key }) || [message])\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-messages',\n class: this.themeClasses,\n }), [this.genChildren()])\n },\n})\n","import VMessages from './VMessages'\n\nexport { VMessages }\nexport default VMessages\n","// Styles\nimport './VInput.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VLabel from '../VLabel'\nimport VMessages from '../VMessages'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Validatable from '../../mixins/validatable'\n\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n kebabCase,\n} from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n// Types\nimport { VNode, VNodeData, PropType } from 'vue'\nimport mixins from '../../util/mixins'\nimport { InputValidationRule } from 'vuetify/types'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Validatable,\n)\n\ninterface options extends InstanceType {\n /* eslint-disable-next-line camelcase */\n $_modelEvent: string\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-input',\n\n inheritAttrs: false,\n\n props: {\n appendIcon: String,\n backgroundColor: {\n type: String,\n default: '',\n },\n dense: Boolean,\n height: [Number, String],\n hideDetails: [Boolean, String] as PropType,\n hideSpinButtons: Boolean,\n hint: String,\n id: String,\n label: String,\n loading: Boolean,\n persistentHint: Boolean,\n prependIcon: String,\n value: null as any as PropType,\n },\n\n data () {\n return {\n lazyValue: this.value,\n hasMouseDown: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-input--has-state': this.hasState,\n 'v-input--hide-details': !this.showDetails,\n 'v-input--is-label-active': this.isLabelActive,\n 'v-input--is-dirty': this.isDirty,\n 'v-input--is-disabled': this.isDisabled,\n 'v-input--is-focused': this.isFocused,\n // .loading === '' so we can't just cast to boolean\n 'v-input--is-loading': this.loading !== false && this.loading != null,\n 'v-input--is-readonly': this.isReadonly,\n 'v-input--dense': this.dense,\n 'v-input--hide-spin-buttons': this.hideSpinButtons,\n ...this.themeClasses,\n }\n },\n computedId (): string {\n return this.id || `input-${this._uid}`\n },\n hasDetails (): boolean {\n return this.messagesToDisplay.length > 0\n },\n hasHint (): boolean {\n return !this.hasMessages &&\n !!this.hint &&\n (this.persistentHint || this.isFocused)\n },\n hasLabel (): boolean {\n return !!(this.$slots.label || this.label)\n },\n // Proxy for `lazyValue`\n // This allows an input\n // to function without\n // a provided model\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit(this.$_modelEvent, val)\n },\n },\n isDirty (): boolean {\n return !!this.lazyValue\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n messagesToDisplay (): string[] {\n if (this.hasHint) return [this.hint]\n\n if (!this.hasMessages) return []\n\n return this.validations.map((validation: string | InputValidationRule) => {\n if (typeof validation === 'string') return validation\n\n const validationResult = validation(this.internalValue)\n\n return typeof validationResult === 'string' ? validationResult : ''\n }).filter(message => message !== '')\n },\n showDetails (): boolean {\n return this.hideDetails === false || (this.hideDetails === 'auto' && this.hasDetails)\n },\n },\n\n watch: {\n value (val) {\n this.lazyValue = val\n },\n },\n\n beforeCreate () {\n // v-radio-group needs to emit a different event\n // https://github.com/vuetifyjs/vuetify/issues/4752\n this.$_modelEvent = (this.$options.model && this.$options.model.event) || 'input'\n },\n\n methods: {\n genContent () {\n return [\n this.genPrependSlot(),\n this.genControl(),\n this.genAppendSlot(),\n ]\n },\n genControl () {\n return this.$createElement('div', {\n staticClass: 'v-input__control',\n attrs: { title: this.attrs$.title },\n }, [\n this.genInputSlot(),\n this.genMessages(),\n ])\n },\n genDefaultSlot () {\n return [\n this.genLabel(),\n this.$slots.default,\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData: VNodeData = {}\n ) {\n const icon = (this as any)[`${type}Icon`]\n const eventName = `click:${kebabCase(type)}`\n const hasListener = !!(this.listeners$[eventName] || cb)\n\n const data = mergeData({\n attrs: {\n 'aria-label': hasListener ? kebabCase(type).split('-')[0] + ' icon' : undefined,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n light: this.light,\n },\n on: !hasListener\n ? undefined\n : {\n click: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n\n this.$emit(eventName, e)\n cb && cb(e)\n },\n // Container has g event that will\n // trigger menu open if enclosed\n mouseup: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n },\n },\n }, extraData)\n\n return this.$createElement('div', {\n staticClass: `v-input__icon`,\n class: type ? `v-input__icon--${kebabCase(type)}` : undefined,\n }, [\n this.$createElement(\n VIcon,\n data,\n icon\n ),\n ])\n },\n genInputSlot () {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor, {\n staticClass: 'v-input__slot',\n style: { height: convertToUnit(this.height) },\n on: {\n click: this.onClick,\n mousedown: this.onMouseDown,\n mouseup: this.onMouseUp,\n },\n ref: 'input-slot',\n }), [this.genDefaultSlot()])\n },\n genLabel () {\n if (!this.hasLabel) return null\n\n return this.$createElement(VLabel, {\n props: {\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: this.hasState,\n for: this.computedId,\n light: this.light,\n },\n }, this.$slots.label || this.label)\n },\n genMessages () {\n if (!this.showDetails) return null\n\n return this.$createElement(VMessages, {\n props: {\n color: this.hasHint ? '' : this.validationState,\n dark: this.dark,\n light: this.light,\n value: this.messagesToDisplay,\n },\n attrs: {\n role: this.hasMessages ? 'alert' : null,\n },\n scopedSlots: {\n default: props => getSlot(this, 'message', props),\n },\n })\n },\n genSlot (\n type: string,\n location: string,\n slot: (VNode | VNode[])[]\n ) {\n if (!slot.length) return null\n\n const ref = `${type}-${location}`\n\n return this.$createElement('div', {\n staticClass: `v-input__${ref}`,\n ref,\n }, slot)\n },\n genPrependSlot () {\n const slot = []\n\n if (this.$slots.prepend) {\n slot.push(this.$slots.prepend)\n } else if (this.prependIcon) {\n slot.push(this.genIcon('prepend'))\n }\n\n return this.genSlot('prepend', 'outer', slot)\n },\n genAppendSlot () {\n const slot = []\n\n // Append icon for text field was really\n // an appended inner icon, v-text-field\n // will overwrite this method in order to obtain\n // backwards compat\n if (this.$slots.append) {\n slot.push(this.$slots.append)\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n onClick (e: Event) {\n this.$emit('click', e)\n },\n onMouseDown (e: Event) {\n this.hasMouseDown = true\n this.$emit('mousedown', e)\n },\n onMouseUp (e: Event) {\n this.hasMouseDown = false\n this.$emit('mouseup', e)\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.validationState, {\n staticClass: 'v-input',\n class: this.classes,\n }), this.genContent())\n },\n})\n","import VInput from './VInput'\n\nexport { VInput }\nexport default VInput\n","// Styles\nimport './VItemGroup.sass'\n\n// Mixins\nimport Comparable from '../../mixins/comparable'\nimport Groupable from '../../mixins/groupable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue/types'\n\nexport type GroupableInstance = InstanceType & {\n id?: string\n to?: any\n value?: any\n }\n\nexport const BaseItemGroup = mixins(\n Comparable,\n Proxyable,\n Themeable\n).extend({\n name: 'base-item-group',\n\n props: {\n activeClass: {\n type: String,\n default: 'v-item--active',\n },\n mandatory: Boolean,\n max: {\n type: [Number, String],\n default: null,\n },\n multiple: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n data () {\n return {\n // As long as a value is defined, show it\n // Otherwise, check if multiple\n // to determine which default to provide\n internalLazyValue: this.value !== undefined\n ? this.value\n : this.multiple ? [] : undefined,\n items: [] as GroupableInstance[],\n }\n },\n\n computed: {\n classes (): Record {\n return {\n 'v-item-group': true,\n ...this.themeClasses,\n }\n },\n selectedIndex (): number {\n return (this.selectedItem && this.items.indexOf(this.selectedItem)) || -1\n },\n selectedItem (): GroupableInstance | undefined {\n if (this.multiple) return undefined\n\n return this.selectedItems[0]\n },\n selectedItems (): GroupableInstance[] {\n return this.items.filter((item, index) => {\n return this.toggleMethod(this.getValue(item, index))\n })\n },\n selectedValues (): any[] {\n if (this.internalValue == null) return []\n\n return Array.isArray(this.internalValue)\n ? this.internalValue\n : [this.internalValue]\n },\n toggleMethod (): (v: any) => boolean {\n if (!this.multiple) {\n return (v: any) => this.valueComparator(this.internalValue, v)\n }\n\n const internalValue = this.internalValue\n if (Array.isArray(internalValue)) {\n return (v: any) => internalValue.some(intern => this.valueComparator(intern, v))\n }\n\n return () => false\n },\n },\n\n watch: {\n internalValue: 'updateItemsState',\n items: 'updateItemsState',\n },\n\n created () {\n if (this.multiple && !Array.isArray(this.internalValue)) {\n consoleWarn('Model must be bound to an array if the multiple property is true.', this)\n }\n },\n\n methods: {\n\n genData (): object {\n return {\n class: this.classes,\n }\n },\n getValue (item: GroupableInstance, i: number): unknown {\n return item.value === undefined\n ? i\n : item.value\n },\n onClick (item: GroupableInstance) {\n this.updateInternalValue(\n this.getValue(item, this.items.indexOf(item))\n )\n },\n register (item: GroupableInstance) {\n const index = this.items.push(item) - 1\n\n item.$on('change', () => this.onClick(item))\n\n // If no value provided and mandatory,\n // assign first registered item\n if (this.mandatory && !this.selectedValues.length) {\n this.updateMandatory()\n }\n\n this.updateItem(item, index)\n },\n unregister (item: GroupableInstance) {\n if (this._isDestroyed) return\n\n const index = this.items.indexOf(item)\n const value = this.getValue(item, index)\n\n this.items.splice(index, 1)\n\n const valueIndex = this.selectedValues.indexOf(value)\n\n // Items is not selected, do nothing\n if (valueIndex < 0) return\n\n // If not mandatory, use regular update process\n if (!this.mandatory) {\n return this.updateInternalValue(value)\n }\n\n // Remove the value\n if (this.multiple && Array.isArray(this.internalValue)) {\n this.internalValue = this.internalValue.filter(v => v !== value)\n } else {\n this.internalValue = undefined\n }\n\n // If mandatory and we have no selection\n // add the last item as value\n /* istanbul ignore else */\n if (!this.selectedItems.length) {\n this.updateMandatory(true)\n }\n },\n updateItem (item: GroupableInstance, index: number) {\n const value = this.getValue(item, index)\n\n item.isActive = this.toggleMethod(value)\n },\n // https://github.com/vuetifyjs/vuetify/issues/5352\n updateItemsState () {\n this.$nextTick(() => {\n if (this.mandatory &&\n !this.selectedItems.length\n ) {\n return this.updateMandatory()\n }\n\n // TODO: Make this smarter so it\n // doesn't have to iterate every\n // child in an update\n this.items.forEach(this.updateItem)\n })\n },\n updateInternalValue (value: any) {\n this.multiple\n ? this.updateMultiple(value)\n : this.updateSingle(value)\n },\n updateMandatory (last?: boolean) {\n if (!this.items.length) return\n\n const items = this.items.slice()\n\n if (last) items.reverse()\n\n const item = items.find(item => !item.disabled)\n\n // If no tabs are available\n // aborts mandatory value\n if (!item) return\n\n const index = this.items.indexOf(item)\n\n this.updateInternalValue(\n this.getValue(item, index)\n )\n },\n updateMultiple (value: any) {\n const defaultValue = Array.isArray(this.internalValue)\n ? this.internalValue\n : []\n const internalValue = defaultValue.slice()\n const index = internalValue.findIndex(val => val === value)\n\n if (\n this.mandatory &&\n // Item already exists\n index > -1 &&\n // value would be reduced below min\n internalValue.length - 1 < 1\n ) return\n\n if (\n // Max is set\n this.max != null &&\n // Item doesn't exist\n index < 0 &&\n // value would be increased above max\n internalValue.length + 1 > this.max\n ) return\n\n index > -1\n ? internalValue.splice(index, 1)\n : internalValue.push(value)\n\n this.internalValue = internalValue\n },\n updateSingle (value: any) {\n const isSame = value === this.internalValue\n\n if (this.mandatory && isSame) return\n\n this.internalValue = isSame ? undefined : value\n },\n },\n\n render (h): VNode {\n return h(this.tag, this.genData(), this.$slots.default)\n },\n})\n\nexport default BaseItemGroup.extend({\n name: 'v-item-group',\n\n provide (): object {\n return {\n itemGroup: this,\n }\n },\n})\n","// Styles\nimport './VLabel.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable, { functionalThemeClasses } from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Themeable).extend({\n name: 'v-label',\n\n functional: true,\n\n props: {\n absolute: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n disabled: Boolean,\n focused: Boolean,\n for: String,\n left: {\n type: [Number, String],\n default: 0,\n },\n right: {\n type: [Number, String],\n default: 'auto',\n },\n value: Boolean,\n },\n\n render (h, ctx): VNode {\n const { children, listeners, props } = ctx\n const data = {\n staticClass: 'v-label',\n class: {\n 'v-label--active': props.value,\n 'v-label--is-disabled': props.disabled,\n ...functionalThemeClasses(ctx),\n },\n attrs: {\n for: props.for,\n 'aria-hidden': !props.for,\n },\n on: listeners,\n style: {\n left: convertToUnit(props.left),\n right: convertToUnit(props.right),\n position: props.absolute ? 'absolute' : 'relative',\n },\n ref: 'label',\n }\n\n return h('label', Colorable.options.methods.setTextColor(props.focused && props.color, data), children)\n },\n})\n","import VLabel from './VLabel'\n\nexport { VLabel }\nexport default VLabel\n","// Styles\nimport './VList.sass'\nimport VListGroup from './VListGroup'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\n\n// Types\nimport { VNode } from 'vue'\n\ntype VListGroupInstance = InstanceType\n\ninterface options extends InstanceType {\n isInMenu: boolean\n isInNav: boolean\n}\n\n/* @vue/component */\nexport default VSheet.extend().extend({\n name: 'v-list',\n\n provide (): object {\n return {\n isInList: true,\n list: this,\n }\n },\n\n inject: {\n isInMenu: {\n default: false,\n },\n isInNav: {\n default: false,\n },\n },\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n expand: Boolean,\n flat: Boolean,\n nav: Boolean,\n rounded: Boolean,\n subheader: Boolean,\n threeLine: Boolean,\n twoLine: Boolean,\n },\n\n data: () => ({\n groups: [] as VListGroupInstance[],\n }),\n\n computed: {\n classes (): object {\n return {\n ...VSheet.options.computed.classes.call(this),\n 'v-list--dense': this.dense,\n 'v-list--disabled': this.disabled,\n 'v-list--flat': this.flat,\n 'v-list--nav': this.nav,\n 'v-list--rounded': this.rounded,\n 'v-list--subheader': this.subheader,\n 'v-list--two-line': this.twoLine,\n 'v-list--three-line': this.threeLine,\n }\n },\n },\n\n methods: {\n register (content: VListGroupInstance) {\n this.groups.push(content)\n },\n unregister (content: VListGroupInstance) {\n const index = this.groups.findIndex(g => g._uid === content._uid)\n\n if (index > -1) this.groups.splice(index, 1)\n },\n listClick (uid: number) {\n if (this.expand) return\n\n for (const group of this.groups) {\n group.toggle(uid)\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-list',\n class: this.classes,\n style: this.styles,\n attrs: {\n role: this.isInNav || this.isInMenu ? undefined : 'list',\n ...this.attrs$,\n },\n }\n\n return h(this.tag, this.setBackgroundColor(this.color, data), [this.$slots.default])\n },\n})\n","// Styles\nimport './VListItem.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Routable from '../../mixins/routable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\n\n// Directives\nimport Ripple from '../../directives/ripple'\n\n// Utilities\nimport { keyCodes } from './../../util/helpers'\nimport { ExtractVue } from './../../util/mixins'\nimport { removed } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode } from 'vue'\nimport { PropType, PropValidator } from 'vue/types/options'\n\nconst baseMixins = mixins(\n Colorable,\n Routable,\n Themeable,\n GroupableFactory('listItemGroup'),\n ToggleableFactory('inputValue')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n isInGroup: boolean\n isInList: boolean\n isInMenu: boolean\n isInNav: boolean\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-list-item',\n\n directives: {\n Ripple,\n },\n\n inject: {\n isInGroup: {\n default: false,\n },\n isInList: {\n default: false,\n },\n isInMenu: {\n default: false,\n },\n isInNav: {\n default: false,\n },\n },\n\n inheritAttrs: false,\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.listItemGroup) return ''\n\n return this.listItemGroup.activeClass\n },\n } as any as PropValidator,\n dense: Boolean,\n inactive: Boolean,\n link: Boolean,\n selectable: {\n type: Boolean,\n },\n tag: {\n type: String,\n default: 'div',\n },\n threeLine: Boolean,\n twoLine: Boolean,\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-list-item--active',\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-list-item': true,\n ...Routable.options.computed.classes.call(this),\n 'v-list-item--dense': this.dense,\n 'v-list-item--disabled': this.disabled,\n 'v-list-item--link': this.isClickable && !this.inactive,\n 'v-list-item--selectable': this.selectable,\n 'v-list-item--three-line': this.threeLine,\n 'v-list-item--two-line': this.twoLine,\n ...this.themeClasses,\n }\n },\n isClickable (): boolean {\n return Boolean(\n Routable.options.computed.isClickable.call(this) ||\n this.listItemGroup\n )\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('avatar')) {\n removed('avatar', this)\n }\n },\n\n methods: {\n click (e: MouseEvent | KeyboardEvent) {\n if (e.detail) this.$el.blur()\n\n this.$emit('click', e)\n\n this.to || this.toggle()\n },\n genAttrs () {\n const attrs: Record = {\n 'aria-disabled': this.disabled ? true : undefined,\n tabindex: this.isClickable && !this.disabled ? 0 : -1,\n ...this.$attrs,\n }\n\n if (this.$attrs.hasOwnProperty('role')) {\n // do nothing, role already provided\n } else if (this.isInNav) {\n // do nothing, role is inherit\n } else if (this.isInGroup) {\n attrs.role = 'option'\n attrs['aria-selected'] = String(this.isActive)\n } else if (this.isInMenu) {\n attrs.role = this.isClickable ? 'menuitem' : undefined\n attrs.id = attrs.id || `list-item-${this._uid}`\n } else if (this.isInList) {\n attrs.role = 'listitem'\n }\n\n return attrs\n },\n toggle () {\n if (this.to && this.inputValue === undefined) {\n this.isActive = !this.isActive\n }\n this.$emit('change')\n },\n },\n\n render (h): VNode {\n let { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n ...this.genAttrs(),\n }\n data[this.to ? 'nativeOn' : 'on'] = {\n ...data[this.to ? 'nativeOn' : 'on'],\n keydown: (e: KeyboardEvent) => {\n /* istanbul ignore else */\n if (e.keyCode === keyCodes.enter) this.click(e)\n\n this.$emit('keydown', e)\n },\n }\n\n if (this.inactive) tag = 'div'\n if (this.inactive && this.to) {\n data.on = data.nativeOn\n delete data.nativeOn\n }\n\n const children = this.$scopedSlots.default\n ? this.$scopedSlots.default({\n active: this.isActive,\n toggle: this.toggle,\n })\n : this.$slots.default\n\n return h(tag, this.isActive ? this.setTextColor(this.color, data) : data, children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-list-item-action',\n\n functional: true,\n\n render (h, { data, children = [] }): VNode {\n data.staticClass = data.staticClass ? `v-list-item__action ${data.staticClass}` : 'v-list-item__action'\n const filteredChild = children.filter(VNode => {\n return VNode.isComment === false && VNode.text !== ' '\n })\n if (filteredChild.length > 1) data.staticClass += ' v-list-item__action--stack'\n\n return h('div', data, children)\n },\n})\n","// Styles\nimport './VListItemGroup.sass'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport default mixins(\n BaseItemGroup,\n Colorable\n).extend({\n name: 'v-list-item-group',\n\n provide () {\n return {\n isInGroup: true,\n listItemGroup: this,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-list-item-group': true,\n }\n },\n },\n\n methods: {\n genData (): object {\n return this.setTextColor(this.color, {\n ...BaseItemGroup.options.methods.genData.call(this),\n attrs: {\n role: 'listbox',\n },\n })\n },\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-list-item-icon',\n\n functional: true,\n\n render (h, { data, children }): VNode {\n data.staticClass = (`v-list-item__icon ${data.staticClass || ''}`).trim()\n\n return h('div', data, children)\n },\n})\n","// Styles\nimport './VListGroup.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VList from './VList'\nimport VListItem from './VListItem'\nimport VListItemIcon from './VListItemIcon'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Bootable from '../../mixins/bootable'\nimport Colorable from '../../mixins/colorable'\nimport Toggleable from '../../mixins/toggleable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Transitions\nimport { VExpandTransition } from '../transitions'\n\n// Utils\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport { Route } from 'vue-router'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Bootable,\n Colorable,\n RegistrableInject('list'),\n Toggleable\n)\n\ntype VListInstance = InstanceType\n\ninterface options extends ExtractVue {\n list: VListInstance\n $refs: {\n group: HTMLElement\n }\n $route: Route\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-list-group',\n\n directives: { ripple },\n\n props: {\n activeClass: {\n type: String,\n default: '',\n },\n appendIcon: {\n type: String,\n default: '$expand',\n },\n color: {\n type: String,\n default: 'primary',\n },\n disabled: Boolean,\n group: [String, RegExp],\n noAction: Boolean,\n prependIcon: String,\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n subGroup: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-list-group--active': this.isActive,\n 'v-list-group--disabled': this.disabled,\n 'v-list-group--no-action': this.noAction,\n 'v-list-group--sub-group': this.subGroup,\n }\n },\n },\n\n watch: {\n isActive (val: boolean) {\n /* istanbul ignore else */\n if (!this.subGroup && val) {\n this.list && this.list.listClick(this._uid)\n }\n },\n $route: 'onRouteChange',\n },\n\n created () {\n this.list && this.list.register(this)\n\n if (this.group &&\n this.$route &&\n this.value == null\n ) {\n this.isActive = this.matchRoute(this.$route.path)\n }\n },\n\n beforeDestroy () {\n this.list && this.list.unregister(this)\n },\n\n methods: {\n click (e: Event) {\n if (this.disabled) return\n\n this.isBooted = true\n\n this.$emit('click', e)\n this.$nextTick(() => (this.isActive = !this.isActive))\n },\n genIcon (icon: string | false): VNode {\n return this.$createElement(VIcon, icon)\n },\n genAppendIcon (): VNode | null {\n const icon = !this.subGroup ? this.appendIcon : false\n\n if (!icon && !this.$slots.appendIcon) return null\n\n return this.$createElement(VListItemIcon, {\n staticClass: 'v-list-group__header__append-icon',\n }, [\n this.$slots.appendIcon || this.genIcon(icon),\n ])\n },\n genHeader (): VNode {\n return this.$createElement(VListItem, {\n staticClass: 'v-list-group__header',\n attrs: {\n 'aria-expanded': String(this.isActive),\n role: 'button',\n },\n class: {\n [this.activeClass]: this.isActive,\n },\n props: {\n inputValue: this.isActive,\n },\n directives: [{\n name: 'ripple',\n value: this.ripple,\n }],\n on: {\n ...this.listeners$,\n click: this.click,\n },\n }, [\n this.genPrependIcon(),\n this.$slots.activator,\n this.genAppendIcon(),\n ])\n },\n genItems (): VNode[] {\n return this.showLazyContent(() => [\n this.$createElement('div', {\n staticClass: 'v-list-group__items',\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }, getSlot(this)),\n ])\n },\n genPrependIcon (): VNode | null {\n const icon = this.subGroup && this.prependIcon == null\n ? '$subgroup'\n : this.prependIcon\n\n if (!icon && !this.$slots.prependIcon) return null\n\n return this.$createElement(VListItemIcon, {\n staticClass: 'v-list-group__header__prepend-icon',\n }, [\n this.$slots.prependIcon || this.genIcon(icon),\n ])\n },\n onRouteChange (to: Route) {\n /* istanbul ignore if */\n if (!this.group) return\n\n const isActive = this.matchRoute(to.path)\n\n /* istanbul ignore else */\n if (isActive && this.isActive !== isActive) {\n this.list && this.list.listClick(this._uid)\n }\n\n this.isActive = isActive\n },\n toggle (uid: number) {\n const isActive = this._uid === uid\n\n if (isActive) this.isBooted = true\n this.$nextTick(() => (this.isActive = isActive))\n },\n matchRoute (to: string) {\n return to.match(this.group) !== null\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.isActive && this.color, {\n staticClass: 'v-list-group',\n class: this.classes,\n }), [\n this.genHeader(),\n h(VExpandTransition, this.genItems()),\n ])\n },\n})\n","import VAvatar from './VAvatar'\n\nexport { VAvatar }\nexport default VAvatar\n","// Components\nimport VAvatar from '../VAvatar'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default VAvatar.extend({\n name: 'v-list-item-avatar',\n\n props: {\n horizontal: Boolean,\n size: {\n type: [Number, String],\n default: 40,\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-list-item__avatar--horizontal': this.horizontal,\n ...VAvatar.options.computed.classes.call(this),\n 'v-avatar--tile': this.tile || this.horizontal,\n }\n },\n },\n\n render (h): VNode {\n const render = VAvatar.options.render.call(this, h)\n\n render.data = render.data || {}\n render.data.staticClass += ' v-list-item__avatar'\n\n return render\n },\n})\n","import { createSimpleFunctional } from '../../util/helpers'\n\nimport VList from './VList'\nimport VListGroup from './VListGroup'\nimport VListItem from './VListItem'\nimport VListItemGroup from './VListItemGroup'\nimport VListItemAction from './VListItemAction'\nimport VListItemAvatar from './VListItemAvatar'\nimport VListItemIcon from './VListItemIcon'\n\nexport const VListItemActionText = createSimpleFunctional('v-list-item__action-text', 'span')\nexport const VListItemContent = createSimpleFunctional('v-list-item__content', 'div')\nexport const VListItemTitle = createSimpleFunctional('v-list-item__title', 'div')\nexport const VListItemSubtitle = createSimpleFunctional('v-list-item__subtitle', 'div')\n\nexport {\n VList,\n VListGroup,\n VListItem,\n VListItemAction,\n VListItemAvatar,\n VListItemIcon,\n VListItemGroup,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VList,\n VListGroup,\n VListItem,\n VListItemAction,\n VListItemActionText,\n VListItemAvatar,\n VListItemContent,\n VListItemGroup,\n VListItemIcon,\n VListItemSubtitle,\n VListItemTitle,\n },\n}\n","// Styles\nimport './VMain.sass'\n\n// Mixins\nimport SSRBootable from '../../mixins/ssr-bootable'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default SSRBootable.extend({\n name: 'v-main',\n\n props: {\n tag: {\n type: String,\n default: 'main',\n },\n },\n\n computed: {\n styles (): object {\n const {\n bar, top, right, footer, insetFooter, bottom, left,\n } = this.$vuetify.application\n\n return {\n paddingTop: `${top + bar}px`,\n paddingRight: `${right}px`,\n paddingBottom: `${footer + insetFooter + bottom}px`,\n paddingLeft: `${left}px`,\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-main',\n style: this.styles,\n ref: 'main',\n }\n\n return h(this.tag, data, [\n h(\n 'div',\n { staticClass: 'v-main__wrap' },\n this.$slots.default\n ),\n ])\n },\n})\n","// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Menuable from '../../mixins/menuable'\nimport Returnable from '../../mixins/returnable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\nimport goTo from '../../services/goto'\n\n// Types\nimport { VNode, VNodeDirective, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Delayable,\n Returnable,\n Roundable,\n Themeable,\n Menuable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-menu',\n\n directives: {\n ClickOutside,\n Resize,\n },\n\n provide (): object {\n return {\n isInMenu: true,\n // Pass theme through to default slot\n theme: this.theme,\n }\n },\n\n props: {\n auto: Boolean,\n closeOnClick: {\n type: Boolean,\n default: true,\n },\n closeOnContentClick: {\n type: Boolean,\n default: true,\n },\n disabled: Boolean,\n disableKeys: Boolean,\n maxHeight: {\n type: [Number, String],\n default: 'auto',\n },\n offsetX: Boolean,\n offsetY: Boolean,\n openOnHover: Boolean,\n origin: {\n type: String,\n default: 'top left',\n },\n transition: {\n type: [Boolean, String],\n default: 'v-menu-transition',\n },\n },\n\n data () {\n return {\n calculatedTopAuto: 0,\n defaultOffset: 8,\n hasJustFocused: false,\n listIndex: -1,\n resizeTimeout: 0,\n selectedIndex: null as null | number,\n tiles: [] as HTMLElement[],\n }\n },\n\n computed: {\n activeTile (): HTMLElement | undefined {\n return this.tiles[this.listIndex]\n },\n calculatedLeft (): string {\n const menuWidth = Math.max(this.dimensions.content.width, parseFloat(this.calculatedMinWidth))\n\n if (!this.auto) return this.calcLeft(menuWidth) || '0'\n\n return convertToUnit(this.calcXOverflow(this.calcLeftAuto(), menuWidth)) || '0'\n },\n calculatedMaxHeight (): string {\n const height = this.auto\n ? '200px'\n : convertToUnit(this.maxHeight)\n\n return height || '0'\n },\n calculatedMaxWidth (): string {\n return convertToUnit(this.maxWidth) || '0'\n },\n calculatedMinWidth (): string {\n if (this.minWidth) {\n return convertToUnit(this.minWidth) || '0'\n }\n\n const minWidth = Math.min(\n this.dimensions.activator.width +\n Number(this.nudgeWidth) +\n (this.auto ? 16 : 0),\n Math.max(this.pageWidth - 24, 0)\n )\n\n const calculatedMaxWidth = isNaN(parseInt(this.calculatedMaxWidth))\n ? minWidth\n : parseInt(this.calculatedMaxWidth)\n\n return convertToUnit(Math.min(\n calculatedMaxWidth,\n minWidth\n )) || '0'\n },\n calculatedTop (): string {\n const top = !this.auto\n ? this.calcTop()\n : convertToUnit(this.calcYOverflow(this.calculatedTopAuto))\n\n return top || '0'\n },\n hasClickableTiles (): boolean {\n return Boolean(this.tiles.find(tile => tile.tabIndex > -1))\n },\n styles (): object {\n return {\n maxHeight: this.calculatedMaxHeight,\n minWidth: this.calculatedMinWidth,\n maxWidth: this.calculatedMaxWidth,\n top: this.calculatedTop,\n left: this.calculatedLeft,\n transformOrigin: this.origin,\n zIndex: this.zIndex || this.activeZIndex,\n }\n },\n },\n\n watch: {\n isActive (val) {\n if (!val) this.listIndex = -1\n },\n isContentActive (val) {\n this.hasJustFocused = val\n },\n listIndex (next, prev) {\n if (next in this.tiles) {\n const tile = this.tiles[next]\n tile.classList.add('v-list-item--highlighted')\n const scrollTop = this.$refs.content.scrollTop\n const contentHeight = this.$refs.content.clientHeight\n\n if (scrollTop > tile.offsetTop - 8) {\n goTo(tile.offsetTop - tile.clientHeight, {\n appOffset: false,\n duration: 300,\n container: this.$refs.content,\n })\n } else if (scrollTop + contentHeight < tile.offsetTop + tile.clientHeight + 8) {\n goTo(tile.offsetTop - contentHeight + tile.clientHeight * 2, {\n appOffset: false,\n duration: 300,\n container: this.$refs.content,\n })\n }\n }\n\n prev in this.tiles &&\n this.tiles[prev].classList.remove('v-list-item--highlighted')\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n mounted () {\n this.isActive && this.callActivate()\n },\n\n methods: {\n activate () {\n // Update coordinates and dimensions of menu\n // and its activator\n this.updateDimensions()\n // Start the transition\n requestAnimationFrame(() => {\n // Once transitioning, calculate scroll and top position\n this.startTransition().then(() => {\n if (this.$refs.content) {\n this.calculatedTopAuto = this.calcTopAuto()\n this.auto && (this.$refs.content.scrollTop = this.calcScrollPosition())\n }\n })\n })\n },\n calcScrollPosition () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement\n const maxScrollTop = $el.scrollHeight - $el.offsetHeight\n\n return activeTile\n ? Math.min(maxScrollTop, Math.max(0, activeTile.offsetTop - $el.offsetHeight / 2 + activeTile.offsetHeight / 2))\n : $el.scrollTop\n },\n calcLeftAuto () {\n return parseInt(this.dimensions.activator.left - this.defaultOffset * 2)\n },\n calcTopAuto () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement | null\n\n if (!activeTile) {\n this.selectedIndex = null\n }\n\n if (this.offsetY || !activeTile) {\n return this.computedTop\n }\n\n this.selectedIndex = Array.from(this.tiles).indexOf(activeTile)\n\n const tileDistanceFromMenuTop = activeTile.offsetTop - this.calcScrollPosition()\n const firstTileOffsetTop = ($el.querySelector('.v-list-item') as HTMLElement).offsetTop\n\n return this.computedTop - tileDistanceFromMenuTop - firstTileOffsetTop - 1\n },\n changeListIndex (e: KeyboardEvent) {\n // For infinite scroll and autocomplete, re-evaluate children\n this.getTiles()\n\n if (!this.isActive || !this.hasClickableTiles) {\n return\n } else if (e.keyCode === keyCodes.tab) {\n this.isActive = false\n return\n } else if (e.keyCode === keyCodes.down) {\n this.nextTile()\n } else if (e.keyCode === keyCodes.up) {\n this.prevTile()\n } else if (e.keyCode === keyCodes.end) {\n this.lastTile()\n } else if (e.keyCode === keyCodes.home) {\n this.firstTile()\n } else if (e.keyCode === keyCodes.enter && this.listIndex !== -1) {\n this.tiles[this.listIndex].click()\n } else { return }\n // One of the conditions was met, prevent default action (#2988)\n e.preventDefault()\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n\n return this.isActive &&\n !this._isDestroyed &&\n this.closeOnClick &&\n !this.$refs.content.contains(target)\n },\n genActivatorAttributes () {\n const attributes = Activatable.options.methods.genActivatorAttributes.call(this)\n\n if (this.activeTile && this.activeTile.id) {\n return {\n ...attributes,\n 'aria-activedescendant': this.activeTile.id,\n }\n }\n\n return attributes\n },\n genActivatorListeners () {\n const listeners = Menuable.options.methods.genActivatorListeners.call(this)\n\n if (!this.disableKeys) {\n listeners.keydown = this.onKeyDown\n }\n\n return listeners\n },\n genTransition (): VNode {\n const content = this.genContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n }, [content])\n },\n genDirectives (): VNodeDirective[] {\n const directives: VNodeDirective[] = [{\n name: 'show',\n value: this.isContentActive,\n }]\n\n // Do not add click outside for hover menu\n if (!this.openOnHover && this.closeOnClick) {\n directives.push({\n name: 'click-outside',\n value: {\n handler: () => { this.isActive = false },\n closeConditional: this.closeConditional,\n include: () => [this.$el, ...this.getOpenDependentElements()],\n },\n })\n }\n\n return directives\n },\n genContent (): VNode {\n const options = {\n attrs: {\n ...this.getScopeIdAttrs(),\n role: 'role' in this.$attrs ? this.$attrs.role : 'menu',\n },\n staticClass: 'v-menu__content',\n class: {\n ...this.rootThemeClasses,\n ...this.roundedClasses,\n 'v-menu__content--auto': this.auto,\n 'v-menu__content--fixed': this.activatorFixed,\n menuable__content__active: this.isActive,\n [this.contentClass.trim()]: true,\n },\n style: this.styles,\n directives: this.genDirectives(),\n ref: 'content',\n on: {\n click: (e: Event) => {\n const target = e.target as HTMLElement\n\n if (target.getAttribute('disabled')) return\n if (this.closeOnContentClick) this.isActive = false\n },\n keydown: this.onKeyDown,\n },\n } as VNodeData\n\n if (this.$listeners.scroll) {\n options.on = options.on || {}\n options.on.scroll = this.$listeners.scroll\n }\n\n if (!this.disabled && this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseenter = this.mouseEnterHandler\n }\n\n if (this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseleave = this.mouseLeaveHandler\n }\n\n return this.$createElement('div', options, this.getContentSlot())\n },\n getTiles () {\n if (!this.$refs.content) return\n\n this.tiles = Array.from(this.$refs.content.querySelectorAll('.v-list-item, .v-divider, .v-subheader'))\n },\n mouseEnterHandler () {\n this.runDelay('open', () => {\n if (this.hasJustFocused) return\n\n this.hasJustFocused = true\n })\n },\n mouseLeaveHandler (e: MouseEvent) {\n // Prevent accidental re-activation\n this.runDelay('close', () => {\n if (this.$refs.content?.contains(e.relatedTarget as HTMLElement)) return\n\n requestAnimationFrame(() => {\n this.isActive = false\n this.callDeactivate()\n })\n })\n },\n nextTile () {\n const tile = this.tiles[this.listIndex + 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = -1\n this.nextTile()\n\n return\n }\n\n this.listIndex++\n if (tile.tabIndex === -1) this.nextTile()\n },\n prevTile () {\n const tile = this.tiles[this.listIndex - 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = this.tiles.length\n this.prevTile()\n\n return\n }\n\n this.listIndex--\n if (tile.tabIndex === -1) this.prevTile()\n },\n lastTile () {\n const tile = this.tiles[this.tiles.length - 1]\n\n if (!tile) return\n\n this.listIndex = this.tiles.length - 1\n\n if (tile.tabIndex === -1) this.prevTile()\n },\n firstTile () {\n const tile = this.tiles[0]\n\n if (!tile) return\n\n this.listIndex = 0\n\n if (tile.tabIndex === -1) this.nextTile()\n },\n onKeyDown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc) {\n // Wait for dependent elements to close first\n setTimeout(() => { this.isActive = false })\n const activator = this.getActivator()\n this.$nextTick(() => activator && activator.focus())\n } else if (\n !this.isActive &&\n [keyCodes.up, keyCodes.down].includes(e.keyCode)\n ) {\n this.isActive = true\n }\n\n // Allow for isActive watcher to generate tile list\n this.$nextTick(() => this.changeListIndex(e))\n },\n onResize () {\n if (!this.isActive) return\n\n // Account for screen resize\n // and orientation change\n // eslint-disable-next-line no-unused-expressions\n this.$refs.content.offsetWidth\n this.updateDimensions()\n\n // When resizing to a smaller width\n // content width is evaluated before\n // the new activator width has been\n // set, causing it to not size properly\n // hacky but will revisit in the future\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(this.updateDimensions, 100)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-menu',\n class: {\n 'v-menu--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n directives: [{\n arg: '500',\n name: 'resize',\n value: this.onResize,\n }],\n }\n\n return h('div', data, [\n !this.activator && this.genActivator(),\n this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [this.genTransition()]),\n ]),\n ])\n },\n})\n","// Styles\nimport './VNavigationDrawer.sass'\n\n// Components\nimport VImg, { srcObject } from '../VImg/VImg'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport Colorable from '../../mixins/colorable'\nimport Dependent from '../../mixins/dependent'\nimport Mobile from '../../mixins/mobile'\nimport Overlayable from '../../mixins/overlayable'\nimport SSRBootable from '../../mixins/ssr-bootable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, VNodeDirective, PropType } from 'vue'\nimport { TouchWrapper } from 'vuetify/types'\n\nconst baseMixins = mixins(\n Applicationable('left', [\n 'isActive',\n 'isMobile',\n 'miniVariant',\n 'expandOnHover',\n 'permanent',\n 'right',\n 'temporary',\n 'width',\n ]),\n Colorable,\n Dependent,\n Mobile,\n Overlayable,\n SSRBootable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-navigation-drawer',\n\n directives: {\n ClickOutside,\n Resize,\n Touch,\n },\n\n provide (): object {\n return {\n isInNav: this.tag === 'nav',\n }\n },\n\n props: {\n bottom: Boolean,\n clipped: Boolean,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n height: {\n type: [Number, String],\n default (): string {\n return this.app ? '100vh' : '100%'\n },\n },\n miniVariant: Boolean,\n miniVariantWidth: {\n type: [Number, String],\n default: 56,\n },\n permanent: Boolean,\n right: Boolean,\n src: {\n type: [String, Object] as PropType,\n default: '',\n },\n stateless: Boolean,\n tag: {\n type: String,\n default (): string {\n return this.app ? 'nav' : 'aside'\n },\n },\n temporary: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n value: null as unknown as PropType,\n },\n\n data: () => ({\n isMouseover: false,\n touchArea: {\n left: 0,\n right: 0,\n },\n stackMinZIndex: 6,\n }),\n\n computed: {\n /**\n * Used for setting an app value from a dynamic\n * property. Called from applicationable.js\n */\n applicationProperty (): string {\n return this.right ? 'right' : 'left'\n },\n classes (): object {\n return {\n 'v-navigation-drawer': true,\n 'v-navigation-drawer--absolute': this.absolute,\n 'v-navigation-drawer--bottom': this.bottom,\n 'v-navigation-drawer--clipped': this.clipped,\n 'v-navigation-drawer--close': !this.isActive,\n 'v-navigation-drawer--fixed': !this.absolute && (this.app || this.fixed),\n 'v-navigation-drawer--floating': this.floating,\n 'v-navigation-drawer--is-mobile': this.isMobile,\n 'v-navigation-drawer--is-mouseover': this.isMouseover,\n 'v-navigation-drawer--mini-variant': this.isMiniVariant,\n 'v-navigation-drawer--custom-mini-variant': Number(this.miniVariantWidth) !== 56,\n 'v-navigation-drawer--open': this.isActive,\n 'v-navigation-drawer--open-on-hover': this.expandOnHover,\n 'v-navigation-drawer--right': this.right,\n 'v-navigation-drawer--temporary': this.temporary,\n ...this.themeClasses,\n }\n },\n computedMaxHeight (): number | null {\n if (!this.hasApp) return null\n\n const computedMaxHeight = (\n this.$vuetify.application.bottom +\n this.$vuetify.application.footer +\n this.$vuetify.application.bar\n )\n\n if (!this.clipped) return computedMaxHeight\n\n return computedMaxHeight + this.$vuetify.application.top\n },\n computedTop (): number {\n if (!this.hasApp) return 0\n\n let computedTop = this.$vuetify.application.bar\n\n computedTop += this.clipped\n ? this.$vuetify.application.top\n : 0\n\n return computedTop\n },\n computedTransform (): number {\n if (this.isActive) return 0\n if (this.isBottom) return 100\n return this.right ? 100 : -100\n },\n computedWidth (): string | number {\n return this.isMiniVariant ? this.miniVariantWidth : this.width\n },\n hasApp (): boolean {\n return (\n this.app &&\n (!this.isMobile && !this.temporary)\n )\n },\n isBottom (): boolean {\n return this.bottom && this.isMobile\n },\n isMiniVariant (): boolean {\n return (\n !this.expandOnHover &&\n this.miniVariant\n ) || (\n this.expandOnHover &&\n !this.isMouseover\n )\n },\n isMobile (): boolean {\n return (\n !this.stateless &&\n !this.permanent &&\n Mobile.options.computed.isMobile.call(this)\n )\n },\n reactsToClick (): boolean {\n return (\n !this.stateless &&\n !this.permanent &&\n (this.isMobile || this.temporary)\n )\n },\n reactsToMobile (): boolean {\n return (\n this.app &&\n !this.disableResizeWatcher &&\n !this.permanent &&\n !this.stateless &&\n !this.temporary\n )\n },\n reactsToResize (): boolean {\n return !this.disableResizeWatcher && !this.stateless\n },\n reactsToRoute (): boolean {\n return (\n !this.disableRouteWatcher &&\n !this.stateless &&\n (this.temporary || this.isMobile)\n )\n },\n showOverlay (): boolean {\n return (\n !this.hideOverlay &&\n this.isActive &&\n (this.isMobile || this.temporary)\n )\n },\n styles (): object {\n const translate = this.isBottom ? 'translateY' : 'translateX'\n return {\n height: convertToUnit(this.height),\n top: !this.isBottom ? convertToUnit(this.computedTop) : 'auto',\n maxHeight: this.computedMaxHeight != null\n ? `calc(100% - ${convertToUnit(this.computedMaxHeight)})`\n : undefined,\n transform: `${translate}(${convertToUnit(this.computedTransform, '%')})`,\n width: convertToUnit(this.computedWidth),\n }\n },\n },\n\n watch: {\n $route: 'onRouteChange',\n isActive (val) {\n this.$emit('input', val)\n },\n /**\n * When mobile changes, adjust the active state\n * only when there has been a previous value\n */\n isMobile (val, prev) {\n !val &&\n this.isActive &&\n !this.temporary &&\n this.removeOverlay()\n\n if (prev == null ||\n !this.reactsToResize ||\n !this.reactsToMobile\n ) return\n\n this.isActive = !val\n },\n permanent (val) {\n // If enabling prop enable the drawer\n if (val) this.isActive = true\n },\n showOverlay (val) {\n if (val) this.genOverlay()\n else this.removeOverlay()\n },\n value (val) {\n if (this.permanent) return\n\n if (val == null) {\n this.init()\n return\n }\n\n if (val !== this.isActive) this.isActive = val\n },\n expandOnHover: 'updateMiniVariant',\n isMouseover (val) {\n this.updateMiniVariant(!val)\n },\n },\n\n beforeMount () {\n this.init()\n },\n\n methods: {\n calculateTouchArea () {\n const parent = this.$el.parentNode as Element\n\n if (!parent) return\n\n const parentRect = parent.getBoundingClientRect()\n\n this.touchArea = {\n left: parentRect.left + 50,\n right: parentRect.right - 50,\n }\n },\n closeConditional () {\n return this.isActive && !this._isDestroyed && this.reactsToClick\n },\n genAppend () {\n return this.genPosition('append')\n },\n genBackground () {\n const props = {\n height: '100%',\n width: '100%',\n src: this.src,\n }\n\n const image = this.$scopedSlots.img\n ? this.$scopedSlots.img(props)\n : this.$createElement(VImg, { props })\n\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__image',\n }, [image])\n },\n genDirectives (): VNodeDirective[] {\n const directives = [{\n name: 'click-outside',\n value: {\n handler: () => { this.isActive = false },\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n }]\n\n if (!this.touchless && !this.stateless) {\n directives.push({\n name: 'touch',\n value: {\n parent: true,\n left: this.swipeLeft,\n right: this.swipeRight,\n },\n } as any)\n }\n\n return directives\n },\n genListeners () {\n const on: Record void> = {\n mouseenter: () => (this.isMouseover = true),\n mouseleave: () => (this.isMouseover = false),\n transitionend: (e: Event) => {\n if (e.target !== e.currentTarget) return\n this.$emit('transitionend', e)\n\n // IE11 does not support new Event('resize')\n const resizeEvent = document.createEvent('UIEvents')\n resizeEvent.initUIEvent('resize', true, false, window, 0)\n window.dispatchEvent(resizeEvent)\n },\n }\n\n if (this.miniVariant) {\n on.click = () => this.$emit('update:mini-variant', false)\n }\n\n return on\n },\n genPosition (name: 'prepend' | 'append') {\n const slot = getSlot(this, name)\n\n if (!slot) return slot\n\n return this.$createElement('div', {\n staticClass: `v-navigation-drawer__${name}`,\n }, slot)\n },\n genPrepend () {\n return this.genPosition('prepend')\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__content',\n }, this.$slots.default)\n },\n genBorder () {\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__border',\n })\n },\n init () {\n if (this.permanent) {\n this.isActive = true\n } else if (this.stateless ||\n this.value != null\n ) {\n this.isActive = this.value\n } else if (!this.temporary) {\n this.isActive = !this.isMobile\n }\n },\n onRouteChange () {\n if (this.reactsToRoute && this.closeConditional()) {\n this.isActive = false\n }\n },\n swipeLeft (e: TouchWrapper) {\n if (this.isActive && this.right) return\n this.calculateTouchArea()\n\n if (Math.abs(e.touchendX - e.touchstartX) < 100) return\n if (this.right &&\n e.touchstartX >= this.touchArea.right\n ) this.isActive = true\n else if (!this.right && this.isActive) this.isActive = false\n },\n swipeRight (e: TouchWrapper) {\n if (this.isActive && !this.right) return\n this.calculateTouchArea()\n\n if (Math.abs(e.touchendX - e.touchstartX) < 100) return\n if (!this.right &&\n e.touchstartX <= this.touchArea.left\n ) this.isActive = true\n else if (this.right && this.isActive) this.isActive = false\n },\n /**\n * Update the application layout\n */\n updateApplication () {\n if (\n !this.isActive ||\n this.isMobile ||\n this.temporary ||\n !this.$el\n ) return 0\n\n const width = Number(this.miniVariant ? this.miniVariantWidth : this.width)\n\n return isNaN(width) ? this.$el.clientWidth : width\n },\n updateMiniVariant (val: boolean) {\n if (this.expandOnHover && this.miniVariant !== val) this.$emit('update:mini-variant', val)\n },\n },\n\n render (h): VNode {\n const children = [\n this.genPrepend(),\n this.genContent(),\n this.genAppend(),\n this.genBorder(),\n ]\n\n if (this.src || getSlot(this, 'img')) children.unshift(this.genBackground())\n\n return h(this.tag, this.setBackgroundColor(this.color, {\n class: this.classes,\n style: this.styles,\n directives: this.genDirectives(),\n on: this.genListeners(),\n }), children)\n },\n})\n","import VMenu from './VMenu'\n\nexport { VMenu }\nexport default VMenu\n","import VDivider from './VDivider'\n\nexport { VDivider }\nexport default VDivider\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","import VSubheader from './VSubheader'\n\nexport { VSubheader }\nexport default VSubheader\n","// Components\nimport VSimpleCheckbox from '../VCheckbox/VSimpleCheckbox'\nimport VDivider from '../VDivider'\nimport VSubheader from '../VSubheader'\nimport {\n VList,\n VListItem,\n VListItemAction,\n VListItemContent,\n VListItemTitle,\n} from '../VList'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport {\n escapeHTML,\n getPropertyFromItem,\n} from '../../util/helpers'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, PropType, VNodeChildren } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { SelectItemKey } from 'vuetify/types'\n\ntype ListTile = { item: any, disabled?: null | boolean, value?: boolean, index: number };\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n name: 'v-select-list',\n\n // https://github.com/vuejs/vue/issues/6872\n directives: {\n ripple,\n },\n\n props: {\n action: Boolean,\n dense: Boolean,\n hideSelected: Boolean,\n items: {\n type: Array,\n default: () => [],\n } as PropValidator,\n itemDisabled: {\n type: [String, Array, Function] as PropType,\n default: 'disabled',\n },\n itemText: {\n type: [String, Array, Function] as PropType,\n default: 'text',\n },\n itemValue: {\n type: [String, Array, Function] as PropType,\n default: 'value',\n },\n noDataText: String,\n noFilter: Boolean,\n searchInput: null as unknown as PropType,\n selectedItems: {\n type: Array,\n default: () => [],\n } as PropValidator,\n },\n\n computed: {\n parsedItems (): any[] {\n return this.selectedItems.map(item => this.getValue(item))\n },\n tileActiveClass (): string {\n return Object.keys(this.setTextColor(this.color).class || {}).join(' ')\n },\n staticNoDataTile (): VNode {\n const tile = {\n attrs: {\n role: undefined,\n },\n on: {\n mousedown: (e: Event) => e.preventDefault(), // Prevent onBlur from being called\n },\n }\n\n return this.$createElement(VListItem, tile, [\n this.genTileContent(this.noDataText),\n ])\n },\n },\n\n methods: {\n genAction (item: object, inputValue: any): VNode {\n return this.$createElement(VListItemAction, [\n this.$createElement(VSimpleCheckbox, {\n props: {\n color: this.color,\n value: inputValue,\n ripple: false,\n },\n on: {\n input: () => this.$emit('select', item),\n },\n }),\n ])\n },\n genDivider (props: { [key: string]: any }) {\n return this.$createElement(VDivider, { props })\n },\n genFilteredText (text: string) {\n text = text || ''\n\n if (!this.searchInput || this.noFilter) return escapeHTML(text)\n\n const { start, middle, end } = this.getMaskedCharacters(text)\n\n return `${escapeHTML(start)}${this.genHighlight(middle)}${escapeHTML(end)}`\n },\n genHeader (props: { [key: string]: any }): VNode {\n return this.$createElement(VSubheader, { props }, props.header)\n },\n genHighlight (text: string): string {\n return `${escapeHTML(text)}`\n },\n getMaskedCharacters (text: string): {\n start: string\n middle: string\n end: string\n } {\n const searchInput = (this.searchInput || '').toString().toLocaleLowerCase()\n const index = text.toLocaleLowerCase().indexOf(searchInput)\n\n if (index < 0) return { start: text, middle: '', end: '' }\n\n const start = text.slice(0, index)\n const middle = text.slice(index, index + searchInput.length)\n const end = text.slice(index + searchInput.length)\n return { start, middle, end }\n },\n genTile ({\n item,\n index,\n disabled = null,\n value = false,\n }: ListTile): VNode | VNode[] | undefined {\n if (!value) value = this.hasItem(item)\n\n if (item === Object(item)) {\n disabled = disabled !== null\n ? disabled\n : this.getDisabled(item)\n }\n\n const tile = {\n attrs: {\n // Default behavior in list does not\n // contain aria-selected by default\n 'aria-selected': String(value),\n id: `list-item-${this._uid}-${index}`,\n role: 'option',\n },\n on: {\n mousedown: (e: Event) => {\n // Prevent onBlur from being called\n e.preventDefault()\n },\n click: () => disabled || this.$emit('select', item),\n },\n props: {\n activeClass: this.tileActiveClass,\n disabled,\n ripple: true,\n inputValue: value,\n },\n }\n\n if (!this.$scopedSlots.item) {\n return this.$createElement(VListItem, tile, [\n this.action && !this.hideSelected && this.items.length > 0\n ? this.genAction(item, value)\n : null,\n this.genTileContent(item, index),\n ])\n }\n\n const parent = this\n const scopedSlot = this.$scopedSlots.item({\n parent,\n item,\n attrs: {\n ...tile.attrs,\n ...tile.props,\n },\n on: tile.on,\n })\n\n return this.needsTile(scopedSlot)\n ? this.$createElement(VListItem, tile, scopedSlot)\n : scopedSlot\n },\n genTileContent (item: any, index = 0): VNode {\n const innerHTML = this.genFilteredText(this.getText(item))\n\n return this.$createElement(VListItemContent,\n [this.$createElement(VListItemTitle, {\n domProps: { innerHTML },\n })]\n )\n },\n hasItem (item: object) {\n return this.parsedItems.indexOf(this.getValue(item)) > -1\n },\n needsTile (slot: VNode[] | undefined) {\n return slot!.length !== 1 ||\n slot![0].componentOptions == null ||\n slot![0].componentOptions.Ctor.options.name !== 'v-list-item'\n },\n getDisabled (item: object) {\n return Boolean(getPropertyFromItem(item, this.itemDisabled, false))\n },\n getText (item: object) {\n return String(getPropertyFromItem(item, this.itemText, item))\n },\n getValue (item: object) {\n return getPropertyFromItem(item, this.itemValue, this.getText(item))\n },\n },\n\n render (): VNode {\n const children: VNodeChildren = []\n const itemsLength = this.items.length\n for (let index = 0; index < itemsLength; index++) {\n const item = this.items[index]\n\n if (this.hideSelected &&\n this.hasItem(item)\n ) continue\n\n if (item == null) children.push(this.genTile({ item, index }))\n else if (item.header) children.push(this.genHeader(item))\n else if (item.divider) children.push(this.genDivider(item))\n else children.push(this.genTile({ item, index }))\n }\n\n children.length || children.push(this.$slots['no-data'] || this.staticNoDataTile)\n\n this.$slots['prepend-item'] && children.unshift(this.$slots['prepend-item'])\n\n this.$slots['append-item'] && children.push(this.$slots['append-item'])\n\n return this.$createElement(VList, {\n staticClass: 'v-select-list',\n class: this.themeClasses,\n attrs: {\n role: 'listbox',\n tabindex: -1,\n },\n props: { dense: this.dense },\n }, children)\n },\n})\n","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'filterable',\n\n props: {\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n },\n})\n","// Styles\nimport '../VTextField/VTextField.sass'\nimport './VSelect.sass'\n\n// Components\nimport VChip from '../VChip'\nimport VMenu from '../VMenu'\nimport VSelectList from './VSelectList'\n\n// Extensions\nimport VInput from '../VInput'\nimport VTextField from '../VTextField/VTextField'\n\n// Mixins\nimport Comparable from '../../mixins/comparable'\nimport Dependent from '../../mixins/dependent'\nimport Filterable from '../../mixins/filterable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport { getPropertyFromItem, getObjectValueByPath, keyCodes } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, VNodeDirective, PropType, VNodeData } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { SelectItemKey } from 'vuetify/types'\n\nexport const defaultMenuProps = {\n closeOnClick: false,\n closeOnContentClick: false,\n disableKeys: true,\n openOnClick: false,\n maxHeight: 304,\n}\n\n// Types\nconst baseMixins = mixins(\n VTextField,\n Comparable,\n Dependent,\n Filterable\n)\n\ninterface options extends InstanceType {\n $refs: {\n menu: InstanceType\n content: HTMLElement\n label: HTMLElement\n input: HTMLInputElement\n 'prepend-inner': HTMLElement\n 'append-inner': HTMLElement\n prefix: HTMLElement\n suffix: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-select',\n\n directives: {\n ClickOutside,\n },\n\n props: {\n appendIcon: {\n type: String,\n default: '$dropdown',\n },\n attach: {\n type: null as unknown as PropType,\n default: false,\n },\n cacheItems: Boolean,\n chips: Boolean,\n clearable: Boolean,\n deletableChips: Boolean,\n disableLookup: Boolean,\n eager: Boolean,\n hideSelected: Boolean,\n items: {\n type: Array,\n default: () => [],\n } as PropValidator,\n itemColor: {\n type: String,\n default: 'primary',\n },\n itemDisabled: {\n type: [String, Array, Function] as PropType,\n default: 'disabled',\n },\n itemText: {\n type: [String, Array, Function] as PropType,\n default: 'text',\n },\n itemValue: {\n type: [String, Array, Function] as PropType,\n default: 'value',\n },\n menuProps: {\n type: [String, Array, Object],\n default: () => defaultMenuProps,\n },\n multiple: Boolean,\n openOnClear: Boolean,\n returnObject: Boolean,\n smallChips: Boolean,\n },\n\n data () {\n return {\n cachedItems: this.cacheItems ? this.items : [],\n menuIsBooted: false,\n isMenuActive: false,\n lastItem: 20,\n // As long as a value is defined, show it\n // Otherwise, check if multiple\n // to determine which default to provide\n lazyValue: this.value !== undefined\n ? this.value\n : this.multiple ? [] : undefined,\n selectedIndex: -1,\n selectedItems: [] as any[],\n keyboardLookupPrefix: '',\n keyboardLookupLastTime: 0,\n }\n },\n\n computed: {\n /* All items that the select has */\n allItems (): object[] {\n return this.filterDuplicates(this.cachedItems.concat(this.items))\n },\n classes (): object {\n return {\n ...VTextField.options.computed.classes.call(this),\n 'v-select': true,\n 'v-select--chips': this.hasChips,\n 'v-select--chips--small': this.smallChips,\n 'v-select--is-menu-active': this.isMenuActive,\n 'v-select--is-multi': this.multiple,\n }\n },\n /* Used by other components to overwrite */\n computedItems (): object[] {\n return this.allItems\n },\n computedOwns (): string {\n return `list-${this._uid}`\n },\n computedCounterValue (): number {\n const value = this.multiple\n ? this.selectedItems\n : (this.getText(this.selectedItems[0]) || '').toString()\n\n if (typeof this.counterValue === 'function') {\n return this.counterValue(value)\n }\n\n return value.length\n },\n directives (): VNodeDirective[] | undefined {\n return this.isFocused ? [{\n name: 'click-outside',\n value: {\n handler: this.blur,\n closeConditional: this.closeConditional,\n include: () => this.getOpenDependentElements(),\n },\n }] : undefined\n },\n dynamicHeight () {\n return 'auto'\n },\n hasChips (): boolean {\n return this.chips || this.smallChips\n },\n hasSlot (): boolean {\n return Boolean(this.hasChips || this.$scopedSlots.selection)\n },\n isDirty (): boolean {\n return this.selectedItems.length > 0\n },\n listData (): object {\n const scopeId = this.$vnode && (this.$vnode.context!.$options as { [key: string]: any })._scopeId\n const attrs = scopeId ? {\n [scopeId]: true,\n } : {}\n\n return {\n attrs: {\n ...attrs,\n id: this.computedOwns,\n },\n props: {\n action: this.multiple,\n color: this.itemColor,\n dense: this.dense,\n hideSelected: this.hideSelected,\n items: this.virtualizedItems,\n itemDisabled: this.itemDisabled,\n itemText: this.itemText,\n itemValue: this.itemValue,\n noDataText: this.$vuetify.lang.t(this.noDataText),\n selectedItems: this.selectedItems,\n },\n on: {\n select: this.selectItem,\n },\n scopedSlots: {\n item: this.$scopedSlots.item,\n },\n }\n },\n staticList (): VNode {\n if (this.$slots['no-data'] || this.$slots['prepend-item'] || this.$slots['append-item']) {\n consoleError('assert: staticList should not be called if slots are used')\n }\n\n return this.$createElement(VSelectList, this.listData)\n },\n virtualizedItems (): object[] {\n return (this.$_menuProps as any).auto\n ? this.computedItems\n : this.computedItems.slice(0, this.lastItem)\n },\n menuCanShow: () => true,\n $_menuProps (): object {\n let normalisedProps = typeof this.menuProps === 'string'\n ? this.menuProps.split(',')\n : this.menuProps\n\n if (Array.isArray(normalisedProps)) {\n normalisedProps = normalisedProps.reduce((acc, p) => {\n acc[p.trim()] = true\n return acc\n }, {})\n }\n\n return {\n ...defaultMenuProps,\n eager: this.eager,\n value: this.menuCanShow && this.isMenuActive,\n nudgeBottom: normalisedProps.offsetY ? 1 : 0, // convert to int\n ...normalisedProps,\n }\n },\n },\n\n watch: {\n internalValue (val) {\n this.initialValue = val\n this.setSelectedItems()\n\n if (this.multiple) {\n this.$nextTick(() => {\n this.$refs.menu?.updateDimensions()\n })\n }\n },\n isMenuActive (val) {\n window.setTimeout(() => this.onMenuActiveChange(val))\n },\n items: {\n immediate: true,\n handler (val) {\n if (this.cacheItems) {\n // Breaks vue-test-utils if\n // this isn't calculated\n // on the next tick\n this.$nextTick(() => {\n this.cachedItems = this.filterDuplicates(this.cachedItems.concat(val))\n })\n }\n\n this.setSelectedItems()\n },\n },\n },\n\n methods: {\n /** @public */\n blur (e?: Event) {\n VTextField.options.methods.blur.call(this, e)\n this.isMenuActive = false\n this.isFocused = false\n this.selectedIndex = -1\n this.setMenuIndex(-1)\n },\n /** @public */\n activateMenu () {\n if (\n !this.isInteractive ||\n this.isMenuActive\n ) return\n\n this.isMenuActive = true\n },\n clearableCallback () {\n this.setValue(this.multiple ? [] : null)\n this.setMenuIndex(-1)\n this.$nextTick(() => this.$refs.input && this.$refs.input.focus())\n\n if (this.openOnClear) this.isMenuActive = true\n },\n closeConditional (e: Event) {\n if (!this.isMenuActive) return true\n\n return (\n !this._isDestroyed &&\n\n // Click originates from outside the menu content\n // Multiple selects don't close when an item is clicked\n (!this.getContent() ||\n !this.getContent().contains(e.target as Node)) &&\n\n // Click originates from outside the element\n this.$el &&\n !this.$el.contains(e.target as Node) &&\n e.target !== this.$el\n )\n },\n filterDuplicates (arr: any[]) {\n const uniqueValues = new Map()\n for (let index = 0; index < arr.length; ++index) {\n const item = arr[index]\n\n // Do not return null values if existant (#14421)\n if (item == null) {\n continue\n }\n // Do not deduplicate headers or dividers (#12517)\n if (item.header || item.divider) {\n uniqueValues.set(item, item)\n continue\n }\n\n const val = this.getValue(item)\n\n // TODO: comparator\n !uniqueValues.has(val) && uniqueValues.set(val, item)\n }\n return Array.from(uniqueValues.values())\n },\n findExistingIndex (item: object) {\n const itemValue = this.getValue(item)\n\n return (this.internalValue || []).findIndex((i: object) => this.valueComparator(this.getValue(i), itemValue))\n },\n getContent () {\n return this.$refs.menu && this.$refs.menu.$refs.content\n },\n genChipSelection (item: object, index: number) {\n const isDisabled = (\n this.isDisabled ||\n this.getDisabled(item)\n )\n const isInteractive = !isDisabled && this.isInteractive\n\n return this.$createElement(VChip, {\n staticClass: 'v-chip--select',\n attrs: { tabindex: -1 },\n props: {\n close: this.deletableChips && isInteractive,\n disabled: isDisabled,\n inputValue: index === this.selectedIndex,\n small: this.smallChips,\n },\n on: {\n click: (e: MouseEvent) => {\n if (!isInteractive) return\n\n e.stopPropagation()\n\n this.selectedIndex = index\n },\n 'click:close': () => this.onChipInput(item),\n },\n key: JSON.stringify(this.getValue(item)),\n }, this.getText(item))\n },\n genCommaSelection (item: object, index: number, last: boolean) {\n const color = index === this.selectedIndex && this.computedColor\n const isDisabled = (\n this.isDisabled ||\n this.getDisabled(item)\n )\n\n return this.$createElement('div', this.setTextColor(color, {\n staticClass: 'v-select__selection v-select__selection--comma',\n class: {\n 'v-select__selection--disabled': isDisabled,\n },\n key: JSON.stringify(this.getValue(item)),\n }), `${this.getText(item)}${last ? '' : ', '}`)\n },\n genDefaultSlot (): (VNode | VNode[] | null)[] {\n const selections = this.genSelections()\n const input = this.genInput()\n\n // If the return is an empty array\n // push the input\n if (Array.isArray(selections)) {\n selections.push(input)\n // Otherwise push it into children\n } else {\n selections.children = selections.children || []\n selections.children.push(input)\n }\n\n return [\n this.genFieldset(),\n this.$createElement('div', {\n staticClass: 'v-select__slot',\n directives: this.directives,\n }, [\n this.genLabel(),\n this.prefix ? this.genAffix('prefix') : null,\n selections,\n this.suffix ? this.genAffix('suffix') : null,\n this.genClearIcon(),\n this.genIconSlot(),\n this.genHiddenInput(),\n ]),\n this.genMenu(),\n this.genProgress(),\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData?: VNodeData\n ) {\n const icon = VInput.options.methods.genIcon.call(this, type, cb, extraData)\n\n if (type === 'append') {\n // Don't allow the dropdown icon to be focused\n icon.children![0].data = mergeData(icon.children![0].data!, {\n attrs: {\n tabindex: icon.children![0].componentOptions!.listeners && '-1',\n 'aria-hidden': 'true',\n 'aria-label': undefined,\n },\n })\n }\n\n return icon\n },\n genInput (): VNode {\n const input = VTextField.options.methods.genInput.call(this)\n\n delete input.data!.attrs!.name\n\n input.data = mergeData(input.data!, {\n domProps: { value: null },\n attrs: {\n readonly: true,\n type: 'text',\n 'aria-readonly': String(this.isReadonly),\n 'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id'),\n autocomplete: getObjectValueByPath(input.data!, 'attrs.autocomplete', 'off'),\n placeholder: (!this.isDirty && (this.persistentPlaceholder || this.isFocused || !this.hasLabel)) ? this.placeholder : undefined,\n },\n on: { keypress: this.onKeyPress },\n })\n\n return input\n },\n genHiddenInput (): VNode {\n return this.$createElement('input', {\n domProps: { value: this.lazyValue },\n attrs: {\n type: 'hidden',\n name: this.attrs$.name,\n },\n })\n },\n genInputSlot (): VNode {\n const render = VTextField.options.methods.genInputSlot.call(this)\n\n render.data!.attrs = {\n ...render.data!.attrs,\n role: 'button',\n 'aria-haspopup': 'listbox',\n 'aria-expanded': String(this.isMenuActive),\n 'aria-owns': this.computedOwns,\n }\n\n return render\n },\n genList (): VNode {\n // If there's no slots, we can use a cached VNode to improve performance\n if (this.$slots['no-data'] || this.$slots['prepend-item'] || this.$slots['append-item']) {\n return this.genListWithSlot()\n } else {\n return this.staticList\n }\n },\n genListWithSlot (): VNode {\n const slots = ['prepend-item', 'no-data', 'append-item']\n .filter(slotName => this.$slots[slotName])\n .map(slotName => this.$createElement('template', {\n slot: slotName,\n }, this.$slots[slotName]))\n // Requires destructuring due to Vue\n // modifying the `on` property when passed\n // as a referenced object\n return this.$createElement(VSelectList, {\n ...this.listData,\n }, slots)\n },\n genMenu (): VNode {\n const props = this.$_menuProps as any\n props.activator = this.$refs['input-slot']\n\n // Attach to root el so that\n // menu covers prepend/append icons\n if (\n // TODO: make this a computed property or helper or something\n this.attach === '' || // If used as a boolean prop ()\n this.attach === true || // If bound to a boolean ()\n this.attach === 'attach' // If bound as boolean prop in pug (v-menu(attach))\n ) {\n props.attach = this.$el\n } else {\n props.attach = this.attach\n }\n\n return this.$createElement(VMenu, {\n attrs: { role: undefined },\n props,\n on: {\n input: (val: boolean) => {\n this.isMenuActive = val\n this.isFocused = val\n },\n scroll: this.onScroll,\n },\n ref: 'menu',\n }, [this.genList()])\n },\n genSelections (): VNode {\n let length = this.selectedItems.length\n const children = new Array(length)\n\n let genSelection\n if (this.$scopedSlots.selection) {\n genSelection = this.genSlotSelection\n } else if (this.hasChips) {\n genSelection = this.genChipSelection\n } else {\n genSelection = this.genCommaSelection\n }\n\n while (length--) {\n children[length] = genSelection(\n this.selectedItems[length],\n length,\n length === children.length - 1\n )\n }\n\n return this.$createElement('div', {\n staticClass: 'v-select__selections',\n }, children)\n },\n genSlotSelection (item: object, index: number): VNode[] | undefined {\n return this.$scopedSlots.selection!({\n attrs: {\n class: 'v-chip--select',\n },\n parent: this,\n item,\n index,\n select: (e: Event) => {\n e.stopPropagation()\n this.selectedIndex = index\n },\n selected: index === this.selectedIndex,\n disabled: !this.isInteractive,\n })\n },\n getMenuIndex () {\n return this.$refs.menu ? (this.$refs.menu as { [key: string]: any }).listIndex : -1\n },\n getDisabled (item: object) {\n return getPropertyFromItem(item, this.itemDisabled, false)\n },\n getText (item: object) {\n return getPropertyFromItem(item, this.itemText, item)\n },\n getValue (item: object) {\n return getPropertyFromItem(item, this.itemValue, this.getText(item))\n },\n onBlur (e?: Event) {\n e && this.$emit('blur', e)\n },\n onChipInput (item: object) {\n if (this.multiple) this.selectItem(item)\n else this.setValue(null)\n // If all items have been deleted,\n // open `v-menu`\n if (this.selectedItems.length === 0) {\n this.isMenuActive = true\n } else {\n this.isMenuActive = false\n }\n this.selectedIndex = -1\n },\n onClick (e: MouseEvent) {\n if (!this.isInteractive) return\n\n if (!this.isAppendInner(e.target)) {\n this.isMenuActive = true\n }\n\n if (!this.isFocused) {\n this.isFocused = true\n this.$emit('focus')\n }\n\n this.$emit('click', e)\n },\n onEscDown (e: Event) {\n e.preventDefault()\n if (this.isMenuActive) {\n e.stopPropagation()\n this.isMenuActive = false\n }\n },\n onKeyPress (e: KeyboardEvent) {\n if (\n this.multiple ||\n !this.isInteractive ||\n this.disableLookup\n ) return\n\n const KEYBOARD_LOOKUP_THRESHOLD = 1000 // milliseconds\n const now = performance.now()\n if (now - this.keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {\n this.keyboardLookupPrefix = ''\n }\n this.keyboardLookupPrefix += e.key.toLowerCase()\n this.keyboardLookupLastTime = now\n\n const index = this.allItems.findIndex(item => {\n const text = (this.getText(item) || '').toString()\n\n return text.toLowerCase().startsWith(this.keyboardLookupPrefix)\n })\n const item = this.allItems[index]\n if (index !== -1) {\n this.lastItem = Math.max(this.lastItem, index + 5)\n this.setValue(this.returnObject ? item : this.getValue(item))\n this.$nextTick(() => this.$refs.menu.getTiles())\n setTimeout(() => this.setMenuIndex(index))\n }\n },\n onKeyDown (e: KeyboardEvent) {\n if (this.isReadonly && e.keyCode !== keyCodes.tab) return\n\n const keyCode = e.keyCode\n const menu = this.$refs.menu\n\n this.$emit('keydown', e)\n\n if (!menu) return\n\n // If menu is active, allow default\n // listIndex change from menu\n if (this.isMenuActive && [keyCodes.up, keyCodes.down, keyCodes.home, keyCodes.end, keyCodes.enter].includes(keyCode)) {\n this.$nextTick(() => {\n menu.changeListIndex(e)\n this.$emit('update:list-index', menu.listIndex)\n })\n }\n\n // If enter, space, open menu\n if ([\n keyCodes.enter,\n keyCodes.space,\n ].includes(keyCode)) this.activateMenu()\n\n // If menu is not active, up/down/home/end can do\n // one of 2 things. If multiple, opens the\n // menu, if not, will cycle through all\n // available options\n if (\n !this.isMenuActive &&\n [keyCodes.up, keyCodes.down, keyCodes.home, keyCodes.end].includes(keyCode)\n ) return this.onUpDown(e)\n\n // If escape deactivate the menu\n if (keyCode === keyCodes.esc) return this.onEscDown(e)\n\n // If tab - select item or close menu\n if (keyCode === keyCodes.tab) return this.onTabDown(e)\n\n // If space preventDefault\n if (keyCode === keyCodes.space) return this.onSpaceDown(e)\n },\n onMenuActiveChange (val: boolean) {\n // If menu is closing and mulitple\n // or menuIndex is already set\n // skip menu index recalculation\n if (\n (this.multiple && !val) ||\n this.getMenuIndex() > -1\n ) return\n\n const menu = this.$refs.menu\n\n if (!menu || !this.isDirty) return\n\n // When menu opens, set index of first active item\n this.$refs.menu.getTiles()\n for (let i = 0; i < menu.tiles.length; i++) {\n if (menu.tiles[i].getAttribute('aria-selected') === 'true') {\n this.setMenuIndex(i)\n break\n }\n }\n },\n onMouseUp (e: MouseEvent) {\n // eslint-disable-next-line sonarjs/no-collapsible-if\n if (\n this.hasMouseDown &&\n e.which !== 3 &&\n this.isInteractive\n ) {\n // If append inner is present\n // and the target is itself\n // or inside, toggle menu\n if (this.isAppendInner(e.target)) {\n this.$nextTick(() => (this.isMenuActive = !this.isMenuActive))\n }\n }\n\n VTextField.options.methods.onMouseUp.call(this, e)\n },\n onScroll () {\n if (!this.isMenuActive) {\n requestAnimationFrame(() => (this.getContent().scrollTop = 0))\n } else {\n if (this.lastItem > this.computedItems.length) return\n\n const showMoreItems = (\n this.getContent().scrollHeight -\n (this.getContent().scrollTop +\n this.getContent().clientHeight)\n ) < 200\n\n if (showMoreItems) {\n this.lastItem += 20\n }\n }\n },\n onSpaceDown (e: KeyboardEvent) {\n e.preventDefault()\n },\n onTabDown (e: KeyboardEvent) {\n const menu = this.$refs.menu\n\n if (!menu) return\n\n const activeTile = menu.activeTile\n\n // An item that is selected by\n // menu-index should toggled\n if (\n !this.multiple &&\n activeTile &&\n this.isMenuActive\n ) {\n e.preventDefault()\n e.stopPropagation()\n\n activeTile.click()\n } else {\n // If we make it here,\n // the user has no selected indexes\n // and is probably tabbing out\n this.blur(e)\n }\n },\n onUpDown (e: KeyboardEvent) {\n const menu = this.$refs.menu\n\n if (!menu) return\n\n e.preventDefault()\n\n // Multiple selects do not cycle their value\n // when pressing up or down, instead activate\n // the menu\n if (this.multiple) return this.activateMenu()\n\n const keyCode = e.keyCode\n\n // Cycle through available values to achieve\n // select native behavior\n menu.isBooted = true\n\n window.requestAnimationFrame(() => {\n menu.getTiles()\n\n if (!menu.hasClickableTiles) return this.activateMenu()\n\n switch (keyCode) {\n case keyCodes.up:\n menu.prevTile()\n break\n case keyCodes.down:\n menu.nextTile()\n break\n case keyCodes.home:\n menu.firstTile()\n break\n case keyCodes.end:\n menu.lastTile()\n break\n }\n this.selectItem(this.allItems[this.getMenuIndex()])\n })\n },\n selectItem (item: object) {\n if (!this.multiple) {\n this.setValue(this.returnObject ? item : this.getValue(item))\n this.isMenuActive = false\n } else {\n const internalValue = (this.internalValue || []).slice()\n const i = this.findExistingIndex(item)\n\n i !== -1 ? internalValue.splice(i, 1) : internalValue.push(item)\n this.setValue(internalValue.map((i: object) => {\n return this.returnObject ? i : this.getValue(i)\n }))\n\n // There is no item to re-highlight\n // when selections are hidden\n if (this.hideSelected) {\n this.setMenuIndex(-1)\n } else {\n const index = this.allItems.indexOf(item)\n if (~index) {\n this.$nextTick(() => this.$refs.menu.getTiles())\n setTimeout(() => this.setMenuIndex(index))\n }\n }\n }\n },\n setMenuIndex (index: number) {\n this.$refs.menu && ((this.$refs.menu as { [key: string]: any }).listIndex = index)\n },\n setSelectedItems () {\n const selectedItems = []\n const values = !this.multiple || !Array.isArray(this.internalValue)\n ? [this.internalValue]\n : this.internalValue\n\n for (const value of values) {\n const index = this.allItems.findIndex(v => this.valueComparator(\n this.getValue(v),\n this.getValue(value)\n ))\n\n if (index > -1) {\n selectedItems.push(this.allItems[index])\n }\n }\n\n this.selectedItems = selectedItems\n },\n setValue (value: any) {\n if (!this.valueComparator(value, this.internalValue)) {\n this.internalValue = value\n this.$emit('change', value)\n }\n },\n isAppendInner (target: any) {\n // return true if append inner is present\n // and the target is itself or inside\n const appendInner = this.$refs['append-inner']\n\n return appendInner && (appendInner === target || appendInner.contains(target))\n },\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","// Styles\nimport './VStepper.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VStepperStep from './VStepperStep'\nimport VStepperContent from './VStepperContent'\n\n// Mixins\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\nimport Proxyable from '../../mixins/proxyable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n VSheet,\n RegistrableProvide('stepper'),\n Proxyable,\n)\n\ntype VStepperStepInstance = InstanceType\ntype VStepperContentInstance = InstanceType\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-stepper',\n\n provide (): object {\n return {\n stepClick: this.stepClick,\n isVertical: this.vertical,\n }\n },\n\n props: {\n altLabels: Boolean,\n nonLinear: Boolean,\n flat: Boolean,\n vertical: Boolean,\n },\n\n data () {\n const data: Dictionary = {\n isBooted: false,\n steps: [] as VStepperStepInstance[],\n content: [] as VStepperContentInstance[],\n isReverse: false,\n }\n\n data.internalLazyValue = this.value != null\n ? this.value\n : (data[0] || {}).step || 1\n\n return data\n },\n\n computed: {\n classes (): object {\n return {\n 'v-stepper--flat': this.flat,\n 'v-stepper--is-booted': this.isBooted,\n 'v-stepper--vertical': this.vertical,\n 'v-stepper--alt-labels': this.altLabels,\n 'v-stepper--non-linear': this.nonLinear,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n return {\n ...VSheet.options.computed.styles.call(this),\n }\n },\n },\n\n watch: {\n internalValue (val, oldVal) {\n this.isReverse = Number(val) < Number(oldVal)\n\n oldVal && (this.isBooted = true)\n\n this.updateView()\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$listeners.input) {\n breaking('@input', '@change', this)\n }\n },\n\n mounted () {\n this.updateView()\n },\n\n methods: {\n register (item: VStepperStepInstance | VStepperContentInstance) {\n if (item.$options.name === 'v-stepper-step') {\n this.steps.push(item as VStepperStepInstance)\n } else if (item.$options.name === 'v-stepper-content') {\n (item as VStepperContentInstance).isVertical = this.vertical\n this.content.push(item as VStepperContentInstance)\n }\n },\n unregister (item: VStepperStepInstance | VStepperContentInstance) {\n if (item.$options.name === 'v-stepper-step') {\n this.steps = this.steps.filter((i: VStepperStepInstance) => i !== item)\n } else if (item.$options.name === 'v-stepper-content') {\n (item as VStepperContentInstance).isVertical = this.vertical\n this.content = this.content.filter((i: VStepperContentInstance) => i !== item)\n }\n },\n stepClick (step: string | number) {\n this.$nextTick(() => (this.internalValue = step))\n },\n updateView () {\n for (let index = this.steps.length; --index >= 0;) {\n this.steps[index].toggle(this.internalValue as any)\n }\n for (let index = this.content.length; --index >= 0;) {\n this.content[index].toggle(this.internalValue as any, this.isReverse)\n }\n },\n },\n\n render (h): VNode {\n return h(this.tag, {\n staticClass: 'v-stepper',\n class: this.classes,\n style: this.styles,\n }, this.$slots.default)\n },\n})\n","// Components\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\ntype VuetifyStepperRuleValidator = () => string | boolean\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject('stepper', 'v-stepper-step', 'v-stepper')\n)\n\ninterface options extends InstanceType {\n stepClick: (step: number | string) => void\n}\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-stepper-step',\n\n directives: { ripple },\n\n inject: ['stepClick'],\n\n props: {\n color: {\n type: String,\n default: 'primary',\n },\n complete: Boolean,\n completeIcon: {\n type: String,\n default: '$complete',\n },\n editable: Boolean,\n editIcon: {\n type: String,\n default: '$edit',\n },\n errorIcon: {\n type: String,\n default: '$error',\n },\n rules: {\n type: Array,\n default: () => [],\n } as PropValidator,\n step: [Number, String],\n },\n\n data () {\n return {\n isActive: false,\n isInactive: true,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-stepper__step--active': this.isActive,\n 'v-stepper__step--editable': this.editable,\n 'v-stepper__step--inactive': this.isInactive,\n 'v-stepper__step--error error--text': this.hasError,\n 'v-stepper__step--complete': this.complete,\n }\n },\n hasError (): boolean {\n return this.rules.some(validate => validate() !== true)\n },\n },\n\n mounted () {\n this.stepper && this.stepper.register(this)\n },\n\n beforeDestroy () {\n this.stepper && this.stepper.unregister(this)\n },\n\n methods: {\n click (e: MouseEvent | KeyboardEvent) {\n e.stopPropagation()\n\n this.$emit('click', e)\n\n if (this.editable) {\n this.stepClick(this.step)\n }\n },\n genIcon (icon: string) {\n return this.$createElement(VIcon, icon)\n },\n genLabel () {\n return this.$createElement('div', {\n staticClass: 'v-stepper__label',\n }, this.$slots.default)\n },\n genStep () {\n const color = (!this.hasError && (this.complete || this.isActive)) ? this.color : false\n\n return this.$createElement('span', this.setBackgroundColor(color, {\n staticClass: 'v-stepper__step__step',\n }), this.genStepContent())\n },\n genStepContent () {\n const children = []\n\n if (this.hasError) {\n children.push(this.genIcon(this.errorIcon))\n } else if (this.complete) {\n if (this.editable) {\n children.push(this.genIcon(this.editIcon))\n } else {\n children.push(this.genIcon(this.completeIcon))\n }\n } else {\n children.push(String(this.step))\n }\n\n return children\n },\n keyboardClick (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.space) {\n this.click(e)\n }\n },\n toggle (step: number | string) {\n this.isActive = step.toString() === this.step.toString()\n this.isInactive = Number(step) < Number(this.step)\n },\n },\n\n render (h): VNode {\n return h('div', {\n attrs: {\n tabindex: this.editable ? 0 : -1,\n },\n staticClass: 'v-stepper__step',\n class: this.classes,\n directives: [{\n name: 'ripple',\n value: this.editable,\n }],\n on: {\n click: this.click,\n keydown: this.keyboardClick,\n },\n }, [\n this.genStep(),\n this.genLabel(),\n ])\n },\n})\n","// Components\nimport {\n VTabTransition,\n VTabReverseTransition,\n} from '../transitions'\n\n// Mixins\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, FunctionalComponentOptions, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n RegistrableInject('stepper', 'v-stepper-content', 'v-stepper')\n)\n\ninterface options extends InstanceType {\n $refs: {\n wrapper: HTMLElement\n }\n isVerticalProvided: boolean\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-stepper-content',\n\n inject: {\n isVerticalProvided: {\n from: 'isVertical',\n },\n },\n\n props: {\n step: {\n type: [Number, String],\n required: true,\n },\n },\n\n data () {\n return {\n height: 0 as number | string,\n // Must be null to allow\n // previous comparison\n isActive: null as boolean | null,\n isReverse: false,\n isVertical: this.isVerticalProvided,\n }\n },\n\n computed: {\n computedTransition (): FunctionalComponentOptions {\n // Fix for #8978\n const reverse = this.$vuetify.rtl ? !this.isReverse : this.isReverse\n\n return reverse\n ? VTabReverseTransition\n : VTabTransition\n },\n styles (): object {\n if (!this.isVertical) return {}\n\n return {\n height: convertToUnit(this.height),\n }\n },\n },\n\n watch: {\n isActive (current, previous) {\n // If active and the previous state\n // was null, is just booting up\n if (current && previous == null) {\n this.height = 'auto'\n return\n }\n\n if (!this.isVertical) return\n\n if (this.isActive) this.enter()\n else this.leave()\n },\n },\n\n mounted () {\n this.$refs.wrapper.addEventListener(\n 'transitionend',\n this.onTransition,\n false\n )\n this.stepper && this.stepper.register(this)\n },\n\n beforeDestroy () {\n this.$refs.wrapper.removeEventListener(\n 'transitionend',\n this.onTransition,\n false\n )\n this.stepper && this.stepper.unregister(this)\n },\n\n methods: {\n onTransition (e: TransitionEvent) {\n if (!this.isActive ||\n e.propertyName !== 'height'\n ) return\n\n this.height = 'auto'\n },\n enter () {\n let scrollHeight = 0\n\n // Render bug with height\n requestAnimationFrame(() => {\n scrollHeight = this.$refs.wrapper.scrollHeight\n })\n\n this.height = 0\n\n // Give the collapsing element time to collapse\n setTimeout(() => this.isActive && (this.height = (scrollHeight || 'auto')), 450)\n },\n leave () {\n this.height = this.$refs.wrapper.clientHeight\n setTimeout(() => (this.height = 0), 10)\n },\n toggle (step: string | number, reverse: boolean) {\n this.isActive = step.toString() === this.step.toString()\n this.isReverse = reverse\n },\n },\n\n render (h): VNode {\n const contentData = {\n staticClass: 'v-stepper__content',\n } as VNodeData\n const wrapperData = {\n staticClass: 'v-stepper__wrapper',\n style: this.styles,\n ref: 'wrapper',\n }\n\n if (!this.isVertical) {\n contentData.directives = [{\n name: 'show',\n value: this.isActive,\n }]\n }\n\n const wrapper = h('div', wrapperData, [this.$slots.default])\n const content = h('div', contentData, [wrapper])\n\n return h(this.computedTransition, {\n on: this.$listeners,\n }, [content])\n },\n})\n","import { createSimpleFunctional } from '../../util/helpers'\nimport VStepper from './VStepper'\nimport VStepperStep from './VStepperStep'\nimport VStepperContent from './VStepperContent'\n\nconst VStepperHeader = createSimpleFunctional('v-stepper__header')\nconst VStepperItems = createSimpleFunctional('v-stepper__items')\n\nexport {\n VStepper,\n VStepperContent,\n VStepperStep,\n VStepperHeader,\n VStepperItems,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VStepper,\n VStepperContent,\n VStepperStep,\n VStepperHeader,\n VStepperItems,\n },\n}\n","// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Routable from '../../mixins/routable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { keyCodes } from './../../util/helpers'\nimport mixins from '../../util/mixins'\nimport { ExtractVue } from './../../util/mixins'\n\n// Types\nimport { VNode } from 'vue/types'\n\n// Components\nimport VTabsBar from '../VTabs/VTabsBar'\n\nconst baseMixins = mixins(\n Routable,\n // Must be after routable\n // to overwrite activeClass\n GroupableFactory('tabsBar'),\n Themeable\n)\n\ntype VTabBarInstance = InstanceType\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n tabsBar: VTabBarInstance\n}\n\nexport default baseMixins.extend().extend(\n /* @vue/component */\n).extend({\n name: 'v-tab',\n\n props: {\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n },\n\n data: () => ({\n proxyClass: 'v-tab--active',\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-tab': true,\n ...Routable.options.computed.classes.call(this),\n 'v-tab--disabled': this.disabled,\n ...this.groupClasses,\n }\n },\n value (): any {\n let to = this.to || this.href\n\n if (to == null) return to\n\n if (this.$router &&\n this.to === Object(this.to)\n ) {\n const resolve = this.$router.resolve(\n this.to,\n this.$route,\n this.append\n )\n\n to = resolve.href\n }\n\n return to.replace('#', '')\n },\n },\n\n methods: {\n click (e: KeyboardEvent | MouseEvent): void {\n // Prevent keyboard actions\n // from children elements\n // within disabled tabs\n if (this.disabled) {\n e.preventDefault()\n return\n }\n\n // If user provides an\n // actual link, do not\n // prevent default\n if (this.href &&\n this.href.indexOf('#') > -1\n ) e.preventDefault()\n\n if (e.detail) this.$el.blur()\n\n this.$emit('click', e)\n\n this.to || this.toggle()\n },\n toggle () {\n // VItemGroup treats a change event as a click\n if (!this.isActive || (!this.tabsBar.mandatory && !this.to)) {\n this.$emit('change')\n }\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n 'aria-selected': String(this.isActive),\n role: 'tab',\n tabindex: this.disabled ? -1 : 0,\n }\n data.on = {\n ...data.on,\n keydown: (e: KeyboardEvent) => {\n if (e.keyCode === keyCodes.enter) this.click(e)\n\n this.$emit('keydown', e)\n },\n }\n\n return h(tag, data, this.$slots.default)\n },\n})\n","// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport { VFadeTransition } from '../transitions'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Mobile from '../../mixins/mobile'\n\n// Directives\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode } from 'vue'\nimport { composedPath } from '../../util/helpers'\n\ninterface TouchEvent {\n touchstartX: number\n touchstartY: number\n touchmoveX: number\n touchmoveY: number\n stopPropagation: Function\n}\n\ninterface Widths {\n content: number\n wrapper: number\n}\n\ninterface options extends Vue {\n $refs: {\n content: HTMLElement\n wrapper: HTMLElement\n }\n}\n\nfunction bias (val: number) {\n const c = 0.501\n const x = Math.abs(val)\n return Math.sign(val) * (x / ((1 / c - 2) * (1 - x) + 1))\n}\n\nexport function calculateUpdatedOffset (\n selectedElement: HTMLElement,\n widths: Widths,\n rtl: boolean,\n currentScrollOffset: number\n): number {\n const clientWidth = selectedElement.clientWidth\n const offsetLeft = rtl\n ? (widths.content - selectedElement.offsetLeft - clientWidth)\n : selectedElement.offsetLeft\n\n if (rtl) {\n currentScrollOffset = -currentScrollOffset\n }\n\n const totalWidth = widths.wrapper + currentScrollOffset\n const itemOffset = clientWidth + offsetLeft\n const additionalOffset = clientWidth * 0.4\n\n if (offsetLeft <= currentScrollOffset) {\n currentScrollOffset = Math.max(offsetLeft - additionalOffset, 0)\n } else if (totalWidth <= itemOffset) {\n currentScrollOffset = Math.min(currentScrollOffset - (totalWidth - itemOffset - additionalOffset), widths.content - widths.wrapper)\n }\n\n return rtl ? -currentScrollOffset : currentScrollOffset\n}\n\nexport function calculateCenteredOffset (\n selectedElement: HTMLElement,\n widths: Widths,\n rtl: boolean\n): number {\n const { offsetLeft, clientWidth } = selectedElement\n\n if (rtl) {\n const offsetCentered = widths.content - offsetLeft - clientWidth / 2 - widths.wrapper / 2\n return -Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n } else {\n const offsetCentered = offsetLeft + clientWidth / 2 - widths.wrapper / 2\n return Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n }\n}\n\nexport const BaseSlideGroup = mixins\n/* eslint-enable indent */\n>(\n BaseItemGroup,\n Mobile,\n /* @vue/component */\n).extend({\n name: 'base-slide-group',\n\n directives: {\n Resize,\n Touch,\n },\n\n props: {\n activeClass: {\n type: String,\n default: 'v-slide-item--active',\n },\n centerActive: Boolean,\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: v => (\n typeof v === 'boolean' || [\n 'always',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n },\n\n data: () => ({\n internalItemsLength: 0,\n isOverflowing: false,\n resizeTimeout: 0,\n startX: 0,\n isSwipingHorizontal: false,\n isSwiping: false,\n scrollOffset: 0,\n widths: {\n content: 0,\n wrapper: 0,\n },\n }),\n\n computed: {\n canTouch (): boolean {\n return typeof window !== 'undefined'\n },\n __cachedNext (): VNode {\n return this.genTransition('next')\n },\n __cachedPrev (): VNode {\n return this.genTransition('prev')\n },\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-slide-group': true,\n 'v-slide-group--has-affixes': this.hasAffixes,\n 'v-slide-group--is-overflowing': this.isOverflowing,\n }\n },\n hasAffixes (): Boolean {\n switch (this.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !this.isMobile\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return this.isOverflowing || Math.abs(this.scrollOffset) > 0\n\n // Always show on mobile\n case 'mobile': return (\n this.isMobile ||\n (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n )\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !this.isMobile &&\n (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n )\n }\n },\n hasNext (): boolean {\n if (!this.hasAffixes) return false\n\n const { content, wrapper } = this.widths\n\n // Check one scroll ahead to know the width of right-most item\n return content > Math.abs(this.scrollOffset) + wrapper\n },\n hasPrev (): boolean {\n return this.hasAffixes && this.scrollOffset !== 0\n },\n },\n\n watch: {\n internalValue: 'setWidths',\n // When overflow changes, the arrows alter\n // the widths of the content and wrapper\n // and need to be recalculated\n isOverflowing: 'setWidths',\n scrollOffset (val) {\n if (this.$vuetify.rtl) val = -val\n\n let scroll =\n val <= 0\n ? bias(-val)\n : val > this.widths.content - this.widths.wrapper\n ? -(this.widths.content - this.widths.wrapper) + bias(this.widths.content - this.widths.wrapper - val)\n : -val\n\n if (this.$vuetify.rtl) scroll = -scroll\n\n this.$refs.content.style.transform = `translateX(${scroll}px)`\n },\n },\n\n beforeUpdate () {\n this.internalItemsLength = (this.$children || []).length\n },\n\n updated () {\n if (this.internalItemsLength === (this.$children || []).length) return\n this.setWidths()\n },\n\n methods: {\n onScroll () {\n this.$refs.wrapper.scrollLeft = 0\n },\n onFocusin (e: FocusEvent) {\n if (!this.isOverflowing) return\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of composedPath(e)) {\n for (const vm of this.items) {\n if (vm.$el === el) {\n this.scrollOffset = calculateUpdatedOffset(\n vm.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n return\n }\n }\n }\n },\n // Always generate next for scrollable hint\n genNext (): VNode | null {\n const slot = this.$scopedSlots.next\n ? this.$scopedSlots.next({})\n : this.$slots.next || this.__cachedNext\n\n return this.$createElement('div', {\n staticClass: 'v-slide-group__next',\n class: {\n 'v-slide-group__next--disabled': !this.hasNext,\n },\n on: {\n click: () => this.onAffixClick('next'),\n },\n key: 'next',\n }, [slot])\n },\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__content',\n ref: 'content',\n on: {\n focusin: this.onFocusin,\n },\n }, this.$slots.default)\n },\n genData (): object {\n return {\n class: this.classes,\n directives: [{\n name: 'resize',\n value: this.onResize,\n }],\n }\n },\n genIcon (location: 'prev' | 'next'): VNode | null {\n let icon = location\n\n if (this.$vuetify.rtl && location === 'prev') {\n icon = 'next'\n } else if (this.$vuetify.rtl && location === 'next') {\n icon = 'prev'\n }\n\n const upperLocation = `${location[0].toUpperCase()}${location.slice(1)}`\n const hasAffix = (this as any)[`has${upperLocation}`]\n\n if (\n !this.showArrows &&\n !hasAffix\n ) return null\n\n return this.$createElement(VIcon, {\n props: {\n disabled: !hasAffix,\n },\n }, (this as any)[`${icon}Icon`])\n },\n // Always generate prev for scrollable hint\n genPrev (): VNode | null {\n const slot = this.$scopedSlots.prev\n ? this.$scopedSlots.prev({})\n : this.$slots.prev || this.__cachedPrev\n\n return this.$createElement('div', {\n staticClass: 'v-slide-group__prev',\n class: {\n 'v-slide-group__prev--disabled': !this.hasPrev,\n },\n on: {\n click: () => this.onAffixClick('prev'),\n },\n key: 'prev',\n }, [slot])\n },\n genTransition (location: 'prev' | 'next') {\n return this.$createElement(VFadeTransition, [this.genIcon(location)])\n },\n genWrapper (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__wrapper',\n directives: [{\n name: 'touch',\n value: {\n start: (e: TouchEvent) => this.overflowCheck(e, this.onTouchStart),\n move: (e: TouchEvent) => this.overflowCheck(e, this.onTouchMove),\n end: (e: TouchEvent) => this.overflowCheck(e, this.onTouchEnd),\n },\n }],\n ref: 'wrapper',\n on: {\n scroll: this.onScroll,\n },\n }, [this.genContent()])\n },\n calculateNewOffset (direction: 'prev' | 'next', widths: Widths, rtl: boolean, currentScrollOffset: number) {\n const sign = rtl ? -1 : 1\n const newAbosluteOffset = sign * currentScrollOffset +\n (direction === 'prev' ? -1 : 1) * widths.wrapper\n\n return sign * Math.max(Math.min(newAbosluteOffset, widths.content - widths.wrapper), 0)\n },\n onAffixClick (location: 'prev' | 'next') {\n this.$emit(`click:${location}`)\n this.scrollTo(location)\n },\n onResize () {\n /* istanbul ignore next */\n if (this._isDestroyed) return\n\n this.setWidths()\n },\n onTouchStart (e: TouchEvent) {\n const { content } = this.$refs\n\n this.startX = this.scrollOffset + e.touchstartX as number\n\n content.style.setProperty('transition', 'none')\n content.style.setProperty('willChange', 'transform')\n },\n onTouchMove (e: TouchEvent) {\n if (!this.canTouch) return\n\n if (!this.isSwiping) {\n // only calculate disableSwipeHorizontal during the first onTouchMove invoke\n // in order to ensure disableSwipeHorizontal value is consistent between onTouchStart and onTouchEnd\n const diffX = e.touchmoveX - e.touchstartX\n const diffY = e.touchmoveY - e.touchstartY\n this.isSwipingHorizontal = Math.abs(diffX) > Math.abs(diffY)\n this.isSwiping = true\n }\n\n if (this.isSwipingHorizontal) {\n // sliding horizontally\n this.scrollOffset = this.startX - e.touchmoveX\n // temporarily disable window vertical scrolling\n document.documentElement.style.overflowY = 'hidden'\n }\n },\n onTouchEnd () {\n if (!this.canTouch) return\n\n const { content, wrapper } = this.$refs\n const maxScrollOffset = content.clientWidth - wrapper.clientWidth\n\n content.style.setProperty('transition', null)\n content.style.setProperty('willChange', null)\n\n if (this.$vuetify.rtl) {\n /* istanbul ignore else */\n if (this.scrollOffset > 0 || !this.isOverflowing) {\n this.scrollOffset = 0\n } else if (this.scrollOffset <= -maxScrollOffset) {\n this.scrollOffset = -maxScrollOffset\n }\n } else {\n /* istanbul ignore else */\n if (this.scrollOffset < 0 || !this.isOverflowing) {\n this.scrollOffset = 0\n } else if (this.scrollOffset >= maxScrollOffset) {\n this.scrollOffset = maxScrollOffset\n }\n }\n\n this.isSwiping = false\n // rollback whole page scrolling to default\n document.documentElement.style.removeProperty('overflow-y')\n },\n overflowCheck (e: TouchEvent, fn: (e: TouchEvent) => void) {\n e.stopPropagation()\n this.isOverflowing && fn(e)\n },\n scrollIntoView /* istanbul ignore next */ () {\n if (!this.selectedItem && this.items.length) {\n const lastItemPosition = this.items[this.items.length - 1].$el.getBoundingClientRect()\n const wrapperPosition = this.$refs.wrapper.getBoundingClientRect()\n\n if (\n (this.$vuetify.rtl && wrapperPosition.right < lastItemPosition.right) ||\n (!this.$vuetify.rtl && wrapperPosition.left > lastItemPosition.left)\n ) {\n this.scrollTo('prev')\n }\n }\n\n if (!this.selectedItem) {\n return\n }\n\n if (\n this.selectedIndex === 0 ||\n (!this.centerActive && !this.isOverflowing)\n ) {\n this.scrollOffset = 0\n } else if (this.centerActive) {\n this.scrollOffset = calculateCenteredOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl\n )\n } else if (this.isOverflowing) {\n this.scrollOffset = calculateUpdatedOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n }\n },\n scrollTo /* istanbul ignore next */ (location: 'prev' | 'next') {\n this.scrollOffset = this.calculateNewOffset(location, {\n // Force reflow\n content: this.$refs.content ? this.$refs.content.clientWidth : 0,\n wrapper: this.$refs.wrapper ? this.$refs.wrapper.clientWidth : 0,\n }, this.$vuetify.rtl, this.scrollOffset)\n },\n setWidths () {\n window.requestAnimationFrame(() => {\n if (this._isDestroyed) return\n\n const { content, wrapper } = this.$refs\n\n this.widths = {\n content: content ? content.clientWidth : 0,\n wrapper: wrapper ? wrapper.clientWidth : 0,\n }\n\n // https://github.com/vuetifyjs/vuetify/issues/13212\n // We add +1 to the wrappers width to prevent an issue where the `clientWidth`\n // gets calculated wrongly by the browser if using a different zoom-level.\n this.isOverflowing = this.widths.wrapper + 1 < this.widths.content\n\n this.scrollIntoView()\n })\n },\n },\n\n render (h): VNode {\n return h('div', this.genData(), [\n this.genPrev(),\n this.genWrapper(),\n this.genNext(),\n ])\n },\n})\n\nexport default BaseSlideGroup.extend({\n name: 'v-slide-group',\n\n provide (): object {\n return {\n slideGroup: this,\n }\n },\n})\n","// Extensions\nimport { BaseSlideGroup } from '../VSlideGroup/VSlideGroup'\n\n// Components\nimport VTab from './VTab'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport SSRBootable from '../../mixins/ssr-bootable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { Route } from 'vue-router'\nimport { VNode } from 'vue'\n\ntype VTabInstance = InstanceType\n\nexport default mixins(\n BaseSlideGroup,\n SSRBootable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-tabs-bar',\n\n provide () {\n return {\n tabsBar: this,\n }\n },\n\n computed: {\n classes () {\n return {\n ...BaseSlideGroup.options.computed.classes.call(this),\n 'v-tabs-bar': true,\n 'v-tabs-bar--is-mobile': this.isMobile,\n // TODO: Remove this and move to v-slide-group\n 'v-tabs-bar--show-arrows': this.showArrows,\n ...this.themeClasses,\n }\n },\n },\n\n watch: {\n items: 'callSlider',\n internalValue: 'callSlider',\n $route: 'onRouteChange',\n },\n\n methods: {\n callSlider () {\n if (!this.isBooted) return\n\n this.$emit('call:slider')\n },\n genContent () {\n const render = BaseSlideGroup.options.methods.genContent.call(this)\n\n render.data = render.data || {}\n render.data.staticClass += ' v-tabs-bar__content'\n\n return render\n },\n onRouteChange (val: Route, oldVal: Route) {\n /* istanbul ignore next */\n if (this.mandatory) return\n\n const items = this.items as unknown as VTabInstance[]\n const newPath = val.path\n const oldPath = oldVal.path\n\n let hasNew = false\n let hasOld = false\n\n for (const item of items) {\n if (item.to === oldPath) hasOld = true\n else if (item.to === newPath) hasNew = true\n\n if (hasNew && hasOld) break\n }\n\n // If we have an old item and not a new one\n // it's assumed that the user navigated to\n // a path that is not present in the items\n if (!hasNew && hasOld) this.internalValue = undefined\n },\n },\n\n render (h): VNode {\n const render = BaseSlideGroup.options.render.call(this, h)\n\n render.data!.attrs = {\n role: 'tablist',\n }\n\n return render\n },\n})\n","// Styles\nimport './VWindow.sass'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue/types/vnode'\nimport { PropType } from 'vue'\nimport { TouchHandlers } from 'vuetify/types'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n name: 'v-window',\n\n directives: { Touch },\n\n provide (): object {\n return {\n windowGroup: this,\n }\n },\n\n props: {\n activeClass: {\n type: String,\n default: 'v-window-item--active',\n },\n continuous: Boolean,\n mandatory: {\n type: Boolean,\n default: true,\n },\n nextIcon: {\n type: [Boolean, String],\n default: '$next',\n },\n prevIcon: {\n type: [Boolean, String],\n default: '$prev',\n },\n reverse: Boolean,\n showArrows: Boolean,\n showArrowsOnHover: Boolean,\n touch: Object as PropType,\n touchless: Boolean,\n value: {\n required: false,\n },\n vertical: Boolean,\n },\n\n data () {\n return {\n changedByDelimiters: false,\n internalHeight: undefined as undefined | string, // This can be fixed by child class.\n transitionHeight: undefined as undefined | string, // Intermediate height during transition.\n transitionCount: 0, // Number of windows in transition state.\n isBooted: false,\n isReverse: false,\n }\n },\n\n computed: {\n isActive (): boolean {\n return this.transitionCount > 0\n },\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-window--show-arrows-on-hover': this.showArrowsOnHover,\n }\n },\n computedTransition (): string {\n if (!this.isBooted) return ''\n\n const axis = this.vertical ? 'y' : 'x'\n const reverse = this.internalReverse ? !this.isReverse : this.isReverse\n const direction = reverse ? '-reverse' : ''\n\n return `v-window-${axis}${direction}-transition`\n },\n hasActiveItems (): boolean {\n return Boolean(\n this.items.find(item => !item.disabled)\n )\n },\n hasNext (): boolean {\n return this.continuous || this.internalIndex < this.items.length - 1\n },\n hasPrev (): boolean {\n return this.continuous || this.internalIndex > 0\n },\n internalIndex (): number {\n return this.items.findIndex((item, i) => {\n return this.internalValue === this.getValue(item, i)\n })\n },\n internalReverse (): boolean {\n return this.$vuetify.rtl ? !this.reverse : this.reverse\n },\n },\n\n watch: {\n internalIndex (val, oldVal) {\n this.isReverse = this.updateReverse(val, oldVal)\n },\n },\n\n mounted () {\n window.requestAnimationFrame(() => (this.isBooted = true))\n },\n\n methods: {\n genDefaultSlot () {\n return this.$slots.default\n },\n genContainer (): VNode {\n const children = [this.genDefaultSlot()]\n\n if (this.showArrows) {\n children.push(this.genControlIcons())\n }\n\n return this.$createElement('div', {\n staticClass: 'v-window__container',\n class: {\n 'v-window__container--is-active': this.isActive,\n },\n style: {\n height: this.internalHeight || this.transitionHeight,\n },\n }, children)\n },\n genIcon (\n direction: 'prev' | 'next',\n icon: string,\n click: () => void\n ) {\n const on = {\n click: (e: Event) => {\n e.stopPropagation()\n this.changedByDelimiters = true\n click()\n },\n }\n const attrs = {\n 'aria-label': this.$vuetify.lang.t(`$vuetify.carousel.${direction}`),\n }\n const children = this.$scopedSlots[direction]?.({\n on,\n attrs,\n }) ?? [this.$createElement(VBtn, {\n props: { icon: true },\n attrs,\n on,\n }, [\n this.$createElement(VIcon, {\n props: { large: true },\n }, icon),\n ])]\n\n return this.$createElement('div', {\n staticClass: `v-window__${direction}`,\n }, children)\n },\n genControlIcons () {\n const icons = []\n\n const prevIcon = this.$vuetify.rtl\n ? this.nextIcon\n : this.prevIcon\n\n /* istanbul ignore else */\n if (\n this.hasPrev &&\n prevIcon &&\n typeof prevIcon === 'string'\n ) {\n const icon = this.genIcon('prev', prevIcon, this.prev)\n icon && icons.push(icon)\n }\n\n const nextIcon = this.$vuetify.rtl\n ? this.prevIcon\n : this.nextIcon\n\n /* istanbul ignore else */\n if (\n this.hasNext &&\n nextIcon &&\n typeof nextIcon === 'string'\n ) {\n const icon = this.genIcon('next', nextIcon, this.next)\n icon && icons.push(icon)\n }\n\n return icons\n },\n getNextIndex (index: number): number {\n const nextIndex = (index + 1) % this.items.length\n const item = this.items[nextIndex]\n\n if (item.disabled) return this.getNextIndex(nextIndex)\n\n return nextIndex\n },\n getPrevIndex (index: number): number {\n const prevIndex = (index + this.items.length - 1) % this.items.length\n const item = this.items[prevIndex]\n\n if (item.disabled) return this.getPrevIndex(prevIndex)\n\n return prevIndex\n },\n next () {\n /* istanbul ignore if */\n if (!this.hasActiveItems || !this.hasNext) return\n\n const nextIndex = this.getNextIndex(this.internalIndex)\n const item = this.items[nextIndex]\n\n this.internalValue = this.getValue(item, nextIndex)\n },\n prev () {\n /* istanbul ignore if */\n if (!this.hasActiveItems || !this.hasPrev) return\n\n const lastIndex = this.getPrevIndex(this.internalIndex)\n const item = this.items[lastIndex]\n\n this.internalValue = this.getValue(item, lastIndex)\n },\n updateReverse (val: number, oldVal: number) {\n const itemsLength = this.items.length\n const lastIndex = itemsLength - 1\n\n if (itemsLength <= 2) return val < oldVal\n\n if (val === lastIndex && oldVal === 0) {\n return true\n } else if (val === 0 && oldVal === lastIndex) {\n return false\n } else {\n return val < oldVal\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-window',\n class: this.classes,\n directives: [] as VNodeDirective[],\n }\n\n if (!this.touchless) {\n const value = this.touch || {\n left: () => {\n this.$vuetify.rtl ? this.prev() : this.next()\n },\n right: () => {\n this.$vuetify.rtl ? this.next() : this.prev()\n },\n end: (e: TouchEvent) => {\n e.stopPropagation()\n },\n start: (e: TouchEvent) => {\n e.stopPropagation()\n },\n }\n\n data.directives.push({\n name: 'touch',\n value,\n })\n }\n\n return h('div', data, [this.genContainer()])\n },\n})\n","// Extensions\nimport VWindow from '../VWindow/VWindow'\n\n// Types & Components\nimport { BaseItemGroup, GroupableInstance } from './../VItemGroup/VItemGroup'\n\n/* @vue/component */\nexport default VWindow.extend({\n name: 'v-tabs-items',\n\n props: {\n mandatory: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n classes (): object {\n return {\n ...VWindow.options.computed.classes.call(this),\n 'v-tabs-items': true,\n }\n },\n isDark (): boolean {\n return this.rootIsDark\n },\n },\n\n methods: {\n getValue (item: GroupableInstance, i: number) {\n return item.id || BaseItemGroup.options.methods.getValue.call(this, item, i)\n },\n },\n})\n","// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue/types'\n\n/* @vue/component */\nexport default mixins(Colorable).extend({\n name: 'v-tabs-slider',\n\n render (h): VNode {\n return h('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-tabs-slider',\n }))\n },\n})\n","// Styles\nimport './VTabs.sass'\n\n// Components\nimport VTabsBar from './VTabsBar'\nimport VTabsItems from './VTabsItems'\nimport VTabsSlider from './VTabsSlider'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\nimport { ExtractVue } from './../../util/mixins'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue/types'\n\nconst baseMixins = mixins(\n Colorable,\n Proxyable,\n Themeable\n)\n\ninterface options extends ExtractVue {\n $refs: {\n items: InstanceType\n }\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-tabs',\n\n directives: {\n Resize,\n },\n\n props: {\n activeClass: {\n type: String,\n default: '',\n },\n alignWithTitle: Boolean,\n backgroundColor: String,\n centerActive: Boolean,\n centered: Boolean,\n fixedTabs: Boolean,\n grow: Boolean,\n height: {\n type: [Number, String],\n default: undefined,\n },\n hideSlider: Boolean,\n iconsAndText: Boolean,\n mobileBreakpoint: [String, Number],\n nextIcon: {\n type: String,\n default: '$next',\n },\n optional: Boolean,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n right: Boolean,\n showArrows: [Boolean, String],\n sliderColor: String,\n sliderSize: {\n type: [Number, String],\n default: 2,\n },\n vertical: Boolean,\n },\n\n data () {\n return {\n resizeTimeout: 0,\n slider: {\n height: null as null | number,\n left: null as null | number,\n right: null as null | number,\n top: null as null | number,\n width: null as null | number,\n },\n transitionTime: 300,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-tabs--align-with-title': this.alignWithTitle,\n 'v-tabs--centered': this.centered,\n 'v-tabs--fixed-tabs': this.fixedTabs,\n 'v-tabs--grow': this.grow,\n 'v-tabs--icons-and-text': this.iconsAndText,\n 'v-tabs--right': this.right,\n 'v-tabs--vertical': this.vertical,\n ...this.themeClasses,\n }\n },\n isReversed (): boolean {\n return this.$vuetify.rtl && this.vertical\n },\n sliderStyles (): object {\n return {\n height: convertToUnit(this.slider.height),\n left: this.isReversed ? undefined : convertToUnit(this.slider.left),\n right: this.isReversed ? convertToUnit(this.slider.right) : undefined,\n top: this.vertical ? convertToUnit(this.slider.top) : undefined,\n transition: this.slider.left != null ? null : 'none',\n width: convertToUnit(this.slider.width),\n }\n },\n computedColor (): string {\n if (this.color) return this.color\n else if (this.isDark && !this.appIsDark) return 'white'\n else return 'primary'\n },\n },\n\n watch: {\n alignWithTitle: 'callSlider',\n centered: 'callSlider',\n centerActive: 'callSlider',\n fixedTabs: 'callSlider',\n grow: 'callSlider',\n iconsAndText: 'callSlider',\n right: 'callSlider',\n showArrows: 'callSlider',\n vertical: 'callSlider',\n '$vuetify.application.left': 'onResize',\n '$vuetify.application.right': 'onResize',\n '$vuetify.rtl': 'onResize',\n },\n\n mounted () {\n this.$nextTick(() => {\n window.setTimeout(this.callSlider, 30)\n })\n },\n\n methods: {\n callSlider () {\n if (\n this.hideSlider ||\n !this.$refs.items ||\n !this.$refs.items.selectedItems.length\n ) {\n this.slider.width = 0\n return false\n }\n\n this.$nextTick(() => {\n // Give screen time to paint\n const activeTab = this.$refs.items.selectedItems[0]\n /* istanbul ignore if */\n if (!activeTab || !activeTab.$el) {\n this.slider.width = 0\n this.slider.left = 0\n return\n }\n const el = activeTab.$el as HTMLElement\n\n this.slider = {\n height: !this.vertical ? Number(this.sliderSize) : el.scrollHeight,\n left: this.vertical ? 0 : el.offsetLeft,\n right: this.vertical ? 0 : el.offsetLeft + el.offsetWidth,\n top: el.offsetTop,\n width: this.vertical ? Number(this.sliderSize) : el.scrollWidth,\n }\n })\n\n return true\n },\n genBar (items: VNode[], slider: VNode | null) {\n const data = {\n style: {\n height: convertToUnit(this.height),\n },\n props: {\n activeClass: this.activeClass,\n centerActive: this.centerActive,\n dark: this.dark,\n light: this.light,\n mandatory: !this.optional,\n mobileBreakpoint: this.mobileBreakpoint,\n nextIcon: this.nextIcon,\n prevIcon: this.prevIcon,\n showArrows: this.showArrows,\n value: this.internalValue,\n },\n on: {\n 'call:slider': this.callSlider,\n change: (val: any) => {\n this.internalValue = val\n },\n },\n ref: 'items',\n }\n\n this.setTextColor(this.computedColor, data)\n this.setBackgroundColor(this.backgroundColor, data)\n\n return this.$createElement(VTabsBar, data, [\n this.genSlider(slider),\n items,\n ])\n },\n genItems (items: VNode | null, item: VNode[]) {\n // If user provides items\n // opt to use theirs\n if (items) return items\n\n // If no tabs are provided\n // render nothing\n if (!item.length) return null\n\n return this.$createElement(VTabsItems, {\n props: {\n value: this.internalValue,\n },\n on: {\n change: (val: any) => {\n this.internalValue = val\n },\n },\n }, item)\n },\n genSlider (slider: VNode | null) {\n if (this.hideSlider) return null\n\n if (!slider) {\n slider = this.$createElement(VTabsSlider, {\n props: { color: this.sliderColor },\n })\n }\n\n return this.$createElement('div', {\n staticClass: 'v-tabs-slider-wrapper',\n style: this.sliderStyles,\n }, [slider])\n },\n onResize () {\n if (this._isDestroyed) return\n\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(this.callSlider, 0)\n },\n parseNodes () {\n let items = null\n let slider = null\n const item = []\n const tab = []\n const slot = this.$slots.default || []\n const length = slot.length\n\n for (let i = 0; i < length; i++) {\n const vnode = slot[i]\n\n if (vnode.componentOptions) {\n switch (vnode.componentOptions.Ctor.options.name) {\n case 'v-tabs-slider': slider = vnode\n break\n case 'v-tabs-items': items = vnode\n break\n case 'v-tab-item': item.push(vnode)\n break\n // case 'v-tab' - intentionally omitted\n default: tab.push(vnode)\n }\n } else {\n tab.push(vnode)\n }\n }\n\n /**\n * tab: array of `v-tab`\n * slider: single `v-tabs-slider`\n * items: single `v-tabs-items`\n * item: array of `v-tab-item`\n */\n return { tab, slider, items, item }\n },\n },\n\n render (h): VNode {\n const { tab, slider, items, item } = this.parseNodes()\n\n return h('div', {\n staticClass: 'v-tabs',\n class: this.classes,\n directives: [{\n name: 'resize',\n modifiers: { quiet: true },\n value: this.onResize,\n }],\n }, [\n this.genBar(tab, slider),\n this.genItems(items, item),\n ])\n },\n})\n","// Styles\nimport './VCounter.sass'\n\n// Mixins\nimport Themeable, { functionalThemeClasses } from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Themeable).extend({\n name: 'v-counter',\n\n functional: true,\n\n props: {\n value: {\n type: [Number, String],\n default: '',\n },\n max: [Number, String],\n },\n\n render (h, ctx): VNode {\n const { props } = ctx\n const max = parseInt(props.max, 10)\n const value = parseInt(props.value, 10)\n const content = max ? `${value} / ${max}` : String(props.value)\n const isGreater = max && (value > max)\n\n return h('div', {\n staticClass: 'v-counter',\n class: {\n 'error--text': isGreater,\n ...functionalThemeClasses(ctx),\n },\n }, content)\n },\n})\n","import VCounter from './VCounter'\n\nexport { VCounter }\nexport default VCounter\n","// Directives\nimport Intersect from '../../directives/intersect'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue from 'vue'\n\nexport default function intersectable (options: { onVisible: string[] }) {\n return Vue.extend({\n name: 'intersectable',\n\n data: () => ({\n isIntersecting: false,\n }),\n\n mounted () {\n Intersect.inserted(this.$el as HTMLElement, {\n name: 'intersect',\n value: this.onObserve,\n }, this.$vnode)\n },\n\n destroyed () {\n Intersect.unbind(this.$el as HTMLElement, {\n name: 'intersect',\n value: this.onObserve,\n }, this.$vnode)\n },\n\n methods: {\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isIntersecting = isIntersecting\n\n if (!isIntersecting) return\n\n for (let i = 0, length = options.onVisible.length; i < length; i++) {\n const callback = (this as any)[options.onVisible[i]]\n\n if (typeof callback === 'function') {\n callback()\n continue\n }\n\n consoleWarn(options.onVisible[i] + ' method is not available on the instance but referenced in intersectable mixin options')\n }\n },\n },\n })\n}\n","// Styles\nimport './VTextField.sass'\n\n// Extensions\nimport VInput from '../VInput'\n\n// Components\nimport VCounter from '../VCounter'\nimport VLabel from '../VLabel'\n\n// Mixins\nimport Intersectable from '../../mixins/intersectable'\nimport Loadable from '../../mixins/loadable'\nimport Validatable from '../../mixins/validatable'\n\n// Directives\nimport resize from '../../directives/resize'\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { attachedRoot } from '../../util/dom'\nimport { convertToUnit, keyCodes } from '../../util/helpers'\nimport { breaking, consoleWarn } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, PropType } from 'vue/types'\n\nconst baseMixins = mixins(\n VInput,\n Intersectable({\n onVisible: [\n 'onResize',\n 'tryAutofocus',\n ],\n }),\n Loadable,\n)\ninterface options extends InstanceType {\n $refs: {\n label: HTMLElement\n input: HTMLInputElement\n 'prepend-inner': HTMLElement\n prefix: HTMLElement\n suffix: HTMLElement\n }\n}\n\nconst dirtyTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-text-field',\n\n directives: {\n resize,\n ripple,\n },\n\n inheritAttrs: false,\n\n props: {\n appendOuterIcon: String,\n autofocus: Boolean,\n clearable: Boolean,\n clearIcon: {\n type: String,\n default: '$clear',\n },\n counter: [Boolean, Number, String],\n counterValue: Function as PropType<(value: any) => number>,\n filled: Boolean,\n flat: Boolean,\n fullWidth: Boolean,\n label: String,\n outlined: Boolean,\n placeholder: String,\n prefix: String,\n prependInnerIcon: String,\n persistentPlaceholder: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n shaped: Boolean,\n singleLine: Boolean,\n solo: Boolean,\n soloInverted: Boolean,\n suffix: String,\n type: {\n type: String,\n default: 'text',\n },\n },\n\n data: () => ({\n badInput: false,\n labelWidth: 0,\n prefixWidth: 0,\n prependWidth: 0,\n initialValue: null,\n isBooted: false,\n isClearing: false,\n }),\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-text-field': true,\n 'v-text-field--full-width': this.fullWidth,\n 'v-text-field--prefix': this.prefix,\n 'v-text-field--single-line': this.isSingle,\n 'v-text-field--solo': this.isSolo,\n 'v-text-field--solo-inverted': this.soloInverted,\n 'v-text-field--solo-flat': this.flat,\n 'v-text-field--filled': this.filled,\n 'v-text-field--is-booted': this.isBooted,\n 'v-text-field--enclosed': this.isEnclosed,\n 'v-text-field--reverse': this.reverse,\n 'v-text-field--outlined': this.outlined,\n 'v-text-field--placeholder': this.placeholder,\n 'v-text-field--rounded': this.rounded,\n 'v-text-field--shaped': this.shaped,\n }\n },\n computedColor (): string | undefined {\n const computedColor = Validatable.options.computed.computedColor.call(this)\n\n if (!this.soloInverted || !this.isFocused) return computedColor\n\n return this.color || 'primary'\n },\n computedCounterValue (): number {\n if (typeof this.counterValue === 'function') {\n return this.counterValue(this.internalValue)\n }\n return [...(this.internalValue || '').toString()].length\n },\n hasCounter (): boolean {\n return this.counter !== false && this.counter != null\n },\n hasDetails (): boolean {\n return VInput.options.computed.hasDetails.call(this) || this.hasCounter\n },\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit('input', this.lazyValue)\n },\n },\n isDirty (): boolean {\n return this.lazyValue?.toString().length > 0 || this.badInput\n },\n isEnclosed (): boolean {\n return (\n this.filled ||\n this.isSolo ||\n this.outlined\n )\n },\n isLabelActive (): boolean {\n return this.isDirty || dirtyTypes.includes(this.type)\n },\n isSingle (): boolean {\n return (\n this.isSolo ||\n this.singleLine ||\n this.fullWidth ||\n // https://material.io/components/text-fields/#filled-text-field\n (this.filled && !this.hasLabel)\n )\n },\n isSolo (): boolean {\n return this.solo || this.soloInverted\n },\n labelPosition (): Record<'left' | 'right', string | number | undefined> {\n let offset = (this.prefix && !this.labelValue) ? this.prefixWidth : 0\n\n if (this.labelValue && this.prependWidth) offset -= this.prependWidth\n\n return (this.$vuetify.rtl === this.reverse) ? {\n left: offset,\n right: 'auto',\n } : {\n left: 'auto',\n right: offset,\n }\n },\n showLabel (): boolean {\n return this.hasLabel && !(this.isSingle && this.labelValue)\n },\n labelValue (): boolean {\n return this.isFocused || this.isLabelActive || this.persistentPlaceholder\n },\n },\n\n watch: {\n // labelValue: 'setLabelWidth', // moved to mounted, see #11533\n outlined: 'setLabelWidth',\n label () {\n this.$nextTick(this.setLabelWidth)\n },\n prefix () {\n this.$nextTick(this.setPrefixWidth)\n },\n isFocused: 'updateValue',\n value (val) {\n this.lazyValue = val\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('box')) {\n breaking('box', 'filled', this)\n }\n\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('browser-autocomplete')) {\n breaking('browser-autocomplete', 'autocomplete', this)\n }\n\n /* istanbul ignore if */\n if (this.shaped && !(this.filled || this.outlined || this.isSolo)) {\n consoleWarn('shaped should be used with either filled or outlined', this)\n }\n },\n\n mounted () {\n // #11533\n this.$watch(() => this.labelValue, this.setLabelWidth)\n this.autofocus && this.tryAutofocus()\n requestAnimationFrame(() => {\n this.isBooted = true\n requestAnimationFrame(() => {\n if (!this.isIntersecting) {\n this.onResize()\n }\n })\n })\n },\n\n methods: {\n /** @public */\n focus () {\n this.onFocus()\n },\n /** @public */\n blur (e?: Event) {\n // https://github.com/vuetifyjs/vuetify/issues/5913\n // Safari tab order gets broken if called synchronous\n window.requestAnimationFrame(() => {\n this.$refs.input && this.$refs.input.blur()\n })\n },\n clearableCallback () {\n this.$refs.input && this.$refs.input.focus()\n this.$nextTick(() => this.internalValue = null)\n },\n genAppendSlot () {\n const slot = []\n\n if (this.$slots['append-outer']) {\n slot.push(this.$slots['append-outer'] as VNode[])\n } else if (this.appendOuterIcon) {\n slot.push(this.genIcon('appendOuter'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n genPrependInnerSlot () {\n const slot = []\n\n if (this.$slots['prepend-inner']) {\n slot.push(this.$slots['prepend-inner'] as VNode[])\n } else if (this.prependInnerIcon) {\n slot.push(this.genIcon('prependInner'))\n }\n\n return this.genSlot('prepend', 'inner', slot)\n },\n genIconSlot () {\n const slot = []\n\n if (this.$slots.append) {\n slot.push(this.$slots.append as VNode[])\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'inner', slot)\n },\n genInputSlot () {\n const input = VInput.options.methods.genInputSlot.call(this)\n\n const prepend = this.genPrependInnerSlot()\n\n if (prepend) {\n input.children = input.children || []\n input.children.unshift(prepend)\n }\n\n return input\n },\n genClearIcon () {\n if (!this.clearable) return null\n\n // if the text field has no content then don't display the clear icon.\n // We add an empty div because other controls depend on a ref to append inner\n if (!this.isDirty) {\n return this.genSlot('append', 'inner', [\n this.$createElement('div'),\n ])\n }\n\n return this.genSlot('append', 'inner', [\n this.genIcon('clear', this.clearableCallback),\n ])\n },\n genCounter () {\n if (!this.hasCounter) return null\n\n const max = this.counter === true ? this.attrs$.maxlength : this.counter\n\n const props = {\n dark: this.dark,\n light: this.light,\n max,\n value: this.computedCounterValue,\n }\n\n return this.$scopedSlots.counter?.({ props }) ?? this.$createElement(VCounter, { props })\n },\n genControl () {\n return VInput.options.methods.genControl.call(this)\n },\n genDefaultSlot () {\n return [\n this.genFieldset(),\n this.genTextFieldSlot(),\n this.genClearIcon(),\n this.genIconSlot(),\n this.genProgress(),\n ]\n },\n genFieldset () {\n if (!this.outlined) return null\n\n return this.$createElement('fieldset', {\n attrs: {\n 'aria-hidden': true,\n },\n }, [this.genLegend()])\n },\n genLabel () {\n if (!this.showLabel) return null\n\n const data = {\n props: {\n absolute: true,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: !this.isSingle && (this.isFocused || !!this.validationState),\n for: this.computedId,\n left: this.labelPosition.left,\n light: this.light,\n right: this.labelPosition.right,\n value: this.labelValue,\n },\n }\n\n return this.$createElement(VLabel, data, this.$slots.label || this.label)\n },\n genLegend () {\n const width = !this.singleLine && (this.labelValue || this.isDirty) ? this.labelWidth : 0\n const span = this.$createElement('span', {\n domProps: { innerHTML: '​' },\n staticClass: 'notranslate',\n })\n\n return this.$createElement('legend', {\n style: {\n width: !this.isSingle ? convertToUnit(width) : undefined,\n },\n }, [span])\n },\n genInput () {\n const listeners = Object.assign({}, this.listeners$)\n delete listeners.change // Change should not be bound externally\n const { title, ...inputAttrs } = this.attrs$\n\n return this.$createElement('input', {\n style: {},\n domProps: {\n value: (this.type === 'number' && Object.is(this.lazyValue, -0)) ? '-0' : this.lazyValue,\n },\n attrs: {\n ...inputAttrs,\n autofocus: this.autofocus,\n disabled: this.isDisabled,\n id: this.computedId,\n placeholder: this.persistentPlaceholder || this.isFocused || !this.hasLabel ? this.placeholder : undefined,\n readonly: this.isReadonly,\n type: this.type,\n },\n on: Object.assign(listeners, {\n blur: this.onBlur,\n input: this.onInput,\n focus: this.onFocus,\n keydown: this.onKeyDown,\n }),\n ref: 'input',\n directives: [{\n name: 'resize',\n modifiers: { quiet: true },\n value: this.onResize,\n }],\n })\n },\n genMessages () {\n if (!this.showDetails) return null\n\n const messagesNode = VInput.options.methods.genMessages.call(this)\n const counterNode = this.genCounter()\n\n return this.$createElement('div', {\n staticClass: 'v-text-field__details',\n }, [\n messagesNode,\n counterNode,\n ])\n },\n genTextFieldSlot () {\n return this.$createElement('div', {\n staticClass: 'v-text-field__slot',\n }, [\n this.genLabel(),\n this.prefix ? this.genAffix('prefix') : null,\n this.genInput(),\n this.suffix ? this.genAffix('suffix') : null,\n ])\n },\n genAffix (type: 'prefix' | 'suffix') {\n return this.$createElement('div', {\n class: `v-text-field__${type}`,\n ref: type,\n }, this[type])\n },\n onBlur (e?: Event) {\n this.isFocused = false\n e && this.$nextTick(() => this.$emit('blur', e))\n },\n onClick () {\n if (this.isFocused || this.isDisabled || !this.$refs.input) return\n\n this.$refs.input.focus()\n },\n onFocus (e?: Event) {\n if (!this.$refs.input) return\n\n const root = attachedRoot(this.$el)\n if (!root) return\n\n if (root.activeElement !== this.$refs.input) {\n return this.$refs.input.focus()\n }\n\n if (!this.isFocused) {\n this.isFocused = true\n e && this.$emit('focus', e)\n }\n },\n onInput (e: Event) {\n const target = e.target as HTMLInputElement\n this.internalValue = target.value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n if (\n e.keyCode === keyCodes.enter &&\n this.lazyValue !== this.initialValue\n ) {\n this.initialValue = this.lazyValue\n this.$emit('change', this.initialValue)\n }\n\n this.$emit('keydown', e)\n },\n onMouseDown (e: Event) {\n // Prevent input from being blurred\n if (e.target !== this.$refs.input) {\n e.preventDefault()\n e.stopPropagation()\n }\n\n VInput.options.methods.onMouseDown.call(this, e)\n },\n onMouseUp (e: Event) {\n if (this.hasMouseDown) this.focus()\n\n VInput.options.methods.onMouseUp.call(this, e)\n },\n setLabelWidth () {\n if (!this.outlined) return\n\n this.labelWidth = this.$refs.label\n ? Math.min(this.$refs.label.scrollWidth * 0.75 + 6, (this.$el as HTMLElement).offsetWidth - 24)\n : 0\n },\n setPrefixWidth () {\n if (!this.$refs.prefix) return\n\n this.prefixWidth = this.$refs.prefix.offsetWidth\n },\n setPrependWidth () {\n if (!this.outlined || !this.$refs['prepend-inner']) return\n\n this.prependWidth = this.$refs['prepend-inner'].offsetWidth\n },\n tryAutofocus () {\n if (\n !this.autofocus ||\n typeof document === 'undefined' ||\n !this.$refs.input) return false\n\n const root = attachedRoot(this.$el)\n if (!root || root.activeElement === this.$refs.input) return false\n\n this.$refs.input.focus()\n\n return true\n },\n updateValue (val: boolean) {\n // Sets validationState from validatable\n this.hasColor = val\n\n if (val) {\n this.initialValue = this.lazyValue\n } else if (this.initialValue !== this.lazyValue) {\n this.$emit('change', this.lazyValue)\n }\n },\n onResize () {\n this.setLabelWidth()\n this.setPrefixWidth()\n this.setPrependWidth()\n },\n },\n})\n","// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default Themeable.extend({\n name: 'v-theme-provider',\n\n props: { root: Boolean },\n\n computed: {\n isDark (): boolean {\n return this.root\n ? this.rootIsDark\n : Themeable.options.computed.isDark.call(this)\n },\n },\n\n render (): VNode {\n /* istanbul ignore next */\n return (\n this.$slots.default! &&\n this.$slots.default!.find(node => !node.isComment && node.text !== ' ')!\n )\n },\n})\n","// Styles\nimport './VToolbar.sass'\n\n// Extensions\nimport VSheet from '../VSheet/VSheet'\n\n// Components\nimport VImg, { srcObject } from '../VImg/VImg'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\n/* @vue/component */\nexport default VSheet.extend({\n name: 'v-toolbar',\n\n props: {\n absolute: Boolean,\n bottom: Boolean,\n collapse: Boolean,\n dense: Boolean,\n extended: Boolean,\n extensionHeight: {\n default: 48,\n type: [Number, String],\n },\n flat: Boolean,\n floating: Boolean,\n prominent: Boolean,\n short: Boolean,\n src: {\n type: [String, Object] as PropType,\n default: '',\n },\n tag: {\n type: String,\n default: 'header',\n },\n },\n\n data: () => ({\n isExtended: false,\n }),\n\n computed: {\n computedHeight (): number {\n const height = this.computedContentHeight\n\n if (!this.isExtended) return height\n\n const extensionHeight = parseInt(this.extensionHeight)\n\n return this.isCollapsed\n ? height\n : height + (!isNaN(extensionHeight) ? extensionHeight : 0)\n },\n computedContentHeight (): number {\n if (this.height) return parseInt(this.height)\n if (this.isProminent && this.dense) return 96\n if (this.isProminent && this.short) return 112\n if (this.isProminent) return 128\n if (this.dense) return 48\n if (this.short || this.$vuetify.breakpoint.smAndDown) return 56\n return 64\n },\n classes (): object {\n return {\n ...VSheet.options.computed.classes.call(this),\n 'v-toolbar': true,\n 'v-toolbar--absolute': this.absolute,\n 'v-toolbar--bottom': this.bottom,\n 'v-toolbar--collapse': this.collapse,\n 'v-toolbar--collapsed': this.isCollapsed,\n 'v-toolbar--dense': this.dense,\n 'v-toolbar--extended': this.isExtended,\n 'v-toolbar--flat': this.flat,\n 'v-toolbar--floating': this.floating,\n 'v-toolbar--prominent': this.isProminent,\n }\n },\n isCollapsed (): boolean {\n return this.collapse\n },\n isProminent (): boolean {\n return this.prominent\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n height: convertToUnit(this.computedHeight),\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['app', ''],\n ['manual-scroll', ''],\n ['clipped-left', ''],\n ['clipped-right', ''],\n ['inverted-scroll', ''],\n ['scroll-off-screen', ''],\n ['scroll-target', ''],\n ['scroll-threshold', ''],\n ['card', ''],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n genBackground () {\n const props = {\n height: convertToUnit(this.computedHeight),\n src: this.src,\n }\n\n const image = this.$scopedSlots.img\n ? this.$scopedSlots.img({ props })\n : this.$createElement(VImg, { props })\n\n return this.$createElement('div', {\n staticClass: 'v-toolbar__image',\n }, [image])\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-toolbar__content',\n style: {\n height: convertToUnit(this.computedContentHeight),\n },\n }, getSlot(this))\n },\n genExtension () {\n return this.$createElement('div', {\n staticClass: 'v-toolbar__extension',\n style: {\n height: convertToUnit(this.extensionHeight),\n },\n }, getSlot(this, 'extension'))\n },\n },\n\n render (h): VNode {\n this.isExtended = this.extended || !!this.$scopedSlots.extension\n\n const children = [this.genContent()]\n const data = this.setBackgroundColor(this.color, {\n class: this.classes,\n style: this.styles,\n on: this.$listeners,\n })\n\n if (this.isExtended) children.push(this.genExtension())\n if (this.src || this.$scopedSlots.img) children.unshift(this.genBackground())\n\n return h(this.tag, data, children)\n },\n})\n","// Components\nimport VToolbar from './VToolbar'\n\n// Utilities\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VToolbarTitle = createSimpleFunctional('v-toolbar__title')\nconst VToolbarItems = createSimpleFunctional('v-toolbar__items')\n\nexport {\n VToolbar,\n VToolbarItems,\n VToolbarTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VToolbar,\n VToolbarItems,\n VToolbarTitle,\n },\n}\n","import './VTooltip.sass'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Colorable from '../../mixins/colorable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Menuable from '../../mixins/menuable'\n\n// Helpers\nimport { convertToUnit, keyCodes, getSlotType } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Colorable, Delayable, Dependent, Menuable).extend({\n name: 'v-tooltip',\n\n props: {\n closeDelay: {\n type: [Number, String],\n default: 0,\n },\n disabled: Boolean,\n openDelay: {\n type: [Number, String],\n default: 0,\n },\n openOnHover: {\n type: Boolean,\n default: true,\n },\n openOnFocus: {\n type: Boolean,\n default: true,\n },\n tag: {\n type: String,\n default: 'span',\n },\n transition: String,\n },\n\n data: () => ({\n calculatedMinWidth: 0,\n closeDependents: false,\n }),\n\n computed: {\n calculatedLeft (): string {\n const { activator, content } = this.dimensions\n const unknown = !this.bottom && !this.left && !this.top && !this.right\n const activatorLeft = this.attach !== false ? activator.offsetLeft : activator.left\n let left = 0\n\n if (this.top || this.bottom || unknown) {\n left = (\n activatorLeft +\n (activator.width / 2) -\n (content.width / 2)\n )\n } else if (this.left || this.right) {\n left = (\n activatorLeft +\n (this.right ? activator.width : -content.width) +\n (this.right ? 10 : -10)\n )\n }\n\n if (this.nudgeLeft) left -= parseInt(this.nudgeLeft)\n if (this.nudgeRight) left += parseInt(this.nudgeRight)\n\n return `${this.calcXOverflow(left, this.dimensions.content.width)}px`\n },\n calculatedTop (): string {\n const { activator, content } = this.dimensions\n const activatorTop = this.attach !== false ? activator.offsetTop : activator.top\n let top = 0\n\n if (this.top || this.bottom) {\n top = (\n activatorTop +\n (this.bottom ? activator.height : -content.height) +\n (this.bottom ? 10 : -10)\n )\n } else if (this.left || this.right) {\n top = (\n activatorTop +\n (activator.height / 2) -\n (content.height / 2)\n )\n }\n\n if (this.nudgeTop) top -= parseInt(this.nudgeTop)\n if (this.nudgeBottom) top += parseInt(this.nudgeBottom)\n if (this.attach === false) top += this.pageYOffset\n\n return `${this.calcYOverflow(top)}px`\n },\n classes (): object {\n return {\n 'v-tooltip--top': this.top,\n 'v-tooltip--right': this.right,\n 'v-tooltip--bottom': this.bottom,\n 'v-tooltip--left': this.left,\n 'v-tooltip--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n }\n },\n computedTransition (): string {\n if (this.transition) return this.transition\n\n return this.isActive ? 'scale-transition' : 'fade-transition'\n },\n offsetY (): boolean {\n return this.top || this.bottom\n },\n offsetX (): boolean {\n return this.left || this.right\n },\n styles (): object {\n return {\n left: this.calculatedLeft,\n maxWidth: convertToUnit(this.maxWidth),\n minWidth: convertToUnit(this.minWidth),\n top: this.calculatedTop,\n zIndex: this.zIndex || this.activeZIndex,\n }\n },\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.value && this.callActivate()\n })\n },\n\n mounted () {\n if (getSlotType(this, 'activator', true) === 'v-slot') {\n consoleError(`v-tooltip's activator slot must be bound, try '